diff options
1223 files changed, 17073 insertions, 5833 deletions
diff --git a/Android.mk b/Android.mk index fd38fd353..c3b1094d4 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) @@ -346,7 +381,7 @@ include $(CLEAR_VARS) LOCAL_MODULE_CLASS := JAVA_LIBRARIES LOCAL_MODULE := dialer-disklrucache-target LOCAL_SDK_VERSION := current -LOCAL_SRC_FILES := ../../../prebuilts/maven_repo/bumptech/com/github/bumptech/glide/disklrucache/1.0.0-SNAPSHOT/disklrucache-1.0.0-SNAPSHOT$(COMMON_JAVA_PACKAGE_SUFFIX) +LOCAL_SRC_FILES := ../../../prebuilts/maven_repo/bumptech/com/github/bumptech/glide/disklrucache/SNAPSHOT/disklrucache-SNAPSHOT$(COMMON_JAVA_PACKAGE_SUFFIX) LOCAL_UNINSTALLABLE_MODULE := true include $(BUILD_PREBUILT) @@ -356,7 +391,7 @@ include $(CLEAR_VARS) LOCAL_MODULE_CLASS := JAVA_LIBRARIES LOCAL_MODULE := dialer-gifdecoder-target LOCAL_SDK_VERSION := current -LOCAL_SRC_FILES := ../../../prebuilts/maven_repo/bumptech/com/github/bumptech/glide/gifdecoder/1.0.0-SNAPSHOT/gifdecoder-1.0.0-SNAPSHOT$(COMMON_JAVA_PACKAGE_SUFFIX) +LOCAL_SRC_FILES := ../../../prebuilts/maven_repo/bumptech/com/github/bumptech/glide/gifdecoder/SNAPSHOT/gifdecoder-SNAPSHOT$(COMMON_JAVA_PACKAGE_SUFFIX) LOCAL_UNINSTALLABLE_MODULE := true include $(BUILD_PREBUILT) @@ -366,7 +401,7 @@ include $(CLEAR_VARS) LOCAL_MODULE_CLASS := JAVA_LIBRARIES LOCAL_MODULE := dialer-glide-target LOCAL_SDK_VERSION := current -LOCAL_SRC_FILES := ../../../prebuilts/maven_repo/bumptech/com/github/bumptech/glide/glide/4.0.0-SNAPSHOT/glide-4.0.0-SNAPSHOT$(COMMON_JAVA_PACKAGE_SUFFIX) +LOCAL_SRC_FILES := ../../../prebuilts/maven_repo/bumptech/com/github/bumptech/glide/glide/SNAPSHOT/glide-SNAPSHOT$(COMMON_JAVA_PACKAGE_SUFFIX) LOCAL_UNINSTALLABLE_MODULE := true include $(BUILD_PREBUILT) @@ -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 c04f8bec9..7966a55a4 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -16,8 +16,8 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" coreApp="true" package="com.android.dialer" - android:versionCode="130000" - android:versionName="10.0"> + android:versionCode="140000" + android:versionName="11.0"> <uses-sdk android:minSdkVersion="23" diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_bluetooth_audio_white_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_bluetooth_audio_white_24.png Binary files differnew file mode 100644 index 000000000..046372d0d --- /dev/null +++ b/assets/quantum/res/drawable-hdpi/quantum_ic_bluetooth_audio_white_24.png diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_check_circle_googblue_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_check_circle_googblue_24.png Binary files differdeleted file mode 100644 index 52ff857ba..000000000 --- a/assets/quantum/res/drawable-hdpi/quantum_ic_check_circle_googblue_24.png +++ /dev/null diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_forward_white_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_forward_white_24.png Binary files differdeleted file mode 100644 index a0711d377..000000000 --- a/assets/quantum/res/drawable-hdpi/quantum_ic_forward_white_24.png +++ /dev/null diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_headset_white_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_headset_white_24.png Binary files differnew file mode 100644 index 000000000..d25d3888e --- /dev/null +++ b/assets/quantum/res/drawable-hdpi/quantum_ic_headset_white_24.png diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_mic_off_white_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_mic_off_white_24.png Binary files differnew file mode 100644 index 000000000..6fccf5d09 --- /dev/null +++ b/assets/quantum/res/drawable-hdpi/quantum_ic_mic_off_white_24.png diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_network_wifi_white_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_network_wifi_white_24.png Binary files differdeleted file mode 100644 index 8df91f236..000000000 --- a/assets/quantum/res/drawable-hdpi/quantum_ic_network_wifi_white_24.png +++ /dev/null diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_24.png Binary files differnew file mode 100644 index 000000000..f2c89424e --- /dev/null +++ b/assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_24.png diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_36.png b/assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_36.png Binary files differnew file mode 100644 index 000000000..ec67c6ef9 --- /dev/null +++ b/assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_36.png diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_report_white_18.png b/assets/quantum/res/drawable-hdpi/quantum_ic_report_white_18.png Binary files differdeleted file mode 100644 index f0bb6f5be..000000000 --- a/assets/quantum/res/drawable-hdpi/quantum_ic_report_white_18.png +++ /dev/null diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_bluetooth_audio_white_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_bluetooth_audio_white_24.png Binary files differnew file mode 100644 index 000000000..ddffcf1f9 --- /dev/null +++ b/assets/quantum/res/drawable-mdpi/quantum_ic_bluetooth_audio_white_24.png diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_check_circle_googblue_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_check_circle_googblue_24.png Binary files differdeleted file mode 100644 index eff562722..000000000 --- a/assets/quantum/res/drawable-mdpi/quantum_ic_check_circle_googblue_24.png +++ /dev/null diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_forward_white_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_forward_white_24.png Binary files differdeleted file mode 100644 index 65f73299f..000000000 --- a/assets/quantum/res/drawable-mdpi/quantum_ic_forward_white_24.png +++ /dev/null diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_headset_white_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_headset_white_24.png Binary files differnew file mode 100644 index 000000000..df063799d --- /dev/null +++ b/assets/quantum/res/drawable-mdpi/quantum_ic_headset_white_24.png diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_mic_off_white_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_mic_off_white_24.png Binary files differnew file mode 100644 index 000000000..15094d884 --- /dev/null +++ b/assets/quantum/res/drawable-mdpi/quantum_ic_mic_off_white_24.png diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_network_wifi_white_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_network_wifi_white_24.png Binary files differdeleted file mode 100644 index 1c3e8b987..000000000 --- a/assets/quantum/res/drawable-mdpi/quantum_ic_network_wifi_white_24.png +++ /dev/null diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_24.png Binary files differnew file mode 100644 index 000000000..e6f98af95 --- /dev/null +++ b/assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_24.png diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_36.png b/assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_36.png Binary files differnew file mode 100644 index 000000000..f2c89424e --- /dev/null +++ b/assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_36.png diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_report_white_18.png b/assets/quantum/res/drawable-mdpi/quantum_ic_report_white_18.png Binary files differdeleted file mode 100644 index 63ef73683..000000000 --- a/assets/quantum/res/drawable-mdpi/quantum_ic_report_white_18.png +++ /dev/null diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_bluetooth_audio_white_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_bluetooth_audio_white_24.png Binary files differnew file mode 100644 index 000000000..b494eb361 --- /dev/null +++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_bluetooth_audio_white_24.png diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_check_circle_googblue_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_check_circle_googblue_24.png Binary files differdeleted file mode 100644 index e31fcf350..000000000 --- a/assets/quantum/res/drawable-xhdpi/quantum_ic_check_circle_googblue_24.png +++ /dev/null diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_forward_white_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_forward_white_24.png Binary files differdeleted file mode 100644 index 7a5df52bf..000000000 --- a/assets/quantum/res/drawable-xhdpi/quantum_ic_forward_white_24.png +++ /dev/null diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_headset_white_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_headset_white_24.png Binary files differnew file mode 100644 index 000000000..d7a741b61 --- /dev/null +++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_headset_white_24.png diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_mic_off_white_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_mic_off_white_24.png Binary files differnew file mode 100644 index 000000000..bb7915f33 --- /dev/null +++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_mic_off_white_24.png diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_network_wifi_white_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_network_wifi_white_24.png Binary files differdeleted file mode 100644 index ca927f3de..000000000 --- a/assets/quantum/res/drawable-xhdpi/quantum_ic_network_wifi_white_24.png +++ /dev/null diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_24.png Binary files differnew file mode 100644 index 000000000..a2d78b221 --- /dev/null +++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_24.png diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_36.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_36.png Binary files differnew file mode 100644 index 000000000..9c002da0a --- /dev/null +++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_36.png diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_report_white_18.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_report_white_18.png Binary files differdeleted file mode 100644 index dc0c995c1..000000000 --- a/assets/quantum/res/drawable-xhdpi/quantum_ic_report_white_18.png +++ /dev/null diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_bluetooth_audio_white_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_bluetooth_audio_white_24.png Binary files differnew file mode 100644 index 000000000..d5022d063 --- /dev/null +++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_bluetooth_audio_white_24.png diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_check_circle_googblue_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_check_circle_googblue_24.png Binary files differdeleted file mode 100644 index a8eb2a45e..000000000 --- a/assets/quantum/res/drawable-xxhdpi/quantum_ic_check_circle_googblue_24.png +++ /dev/null diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_forward_white_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_forward_white_24.png Binary files differdeleted file mode 100644 index 7bd5b1635..000000000 --- a/assets/quantum/res/drawable-xxhdpi/quantum_ic_forward_white_24.png +++ /dev/null diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_headset_white_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_headset_white_24.png Binary files differnew file mode 100644 index 000000000..82db5427b --- /dev/null +++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_headset_white_24.png diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_mic_off_white_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_mic_off_white_24.png Binary files differnew file mode 100644 index 000000000..7a15a9ea9 --- /dev/null +++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_mic_off_white_24.png diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_network_wifi_white_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_network_wifi_white_24.png Binary files differdeleted file mode 100644 index 75469cd85..000000000 --- a/assets/quantum/res/drawable-xxhdpi/quantum_ic_network_wifi_white_24.png +++ /dev/null diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_24.png Binary files differnew file mode 100644 index 000000000..9c002da0a --- /dev/null +++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_24.png diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_36.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_36.png Binary files differnew file mode 100644 index 000000000..5bb683f6e --- /dev/null +++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_36.png diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_report_white_18.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_report_white_18.png Binary files differdeleted file mode 100644 index 919a872e0..000000000 --- a/assets/quantum/res/drawable-xxhdpi/quantum_ic_report_white_18.png +++ /dev/null diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_bluetooth_audio_white_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_bluetooth_audio_white_24.png Binary files differnew file mode 100644 index 000000000..8e1fa206b --- /dev/null +++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_bluetooth_audio_white_24.png diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_check_circle_googblue_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_check_circle_googblue_24.png Binary files differdeleted file mode 100644 index 7e08f6108..000000000 --- a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_check_circle_googblue_24.png +++ /dev/null diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_forward_white_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_forward_white_24.png Binary files differdeleted file mode 100644 index 428009cfe..000000000 --- a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_forward_white_24.png +++ /dev/null diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_headset_white_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_headset_white_24.png Binary files differnew file mode 100644 index 000000000..0f0b2e154 --- /dev/null +++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_headset_white_24.png diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_mic_off_white_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_mic_off_white_24.png Binary files differnew file mode 100644 index 000000000..22ca19ae4 --- /dev/null +++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_mic_off_white_24.png diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_network_wifi_white_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_network_wifi_white_24.png Binary files differdeleted file mode 100644 index eb284e383..000000000 --- a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_network_wifi_white_24.png +++ /dev/null diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_24.png Binary files differnew file mode 100644 index 000000000..36be1da99 --- /dev/null +++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_24.png diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_36.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_36.png Binary files differnew file mode 100644 index 000000000..1257e66c5 --- /dev/null +++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_36.png diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_report_white_18.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_report_white_18.png Binary files differdeleted file mode 100644 index aed766804..000000000 --- a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_report_white_18.png +++ /dev/null diff --git a/assets/quantum/res/drawable/quantum_ic_arrow_back_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_arrow_back_vd_theme_24.xml new file mode 100644 index 000000000..2989fdada --- /dev/null +++ b/assets/quantum/res/drawable/quantum_ic_arrow_back_vd_theme_24.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24.0" + android:viewportHeight="24.0" + android:tint="?attr/colorControlNormal"> + <path + android:fillColor="@android:color/white" + android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z"/> +</vector> 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 000000000..1fbafeb83 --- /dev/null +++ b/assets/quantum/res/drawable/quantum_ic_call_vd_theme_24.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24.0" + android:viewportHeight="24.0" + android:tint="?attr/colorControlNormal"> + <path + android:fillColor="@android:color/white" + android:pathData="M6.62,10.79c1.44,2.83 3.76,5.14 6.59,6.59l2.2,-2.2c0.27,-0.27 0.67,-0.36 1.02,-0.24 1.12,0.37 2.33,0.57 3.57,0.57 0.55,0 1,0.45 1,1V20c0,0.55 -0.45,1 -1,1 -9.39,0 -17,-7.61 -17,-17 0,-0.55 0.45,-1 1,-1h3.5c0.55,0 1,0.45 1,1 0,1.25 0.2,2.45 0.57,3.57 0.11,0.35 0.03,0.74 -0.25,1.02l-2.2,2.2z"/> +</vector> 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 000000000..3f9973200 --- /dev/null +++ b/assets/quantum/res/drawable/quantum_ic_close_vd_theme_24.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24.0" + android:viewportHeight="24.0" + android:tint="?attr/colorControlNormal"> + <path + android:fillColor="@android:color/white" + android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z"/> +</vector> 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 4f1fd4920..6495ac7eb 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 @@ <path android:fillColor="@android:color/white" android:pathData="M14,16.5h-4L10,15L3,15v4c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2v-4h-7v1.5zM20,6h-3.5L16.5,4.5L15,3L9,3L7.5,4.55L7.5,6L4,6c-1.1,0 -2,0.9 -2,2v4c0,1.1 0.9,2 2,2h6v-1.5h4L14,14h6c1.1,0 2,-0.9 2,-2L22,8c0,-1.1 -0.9,-2 -2,-2zM15,6L9,6L9,4.5h6L15,6z"/> -</vector>
\ No newline at end of file +</vector> 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 c67509cbf..b6da8a048 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 @@ <path android:fillColor="@android:color/white" android:pathData="M19,3L5,3c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 -2,-2zM11,15L9.5,15v-2h-2v2L6,15L6,9h1.5v2.5h2L9.5,9L11,9v6zM13,9h4c0.55,0 1,0.45 1,1v4c0,0.55 -0.45,1 -1,1h-4L13,9zM14.5,13.5h2v-3h-2v3z"/> -</vector>
\ No newline at end of file +</vector> 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 000000000..d8567f54b --- /dev/null +++ b/assets/quantum/res/drawable/quantum_ic_history_vd_theme_24.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24.0" + android:viewportHeight="24.0" + android:tint="?attr/colorControlNormal"> + <path + android:fillColor="@android:color/white" + android:pathData="M13,3c-4.97,0 -9,4.03 -9,9L1,12l3.89,3.89 0.07,0.14L9,12L6,12c0,-3.87 3.13,-7 7,-7s7,3.13 7,7 -3.13,7 -7,7c-1.93,0 -3.68,-0.79 -4.94,-2.06l-1.42,1.42C8.27,19.99 10.51,21 13,21c4.97,0 9,-4.03 9,-9s-4.03,-9 -9,-9zM12,8v5l4.28,2.54 0.72,-1.21 -3.5,-2.08L13.5,8L12,8z"/> +</vector> 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 000000000..280fa262c --- /dev/null +++ b/assets/quantum/res/drawable/quantum_ic_message_vd_theme_24.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24.0" + android:viewportHeight="24.0" + android:tint="?attr/colorControlNormal"> + <path + android:fillColor="@android:color/white" + android:pathData="M20,2L4,2c-1.1,0 -1.99,0.9 -1.99,2L2,22l4,-4h14c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM18,14L6,14v-2h12v2zM18,11L6,11L6,9h12v2zM18,8L6,8L6,6h12v2z"/> +</vector> 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 000000000..cf4e563df --- /dev/null +++ b/assets/quantum/res/drawable/quantum_ic_person_add_vd_theme_24.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24.0" + android:viewportHeight="24.0" + android:tint="?attr/colorControlNormal"> + <path + android:fillColor="@android:color/white" + android:pathData="M15,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM6,10L6,7L4,7v3L1,10v2h3v3h2v-3h3v-2L6,10zM15,14c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z"/> +</vector> 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 000000000..083d63644 --- /dev/null +++ b/assets/quantum/res/drawable/quantum_ic_search_vd_theme_24.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24.0" + android:viewportHeight="24.0" + android:tint="?attr/colorControlNormal"> + <path + android:fillColor="@android:color/white" + android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z"/> +</vector> 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 000000000..429061af0 --- /dev/null +++ b/assets/quantum/res/drawable/quantum_ic_videocam_vd_theme_24.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24.0" + android:viewportHeight="24.0" + android:tint="?attr/colorControlNormal"> + <path + android:fillColor="@android:color/white" + android:pathData="M17,10.5V7c0,-0.55 -0.45,-1 -1,-1H4c-0.55,0 -1,0.45 -1,1v10c0,0.55 0.45,1 1,1h12c0.55,0 1,-0.45 1,-1v-3.5l4,4v-11l-4,4z"/> +</vector> diff --git a/java/com/android/contacts/common/ClipboardUtils.java b/java/com/android/contacts/common/ClipboardUtils.java index 9345b0f9c..3d7683941 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 169348b25..3e1a78f63 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 2e6ff9fdc..28ecf3421 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 97d84c876..c5347e778 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 60af44b9a..66ccc90e7 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<AccountWithDataSet> accounts = - AccountTypeManager.getInstance(context).getGroupWritableAccounts(); - return !accounts.isEmpty(); - } - - /** - * Returns the size (width and height) of thumbnail pictures as configured in the provider. This - * can safely be called from the UI thread, as the provider can serve this without performing a - * database access - */ - public static int getThumbnailSize(Context context) { - if (sThumbnailSize == -1) { - final Cursor c = - context - .getContentResolver() - .query( - DisplayPhoto.CONTENT_MAX_DIMENSIONS_URI, - new String[] {DisplayPhoto.THUMBNAIL_MAX_DIM}, - null, - null, - null); - if (c != null) { - try { - if (c.moveToFirst()) { - sThumbnailSize = c.getInt(0); - } - } finally { - c.close(); - } - } - } - return sThumbnailSize != -1 ? sThumbnailSize : DEFAULT_THUMBNAIL_SIZE; - } - - private static Intent getCustomImIntent(ImDataItem im, int protocol) { - String host = im.getCustomProtocol(); - final String data = im.getData(); - if (TextUtils.isEmpty(data)) { - return null; - } - if (protocol != Im.PROTOCOL_CUSTOM) { - // Try bringing in a well-known host for specific protocols - host = ContactsUtils.lookupProviderNameFromId(protocol); - } - if (TextUtils.isEmpty(host)) { - return null; - } - final String authority = host.toLowerCase(); - final Uri imUri = - new Uri.Builder().scheme(SCHEME_IMTO).authority(authority).appendPath(data).build(); - final Intent intent = new Intent(Intent.ACTION_SENDTO, imUri); - return intent; - } - - /** - * Returns the proper Intent for an ImDatItem. If available, a secondary intent is stored in the - * second Pair slot - */ - public static Pair<Intent, Intent> buildImIntent(Context context, ImDataItem im) { - Intent intent = null; - Intent secondaryIntent = null; - final boolean isEmail = im.isCreatedFromEmail(); - - if (!isEmail && !im.isProtocolValid()) { - return new Pair<>(null, null); - } - - final String data = im.getData(); - if (TextUtils.isEmpty(data)) { - return new Pair<>(null, null); - } - - final int protocol = isEmail ? Im.PROTOCOL_GOOGLE_TALK : im.getProtocol(); - - if (protocol == Im.PROTOCOL_GOOGLE_TALK) { - final int chatCapability = im.getChatCapability(); - if ((chatCapability & Im.CAPABILITY_HAS_CAMERA) != 0) { - intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message")); - secondaryIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?call")); - } else if ((chatCapability & Im.CAPABILITY_HAS_VOICE) != 0) { - // Allow Talking and Texting - intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message")); - secondaryIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?call")); - } else { - intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message")); - } - } else { - // Build an IM Intent - intent = getCustomImIntent(im, protocol); - } - return new Pair<>(intent, secondaryIntent); - } /** * Determine UserType from directory id and contact id. @@ -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 50b0cd9e3..000000000 --- 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 028f89971..26241b34f 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; @@ -194,40 +192,6 @@ public class MoreContactUtils { } /** - * Returns a header view based on the R.layout.list_separator, where the containing {@link - * android.widget.TextView} is set using the given textResourceId. - */ - public static TextView createHeaderView(Context context, int textResourceId) { - final TextView textView = (TextView) View.inflate(context, R.layout.list_separator, null); - textView.setText(context.getString(textResourceId)); - return textView; - } - - /** - * Set the top padding on the header view dynamically, based on whether the header is in the first - * row or not. - */ - public static void setHeaderViewBottomPadding( - Context context, TextView textView, boolean isFirstRow) { - final int topPadding; - if (isFirstRow) { - topPadding = - (int) - context - .getResources() - .getDimension(R.dimen.frequently_contacted_title_top_margin_when_first_row); - } else { - topPadding = - (int) context.getResources().getDimension(R.dimen.frequently_contacted_title_top_margin); - } - textView.setPaddingRelative( - textView.getPaddingStart(), - topPadding, - textView.getPaddingEnd(), - textView.getPaddingBottom()); - } - - /** * Returns the intent to launch for the given invitable account type and contact lookup URI. This * will return null if the account type is not invitable (i.e. there is no {@link * AccountType#getInviteContactActivityClassName()} or {@link diff --git a/java/com/android/contacts/common/compat/ContactsCompat.java b/java/com/android/contacts/common/compat/ContactsCompat.java index 39d0b55d3..e0c9b7e53 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 6a24ec033..aa22c6861 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 960b340d8..a6cfe07cd 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 7e4803ca5..4a16fb855 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 { @@ -49,31 +48,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". - * <p>"Voice capable" means that this device supports circuit-switched (i.e. voice) phone - * calls over the telephony network, and is allowed to display the in-call UI while a cellular - * voice call is active. This will be false on "data only" devices which can't make voice - * calls and don't support any in-call UI. - * <p>Note: the meaning of this flag is subtly different from the - * PackageManager.FEATURE_TELEPHONY system feature, which is available on any device with a - * telephony radio, even if the device is data-only. - */ - public static boolean isVoiceCapable(@Nullable TelephonyManager telephonyManager) { - if (telephonyManager == null) { - return false; - } - if (CompatUtils.isLollipopMr1Compatible() - || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "isVoiceCapable")) { - // isVoiceCapable was unhidden in L-MR1 - return telephonyManager.isVoiceCapable(); - } - final int phoneType = telephonyManager.getPhoneType(); - return phoneType == TelephonyManager.PHONE_TYPE_CDMA - || phoneType == TelephonyManager.PHONE_TYPE_GSM; - } - - /** * Returns the number of phones available. Returns 1 for Single standby mode (Single SIM * functionality) Returns 2 for Dual standby mode.(Dual SIM functionality) * @@ -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. - * - * <p>Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE} - * - * @param telephonyManager The telephony manager instance to use for method calls. - * @param slotId of which deviceID is returned - */ - public static String getDeviceId(@Nullable TelephonyManager telephonyManager, int slotId) { - if (telephonyManager == null) { - return null; - } - if (CompatUtils.isMarshmallowCompatible() - || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "getDeviceId", Integer.class)) { - return telephonyManager.getDeviceId(slotId); - } - return null; + 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 5687f6fbf..43eae589d 100644 --- a/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java +++ b/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java @@ -15,275 +15,19 @@ */ package com.android.contacts.common.compat.telecom; -import android.app.Activity; -import android.content.Intent; -import android.net.Uri; import android.support.annotation.Nullable; -import android.telecom.PhoneAccount; import android.telecom.PhoneAccountHandle; import android.telecom.TelecomManager; -import android.telephony.PhoneNumberUtils; -import android.telephony.TelephonyManager; -import android.text.TextUtils; -import com.android.dialer.compat.CompatUtils; -import java.util.ArrayList; -import java.util.List; /** Compatibility class for {@link android.telecom.TelecomManager}. */ public class TelecomManagerCompat { - public static final String TELECOM_MANAGER_CLASS = "android.telecom.TelecomManager"; - // TODO: remove once this is available in android.telecom.Call // b/33779976 public static final String EXTRA_LAST_EMERGENCY_CALLBACK_TIME_MILLIS = "android.telecom.extra.LAST_EMERGENCY_CALLBACK_TIME_MILLIS"; /** - * Places a new outgoing call to the provided address using the system telecom service with the - * specified intent. - * - * @param activity {@link Activity} used to start another activity for the given intent - * @param telecomManager the {@link TelecomManager} used to place a call, if possible - * @param intent the intent for the call - */ - public static void placeCall( - @Nullable Activity activity, - @Nullable TelecomManager telecomManager, - @Nullable Intent intent) { - if (activity == null || telecomManager == null || intent == null) { - return; - } - if (CompatUtils.isMarshmallowCompatible()) { - telecomManager.placeCall(intent.getData(), intent.getExtras()); - return; - } - activity.startActivityForResult(intent, 0); - } - - /** - * Get the URI for running an adn query. - * - * @param telecomManager the {@link TelecomManager} used for method calls, if possible. - * @param accountHandle The handle for the account to derive an adn query URI for or {@code null} - * to return a URI which will use the default account. - * @return The URI (with the content:// scheme) specific to the specified {@link PhoneAccount} for - * the the content retrieve. - */ - public static Uri getAdnUriForPhoneAccount( - @Nullable TelecomManager telecomManager, PhoneAccountHandle accountHandle) { - if (telecomManager != null - && (CompatUtils.isMarshmallowCompatible() - || CompatUtils.isMethodAvailable( - TELECOM_MANAGER_CLASS, "getAdnUriForPhoneAccount", PhoneAccountHandle.class))) { - return telecomManager.getAdnUriForPhoneAccount(accountHandle); - } - return Uri.parse("content://icc/adn"); - } - - /** - * Returns a list of {@link PhoneAccountHandle}s which can be used to make and receive phone - * calls. The returned list includes only those accounts which have been explicitly enabled by the - * user. - * - * @param telecomManager the {@link TelecomManager} used for method calls, if possible. - * @return A list of PhoneAccountHandle objects. - */ - public static List<PhoneAccountHandle> getCallCapablePhoneAccounts( - @Nullable TelecomManager telecomManager) { - if (telecomManager != null - && (CompatUtils.isMarshmallowCompatible() - || CompatUtils.isMethodAvailable( - TELECOM_MANAGER_CLASS, "getCallCapablePhoneAccounts"))) { - return telecomManager.getCallCapablePhoneAccounts(); - } - return new ArrayList<>(); - } - - /** - * Used to determine the currently selected default dialer package. - * - * @param telecomManager the {@link TelecomManager} used for method calls, if possible. - * @return package name for the default dialer package or null if no package has been selected as - * the default dialer. - */ - @Nullable - public static String getDefaultDialerPackage(@Nullable TelecomManager telecomManager) { - if (telecomManager != null && CompatUtils.isDefaultDialerCompatible()) { - return telecomManager.getDefaultDialerPackage(); - } - return null; - } - - /** - * Return the {@link PhoneAccount} which will be used to place outgoing calls to addresses with - * the specified {@code uriScheme}. This PhoneAccount will always be a member of the list which is - * returned from invoking {@link TelecomManager#getCallCapablePhoneAccounts()}. The specific - * account returned depends on the following priorities: - * - * <p>1. If the user-selected default PhoneAccount supports the specified scheme, it will be - * returned. 2. If there exists only one PhoneAccount that supports the specified scheme, it will - * be returned. - * - * <p>If no PhoneAccount fits the criteria above, this method will return {@code null}. - * - * @param telecomManager the {@link TelecomManager} used for method calls, if possible. - * @param uriScheme The URI scheme. - * @return The {@link PhoneAccountHandle} corresponding to the account to be used. - */ - @Nullable - public static PhoneAccountHandle getDefaultOutgoingPhoneAccount( - @Nullable TelecomManager telecomManager, @Nullable String uriScheme) { - if (telecomManager != null - && (CompatUtils.isMarshmallowCompatible() - || CompatUtils.isMethodAvailable( - TELECOM_MANAGER_CLASS, "getDefaultOutgoingPhoneAccount", String.class))) { - return telecomManager.getDefaultOutgoingPhoneAccount(uriScheme); - } - return null; - } - - /** - * Return the line 1 phone number for given phone account. - * - * @param telecomManager the {@link TelecomManager} to use in the event that {@link - * TelecomManager#getLine1Number(PhoneAccountHandle)} is available - * @param telephonyManager the {@link TelephonyManager} to use if TelecomManager#getLine1Number is - * unavailable - * @param phoneAccountHandle the phoneAccountHandle upon which to check the line one number - * @return the line one number - */ - @Nullable - public static String getLine1Number( - @Nullable TelecomManager telecomManager, - @Nullable TelephonyManager telephonyManager, - @Nullable PhoneAccountHandle phoneAccountHandle) { - if (telecomManager != null && CompatUtils.isMarshmallowCompatible()) { - return telecomManager.getLine1Number(phoneAccountHandle); - } - if (telephonyManager != null) { - return telephonyManager.getLine1Number(); - } - return null; - } - - /** - * Return whether a given phone number is the configured voicemail number for a particular phone - * account. - * - * @param telecomManager the {@link TelecomManager} to use for checking the number. - * @param accountHandle The handle for the account to check the voicemail number against - * @param number The number to look up. - */ - public static boolean isVoiceMailNumber( - @Nullable TelecomManager telecomManager, - @Nullable PhoneAccountHandle accountHandle, - @Nullable String number) { - if (telecomManager != null - && (CompatUtils.isMarshmallowCompatible() - || CompatUtils.isMethodAvailable( - TELECOM_MANAGER_CLASS, - "isVoiceMailNumber", - PhoneAccountHandle.class, - String.class))) { - return telecomManager.isVoiceMailNumber(accountHandle, number); - } - return PhoneNumberUtils.isVoiceMailNumber(number); - } - - /** - * Return the {@link PhoneAccount} for a specified {@link PhoneAccountHandle}. Object includes - * resources which can be used in a user interface. - * - * @param telecomManager the {@link TelecomManager} used for method calls, if possible. - * @param account The {@link PhoneAccountHandle}. - * @return The {@link PhoneAccount} object or null if it doesn't exist. - */ - @Nullable - public static PhoneAccount getPhoneAccount( - @Nullable TelecomManager telecomManager, @Nullable PhoneAccountHandle accountHandle) { - if (telecomManager != null - && (CompatUtils.isMethodAvailable( - TELECOM_MANAGER_CLASS, "getPhoneAccount", PhoneAccountHandle.class))) { - return telecomManager.getPhoneAccount(accountHandle); - } - return null; - } - - /** - * Return the voicemail number for a given phone account. - * - * @param telecomManager The {@link TelecomManager} object to use for retrieving the voicemail - * number if accountHandle is specified. - * @param telephonyManager The {@link TelephonyManager} object to use for retrieving the voicemail - * number if accountHandle is null. - * @param accountHandle The handle for the phone account. - * @return The voicemail number for the phone account, and {@code null} if one has not been - * configured. - */ - @Nullable - public static String getVoiceMailNumber( - @Nullable TelecomManager telecomManager, - @Nullable TelephonyManager telephonyManager, - @Nullable PhoneAccountHandle accountHandle) { - if (telecomManager != null - && (CompatUtils.isMethodAvailable( - TELECOM_MANAGER_CLASS, "getVoiceMailNumber", PhoneAccountHandle.class))) { - return telecomManager.getVoiceMailNumber(accountHandle); - } else if (telephonyManager != null) { - return telephonyManager.getVoiceMailNumber(); - } - return null; - } - - /** - * Processes the specified dial string as an MMI code. MMI codes are any sequence of characters - * entered into the dialpad that contain a "*" or "#". Some of these sequences launch special - * behavior through handled by Telephony. - * - * @param telecomManager The {@link TelecomManager} object to use for handling MMI. - * @param dialString The digits to dial. - * @return {@code true} if the digits were processed as an MMI code, {@code false} otherwise. - */ - public static boolean handleMmi( - @Nullable TelecomManager telecomManager, - @Nullable String dialString, - @Nullable PhoneAccountHandle accountHandle) { - if (telecomManager == null || TextUtils.isEmpty(dialString)) { - return false; - } - if (CompatUtils.isMarshmallowCompatible()) { - return telecomManager.handleMmi(dialString, accountHandle); - } - - Object handleMmiResult = - CompatUtils.invokeMethod( - telecomManager, - "handleMmi", - new Class<?>[] {PhoneAccountHandle.class, String.class}, - new Object[] {accountHandle, dialString}); - if (handleMmiResult != null) { - return (boolean) handleMmiResult; - } - - return telecomManager.handleMmi(dialString); - } - - /** - * Silences the ringer if a ringing call exists. Noop if {@link TelecomManager#silenceRinger()} is - * unavailable. - * - * @param telecomManager the TelecomManager to use to silence the ringer. - */ - public static void silenceRinger(@Nullable TelecomManager telecomManager) { - if (telecomManager != null - && (CompatUtils.isMarshmallowCompatible() - || CompatUtils.isMethodAvailable(TELECOM_MANAGER_CLASS, "silenceRinger"))) { - telecomManager.silenceRinger(); - } - } - - /** * Returns the current SIM call manager. Apps must be prepared for this method to return null, * indicating that there currently exists no registered SIM call manager. * @@ -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 0e7937102..88fac0256 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 727c15b83..000000000 --- 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. - * - * <p>If not found, returns -1. - * - * @param text the text in which to search for the prefix - * @param prefix the text to find, in upper case letters - */ - public static int indexOfWordPrefix(CharSequence text, String prefix) { - if (prefix == null || text == null) { - return -1; - } - - int textLength = text.length(); - int prefixLength = prefix.length(); - - if (prefixLength == 0 || textLength < prefixLength) { - return -1; - } - - int i = 0; - while (i < textLength) { - // Skip non-word characters - while (i < textLength && !Character.isLetterOrDigit(text.charAt(i))) { - i++; - } - - if (i + prefixLength > textLength) { - return -1; - } - - // Compare the prefixes - int j; - for (j = 0; j < prefixLength; j++) { - if (Character.toUpperCase(text.charAt(i + j)) != prefix.charAt(j)) { - break; - } - } - if (j == prefixLength) { - return i; - } - - // Skip this word - while (i < textLength && Character.isLetterOrDigit(text.charAt(i))) { - i++; - } - } - - return -1; - } -} diff --git a/java/com/android/contacts/common/format/TextHighlighter.java b/java/com/android/contacts/common/format/TextHighlighter.java index 30c03fdf3..f397f0429 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. + * + * <p>If not found, returns -1. + * + * @param text the text in which to search for the prefix + * @param prefix the text to find, in upper case letters + */ + public static int indexOfWordPrefix(CharSequence text, String prefix) { + if (prefix == null || text == null) { + return -1; + } + + int textLength = text.length(); + int prefixLength = prefix.length(); + + if (prefixLength == 0 || textLength < prefixLength) { + return -1; + } + + int i = 0; + while (i < textLength) { + // Skip non-word characters + while (i < textLength && !Character.isLetterOrDigit(text.charAt(i))) { + i++; + } + + if (i + prefixLength > textLength) { + return -1; + } + + // Compare the prefixes + int j; + for (j = 0; j < prefixLength; j++) { + if (Character.toUpperCase(text.charAt(i + j)) != prefix.charAt(j)) { + break; + } + } + if (j == prefixLength) { + return i; + } + + // Skip this word + while (i < textLength && Character.isLetterOrDigit(text.charAt(i))) { + i++; + } + } + + return -1; + } } diff --git a/java/com/android/contacts/common/format/testing/SpannedTestUtils.java b/java/com/android/contacts/common/format/testing/SpannedTestUtils.java deleted file mode 100644 index 293d9d5ad..000000000 --- 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 <p></p> bits to it. - Assert.assertEquals("", actualHtmlText); - } else { - Assert.assertEquals("<p dir=ltr>" + expectedHtmlText + "</p>\n", actualHtmlText); - } - } - - /** - * Assert span exists in the correct location. - * - * @param seq The spannable string to check. - * @param start The starting index. - * @param end The ending index. - */ - public static void assertPrefixSpan(CharSequence seq, int start, int end) { - Assert.assertTrue(seq instanceof Spanned); - Spanned spannable = (Spanned) seq; - - if (start > 0) { - Assert.assertEquals(0, getNumForegroundColorSpansBetween(spannable, 0, start - 1)); - } - Assert.assertEquals(1, getNumForegroundColorSpansBetween(spannable, start, end)); - Assert.assertEquals( - 0, getNumForegroundColorSpansBetween(spannable, end + 1, spannable.length() - 1)); - } - - private static int getNumForegroundColorSpansBetween(Spanned value, int start, int end) { - return value.getSpans(start, end, StyleSpan.class).length; - } - - /** - * Asserts that the given character sequence is not a Spanned object and text is correct. - * - * @param seq The sequence to check. - * @param expected The expected text. - */ - public static void assertNotSpanned(CharSequence seq, String expected) { - Assert.assertFalse(seq instanceof Spanned); - Assert.assertEquals(expected, seq); - } - - public static int getNextTransition(SpannableString seq, int start) { - return seq.nextSpanTransition(start, seq.length(), StyleSpan.class); - } -} diff --git a/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java b/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java index 88522c44b..5e77b696b 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. + * + * <p>If no special state is detected, yields TYPE_DEFAULT + */ + public static @ContactType int getContactTypeFromPrimitives( + boolean isVoicemailNumber, + boolean isSpam, + boolean isBusiness, + int numberPresentation, + boolean isConference) { + if (isVoicemailNumber) { + return LetterTileDrawable.TYPE_VOICEMAIL; + } else if (isSpam) { + return LetterTileDrawable.TYPE_SPAM; + } else if (isBusiness) { + return LetterTileDrawable.TYPE_BUSINESS; + } else if (numberPresentation == TelecomManager.PRESENTATION_RESTRICTED) { + return LetterTileDrawable.TYPE_GENERIC_AVATAR; + } else if (isConference) { + return LetterTileDrawable.TYPE_CONFERENCE; + } else { + return LetterTileDrawable.TYPE_DEFAULT; + } + } } diff --git a/java/com/android/contacts/common/list/ContactEntryListAdapter.java b/java/com/android/contacts/common/list/ContactEntryListAdapter.java index 18bbae382..064214ef2 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 278175c0b..146986f75 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<T extends ContactEntryListAdapter protected void setSearchMode(boolean flag) { if (mSearchMode != flag) { mSearchMode = flag; - setSectionHeaderDisplayEnabled(!mSearchMode); if (!flag) { mDirectoryListStatus = STATUS_NOT_LOADED; diff --git a/java/com/android/contacts/common/list/ContactListItemView.java b/java/com/android/contacts/common/list/ContactListItemView.java index 7a3194720..5a2749178 100644 --- a/java/com/android/contacts/common/list/ContactListItemView.java +++ b/java/com/android/contacts/common/list/ContactListItemView.java @@ -30,8 +30,8 @@ import android.provider.ContactsContract; import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.SearchSnippets; import android.support.annotation.IntDef; +import android.support.annotation.NonNull; import android.support.v4.content.ContextCompat; -import android.support.v4.graphics.drawable.DrawableCompat; import android.text.Spannable; import android.text.SpannableString; import android.text.TextUtils; @@ -55,7 +55,6 @@ import com.android.contacts.common.format.TextHighlighter; import com.android.contacts.common.list.PhoneNumberListAdapter.Listener; import com.android.contacts.common.util.ContactDisplayUtils; import com.android.contacts.common.util.SearchUtil; -import com.android.dialer.compat.CompatUtils; import com.android.dialer.util.ViewUtil; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -81,13 +80,15 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj /** IntDef for indices of ViewPager tabs. */ @Retention(RetentionPolicy.SOURCE) - @IntDef({NONE, VIDEO, CALL_AND_SHARE}) + @IntDef({NONE, VIDEO, LIGHTBRINGER, CALL_AND_SHARE}) public @interface CallToAction {} public static final int NONE = 0; public static final int VIDEO = 1; - public static final int CALL_AND_SHARE = 2; + public static final int LIGHTBRINGER = 2; + public static final int CALL_AND_SHARE = 3; + private final PhotoPosition mPhotoPosition = getDefaultPhotoPosition(); private static final Pattern SPLIT_PATTERN = Pattern.compile("([\\w-\\.]+)@((?:[\\w]+\\.)+)([a-zA-Z]{2,4})|[\\w]+"); static final char SNIPPET_START_MATCH = '['; @@ -106,7 +107,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj private int mNameTextViewTextSize; private int mHeaderWidth; private Drawable mActivatedBackgroundDrawable; - private int mCallToActionSize = 32; + private int mCallToActionSize = 48; private int mCallToActionMargin = 16; // Set in onLayout. Represent left and right position of the View on the screen. private int mLeftOffset; @@ -122,10 +123,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj private String mHighlightedPrefix; /** Indicates whether the view should leave room for the "video call" icon. */ private boolean mSupportVideoCall; - /** Indicates whether the view should leave room for the "call and share" icon. */ - private boolean mSupportCallAndShare; - private PhotoPosition mPhotoPosition = getDefaultPhotoPosition(false /* normal/non opposite */); // Header layout data private TextView mHeaderTextView; private boolean mIsSectionHeaderEnabled; @@ -139,7 +137,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj private TextView mSnippetView; private TextView mStatusView; private ImageView mPresenceIcon; - private ImageView mCallToAction; + @NonNull private final ImageView mCallToActionView; private ImageView mWorkProfileIcon; private ColorStateList mSecondaryTextColor; private int mDefaultPhotoViewSize = 0; @@ -181,23 +179,14 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj private Rect mBoundsWithoutHeader = new Rect(); private CharSequence mUnknownNameText; - public ContactListItemView(Context context) { - super(context); + private String mPhoneNumber; + private int mPosition = -1; + private @CallToAction int mCallToAction = NONE; - mTextHighlighter = new TextHighlighter(Typeface.BOLD); - mNameHighlightSequence = new ArrayList<>(); - 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 9273b0583..15582d684 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 9a490d78a..65e6f2da2 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<DirectoryPartition> 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<String> 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<String> 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 8f25f82a5..79e670010 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<ContactE private boolean mUseCallableUri; - private ContactListItemView.PhotoPosition mPhotoPosition = - ContactListItemView.getDefaultPhotoPosition(false /* normal/non opposite */); - private final Set<OnLoadFinishedListener> mLoadFinishedListeners = new ArraySet<>(); private CursorReranker mCursorReranker; @@ -71,7 +71,7 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment<ContactE public PhoneNumberPickerFragment() { setQuickContactEnabled(false); setPhotoLoaderEnabled(true); - setSectionHeaderDisplayEnabled(true); + setSectionHeaderDisplayEnabled(false); setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_NONE); // Show nothing instead of letting caller Activity show something. @@ -85,17 +85,32 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment<ContactE */ @Override public void onVideoCallIconClicked(int position) { + Logger.get(getContext()).logImpression(DialerImpression.Type.IMS_VIDEO_REQUESTED_FROM_SEARCH); callNumber(position, true /* isVideoCall */); } @Override + public void onLightbringerIconClicked(int position) { + String phoneNumber = getPhoneNumber(position); + Intent intent = + LightbringerComponent.get(getContext()) + .getLightbringer() + .getIntent(getContext(), phoneNumber); + // DialtactsActivity.ACTIVITY_REQUEST_CODE_LIGHTBRINGER + // Cannot reference because of cyclic dependencies + Logger.get(getContext()) + .logImpression(DialerImpression.Type.LIGHTBRINGER_VIDEO_REQUESTED_FROM_SEARCH); + int dialactsActivityRequestCode = 3; + getActivity().startActivityForResult(intent, dialactsActivityRequestCode); + } + + @Override public void onCallAndShareIconClicked(int position) { // Required because of cyclic dependencies of everything depending on contacts/common. String componentName = "com.android.dialer.callcomposer.CallComposerActivity"; Intent intent = new Intent(); intent.setComponent(new ComponentName(getContext(), componentName)); - CallComposerContact contact = - ((PhoneNumberListAdapter) getAdapter()).getCallComposerContact(position); + DialerContact contact = ((PhoneNumberListAdapter) getAdapter()).getDialerContact(position); ProtoParsers.put(intent, "CALL_COMPOSER_CONTACT", contact); startActivity(intent); } @@ -320,7 +335,27 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment<ContactE @Override public void onCapabilitiesUpdated() { if (getAdapter() != null) { - getAdapter().notifyDataSetChanged(); + EnrichedCallManager manager = + EnrichedCallComponent.get(getContext()).getEnrichedCallManager(); + Listener listener = ((PhoneNumberListAdapter) getAdapter()).getListener(); + + for (int i = 0; i < getListView().getChildCount(); i++) { + if (!(getListView().getChildAt(i) instanceof ContactListItemView)) { + continue; + } + + // Since call and share is the lowest priority call to action, if any others are set, + // do not reset the call to action. Also do not set the call and share call to action if + // the number doesn't support call composer. + ContactListItemView view = (ContactListItemView) getListView().getChildAt(i); + if (view.getCallToAction() != ContactListItemView.NONE + || view.getPhoneNumber() == null + || manager.getCapabilities(view.getPhoneNumber()) == null + || !manager.getCapabilities(view.getPhoneNumber()).supportsCallComposer()) { + continue; + } + view.setCallToAction(ContactListItemView.CALL_AND_SHARE, listener, view.getPosition()); + } } } @@ -360,12 +395,6 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment<ContactE if (!isSearchMode() && mFilter != null) { adapter.setFilter(mFilter); } - - setPhotoPosition(adapter); - } - - protected void setPhotoPosition(ContactEntryListAdapter adapter) { - ((PhoneNumberListAdapter) adapter).setPhotoPosition(mPhotoPosition); } @Override @@ -389,15 +418,6 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment<ContactE updateFilterHeaderView(); } - public void setPhotoPosition(ContactListItemView.PhotoPosition photoPosition) { - mPhotoPosition = photoPosition; - - final PhoneNumberListAdapter adapter = (PhoneNumberListAdapter) getAdapter(); - if (adapter != null) { - adapter.setPhotoPosition(photoPosition); - } - } - /** * @param isRemoteDirectory {@code true} if the call was initiated using a contact/phone number * not in the local contacts database diff --git a/java/com/android/contacts/common/list/ViewPagerTabs.java b/java/com/android/contacts/common/list/ViewPagerTabs.java index 34f623ef4..1e6cf1354 100644 --- a/java/com/android/contacts/common/list/ViewPagerTabs.java +++ b/java/com/android/contacts/common/list/ViewPagerTabs.java @@ -33,7 +33,6 @@ import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; import com.android.contacts.common.R; -import com.android.dialer.compat.CompatUtils; /** * Lightweight implementation of ViewPager tabs. This looks similar to traditional actionBar tabs, @@ -43,7 +42,13 @@ import com.android.dialer.compat.CompatUtils; */ public class ViewPagerTabs extends HorizontalScrollView implements ViewPager.OnPageChangeListener { - private static final ViewOutlineProvider VIEW_BOUNDS_OUTLINE_PROVIDER; + private static final ViewOutlineProvider VIEW_BOUNDS_OUTLINE_PROVIDER = + new ViewOutlineProvider() { + @Override + public void getOutline(View view, Outline outline) { + outline.setRect(0, 0, view.getWidth(), view.getHeight()); + } + }; private static final int TAB_SIDE_PADDING_IN_DPS = 10; // TODO: This should use <declare-styleable> 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 7d9e42b38..000000000 --- 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: - * - * <ul> - * <li>Mobile network - * <li>Location manager - * <li>SIM's country - * <li>User's default locale - * </ul> - * - * As far as possible this class tries to replicate the behavior of the system's country detector - * service: 1) Order in priority of sources of country location 2) Mobile network information - * provided by CDMA phones is ignored 3) Location information is updated every 12 hours (instead of - * 24 hours in the system) 4) Location updates only uses the {@link - * LocationManager#PASSIVE_PROVIDER} to avoid active use of the GPS 5) If a location is successfully - * obtained and geocoded, we never fall back to use of the SIM's country (for the system, the - * fallback never happens without a reboot) 6) Location is not used if the device does not implement - * a {@link android.location.Geocoder} - */ -public class CountryDetector { - - public static final String KEY_PREFERENCE_TIME_UPDATED = "preference_time_updated"; - public static final String KEY_PREFERENCE_CURRENT_COUNTRY = "preference_current_country"; - private static final String TAG = "CountryDetector"; - // Wait 12 hours between updates - private static final long TIME_BETWEEN_UPDATES_MS = 1000L * 60 * 60 * 12; - // Minimum distance before an update is triggered, in meters. We don't need this to be too - // exact because all we care about is what country the user is in. - private static final long DISTANCE_BETWEEN_UPDATES_METERS = 5000; - private static CountryDetector sInstance; - private final TelephonyManager mTelephonyManager; - private final LocationManager mLocationManager; - private final LocaleProvider mLocaleProvider; - // Used as a default country code when all the sources of country data have failed in the - // exceedingly rare event that the device does not have a default locale set for some reason. - private static final String DEFAULT_COUNTRY_ISO = "US"; - private final Context mContext; - - private CountryDetector(Context context) { - this( - context, - (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE), - (LocationManager) context.getSystemService(Context.LOCATION_SERVICE), - new LocaleProvider()); - } - - private CountryDetector( - Context context, - TelephonyManager telephonyManager, - LocationManager locationManager, - LocaleProvider localeProvider) { - mTelephonyManager = telephonyManager; - mLocationManager = locationManager; - mLocaleProvider = localeProvider; - mContext = context; - - registerForLocationUpdates(context, mLocationManager); - } - - public static void registerForLocationUpdates(Context context, LocationManager locationManager) { - if (!PermissionsUtil.hasLocationPermissions(context)) { - Log.w(TAG, "No location permissions, not registering for location updates."); - return; - } - - if (!Geocoder.isPresent()) { - // Certain devices do not have an implementation of a geocoder - in that case there is - // no point trying to get location updates because we cannot retrieve the country based - // on the location anyway. - return; - } - final Intent activeIntent = new Intent(context, LocationChangedReceiver.class); - final PendingIntent pendingIntent = - PendingIntent.getBroadcast(context, 0, activeIntent, PendingIntent.FLAG_UPDATE_CURRENT); - - locationManager.requestLocationUpdates( - LocationManager.PASSIVE_PROVIDER, - TIME_BETWEEN_UPDATES_MS, - DISTANCE_BETWEEN_UPDATES_METERS, - pendingIntent); - } - - /** - * Returns the instance of the country detector. {@link #initialize(Context)} must have been - * called previously. - * - * @return the initialized country detector. - */ - public static synchronized CountryDetector getInstance(Context context) { - if (sInstance == null) { - sInstance = new CountryDetector(context.getApplicationContext()); - } - return sInstance; - } - - /** Factory method for {@link CountryDetector} that allows the caller to provide mock objects. */ - public CountryDetector getInstanceForTest( - Context context, - TelephonyManager telephonyManager, - LocationManager locationManager, - LocaleProvider localeProvider, - Geocoder geocoder) { - return new CountryDetector(context, telephonyManager, locationManager, localeProvider); - } - - public String getCurrentCountryIso() { - String result = null; - if (isNetworkCountryCodeAvailable()) { - result = getNetworkBasedCountryIso(); - } - if (TextUtils.isEmpty(result)) { - result = getLocationBasedCountryIso(); - } - if (TextUtils.isEmpty(result)) { - result = getSimBasedCountryIso(); - } - if (TextUtils.isEmpty(result)) { - result = getLocaleBasedCountryIso(); - } - if (TextUtils.isEmpty(result)) { - result = DEFAULT_COUNTRY_ISO; - } - return result.toUpperCase(Locale.US); - } - - /** @return the country code of the current telephony network the user is connected to. */ - private String getNetworkBasedCountryIso() { - return mTelephonyManager.getNetworkCountryIso(); - } - - /** @return the geocoded country code detected by the {@link LocationManager}. */ - private String getLocationBasedCountryIso() { - if (!Geocoder.isPresent() || !PermissionsUtil.hasLocationPermissions(mContext)) { - return null; - } - final SharedPreferences sharedPreferences = - PreferenceManager.getDefaultSharedPreferences(mContext); - return sharedPreferences.getString(KEY_PREFERENCE_CURRENT_COUNTRY, null); - } - - /** @return the country code of the SIM card currently inserted in the device. */ - private String getSimBasedCountryIso() { - return mTelephonyManager.getSimCountryIso(); - } - - /** @return the country code of the user's currently selected locale. */ - private String getLocaleBasedCountryIso() { - Locale defaultLocale = mLocaleProvider.getDefaultLocale(); - if (defaultLocale != null) { - return defaultLocale.getCountry(); - } - return null; - } - - private boolean isNetworkCountryCodeAvailable() { - // On CDMA TelephonyManager.getNetworkCountryIso() just returns the SIM's country code. - // In this case, we want to ignore the value returned and fallback to location instead. - return mTelephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM; - } - - /** - * Class that can be used to return the user's default locale. This is in its own class so that it - * can be mocked out. - */ - public static class LocaleProvider { - - public Locale getDefaultLocale() { - return Locale.getDefault(); - } - } - - public static class LocationChangedReceiver extends BroadcastReceiver { - - @Override - public void onReceive(final Context context, Intent intent) { - if (!intent.hasExtra(LocationManager.KEY_LOCATION_CHANGED)) { - return; - } - - final Location location = - (Location) intent.getExtras().get(LocationManager.KEY_LOCATION_CHANGED); - - UpdateCountryService.updateCountry(context, location); - } - } -} diff --git a/java/com/android/contacts/common/location/UpdateCountryService.java b/java/com/android/contacts/common/location/UpdateCountryService.java deleted file mode 100644 index f23e09e20..000000000 --- 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<Address> addresses = - geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1); - if (addresses != null && addresses.size() > 0) { - country = addresses.get(0).getCountryCode(); - } - } else { - Log.w(TAG, "Invalid latitude"); - } - } catch (IOException e) { - Log.w(TAG, "Exception occurred when getting geocoded country from location"); - } - return country; - } -} diff --git a/java/com/android/contacts/common/model/ContactLoader.java b/java/com/android/contacts/common/model/ContactLoader.java index 55464b161..7ef3b73a0 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<Contact> { 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 8e9ba738c..ccdad3641 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 Binary files differdeleted file mode 100644 index d86b2195a..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_ab_search.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index ddbb2c459..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_arrow_back_24dp.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index d5942dcad..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_business_white_120dp.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 4dc506515..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_call_24dp.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 969552935..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_close_dk.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 540ab4dee..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_create_24dp.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 017e4bbf7..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_group_white_24dp.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 703d30b92..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_history_white_drawable_24dp.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index c7b1113cf..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_info_outline_24dp.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index deb3a6dc1..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_back.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 06bd18fbb..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_dk.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index d829d11e2..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_lt.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 1ba12950c..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_overflow_lt.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 5ff3ac574..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_dk.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index b4ebfc7b2..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_lt.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 03fd2fb10..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_remove_field_holo_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index e8cb0f5fe..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_dk.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 45137967c..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_holo_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 1c9bb81fa..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_lt.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 56708b0ba..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_person_24dp.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index ccdda6701..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_rx_videocam.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 603ddc895..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_tx_videocam.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 97905c9f5..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_videocam.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 2121878ae..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/ic_voicemail_avatar.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 4ea7afa00..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/list_activated_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index cddf9be75..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/list_background_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 86578be45..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/list_focused_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index e9afcc924..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/list_longpressed_holo_light.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 2054530ed..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/list_pressed_holo_light.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index a0f17568e..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/list_section_divider_holo_custom.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index ae937176e..000000000 --- a/java/com/android/contacts/common/res/drawable-hdpi/list_title_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 4139942d6..000000000 --- a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_focused_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 569d28f54..000000000 --- a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_section_divider_holo_custom.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 5ec4c96a7..000000000 --- a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_title_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 4139942d6..000000000 --- a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_focused_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 065ff62ce..000000000 --- a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_section_divider_holo_custom.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 013d5e711..000000000 --- a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_title_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 947f03cec..000000000 --- a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-hdpi/list_activated_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 6d09d7278..000000000 --- a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-mdpi/list_activated_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 63c7456f0..000000000 --- a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-xhdpi/list_activated_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 4139942d6..000000000 --- a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_focused_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index af5855420..000000000 --- a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_section_divider_holo_custom.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index cb801ac1b..000000000 --- a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_title_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 3bf8e0362..000000000 --- a/java/com/android/contacts/common/res/drawable-mdpi/list_activated_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 86578be45..000000000 --- a/java/com/android/contacts/common/res/drawable-mdpi/list_focused_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 3226ab760..000000000 --- a/java/com/android/contacts/common/res/drawable-mdpi/list_longpressed_holo_light.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 061904c42..000000000 --- a/java/com/android/contacts/common/res/drawable-mdpi/list_pressed_holo_light.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 1d9371de0..000000000 --- a/java/com/android/contacts/common/res/drawable-mdpi/list_section_divider_holo_custom.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 046b24a96..000000000 --- a/java/com/android/contacts/common/res/drawable-sw600dp-hdpi/list_activated_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 1ff337370..000000000 --- a/java/com/android/contacts/common/res/drawable-sw600dp-mdpi/list_activated_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 2eb7c7ebc..000000000 --- a/java/com/android/contacts/common/res/drawable-sw600dp-xhdpi/list_activated_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index eda10e612..000000000 --- a/java/com/android/contacts/common/res/drawable-xhdpi/list_activated_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 86578be45..000000000 --- a/java/com/android/contacts/common/res/drawable-xhdpi/list_focused_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 5532e88c2..000000000 --- a/java/com/android/contacts/common/res/drawable-xhdpi/list_longpressed_holo_light.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index f4af92657..000000000 --- a/java/com/android/contacts/common/res/drawable-xhdpi/list_pressed_holo_light.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8fb0636cf..000000000 --- a/java/com/android/contacts/common/res/drawable-xhdpi/list_section_divider_holo_custom.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 52c00ddcd..000000000 --- a/java/com/android/contacts/common/res/drawable-xxhdpi/list_activated_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 3e4ca684e..000000000 --- a/java/com/android/contacts/common/res/drawable-xxhdpi/list_focused_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 230d649bf..000000000 --- a/java/com/android/contacts/common/res/drawable-xxhdpi/list_longpressed_holo_light.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 1352a1702..000000000 --- a/java/com/android/contacts/common/res/drawable-xxhdpi/list_pressed_holo_light.9.png +++ /dev/null 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 476212d24..000000000 --- a/java/com/android/contacts/common/res/drawable/ic_search_add_contact.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Copyright (C) 2014 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<bitmap xmlns:android="http://schemas.android.com/apk/res/android" - android:autoMirrored="true" - android:src="@drawable/quantum_ic_person_add_white_24"/> diff --git a/java/com/android/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 35fff99c2..000000000 --- a/java/com/android/contacts/common/res/drawable/list_selector_background_transition_holo_light.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2010 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<transition xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:drawable="@drawable/list_pressed_holo_light"/> - <item android:drawable="@drawable/list_longpressed_holo_light"/> -</transition> diff --git a/java/com/android/contacts/common/res/layout/dialog_call_subject.xml b/java/com/android/contacts/common/res/layout/dialog_call_subject.xml index a33b2ac85..df8e8d299 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"/> <TextView diff --git a/java/com/android/contacts/common/res/layout/search_bar_expanded.xml b/java/com/android/contacts/common/res/layout/search_bar_expanded.xml index fa16083e2..7192eb030 100644 --- a/java/com/android/contacts/common/res/layout/search_bar_expanded.xml +++ b/java/com/android/contacts/common/res/layout/search_bar_expanded.xml @@ -29,7 +29,7 @@ android:layout_margin="@dimen/search_box_navigation_icon_margin" android:background="?attr/selectableItemBackgroundBorderless" android:contentDescription="@string/action_menu_back_from_search" - android:src="@drawable/ic_back_arrow" + android:src="@drawable/quantum_ic_arrow_back_vd_theme_24" android:tint="@color/contactscommon_actionbar_background_color"/> <EditText @@ -56,7 +56,7 @@ android:background="?attr/selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/description_clear_search" - android:src="@drawable/quantum_ic_close_white_24" + android:src="@drawable/quantum_ic_close_vd_theme_24" android:tint="@color/searchbox_icon_tint"/> </LinearLayout> diff --git a/java/com/android/contacts/common/res/values-af/strings.xml b/java/com/android/contacts/common/res/values-af/strings.xml index 52e612da9..48e4158f0 100644 --- a/java/com/android/contacts/common/res/values-af/strings.xml +++ b/java/com/android/contacts/common/res/values-af/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Tik \'n nota om saam met oproep te stuur …"</string> <string name="send_and_call_button" msgid="4735168294120154013">"STUUR EN BEL"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>-oortjie"</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>-oortjie <xliff:g id="COUNT_3">%2$d</xliff:g> ongelese items. </item> diff --git a/java/com/android/contacts/common/res/values-am/strings.xml b/java/com/android/contacts/common/res/values-am/strings.xml index 0283fbb0a..4121474f0 100644 --- a/java/com/android/contacts/common/res/values-am/strings.xml +++ b/java/com/android/contacts/common/res/values-am/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"ከጥሪ ጋር ለመላክ የማስታወሻ ጽሑፍ ይተይቡ ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ላክ እና ደውል"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g><xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"የ<xliff:g id="TITLE">%1$s</xliff:g> ትር።"</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> የ<xliff:g id="TITLE_2">%1$s</xliff:g> ትር። <xliff:g id="COUNT_3">%2$d</xliff:g> ያልተነበቡ ንጥሎች። </item> diff --git a/java/com/android/contacts/common/res/values-ar/strings.xml b/java/com/android/contacts/common/res/values-ar/strings.xml index a3862fe09..98fb057d4 100644 --- a/java/com/android/contacts/common/res/values-ar/strings.xml +++ b/java/com/android/contacts/common/res/values-ar/strings.xml @@ -252,7 +252,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"اكتب ملاحظة لإرسالها مع المكالمة ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"إرسال واتصال"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"علامة تبويب <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="zero"> <xliff:g id="TITLE_2">%1$s</xliff:g> علامة تبويب. <xliff:g id="COUNT_3">%2$d</xliff:g> عناصر غير مقروءة. </item> diff --git a/java/com/android/contacts/common/res/values-az/strings.xml b/java/com/android/contacts/common/res/values-az/strings.xml index 943377127..813ada7f7 100644 --- a/java/com/android/contacts/common/res/values-az/strings.xml +++ b/java/com/android/contacts/common/res/values-az/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Zəng ilə göndərmək üçün qeyd yazın..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"GÖNDƏRİN VƏ ZƏNG EDİN"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> tabel."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> tabel. <xliff:g id="COUNT_3">%2$d</xliff:g> oxunmamış element. </item> diff --git a/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml b/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml index fc99567f1..3eccfc654 100644 --- a/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml +++ b/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml @@ -249,7 +249,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Unesite belešku koju ćete poslati uz poziv..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"POŠALJI I POZOVI"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Kartica <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> Kartica <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepročitana stavka. </item> diff --git a/java/com/android/contacts/common/res/values-be/strings.xml b/java/com/android/contacts/common/res/values-be/strings.xml index a9652a1c1..99922a874 100644 --- a/java/com/android/contacts/common/res/values-be/strings.xml +++ b/java/com/android/contacts/common/res/values-be/strings.xml @@ -250,7 +250,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Увесці нататку для адпраўкі з выклікам…"</string> <string name="send_and_call_button" msgid="4735168294120154013">"АДПРАВІЦЬ І ВЫКЛІКАЦЬ"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Укладка <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one">Укладка <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> непрачытаны элемент. </item> diff --git a/java/com/android/contacts/common/res/values-bg/strings.xml b/java/com/android/contacts/common/res/values-bg/strings.xml index 0b57eb6a5..c2ebd2736 100644 --- a/java/com/android/contacts/common/res/values-bg/strings.xml +++ b/java/com/android/contacts/common/res/values-bg/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Напишете придружаваща бележка, която ще се изпрати при извършване на обаждането..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ИЗПРАЩАНЕ И ОБАЖДАНЕ"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Раздел „<xliff:g id="TITLE">%1$s</xliff:g>“."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other">Раздел „<xliff:g id="TITLE_2">%1$s</xliff:g>“. <xliff:g id="COUNT_3">%2$d</xliff:g> непрочетени елемента. </item> diff --git a/java/com/android/contacts/common/res/values-bn/strings.xml b/java/com/android/contacts/common/res/values-bn/strings.xml index 8e783d129..47e9b020e 100644 --- a/java/com/android/contacts/common/res/values-bn/strings.xml +++ b/java/com/android/contacts/common/res/values-bn/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"কলের সাথে পাঠানোর জন্য একটি নোট লিখুন ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"পাঠান এবং কল করুন"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ট্যাব৷"</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> ট্যাব৷ <xliff:g id="COUNT_3">%2$d</xliff:g>টি অপঠিত আইটেম৷ </item> diff --git a/java/com/android/contacts/common/res/values-bs/strings.xml b/java/com/android/contacts/common/res/values-bs/strings.xml index 278f6a8d0..305a7468a 100644 --- a/java/com/android/contacts/common/res/values-bs/strings.xml +++ b/java/com/android/contacts/common/res/values-bs/strings.xml @@ -249,7 +249,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Upišite bilješku koja će se poslati uz poziv ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"POŠALJI I POZOVI"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Kartica <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> Kartica <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepročitana stavka. </item> diff --git a/java/com/android/contacts/common/res/values-ca/strings.xml b/java/com/android/contacts/common/res/values-ca/strings.xml index ad31a01b6..8e8068695 100644 --- a/java/com/android/contacts/common/res/values-ca/strings.xml +++ b/java/com/android/contacts/common/res/values-ca/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Escriu una nota per enviar-la juntament amb la trucada..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ENVIA I TRUCA"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Pestanya <xliff:g id="TITLE">%1$s</xliff:g>"</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other">Pestanya <xliff:g id="TITLE_2">%1$s</xliff:g>: <xliff:g id="COUNT_3">%2$d</xliff:g> elements no llegits </item> diff --git a/java/com/android/contacts/common/res/values-cs/strings.xml b/java/com/android/contacts/common/res/values-cs/strings.xml index ab54be93a..7aea200b1 100644 --- a/java/com/android/contacts/common/res/values-cs/strings.xml +++ b/java/com/android/contacts/common/res/values-cs/strings.xml @@ -250,7 +250,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Zadejte poznámku, která se odešle pomocí volání…"</string> <string name="send_and_call_button" msgid="4735168294120154013">"ODESLAT A ZAVOLAT"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Karta <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="few"> Karta <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepřečtené položky. </item> diff --git a/java/com/android/contacts/common/res/values-da/strings.xml b/java/com/android/contacts/common/res/values-da/strings.xml index 965d04a73..430895a71 100644 --- a/java/com/android/contacts/common/res/values-da/strings.xml +++ b/java/com/android/contacts/common/res/values-da/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Indtast en note, som skal sendes ved opkald..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"SEND OG RING"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Fanen <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> Fanen <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> ulæst element. </item> diff --git a/java/com/android/contacts/common/res/values-de/strings.xml b/java/com/android/contacts/common/res/values-de/strings.xml index 60c5e6806..a46f278c1 100644 --- a/java/com/android/contacts/common/res/values-de/strings.xml +++ b/java/com/android/contacts/common/res/values-de/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Notiz eingeben, die beim Anrufen gesendet wird..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"SENDEN UND ANRUFEN"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Tab \"<xliff:g id="TITLE">%1$s</xliff:g>\"."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other">Tab \"<xliff:g id="TITLE_2">%1$s</xliff:g>\". <xliff:g id="COUNT_3">%2$d</xliff:g> ungelesene Elemente. </item> diff --git a/java/com/android/contacts/common/res/values-el/strings.xml b/java/com/android/contacts/common/res/values-el/strings.xml index 9af3bc55a..567b8fb52 100644 --- a/java/com/android/contacts/common/res/values-el/strings.xml +++ b/java/com/android/contacts/common/res/values-el/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Πληκτρολογήστε μια σημείωση για αποστολή με την κλήση…"</string> <string name="send_and_call_button" msgid="4735168294120154013">"ΑΠΟΣΤΟΛΗ ΚΑΙ ΚΛΗΣΗ"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Καρτέλα <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> Καρτέλα <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> μη αναγνωσμένα στοιχεία. </item> diff --git a/java/com/android/contacts/common/res/values-en-rAU/strings.xml b/java/com/android/contacts/common/res/values-en-rAU/strings.xml index 996c6ee18..660993d2e 100644 --- a/java/com/android/contacts/common/res/values-en-rAU/strings.xml +++ b/java/com/android/contacts/common/res/values-en-rAU/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Type a note to send with call ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"SEND & CALL"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> tab."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> tab. <xliff:g id="COUNT_3">%2$d</xliff:g> unread items. </item> diff --git a/java/com/android/contacts/common/res/values-en-rGB/strings.xml b/java/com/android/contacts/common/res/values-en-rGB/strings.xml index 996c6ee18..660993d2e 100644 --- a/java/com/android/contacts/common/res/values-en-rGB/strings.xml +++ b/java/com/android/contacts/common/res/values-en-rGB/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Type a note to send with call ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"SEND & CALL"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> tab."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> tab. <xliff:g id="COUNT_3">%2$d</xliff:g> unread items. </item> diff --git a/java/com/android/contacts/common/res/values-en-rIN/strings.xml b/java/com/android/contacts/common/res/values-en-rIN/strings.xml index 996c6ee18..660993d2e 100644 --- a/java/com/android/contacts/common/res/values-en-rIN/strings.xml +++ b/java/com/android/contacts/common/res/values-en-rIN/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Type a note to send with call ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"SEND & CALL"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> tab."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> tab. <xliff:g id="COUNT_3">%2$d</xliff:g> unread items. </item> diff --git a/java/com/android/contacts/common/res/values-es-rUS/strings.xml b/java/com/android/contacts/common/res/values-es-rUS/strings.xml index acb563cab..1c0339a6a 100644 --- a/java/com/android/contacts/common/res/values-es-rUS/strings.xml +++ b/java/com/android/contacts/common/res/values-es-rUS/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Escribe una nota para enviar con la llamada…"</string> <string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR Y LLAMAR"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Pestaña <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> Pestaña <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> elementos no leídos. </item> diff --git a/java/com/android/contacts/common/res/values-es/strings.xml b/java/com/android/contacts/common/res/values-es/strings.xml index def7a447c..b0956ec6a 100644 --- a/java/com/android/contacts/common/res/values-es/strings.xml +++ b/java/com/android/contacts/common/res/values-es/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Escribe una nota para enviarla con la llamada..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR Y LLAMAR"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Pestaña <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> Pestaña <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> elementos no leídos. </item> diff --git a/java/com/android/contacts/common/res/values-et/strings.xml b/java/com/android/contacts/common/res/values-et/strings.xml index c80d54214..e152f595a 100644 --- a/java/com/android/contacts/common/res/values-et/strings.xml +++ b/java/com/android/contacts/common/res/values-et/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Sisestage märkus, mis koos kõnega saata ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"SAADA JA HELISTA"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Vahekaart <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> Vahekaart <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> lugemata üksust. </item> diff --git a/java/com/android/contacts/common/res/values-eu/strings.xml b/java/com/android/contacts/common/res/values-eu/strings.xml index 868d668b5..967b63540 100644 --- a/java/com/android/contacts/common/res/values-eu/strings.xml +++ b/java/com/android/contacts/common/res/values-eu/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Idatzi deiarekin batera bidali beharreko oharra…"</string> <string name="send_and_call_button" msgid="4735168294120154013">"BIDALI ETA DEITU"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g>: <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> fitxa."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> fitxa. Irakurri gabeko <xliff:g id="COUNT_3">%2$d</xliff:g> elementu. </item> diff --git a/java/com/android/contacts/common/res/values-fa/strings.xml b/java/com/android/contacts/common/res/values-fa/strings.xml index dda10647c..3650e4671 100644 --- a/java/com/android/contacts/common/res/values-fa/strings.xml +++ b/java/com/android/contacts/common/res/values-fa/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"یادداشتی بنویسید که همراه تماس ارسال شود…"</string> <string name="send_and_call_button" msgid="4735168294120154013">"ارسال و تماس"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"برگه «<xliff:g id="TITLE">%1$s</xliff:g>»."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> برگه «<xliff:g id="TITLE_2">%1$s</xliff:g>». <xliff:g id="COUNT_3">%2$d</xliff:g> مورد خواندهنشده. </item> diff --git a/java/com/android/contacts/common/res/values-fi/strings.xml b/java/com/android/contacts/common/res/values-fi/strings.xml index b8065b2bf..b7739dee8 100644 --- a/java/com/android/contacts/common/res/values-fi/strings.xml +++ b/java/com/android/contacts/common/res/values-fi/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Kirjoita muistiinpano lähetettäväksi puhelun kanssa…"</string> <string name="send_and_call_button" msgid="4735168294120154013">"LÄHETÄ JA SOITA"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>-välilehti."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>-välilehti. <xliff:g id="COUNT_3">%2$d</xliff:g> lukematonta kohdetta. </item> diff --git a/java/com/android/contacts/common/res/values-fr-rCA/strings.xml b/java/com/android/contacts/common/res/values-fr-rCA/strings.xml index 82f549292..c20b8827e 100644 --- a/java/com/android/contacts/common/res/values-fr-rCA/strings.xml +++ b/java/com/android/contacts/common/res/values-fr-rCA/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Tapez une note à envoyer avec l\'appel..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ENVOYER ET APPELER"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> : <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Onglet <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> Onglet <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> élément non lu. </item> diff --git a/java/com/android/contacts/common/res/values-fr/strings.xml b/java/com/android/contacts/common/res/values-fr/strings.xml index 474d721dc..93b52dcf9 100644 --- a/java/com/android/contacts/common/res/values-fr/strings.xml +++ b/java/com/android/contacts/common/res/values-fr/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Saisissez une note pour accompagner l\'appel..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ENVOYER ET APPELER"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Onglet <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> Onglet <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> élément non lu. </item> diff --git a/java/com/android/contacts/common/res/values-gl/strings.xml b/java/com/android/contacts/common/res/values-gl/strings.xml index 4a3262a2b..4aa1fc1f7 100644 --- a/java/com/android/contacts/common/res/values-gl/strings.xml +++ b/java/com/android/contacts/common/res/values-gl/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Escribe unha nota para enviala coa chamada…"</string> <string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR E CHAMAR"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Pestana <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> Pestana <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> elementos non lidos. </item> diff --git a/java/com/android/contacts/common/res/values-gu/strings.xml b/java/com/android/contacts/common/res/values-gu/strings.xml index 536aceb9c..8bbfb3a2b 100644 --- a/java/com/android/contacts/common/res/values-gu/strings.xml +++ b/java/com/android/contacts/common/res/values-gu/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"કૉલ સાથે મોકલવા માટે એક નોંધ લખો ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"મોકલો અને કૉલ કરો"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ટૅબ."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> ટૅબ. <xliff:g id="COUNT_3">%2$d</xliff:g> વાંચ્યા વગરની આઇટમ. </item> diff --git a/java/com/android/contacts/common/res/values-hi/strings.xml b/java/com/android/contacts/common/res/values-hi/strings.xml index c61e195cb..c1af9b7ff 100644 --- a/java/com/android/contacts/common/res/values-hi/strings.xml +++ b/java/com/android/contacts/common/res/values-hi/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"कॉल के साथ भेजने के लिए नोट लिखें ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"भेजें और कॉल करें"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> टैब."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> टैब. <xliff:g id="COUNT_3">%2$d</xliff:g> नहीं पढ़े गए आइटम. </item> diff --git a/java/com/android/contacts/common/res/values-hr/strings.xml b/java/com/android/contacts/common/res/values-hr/strings.xml index 66986dd38..a60c884c1 100644 --- a/java/com/android/contacts/common/res/values-hr/strings.xml +++ b/java/com/android/contacts/common/res/values-hr/strings.xml @@ -249,7 +249,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Napišite bilješku koju ćete poslati uz poziv..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"POŠALJI I NAZOVI"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Kartica <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> Kartica <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepročitana stavka. </item> diff --git a/java/com/android/contacts/common/res/values-hu/strings.xml b/java/com/android/contacts/common/res/values-hu/strings.xml index 22bf5094c..19fbbe844 100644 --- a/java/com/android/contacts/common/res/values-hu/strings.xml +++ b/java/com/android/contacts/common/res/values-hu/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Írjon üzenetet, amelyet elküldhetünk a hívással együtt…"</string> <string name="send_and_call_button" msgid="4735168294120154013">"KÜLDÉS ÉS HÍVÁS"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="LIMIT">%2$s</xliff:g>/<xliff:g id="COUNT">%1$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> lap."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> lap. <xliff:g id="COUNT_3">%2$d</xliff:g> olvasatlan elem. </item> diff --git a/java/com/android/contacts/common/res/values-hy/strings.xml b/java/com/android/contacts/common/res/values-hy/strings.xml index 85c902347..b3ed5e531 100644 --- a/java/com/android/contacts/common/res/values-hy/strings.xml +++ b/java/com/android/contacts/common/res/values-hy/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Մուտքագրեք նշում՝ զանգի հետ ուղարկելու համար ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ՈՒՂԱՐԿԵԼ ԵՎ ԶԱՆԳԵԼ"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ներդիր:"</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> tab. <xliff:g id="COUNT_3">%2$d</xliff:g> unread items. </item> diff --git a/java/com/android/contacts/common/res/values-in/strings.xml b/java/com/android/contacts/common/res/values-in/strings.xml index d7ee8bfb9..13252a5b0 100644 --- a/java/com/android/contacts/common/res/values-in/strings.xml +++ b/java/com/android/contacts/common/res/values-in/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Ketik catatan untuk dikirim dengan panggilan telepon ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"KIRIM & TELEPON"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Tab <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> Tab <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> item belum dibaca. </item> diff --git a/java/com/android/contacts/common/res/values-is/strings.xml b/java/com/android/contacts/common/res/values-is/strings.xml index 26c1aefd1..569c10f3e 100644 --- a/java/com/android/contacts/common/res/values-is/strings.xml +++ b/java/com/android/contacts/common/res/values-is/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Sláðu inn texta til að senda með símtalinu..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"SENDA OG HRINGJA"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Flipinn <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> Flipinn <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> ólesið atriði. </item> diff --git a/java/com/android/contacts/common/res/values-it/strings.xml b/java/com/android/contacts/common/res/values-it/strings.xml index 8ea564854..342cd61df 100644 --- a/java/com/android/contacts/common/res/values-it/strings.xml +++ b/java/com/android/contacts/common/res/values-it/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Digita una nota da inviare con la chiamata..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"INVIA E CHIAMA"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Scheda <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> Scheda <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> elementi da leggere. </item> diff --git a/java/com/android/contacts/common/res/values-iw/strings.xml b/java/com/android/contacts/common/res/values-iw/strings.xml index 2a6b2c189..e0d8e5dfb 100644 --- a/java/com/android/contacts/common/res/values-iw/strings.xml +++ b/java/com/android/contacts/common/res/values-iw/strings.xml @@ -250,7 +250,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"הקלד הערה לשליחה עם השיחה..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"שלח והתקשר"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"הכרטיסייה <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="two">הכרטיסייה <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> פריטים שלא נקראו. </item> diff --git a/java/com/android/contacts/common/res/values-ja/strings.xml b/java/com/android/contacts/common/res/values-ja/strings.xml index 3271b46bb..e224a38a2 100644 --- a/java/com/android/contacts/common/res/values-ja/strings.xml +++ b/java/com/android/contacts/common/res/values-ja/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"発信時に送信するメモを入力..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"送信 / 通話"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g>、<xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> タブ。"</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> タブ。<xliff:g id="COUNT_3">%2$d</xliff:g> 件の未読項目。</item> diff --git a/java/com/android/contacts/common/res/values-ka/strings.xml b/java/com/android/contacts/common/res/values-ka/strings.xml index ebbee6e33..86273b32e 100644 --- a/java/com/android/contacts/common/res/values-ka/strings.xml +++ b/java/com/android/contacts/common/res/values-ka/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"აკრიფეთ შენიშვნა ზართან ერთად გასაგზავნად ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"გაგზავნა და დარეკვა"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ცხრ."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ცხრ. <xliff:g id="COUNT_3">%2$d</xliff:g> წაუკითხავი ერთეული. </item> diff --git a/java/com/android/contacts/common/res/values-kk/strings.xml b/java/com/android/contacts/common/res/values-kk/strings.xml index 327532abc..45df334f9 100644 --- a/java/com/android/contacts/common/res/values-kk/strings.xml +++ b/java/com/android/contacts/common/res/values-kk/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Қоңыраумен жіберу үшін ескертпе теріңіз ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ЖІБЕРУ ЖӘНЕ ҚОҢЫРАУ ШАЛУ"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> қойындысы."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> қойындысы. <xliff:g id="COUNT_3">%2$d</xliff:g> оқылмаған элемент. </item> diff --git a/java/com/android/contacts/common/res/values-km/strings.xml b/java/com/android/contacts/common/res/values-km/strings.xml index 503016792..8d4ba2aff 100644 --- a/java/com/android/contacts/common/res/values-km/strings.xml +++ b/java/com/android/contacts/common/res/values-km/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"វាយបញ្ចូលចំណាំដែលត្រូវផ្ញើជាមួយការហៅទូរស័ព្ទ ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ផ្ញើ & ហៅ"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"ផ្ទាំង <xliff:g id="TITLE">%1$s</xliff:g>។"</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other">ផ្ទាំង <xliff:g id="TITLE_2">%1$s</xliff:g>។ ធាតុមិនទាន់អាន <xliff:g id="COUNT_3">%2$d</xliff:g> </item> diff --git a/java/com/android/contacts/common/res/values-kn/strings.xml b/java/com/android/contacts/common/res/values-kn/strings.xml index 446e078a6..0dfdaa609 100644 --- a/java/com/android/contacts/common/res/values-kn/strings.xml +++ b/java/com/android/contacts/common/res/values-kn/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"ಕರೆ ಕಳುಹಿಸಲು ಟಿಪ್ಪಣಿಯನ್ನು ಟೈಪ್ ಮಾಡಿ ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ಕಳುಹಿಸು ಮತ್ತು ಕರೆಮಾಡು"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ಟ್ಯಾಬ್."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> ಟ್ಯಾಬ್. <xliff:g id="COUNT_3">%2$d</xliff:g> ಓದದಿರುವ ಐಟಂಗಳು. </item> diff --git a/java/com/android/contacts/common/res/values-ko/strings.xml b/java/com/android/contacts/common/res/values-ko/strings.xml index 4c2bd4f62..13edcc11e 100644 --- a/java/com/android/contacts/common/res/values-ko/strings.xml +++ b/java/com/android/contacts/common/res/values-ko/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"통화에 함께 전송할 메모를 입력하세요..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"보내기 및 전화 걸기"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> 탭"</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> 탭. 읽지 않은 항목 <xliff:g id="COUNT_3">%2$d</xliff:g>개 </item> diff --git a/java/com/android/contacts/common/res/values-ky/strings.xml b/java/com/android/contacts/common/res/values-ky/strings.xml index e5bab4550..43e12e77e 100644 --- a/java/com/android/contacts/common/res/values-ky/strings.xml +++ b/java/com/android/contacts/common/res/values-ky/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Чалуу менен жөнөтүлө турган кыска жазууну териңиз …"</string> <string name="send_and_call_button" msgid="4735168294120154013">"ЖӨНӨТҮҮ ЖАНА ЧАЛУУ"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"\"<xliff:g id="TITLE">%1$s</xliff:g>\" өтмөгү."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> \"<xliff:g id="TITLE_2">%1$s</xliff:g>\" өтмөгү. <xliff:g id="COUNT_3">%2$d</xliff:g> нерсе окула элек. </item> diff --git a/java/com/android/contacts/common/res/values-lo/strings.xml b/java/com/android/contacts/common/res/values-lo/strings.xml index c649539d4..d98ec8b90 100644 --- a/java/com/android/contacts/common/res/values-lo/strings.xml +++ b/java/com/android/contacts/common/res/values-lo/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"ພິມບັນທຶກ ເພື່ອສົ່ງກັບການໂທ ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ສົ່ງ ແລະ ໂທ"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"ແຖບ <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other">ແຖບ <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> ລາຍການບໍ່ທັນໄດ້ອ່ານ. </item> diff --git a/java/com/android/contacts/common/res/values-lt/strings.xml b/java/com/android/contacts/common/res/values-lt/strings.xml index b74bd99ee..53773b25a 100644 --- a/java/com/android/contacts/common/res/values-lt/strings.xml +++ b/java/com/android/contacts/common/res/values-lt/strings.xml @@ -250,7 +250,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Įveskite užrašą, kurį galima išsiųsti skambinant..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"SIŲSTI IR SKAMBINTI"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Skirtukas „<xliff:g id="TITLE">%1$s</xliff:g>“."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> Skirtukas „<xliff:g id="TITLE_2">%1$s</xliff:g>“. <xliff:g id="COUNT_3">%2$d</xliff:g> neskaitytas elementas. </item> diff --git a/java/com/android/contacts/common/res/values-lv/strings.xml b/java/com/android/contacts/common/res/values-lv/strings.xml index c09a27f5d..cc5690176 100644 --- a/java/com/android/contacts/common/res/values-lv/strings.xml +++ b/java/com/android/contacts/common/res/values-lv/strings.xml @@ -249,7 +249,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Ierakstiet piezīmi, ko nosūtīt ar zvanu..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"SŪTĪT UN ZVANĪT"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> no <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g>: <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Cilne “<xliff:g id="TITLE">%1$s</xliff:g>”"</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="zero"> Cilne “<xliff:g id="TITLE_2">%1$s</xliff:g>”. <xliff:g id="COUNT_3">%2$d</xliff:g> nelasīti vienumi. </item> diff --git a/java/com/android/contacts/common/res/values-mk/strings.xml b/java/com/android/contacts/common/res/values-mk/strings.xml index da1530f2a..f6a4af8b1 100644 --- a/java/com/android/contacts/common/res/values-mk/strings.xml +++ b/java/com/android/contacts/common/res/values-mk/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Напишете белешка да се испрати со повикот..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ИСПРАТИ И ПОВИКАЈ"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Картичка <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> Картичка <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> непрочитана ставка. </item> diff --git a/java/com/android/contacts/common/res/values-ml/strings.xml b/java/com/android/contacts/common/res/values-ml/strings.xml index 7e927499a..dfc21ffb9 100644 --- a/java/com/android/contacts/common/res/values-ml/strings.xml +++ b/java/com/android/contacts/common/res/values-ml/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"കോളിനൊപ്പം അയയ്ക്കുന്നതിന് ഒരു കുറിപ്പ് ടൈപ്പുചെയ്യുക ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"അയയ്ക്കുകയും വിളിക്കുകയും ചെയ്യുക"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ടാബ്."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ടാബ്. <xliff:g id="COUNT_3">%2$d</xliff:g> വായിക്കാത്ത ഇനങ്ങൾ. </item> diff --git a/java/com/android/contacts/common/res/values-mn/strings.xml b/java/com/android/contacts/common/res/values-mn/strings.xml index f0a8c9245..a5c2afd2c 100644 --- a/java/com/android/contacts/common/res/values-mn/strings.xml +++ b/java/com/android/contacts/common/res/values-mn/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Дуудлаганд илгээх тэмдэглэл бичнэ үү..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ИЛГЭЭХ, ДУУДЛАГА"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> таб."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> таб. <xliff:g id="COUNT_3">%2$d</xliff:g> уншаагүй зүйл. </item> diff --git a/java/com/android/contacts/common/res/values-mr/strings.xml b/java/com/android/contacts/common/res/values-mr/strings.xml index 96504c7bc..d632bb1be 100644 --- a/java/com/android/contacts/common/res/values-mr/strings.xml +++ b/java/com/android/contacts/common/res/values-mr/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"कॉलसह पाठविण्यासाठी एक टीप टाइप करा..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"पाठवा आणि कॉल करा"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> टॅब."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> टॅब. <xliff:g id="COUNT_3">%2$d</xliff:g> न वाचलेला आयटम. </item> diff --git a/java/com/android/contacts/common/res/values-ms/strings.xml b/java/com/android/contacts/common/res/values-ms/strings.xml index 60d2b7acc..24ff73767 100644 --- a/java/com/android/contacts/common/res/values-ms/strings.xml +++ b/java/com/android/contacts/common/res/values-ms/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Taip nota untuk dihantar dengan panggilan…"</string> <string name="send_and_call_button" msgid="4735168294120154013">"HANTAR & PANGGIL"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Tab <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other">Tab <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> item belum dibaca. </item> diff --git a/java/com/android/contacts/common/res/values-my/strings.xml b/java/com/android/contacts/common/res/values-my/strings.xml index d81e8950d..c0cb020f8 100644 --- a/java/com/android/contacts/common/res/values-my/strings.xml +++ b/java/com/android/contacts/common/res/values-my/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"ခေါ်ဆိုမှုဖြင့် ပေးပို့ရန် မှတ်စုတစ်ခု ရိုက်ပါ ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ပေးပို့ပြီး ခေါ်ပါ"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> တဘ်။"</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> တဘ်။ မဖတ်ရသေးသည့် အရာ <xliff:g id="COUNT_3">%2$d</xliff:g> ခု။ </item> diff --git a/java/com/android/contacts/common/res/values-nb/strings.xml b/java/com/android/contacts/common/res/values-nb/strings.xml index 7085cb381..80507fce1 100644 --- a/java/com/android/contacts/common/res/values-nb/strings.xml +++ b/java/com/android/contacts/common/res/values-nb/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Skriv et notat du vil sende med anropet …"</string> <string name="send_and_call_button" msgid="4735168294120154013">"SEND OG RING"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>-fanen."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>-fanen. <xliff:g id="COUNT_3">%2$d</xliff:g> uleste elementer. </item> diff --git a/java/com/android/contacts/common/res/values-ne/strings.xml b/java/com/android/contacts/common/res/values-ne/strings.xml index 1f54232af..2459c8aba 100644 --- a/java/com/android/contacts/common/res/values-ne/strings.xml +++ b/java/com/android/contacts/common/res/values-ne/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"यस कलसँग पठाउन एक टिप्पणी टाइप गर्नुहोस्"</string> <string name="send_and_call_button" msgid="4735168294120154013">"पठाउनुहोस् र कल गर्नुहोस्"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ट्याब।"</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ट्याब। <xliff:g id="COUNT_3">%2$d</xliff:g> नपढिएका वस्तुहरू। </item> diff --git a/java/com/android/contacts/common/res/values-nl/strings.xml b/java/com/android/contacts/common/res/values-nl/strings.xml index 9d41899f1..c92249b61 100644 --- a/java/com/android/contacts/common/res/values-nl/strings.xml +++ b/java/com/android/contacts/common/res/values-nl/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Typ een notitie om te verzenden met de oproep..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"VERZENDEN EN BELLEN"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Tabblad <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other">Tabblad <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> ongelezen items. </item> diff --git a/java/com/android/contacts/common/res/values-no/strings.xml b/java/com/android/contacts/common/res/values-no/strings.xml index 7085cb381..80507fce1 100644 --- a/java/com/android/contacts/common/res/values-no/strings.xml +++ b/java/com/android/contacts/common/res/values-no/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Skriv et notat du vil sende med anropet …"</string> <string name="send_and_call_button" msgid="4735168294120154013">"SEND OG RING"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>-fanen."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>-fanen. <xliff:g id="COUNT_3">%2$d</xliff:g> uleste elementer. </item> diff --git a/java/com/android/contacts/common/res/values-pa/strings.xml b/java/com/android/contacts/common/res/values-pa/strings.xml index c96510cc7..6401993c2 100644 --- a/java/com/android/contacts/common/res/values-pa/strings.xml +++ b/java/com/android/contacts/common/res/values-pa/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"ਕਾਲ ਦੇ ਨਾਲ ਭੇਜਣ ਲਈ ਕੋਈ ਨੋਟ ਟਾਈਪ ਕਰੋ ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ਭੇਜੋ ਅਤੇ ਕਾਲ ਕਰੋ"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ਟੈਬ।"</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> ਟੈਬ। <xliff:g id="COUNT_3">%2$d</xliff:g> ਅਣ-ਪੜ੍ਹੀਆਂ ਆਈਟਮਾਂ। </item> diff --git a/java/com/android/contacts/common/res/values-pl/strings.xml b/java/com/android/contacts/common/res/values-pl/strings.xml index c4e65f556..c10bb1fd9 100644 --- a/java/com/android/contacts/common/res/values-pl/strings.xml +++ b/java/com/android/contacts/common/res/values-pl/strings.xml @@ -250,7 +250,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Wpisz notatkę, którą chcesz wysłać razem z połączeniem..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"WYŚLIJ I ZADZWOŃ"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Karta <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="few"> Karta <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nieprzeczytane elementy. </item> diff --git a/java/com/android/contacts/common/res/values-pt-rBR/strings.xml b/java/com/android/contacts/common/res/values-pt-rBR/strings.xml index ee2b87c68..95bbb0b5d 100644 --- a/java/com/android/contacts/common/res/values-pt-rBR/strings.xml +++ b/java/com/android/contacts/common/res/values-pt-rBR/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Escreva uma nota para enviar com a chamada..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR E LIGAR"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Guia \"<xliff:g id="TITLE">%1$s</xliff:g>\"."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one">Guia \"<xliff:g id="TITLE_2">%1$s</xliff:g>\". <xliff:g id="COUNT_3">%2$d</xliff:g> item não lido. </item> diff --git a/java/com/android/contacts/common/res/values-pt-rPT/strings.xml b/java/com/android/contacts/common/res/values-pt-rPT/strings.xml index 44bba149d..c3b50e0bb 100644 --- a/java/com/android/contacts/common/res/values-pt-rPT/strings.xml +++ b/java/com/android/contacts/common/res/values-pt-rPT/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Escrever uma nota para enviar com a chamada..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR E LIGAR"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Separador <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> tab. <xliff:g id="COUNT_3">%2$d</xliff:g> unread items. </item> diff --git a/java/com/android/contacts/common/res/values-pt/strings.xml b/java/com/android/contacts/common/res/values-pt/strings.xml index ee2b87c68..95bbb0b5d 100644 --- a/java/com/android/contacts/common/res/values-pt/strings.xml +++ b/java/com/android/contacts/common/res/values-pt/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Escreva uma nota para enviar com a chamada..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR E LIGAR"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Guia \"<xliff:g id="TITLE">%1$s</xliff:g>\"."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one">Guia \"<xliff:g id="TITLE_2">%1$s</xliff:g>\". <xliff:g id="COUNT_3">%2$d</xliff:g> item não lido. </item> diff --git a/java/com/android/contacts/common/res/values-ro/strings.xml b/java/com/android/contacts/common/res/values-ro/strings.xml index 358e7af93..da0d5da95 100644 --- a/java/com/android/contacts/common/res/values-ro/strings.xml +++ b/java/com/android/contacts/common/res/values-ro/strings.xml @@ -249,7 +249,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Introduceți o notă ca să o trimiteți împreună cu apelul..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"TRIMITEȚI ȘI APELAȚI"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Fila <xliff:g id="TITLE">%1$s</xliff:g>"</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="few"> Fila <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> elemente necitite. </item> diff --git a/java/com/android/contacts/common/res/values-ru/strings.xml b/java/com/android/contacts/common/res/values-ru/strings.xml index 3442f2c60..f4e1d847b 100644 --- a/java/com/android/contacts/common/res/values-ru/strings.xml +++ b/java/com/android/contacts/common/res/values-ru/strings.xml @@ -250,7 +250,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Введите текст…"</string> <string name="send_and_call_button" msgid="4735168294120154013">"ОТПРАВИТЬ И ПОЗВОНИТЬ"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Вкладка \"<xliff:g id="TITLE">%1$s</xliff:g>\"."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one">Вкладка <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> непрочитанный элемент. </item> diff --git a/java/com/android/contacts/common/res/values-si/strings.xml b/java/com/android/contacts/common/res/values-si/strings.xml index 72ca32d9c..fc121f6af 100644 --- a/java/com/android/contacts/common/res/values-si/strings.xml +++ b/java/com/android/contacts/common/res/values-si/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"ඇමතුම සමග යැවීමට සටහනක් ටයිප් කරන්න ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"යවන්න සහ අමතන්න"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ටැබය."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> ටැබය. නොකියවූ අයිතම <xliff:g id="COUNT_3">%2$d</xliff:g>. </item> diff --git a/java/com/android/contacts/common/res/values-sk/strings.xml b/java/com/android/contacts/common/res/values-sk/strings.xml index b85f63f1b..90a4752fd 100644 --- a/java/com/android/contacts/common/res/values-sk/strings.xml +++ b/java/com/android/contacts/common/res/values-sk/strings.xml @@ -250,7 +250,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Napíšte poznámku, ktorá sa odošle s hovorom..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ODOSLAŤ A VOLAŤ"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Karta <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="few"> Karta <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> neprečítané položky. </item> diff --git a/java/com/android/contacts/common/res/values-sl/strings.xml b/java/com/android/contacts/common/res/values-sl/strings.xml index f4c39dea9..ef2e1a3f0 100644 --- a/java/com/android/contacts/common/res/values-sl/strings.xml +++ b/java/com/android/contacts/common/res/values-sl/strings.xml @@ -250,7 +250,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Vnesite zapisek, ki ga želite poslati s klicem ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"POŠLJI IN KLIČI"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g>: <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Zavihek »<xliff:g id="TITLE">%1$s</xliff:g>«."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> Zavihek »<xliff:g id="TITLE_2">%1$s</xliff:g>«. <xliff:g id="COUNT_3">%2$d</xliff:g> neprebran element. </item> diff --git a/java/com/android/contacts/common/res/values-sq/strings.xml b/java/com/android/contacts/common/res/values-sq/strings.xml index 553c46df5..301149201 100644 --- a/java/com/android/contacts/common/res/values-sq/strings.xml +++ b/java/com/android/contacts/common/res/values-sq/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Shkruaj një shënim për të dërguar një telefonatë..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"DËRGO DHE TELEFONO"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Skeda <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> Skeda <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> artikuj të palexuar. </item> diff --git a/java/com/android/contacts/common/res/values-sr/strings.xml b/java/com/android/contacts/common/res/values-sr/strings.xml index 99997e656..25adf7bc5 100644 --- a/java/com/android/contacts/common/res/values-sr/strings.xml +++ b/java/com/android/contacts/common/res/values-sr/strings.xml @@ -249,7 +249,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Унесите белешку коју ћете послати уз позив..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ПОШАЉИ И ПОЗОВИ"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Картица <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> Картица <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> непрочитана ставка. </item> diff --git a/java/com/android/contacts/common/res/values-sv/strings.xml b/java/com/android/contacts/common/res/values-sv/strings.xml index 79e56e504..ee748a42c 100644 --- a/java/com/android/contacts/common/res/values-sv/strings.xml +++ b/java/com/android/contacts/common/res/values-sv/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Gör en anteckning som skickas när du ringer …"</string> <string name="send_and_call_button" msgid="4735168294120154013">"SKICKA OCH RING"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Fliken <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other">Fliken <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> olästa poster. </item> diff --git a/java/com/android/contacts/common/res/values-sw/strings.xml b/java/com/android/contacts/common/res/values-sw/strings.xml index 4d30271f3..7bd08353f 100644 --- a/java/com/android/contacts/common/res/values-sw/strings.xml +++ b/java/com/android/contacts/common/res/values-sw/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Andika dokezo litakaloambatana na simu utakayopiga ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"TUMA na UPIGE SIMU"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Kichupo cha <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> Kichupo cha <xliff:g id="TITLE_2">%1$s</xliff:g>. Vipengee <xliff:g id="COUNT_3">%2$d</xliff:g> havijasomwa. </item> diff --git a/java/com/android/contacts/common/res/values-ta/strings.xml b/java/com/android/contacts/common/res/values-ta/strings.xml index e041a999d..d5b3f9305 100644 --- a/java/com/android/contacts/common/res/values-ta/strings.xml +++ b/java/com/android/contacts/common/res/values-ta/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"அழைப்புடன் சேர்த்து அனுப்ப, குறிப்பை உள்ளிடவும்..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"அனுப்பி அழை"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> தாவல்."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> தாவல். படிக்காதவை (<xliff:g id="COUNT_3">%2$d</xliff:g>). </item> diff --git a/java/com/android/contacts/common/res/values-te/strings.xml b/java/com/android/contacts/common/res/values-te/strings.xml index 6dd0e2143..4126ddc0f 100644 --- a/java/com/android/contacts/common/res/values-te/strings.xml +++ b/java/com/android/contacts/common/res/values-te/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"కాల్తో పాటు పంపడానికి గమనికను టైప్ చేయండి ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"పంపు & కాల్ చేయి"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ట్యాబ్."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ట్యాబ్. <xliff:g id="COUNT_3">%2$d</xliff:g> చదవని అంశాలు. </item> diff --git a/java/com/android/contacts/common/res/values-th/strings.xml b/java/com/android/contacts/common/res/values-th/strings.xml index b979e7424..2d52f34fb 100644 --- a/java/com/android/contacts/common/res/values-th/strings.xml +++ b/java/com/android/contacts/common/res/values-th/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"พิมพ์โน้ตเพื่อส่งพร้อมการโทร ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"ส่งและโทร"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"แท็บ <xliff:g id="TITLE">%1$s</xliff:g>"</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> แท็บ <xliff:g id="TITLE_2">%1$s</xliff:g> ยังไม่อ่าน <xliff:g id="COUNT_3">%2$d</xliff:g> รายการ </item> diff --git a/java/com/android/contacts/common/res/values-tl/strings.xml b/java/com/android/contacts/common/res/values-tl/strings.xml index 62caef820..30978db4e 100644 --- a/java/com/android/contacts/common/res/values-tl/strings.xml +++ b/java/com/android/contacts/common/res/values-tl/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Mag-type ng isang tala na ipadadala kasama ng tawag ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"IPADALA AT TAWAGAN"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Tab ng <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> Tab ng <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> hindi pa nababasang item. </item> diff --git a/java/com/android/contacts/common/res/values-tr/strings.xml b/java/com/android/contacts/common/res/values-tr/strings.xml index ce3c109d2..c18097aac 100644 --- a/java/com/android/contacts/common/res/values-tr/strings.xml +++ b/java/com/android/contacts/common/res/values-tr/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Çağrıyla göndermek için bir not yazın..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"GÖNDER VE ARA"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> sekmesi."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> sekmesi. <xliff:g id="COUNT_3">%2$d</xliff:g> okunmamış öğe. </item> diff --git a/java/com/android/contacts/common/res/values-uk/strings.xml b/java/com/android/contacts/common/res/values-uk/strings.xml index f6d1e4731..94d09db12 100644 --- a/java/com/android/contacts/common/res/values-uk/strings.xml +++ b/java/com/android/contacts/common/res/values-uk/strings.xml @@ -250,7 +250,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Введіть нотатку, яку хочете надіслати під час дзвінка…"</string> <string name="send_and_call_button" msgid="4735168294120154013">"ЗАТЕЛЕФОНУВАТИ Й НАДІСЛАТИ"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> з <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Вкладка \"<xliff:g id="TITLE">%1$s</xliff:g>\"."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"> Вкладка \"<xliff:g id="TITLE_2">%1$s</xliff:g>\". <xliff:g id="COUNT_3">%2$d</xliff:g> непрочитаний елемент. </item> diff --git a/java/com/android/contacts/common/res/values-ur/strings.xml b/java/com/android/contacts/common/res/values-ur/strings.xml index b34c78d95..75c761f2d 100644 --- a/java/com/android/contacts/common/res/values-ur/strings.xml +++ b/java/com/android/contacts/common/res/values-ur/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"کال کے ساتھ بھیجنے کیلئے ایک نوٹ ٹائپ کریں…"</string> <string name="send_and_call_button" msgid="4735168294120154013">"بھیجیں اور کال کریں"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ٹیب۔"</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ٹیب۔ <xliff:g id="COUNT_3">%2$d</xliff:g> بغیر پڑھی ہوئی آئٹمز۔ </item> diff --git a/java/com/android/contacts/common/res/values-uz/strings.xml b/java/com/android/contacts/common/res/values-uz/strings.xml index 44bfd9999..69b07d135 100644 --- a/java/com/android/contacts/common/res/values-uz/strings.xml +++ b/java/com/android/contacts/common/res/values-uz/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Qo‘ng‘iroqqa qo‘shib yuborish uchun izoh yozing ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"YUBORISH va QO‘NG‘IROQ QILISH"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ichki oynasi."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ichki oynasi. <xliff:g id="COUNT_3">%2$d</xliff:g> ta o‘qilmagan narsa. </item> diff --git a/java/com/android/contacts/common/res/values-vi/strings.xml b/java/com/android/contacts/common/res/values-vi/strings.xml index dadb78a7d..c1675738a 100644 --- a/java/com/android/contacts/common/res/values-vi/strings.xml +++ b/java/com/android/contacts/common/res/values-vi/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Nhập ghi chú để gửi kèm cuộc gọi..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"GỬI và GỌI"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"Tab <xliff:g id="TITLE">%1$s</xliff:g>."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> Tab <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> mục chưa đọc. </item> diff --git a/java/com/android/contacts/common/res/values-zh-rCN/strings.xml b/java/com/android/contacts/common/res/values-zh-rCN/strings.xml index 161638e66..367b78f1c 100644 --- a/java/com/android/contacts/common/res/values-zh-rCN/strings.xml +++ b/java/com/android/contacts/common/res/values-zh-rCN/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"输入要在拨打电话时发送的备注…"</string> <string name="send_and_call_button" msgid="4735168294120154013">"发送并拨打电话"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g>:<xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>标签。"</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>标签。<xliff:g id="COUNT_3">%2$d</xliff:g> 项未读内容。</item> diff --git a/java/com/android/contacts/common/res/values-zh-rHK/strings.xml b/java/com/android/contacts/common/res/values-zh-rHK/strings.xml index 9952ab626..733d9809c 100644 --- a/java/com/android/contacts/common/res/values-zh-rHK/strings.xml +++ b/java/com/android/contacts/common/res/values-zh-rHK/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"撥號時可以書寫和傳送筆記…"</string> <string name="send_and_call_button" msgid="4735168294120154013">"傳送和撥號"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"「<xliff:g id="TITLE">%1$s</xliff:g>」標籤。"</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other">「<xliff:g id="TITLE_2">%1$s</xliff:g>」標籤 (<xliff:g id="COUNT_3">%2$d</xliff:g> 個未讀取項目)。</item> diff --git a/java/com/android/contacts/common/res/values-zh-rTW/strings.xml b/java/com/android/contacts/common/res/values-zh-rTW/strings.xml index e5ad61fac..af7843ffd 100644 --- a/java/com/android/contacts/common/res/values-zh-rTW/strings.xml +++ b/java/com/android/contacts/common/res/values-zh-rTW/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"輸入可在撥號時傳送的備註..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"傳送並撥打"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>分頁。"</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>分頁。<xliff:g id="COUNT_3">%2$d</xliff:g> 個未讀項目。</item> diff --git a/java/com/android/contacts/common/res/values-zu/strings.xml b/java/com/android/contacts/common/res/values-zu/strings.xml index adca1399c..5906ee175 100644 --- a/java/com/android/contacts/common/res/values-zu/strings.xml +++ b/java/com/android/contacts/common/res/values-zu/strings.xml @@ -248,7 +248,7 @@ <string name="call_subject_hint" msgid="7233138753650420800">"Thayipha inothi ukuthumela nekholi ..."</string> <string name="send_and_call_button" msgid="4735168294120154013">"THUMELA FUTHI YENZA IKHOLI"</string> <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string> - <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string> + <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string> <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ithebhu."</string> <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785"> <item quantity="one"><xliff:g id="TITLE_2">%1$s</xliff:g> ithebhu. <xliff:g id="COUNT_3">%2$d</xliff:g> izinto ezingafundiwe. </item> diff --git a/java/com/android/contacts/common/res/values/ids.xml b/java/com/android/contacts/common/res/values/ids.xml index 871f5a636..65969c43f 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 @@ <item name="contact_tile_image" type="id"/> <item name="contact_tile_name" type="id"/> + <item name="call_to_action" type="id"/> </resources> diff --git a/java/com/android/contacts/common/res/values/strings.xml b/java/com/android/contacts/common/res/values/strings.xml index 9ac9fef28..371d5b424 100644 --- a/java/com/android/contacts/common/res/values/strings.xml +++ b/java/com/android/contacts/common/res/values/strings.xml @@ -744,9 +744,9 @@ compared to the character limit. Example: 2 / 64 --> <string name="call_subject_limit"><xliff:g example="4" id="count">%1$s</xliff:g> / <xliff:g example="64" id="limit">%2$s</xliff:g></string> - <!-- String used to build a phone number bype and phone number string. - Example: Mobile • 650-555-1212 --> - <string name="call_subject_type_and_number"><xliff:g example="Mobile" id="type">%1$s</xliff:g> • <xliff:g example="(650) 555-1212" id="number">%2$s</xliff:g></string> + <!-- String used to build a phone number type and phone number string. + Example: Mobile 650-555-1212 --> + <string name="call_subject_type_and_number"><xliff:g example="Mobile" id="type">%1$s</xliff:g> <xliff:g example="(650) 555-1212" id="number">%2$s</xliff:g></string> <!-- String format to describe a tab e.g.call history tab. --> <string name="tab_title"><xliff:g id="title">%1$s</xliff:g> tab.</string> diff --git a/java/com/android/contacts/common/res/values/styles.xml b/java/com/android/contacts/common/res/values/styles.xml index 07d4a0225..bb19afe82 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 <item name="android:layout_height">wrap_content</item> <!-- See comments for @dimen/list_section_divider_min_height --> <item name="android:minHeight">@dimen/list_section_divider_min_height</item> - <item name="android:background">@drawable/list_section_divider_holo_custom</item> <item name="android:textAppearance">@style/DirectoryHeaderStyle</item> <item name="android:gravity">center_vertical</item> <item name="android:paddingLeft">8dip</item> diff --git a/java/com/android/contacts/common/util/AccountFilterUtil.java b/java/com/android/contacts/common/util/AccountFilterUtil.java index 18743c65e..25f937c5e 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 20f916a3f..51f65f280 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 { @@ -91,30 +89,6 @@ public class BitmapUtil { } /** - * Retrieves a copy of the specified drawable resource, rotated by a specified angle. - * - * @param resources The current resources. - * @param resourceId The resource ID of the drawable to rotate. - * @param angle The angle of rotation. - * @return Rotated drawable. - */ - public static Drawable getRotatedDrawable( - android.content.res.Resources resources, int resourceId, float angle) { - - // Get the original drawable and make a copy which will be rotated. - Bitmap original = BitmapFactory.decodeResource(resources, resourceId); - Bitmap rotated = - Bitmap.createBitmap(original.getWidth(), original.getHeight(), Bitmap.Config.ARGB_8888); - - // Perform the rotation. - Canvas tempCanvas = new Canvas(rotated); - tempCanvas.rotate(angle, original.getWidth() / 2, original.getHeight() / 2); - tempCanvas.drawBitmap(original, 0, 0, null); - - return new BitmapDrawable(resources, rotated); - } - - /** * Given an input bitmap, scales it to the given width/height and makes it round. * * @param input {@link Bitmap} to scale and crop diff --git a/java/com/android/contacts/common/util/ContactDisplayUtils.java b/java/com/android/contacts/common/util/ContactDisplayUtils.java index 1586784db..ff22f2880 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 1935d727a..09d52bce8 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 a2d9847ec..bd32faa51 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 ae3275d14..000000000 --- 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. - * - * <p>Note that this operates via a call back to the ContactProvider, but it does not access the - * database, so it should be safe to call from the UI thread. See ContactsProvider2.completeName() - * for the underlying method call. - * - * @param context Activity context. - * @param structuredName The structured name map to convert. - * @return The display name computed from the structured name map. - */ - public static String structuredNameToDisplayName( - Context context, Map<String, String> structuredName) { - Builder builder = ContactsContract.AUTHORITY_URI.buildUpon().appendPath("complete_name"); - for (String key : STRUCTURED_NAME_FIELDS) { - if (structuredName.containsKey(key)) { - appendQueryParameter(builder, key, structuredName.get(key)); - } - } - return fetchDisplayName(context, builder.build()); - } - - /** - * Converts the given structured name (provided as ContentValues) into a display name string. - * - * @param context Activity context. - * @param values The content values containing values comprising the structured name. - */ - public static String structuredNameToDisplayName(Context context, ContentValues values) { - Builder builder = ContactsContract.AUTHORITY_URI.buildUpon().appendPath("complete_name"); - for (String key : STRUCTURED_NAME_FIELDS) { - if (values.containsKey(key)) { - appendQueryParameter(builder, key, values.getAsString(key)); - } - } - return fetchDisplayName(context, builder.build()); - } - - /** Helper method for fetching the display name via the given URI. */ - private static String fetchDisplayName(Context context, Uri uri) { - String displayName = null; - Cursor cursor = - context - .getContentResolver() - .query( - uri, - new String[] { - StructuredName.DISPLAY_NAME, - }, - null, - null, - null); - - if (cursor != null) { - try { - if (cursor.moveToFirst()) { - displayName = cursor.getString(0); - } - } finally { - cursor.close(); - } - } - return displayName; - } - - /** - * Converts the given display name string into a structured name (as a map from {@link - * StructuredName} fields to corresponding values). - * - * <p>Note that this operates via a call back to the ContactProvider, but it does not access the - * database, so it should be safe to call from the UI thread. - * - * @param context Activity context. - * @param displayName The display name to convert. - * @return The structured name map computed from the display name. - */ - public static Map<String, String> displayNameToStructuredName( - Context context, String displayName) { - Map<String, String> structuredName = new TreeMap<String, String>(); - Builder builder = ContactsContract.AUTHORITY_URI.buildUpon().appendPath("complete_name"); - - appendQueryParameter(builder, StructuredName.DISPLAY_NAME, displayName); - Cursor cursor = - context - .getContentResolver() - .query(builder.build(), STRUCTURED_NAME_FIELDS, null, null, null); - - if (cursor != null) { - try { - if (cursor.moveToFirst()) { - for (int i = 0; i < STRUCTURED_NAME_FIELDS.length; i++) { - structuredName.put(STRUCTURED_NAME_FIELDS[i], cursor.getString(i)); - } - } - } finally { - cursor.close(); - } - } - return structuredName; - } - - /** - * Converts the given display name string into a structured name (inserting the structured values - * into a new or existing ContentValues object). - * - * <p>Note that this operates via a call back to the ContactProvider, but it does not access the - * database, so it should be safe to call from the UI thread. - * - * @param context Activity context. - * @param displayName The display name to convert. - * @param contentValues The content values object to place the structured name values into. If - * null, a new one will be created and returned. - * @return The ContentValues object containing the structured name fields derived from the display - * name. - */ - public static ContentValues displayNameToStructuredName( - Context context, String displayName, ContentValues contentValues) { - if (contentValues == null) { - contentValues = new ContentValues(); - } - Map<String, String> mapValues = displayNameToStructuredName(context, displayName); - for (String key : mapValues.keySet()) { - contentValues.put(key, mapValues.get(key)); - } - return contentValues; - } - - private static void appendQueryParameter(Builder builder, String field, String value) { - if (!TextUtils.isEmpty(value)) { - builder.appendQueryParameter(field, value); - } - } - - /** - * Parses phonetic name and returns parsed data (family, middle, given) as ContentValues. Parsed - * data should be {@link StructuredName#PHONETIC_FAMILY_NAME}, {@link - * StructuredName#PHONETIC_MIDDLE_NAME}, and {@link StructuredName#PHONETIC_GIVEN_NAME}. If this - * method cannot parse given phoneticName, null values will be stored. - * - * @param phoneticName Phonetic name to be parsed - * @param values ContentValues to be used for storing data. If null, new instance will be created. - * @return ContentValues with parsed data. Those data can be null. - */ - public static StructuredNameDataItem parsePhoneticName( - String phoneticName, StructuredNameDataItem item) { - String family = null; - String middle = null; - String given = null; - - if (!TextUtils.isEmpty(phoneticName)) { - String[] strings = phoneticName.split(" ", 3); - switch (strings.length) { - case 1: - family = strings[0]; - break; - case 2: - family = strings[0]; - given = strings[1]; - break; - case 3: - family = strings[0]; - middle = strings[1]; - given = strings[2]; - break; - } - } - - if (item == null) { - item = new StructuredNameDataItem(); - } - item.setPhoneticFamilyName(family); - item.setPhoneticMiddleName(middle); - item.setPhoneticGivenName(given); - return item; - } - - /** Constructs and returns a phonetic full name from given parts. */ - public static String buildPhoneticName(String family, String middle, String given) { - if (!TextUtils.isEmpty(family) || !TextUtils.isEmpty(middle) || !TextUtils.isEmpty(given)) { - StringBuilder sb = new StringBuilder(); - if (!TextUtils.isEmpty(family)) { - sb.append(family.trim()).append(' '); - } - if (!TextUtils.isEmpty(middle)) { - sb.append(middle.trim()).append(' '); - } - if (!TextUtils.isEmpty(given)) { - sb.append(given.trim()).append(' '); - } - sb.setLength(sb.length() - 1); // Yank the last space - return sb.toString(); - } else { - return null; - } - } -} diff --git a/java/com/android/contacts/common/util/StopWatch.java b/java/com/android/contacts/common/util/StopWatch.java index b944b9867..7986d1081 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 b664268ca..e4c2c6373 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 e9489ce1e..85c750826 100644 --- a/java/com/android/dialer/about/AndroidManifest.xml +++ b/java/com/android/dialer/about/AndroidManifest.xml @@ -1,6 +1,6 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.dialer.about"> - <application> + <application android:theme="@style/Theme.AppCompat"> <activity android:name="com.android.dialer.about.LicenseMenuActivity" android:label="@string/licenseActivityLabel" diff --git a/java/com/android/dialer/about/res/raw/keep.xml b/java/com/android/dialer/about/res/raw/keep.xml index e41b8b8d0..9215627d1 100644 --- a/java/com/android/dialer/about/res/raw/keep.xml +++ b/java/com/android/dialer/about/res/raw/keep.xml @@ -16,4 +16,3 @@ --> <resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@raw/*"/> - diff --git a/java/com/android/dialer/app/AndroidManifest.xml b/java/com/android/dialer/app/AndroidManifest.xml index de4b48c51..4200082a6 100644 --- a/java/com/android/dialer/app/AndroidManifest.xml +++ b/java/com/android/dialer/app/AndroidManifest.xml @@ -39,6 +39,7 @@ <uses-permission android:name="android.permission.USE_CREDENTIALS"/> <uses-permission android:name="android.permission.VIBRATE"/> <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/> + <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> <uses-permission android:name="com.android.voicemail.permission.ADD_VOICEMAIL"/> <uses-permission android:name="com.android.voicemail.permission.WRITE_VOICEMAIL"/> <uses-permission android:name="com.android.voicemail.permission.READ_VOICEMAIL"/> diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java index 6e2c6be7d..b5e615075 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 85c2ea650..20222d68c 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<String> deviceIds = new ArrayList<String>(); - 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 2f8a58c8a..3357ee2f1 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<String> 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<String> listOfSelectedItems = new ArrayList<>(); + if (selectedItems.size() > 0) { + for (int i = 0; i < selectedItems.size(); i++) { + listOfSelectedItems.add(Integer.toString(selectedItems.keyAt(i))); + } + } + outState.putStringArrayList(KEY_ACTION_MODE, listOfSelectedItems); } public void onRestoreInstanceState(Bundle savedInstanceState) { @@ -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<String> listOfSelectedItems = + savedInstanceState.getStringArrayList(KEY_ACTION_MODE); + if (!listOfSelectedItems.isEmpty()) { + for (int i = 0; i < listOfSelectedItems.size(); i++) { + String voicemailId = listOfSelectedItems.get(i); + int id = Integer.parseInt(voicemailId); + selectedItems.put(id, voicemailId); + } + updateActionBar(); + } } } @@ -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 6e4b23fc1..1571c1aef 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(), @@ -380,6 +383,16 @@ public class CallLogFragment extends Fragment } @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 1daccd1a4..a9a4d1d42 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 58fe6fa2c..1f45f7086 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<Void, Void> { 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<Void, Void> { .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 a94c6781e..9c3c18b60 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 7645a333e..6728dfb38 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 78aaa4193..000000000 --- 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). - * - * <p>This class should not be initialized directly and instead be acquired from {@link - * CallLogCache#getCallLogCache}. - */ -class CallLogCacheLollipop extends CallLogCache { - - private String mVoicemailNumber; - - /* package */ CallLogCacheLollipop(Context context) { - super(context); - } - - @Override - public boolean isVoicemailNumber(PhoneAccountHandle accountHandle, CharSequence number) { - if (TextUtils.isEmpty(number)) { - return false; - } - - String numberString = number.toString(); - - if (!TextUtils.isEmpty(mVoicemailNumber)) { - return PhoneNumberUtils.compare(numberString, mVoicemailNumber); - } - - if (PhoneNumberUtils.isVoiceMailNumber(numberString)) { - mVoicemailNumber = numberString; - return true; - } - - return false; - } - - @Override - public String getAccountLabel(PhoneAccountHandle accountHandle) { - return null; - } - - @Override - public int getAccountColor(PhoneAccountHandle accountHandle) { - return PhoneAccount.NO_HIGHLIGHT_COLOR; - } - - @Override - public boolean doesAccountSupportCallSubject(PhoneAccountHandle accountHandle) { - return false; - } -} diff --git a/java/com/android/dialer/app/contactinfo/ContactInfoCache.java b/java/com/android/dialer/app/contactinfo/ContactInfoCache.java index e561b5607..32bbf06b5 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<ContactInfoRequest> 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 e9d57b399..c0b26c91a 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 f71517a44..d98395ec7 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 1cdeb2175..c208fd57d 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 6e32843ba..19fa1a70c 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 04609970a..f5fdb9e2d 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<ContactEntryListAdapter> @@ -149,6 +151,8 @@ public class AllContactsFragment extends ContactEntryListFragment<ContactEntryLi public void onItemClick(AdapterView<?> parent, View view, int position, long id) { final Uri uri = (Uri) view.getTag(); if (uri != null) { + Logger.get(getContext()) + .logInteraction(InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_ALL_CONTACTS_GENERAL); if (CompatUtils.hasPrioritizedMimeType()) { QuickContact.showQuickContact(getContext(), view, uri, null, Phone.CONTENT_ITEM_TYPE); } else { diff --git a/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java b/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java index 537f488d5..04927cf7a 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 000000000..ae99f0521 --- /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 8dd52a9d4..32501d556 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<OnPageChangeListener> 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 40fe74565..1ddc0f4e1 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<Cursor> { + class ContactTileLoaderListener implements LoaderManager.LoaderCallbacks<Cursor> { @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 9516f0611..f4f395ff0 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 5a18d039b..40f23ea6f 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 db89cf3dc..835b448bd 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 c692ecac7..ce8598261 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 02896793b..4f032032f 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 3b917db43..1d566c5a0 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 fcf8236e3..7f2d17650 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 eb1508c72..fc21c8bc3 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 ca93da0de..7c6df9448 100644 --- a/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml +++ b/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml @@ -19,7 +19,7 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.dialer.app"> - <application> + <application android:theme="@style/Theme.AppCompat"> <activity android:exported="false" diff --git a/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_48dp.png b/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_48dp.png Binary files differnew file mode 100644 index 000000000..eeed895f1 --- /dev/null +++ b/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_48dp.png diff --git a/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_blue_24dp.png b/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_blue_24dp.png Binary files differnew file mode 100644 index 000000000..b041a74bd --- /dev/null +++ b/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_blue_24dp.png diff --git a/java/com/android/dialer/app/res/drawable-hdpi/ic_empty_check_mark_white_24dp.png b/java/com/android/dialer/app/res/drawable-hdpi/ic_empty_check_mark_white_24dp.png Binary files differnew file mode 100644 index 000000000..2c5ba8d58 --- /dev/null +++ b/java/com/android/dialer/app/res/drawable-hdpi/ic_empty_check_mark_white_24dp.png diff --git a/java/com/android/dialer/app/res/drawable-hdpi/ic_results_phone.png b/java/com/android/dialer/app/res/drawable-hdpi/ic_results_phone.png Binary files differdeleted file mode 100644 index 3a1a7a790..000000000 --- a/java/com/android/dialer/app/res/drawable-hdpi/ic_results_phone.png +++ /dev/null diff --git a/java/com/android/dialer/app/res/drawable-mdpi/ic_check_mark_48dp.png b/java/com/android/dialer/app/res/drawable-mdpi/ic_check_mark_48dp.png Binary files differnew file mode 100644 index 000000000..f3b76be4c --- /dev/null +++ b/java/com/android/dialer/app/res/drawable-mdpi/ic_check_mark_48dp.png diff --git a/java/com/android/dialer/app/res/drawable-mdpi/ic_results_phone.png b/java/com/android/dialer/app/res/drawable-mdpi/ic_results_phone.png Binary files differdeleted file mode 100644 index 74ccf14b8..000000000 --- a/java/com/android/dialer/app/res/drawable-mdpi/ic_results_phone.png +++ /dev/null diff --git a/java/com/android/dialer/app/res/drawable-xhdpi/ic_check_mark_48dp.png b/java/com/android/dialer/app/res/drawable-xhdpi/ic_check_mark_48dp.png Binary files differnew file mode 100644 index 000000000..01a3bbe06 --- /dev/null +++ b/java/com/android/dialer/app/res/drawable-xhdpi/ic_check_mark_48dp.png diff --git a/java/com/android/dialer/app/res/drawable-xhdpi/ic_results_phone.png b/java/com/android/dialer/app/res/drawable-xhdpi/ic_results_phone.png Binary files differdeleted file mode 100644 index 0e24fa45c..000000000 --- a/java/com/android/dialer/app/res/drawable-xhdpi/ic_results_phone.png +++ /dev/null diff --git a/java/com/android/dialer/app/res/drawable-xxhdpi/ic_check_mark_48dp.png b/java/com/android/dialer/app/res/drawable-xxhdpi/ic_check_mark_48dp.png Binary files differnew file mode 100644 index 000000000..204327950 --- /dev/null +++ b/java/com/android/dialer/app/res/drawable-xxhdpi/ic_check_mark_48dp.png diff --git a/java/com/android/dialer/app/res/drawable-xxhdpi/ic_results_phone.png b/java/com/android/dialer/app/res/drawable-xxhdpi/ic_results_phone.png Binary files differdeleted file mode 100644 index 9594619cb..000000000 --- a/java/com/android/dialer/app/res/drawable-xxhdpi/ic_results_phone.png +++ /dev/null diff --git a/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_check_mark_48dp.png b/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_check_mark_48dp.png Binary files differnew file mode 100644 index 000000000..bfbe69e35 --- /dev/null +++ b/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_check_mark_48dp.png diff --git a/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_results_phone.png b/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_results_phone.png Binary files differdeleted file mode 100644 index 395652cdf..000000000 --- a/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_results_phone.png +++ /dev/null diff --git a/java/com/android/dialer/app/res/drawable/ic_search_phone.xml b/java/com/android/dialer/app/res/drawable/ic_search_phone.xml deleted file mode 100644 index 5d449ee56..000000000 --- a/java/com/android/dialer/app/res/drawable/ic_search_phone.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Copyright (C) 2014 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<bitmap xmlns:android="http://schemas.android.com/apk/res/android" - android:src="@drawable/ic_results_phone" - android:tint="@color/search_shortcut_icon_color"/> diff --git a/java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml b/java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml new file mode 100644 index 000000000..968713376 --- /dev/null +++ b/java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2017 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:height="24dp" + android:tint="?attr/colorControlNormal" + android:viewportHeight="30" + android:viewportWidth="30" + android:width="24dp"> + <path + android:fillColor="@android:color/white" + android:pathData="M14.88,16.3h0L25,3.66a16.51,16.51 0,0 0,-20.3 0L14.88,16.3Z"/> + <path + android:fillColor="@android:color/white" + android:pathData="M26.42,18.88a1.25,1.25 0,0 0,-0.89 -0.36,1.28 1.28,0 0,0 -0.87,0.35 14.26,14.26 0,0 1,-3.32 2.31,1.24 1.24,0 0,0 -0.7,1.12v3.87a18.27,18.27 0,0 1,-5.75 0.91,18.63 18.63,0 0,1 -5.75,-0.9v-3.87a1.26,1.26 0,0 0,-0.7 -1.12,14.73 14.73,0 0,1 -3.34,-2.31 1.23,1.23 0,0 0,-0.87 -0.35,1.25 1.25,0 0,0 -0.89,0.36L0.24,22a1.24,1.24 0,0 0,-0.36 0.89,1.23 1.23,0 0,0 0.37,0.87 21.26,21.26 0,0 0,29.26 0,1.27 1.27,0 0,0 0,-1.77Z"/> +</vector>
\ No newline at end of file diff --git a/java/com/android/dialer/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 5f8068067..59d13636a 100644 --- a/java/com/android/dialer/app/res/layout-land/empty_content_view_dialpad_search.xml +++ b/java/com/android/dialer/app/res/layout-land/empty_content_view_dialpad_search.xml @@ -26,14 +26,14 @@ android:layout_height="0dp" android:layout_weight="1"/> <ImageView - android:id="@+id/emptyListViewImage" + android:id="@+id/empty_list_view_image" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:importantForAccessibility="no"/> <TextView - android:id="@+id/emptyListViewMessage" + android:id="@+id/empty_list_view_message" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingTop="8dp" @@ -45,7 +45,7 @@ android:textSize="@dimen/empty_list_message_text_size"/> <TextView - android:id="@+id/emptyListViewAction" + android:id="@+id/empty_list_view_action" style="@style/TextActionStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/java/com/android/dialer/app/res/layout/action_mode_close_button.xml b/java/com/android/dialer/app/res/layout/action_mode_close_button.xml new file mode 100644 index 000000000..4cb85d458 --- /dev/null +++ b/java/com/android/dialer/app/res/layout/action_mode_close_button.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2017 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<ImageView xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/action_mode_close_button" + style="?attr/actionModeCloseButtonStyle" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:layout_marginEnd="16dip" + android:layout_marginRight="16dip" + android:paddingStart="8dp" + android:paddingLeft="8dp" + android:clickable="true" + android:contentDescription="@string/description_cancel_multi_select" + android:focusable="true" + android:src="@drawable/quantum_ic_close_white_24"/> + + diff --git a/java/com/android/dialer/app/res/layout/all_contacts_fragment.xml b/java/com/android/dialer/app/res/layout/all_contacts_fragment.xml index 17a45208d..422c52991 100644 --- a/java/com/android/dialer/app/res/layout/all_contacts_fragment.xml +++ b/java/com/android/dialer/app/res/layout/all_contacts_fragment.xml @@ -45,7 +45,7 @@ android:cropToPadding="false" android:clipToPadding="false"/> - <com.android.dialer.app.widget.EmptyContentView + <com.android.dialer.widget.EmptyContentView android:id="@+id/empty_list_view" android:layout_width="match_parent" android:layout_height="wrap_content" diff --git a/java/com/android/dialer/app/res/layout/call_log_fragment.xml b/java/com/android/dialer/app/res/layout/call_log_fragment.xml index 64f7c10e6..8ed2d5b8a 100644 --- a/java/com/android/dialer/app/res/layout/call_log_fragment.xml +++ b/java/com/android/dialer/app/res/layout/call_log_fragment.xml @@ -37,7 +37,7 @@ android:background="@color/background_dialer_call_log" android:clipToPadding="false"/> - <com.android.dialer.app.widget.EmptyContentView + <com.android.dialer.widget.EmptyContentView android:id="@+id/empty_list_view" android:layout_width="match_parent" android:layout_height="0dp" diff --git a/java/com/android/dialer/app/res/layout/call_log_list_item.xml b/java/com/android/dialer/app/res/layout/call_log_list_item.xml index 0fbbb9dd1..4a3a83683 100644 --- a/java/com/android/dialer/app/res/layout/call_log_list_item.xml +++ b/java/com/android/dialer/app/res/layout/call_log_list_item.xml @@ -80,7 +80,7 @@ android:layout_width="@dimen/contact_photo_size" android:layout_height="@dimen/contact_photo_size" android:visibility="gone" - android:src="@drawable/quantum_ic_check_circle_googblue_24" /> + android:src="@drawable/ic_check_mark_48dp" /> </FrameLayout> diff --git a/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml b/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml index d3a553130..504638348 100644 --- a/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml +++ b/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml @@ -50,7 +50,7 @@ <TextView android:id="@+id/call_action_text" style="@style/CallLogActionTextStyle" - android:text="@string/description_call_log_call_action"/> + android:text="@string/call"/> <TextView android:id="@+id/call_type_or_location_text" @@ -135,7 +135,7 @@ <ImageView style="@style/CallLogActionIconStyle" - android:src="@drawable/ic_call_and_share"/> + android:src="@drawable/ic_phone_attach"/> <TextView style="@style/CallLogActionTextStyle" diff --git a/java/com/android/dialer/app/res/layout/dialpad_fragment.xml b/java/com/android/dialer/app/res/layout/dialpad_fragment.xml index dd6dab747..9b95e1fbf 100644 --- a/java/com/android/dialer/app/res/layout/dialpad_fragment.xml +++ b/java/com/android/dialer/app/res/layout/dialpad_fragment.xml @@ -21,42 +21,42 @@ android:orientation="horizontal"> <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="vertical"> + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> <!-- spacer view --> <View - android:id="@+id/spacer" - android:layout_width="match_parent" - android:layout_height="0dp" - android:layout_weight="1" - android:background="#00000000"/> + android:id="@+id/spacer" + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_weight="1" + android:background="#00000000"/> <!-- Dialpad shadow --> <View - android:layout_width="match_parent" - android:layout_height="@dimen/shadow_length" - android:background="@drawable/shadow_fade_up"/> + android:layout_width="match_parent" + android:layout_height="@dimen/shadow_length" + android:background="@drawable/shadow_fade_up"/> <include layout="@layout/dialpad_view"/> <!-- "Dialpad chooser" UI, shown only when the user brings up the Dialer while a call is already in progress. When this UI is visible, the other Dialer elements (the textfield/button and the dialpad) are hidden. --> <ListView - android:id="@+id/dialpadChooser" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:background="@color/background_dialer_light" - android:visibility="gone"/> + android:id="@+id/dialpadChooser" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@color/background_dialer_light" + android:visibility="gone"/> </LinearLayout> <!-- Margin bottom and alignParentBottom don't work well together, so use a Space instead. --> <Space - android:id="@+id/dialpad_floating_action_button_margin_bottom" - android:layout_width="match_parent" - android:layout_height="@dimen/floating_action_button_margin_bottom" - android:layout_alignParentBottom="true"/> + android:id="@+id/dialpad_floating_action_button_margin_bottom" + android:layout_width="match_parent" + android:layout_height="@dimen/floating_action_button_margin_bottom" + android:layout_alignParentBottom="true"/> <android.support.design.widget.FloatingActionButton android:id="@+id/dialpad_floating_action_button" @@ -64,8 +64,9 @@ android:layout_height="@dimen/floating_action_button_height" android:layout_above="@id/dialpad_floating_action_button_margin_bottom" android:layout_centerHorizontal="true" - android:src="@drawable/quantum_ic_call_white_24" android:contentDescription="@string/description_dial_button" - app:elevation="@dimen/floating_action_button_translation_z" - app:backgroundTint="@color/dialpad_fab_green"/> + android:src="@drawable/quantum_ic_call_vd_theme_24" + app:backgroundTint="@color/dialpad_fab_green" + app:colorControlNormal="#ffffff" + app:elevation="@dimen/floating_action_button_translation_z"/> </view> diff --git a/java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml b/java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml index e245aaca0..1d2047982 100644 --- a/java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml +++ b/java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml @@ -16,7 +16,7 @@ <merge xmlns:android="http://schemas.android.com/apk/res/android"> <ImageView - android:id="@+id/emptyListViewImage" + android:id="@+id/empty_list_view_image" android:layout_height="0dp" android:layout_weight="1" android:layout_width="match_parent" @@ -24,7 +24,7 @@ android:gravity="center_horizontal" /> <TextView - android:id="@+id/emptyListViewMessage" + android:id="@+id/empty_list_view_message" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal|top" @@ -36,7 +36,7 @@ android:paddingBottom="8dp"/> <TextView - android:id="@+id/emptyListViewAction" + android:id="@+id/empty_list_view_action" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" diff --git a/java/com/android/dialer/app/res/layout/lists_fragment.xml b/java/com/android/dialer/app/res/layout/lists_fragment.xml index 442b428f2..71867d705 100644 --- a/java/com/android/dialer/app/res/layout/lists_fragment.xml +++ b/java/com/android/dialer/app/res/layout/lists_fragment.xml @@ -15,41 +15,41 @@ --> <FrameLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/lists_frame" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:animateLayoutChanges="true"> - - <LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/lists_frame" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="vertical"> + android:animateLayoutChanges="true"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> <!-- TODO: Apply background color to ActionBar instead of a FrameLayout. For now, this is the easiest way to preserve correct pane scrolling and searchbar collapse/expand behaviors. --> <FrameLayout - android:layout_width="match_parent" - android:layout_height="@dimen/action_bar_height_large" - android:background="@color/actionbar_background_color" - android:elevation="@dimen/tab_elevation"/> + android:layout_width="match_parent" + android:layout_height="@dimen/action_bar_height_large" + android:background="@color/actionbar_background_color" + android:elevation="@dimen/tab_elevation"/> <com.android.contacts.common.list.ViewPagerTabs - android:id="@+id/lists_pager_header" - style="@style/DialtactsActionBarTabTextStyle" - android:layout_width="match_parent" - android:layout_height="@dimen/tab_height" - android:layout_gravity="top" - android:elevation="@dimen/tab_elevation" - android:orientation="horizontal" - android:textAllCaps="true"/> - - <android.support.v4.view.ViewPager - android:id="@+id/lists_pager" - android:layout_width="match_parent" - android:layout_height="0dp" - android:layout_weight="1"/> + android:id="@+id/lists_pager_header" + style="@style/DialtactsActionBarTabTextStyle" + android:layout_width="match_parent" + android:layout_height="@dimen/tab_height" + android:layout_gravity="top" + android:elevation="@dimen/tab_elevation" + android:orientation="horizontal" + android:textAllCaps="true"/> + + <com.android.dialer.app.list.DialerViewPager + android:id="@+id/lists_pager" + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_weight="1"/> </LinearLayout> @@ -58,41 +58,80 @@ This is required since drag and drop event is only sent to views are visible when drag starts. --> <com.android.dialer.app.list.RemoveView - android:id="@+id/remove_view" - android:layout_width="match_parent" - android:layout_height="@dimen/tab_height" - android:layout_marginTop="@dimen/action_bar_height_large" - android:contentDescription="@string/remove_contact" - android:importantForAccessibility="no"> + android:id="@+id/remove_view" + android:layout_width="match_parent" + android:layout_height="@dimen/tab_height" + android:layout_marginTop="@dimen/action_bar_height_large" + android:contentDescription="@string/remove_contact" + android:importantForAccessibility="no"> <LinearLayout - android:id="@+id/remove_view_content" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="@color/actionbar_background_color" - android:gravity="center" - android:orientation="horizontal" - android:visibility="gone"> + android:id="@+id/remove_view_content" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/actionbar_background_color" + android:gravity="center" + android:orientation="horizontal" + android:visibility="gone"> <ImageView - android:id="@+id/remove_view_icon" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginTop="8dp" - android:layout_marginBottom="8dp" - android:src="@drawable/ic_remove" - android:tint="@color/remove_text_color"/> + android:id="@+id/remove_view_icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="8dp" + android:layout_marginBottom="8dp" + android:src="@drawable/ic_remove" + android:tint="@color/remove_text_color"/> <TextView - android:id="@+id/remove_view_text" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/remove_contact" - android:textColor="@color/remove_text_color" - android:textSize="@dimen/remove_text_size"/> + android:id="@+id/remove_view_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/remove_contact" + android:textColor="@color/remove_text_color" + android:textSize="@dimen/remove_text_size"/> </LinearLayout> </com.android.dialer.app.list.RemoveView> + <FrameLayout + android:id="@+id/multi_select_view" + android:layout_width="match_parent" + android:layout_height="@dimen/tab_height" + android:layout_marginTop="@dimen/action_bar_height_large" + android:contentDescription="@string/remove_contact" + android:importantForAccessibility="no"> + + <LinearLayout + android:id="@+id/multi_select_select_all_view_content" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_gravity="center" + android:background="@color/actionbar_background_color" + android:orientation="horizontal" + android:visibility="gone"> + + <ImageView + android:id="@+id/select_all_view_icon" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:paddingLeft="12dp" + android:gravity="center_vertical" + android:src="@drawable/ic_empty_check_mark_white_24dp"/> + <TextView + android:id="@+id/select_all_view_text" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:paddingLeft="30dp" + android:gravity="center_vertical" + android:text="@string/select_all" + android:textAllCaps="true" + android:textStyle="bold" + android:textColor="@color/remove_text_color" + android:textSize="@dimen/remove_text_size"/> + </LinearLayout> + + </FrameLayout> + </FrameLayout> diff --git a/java/com/android/dialer/app/res/layout/search_edittext.xml b/java/com/android/dialer/app/res/layout/search_edittext.xml index c02512d80..bb6a5f7de 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"/> <TextView diff --git a/java/com/android/dialer/app/res/layout/speed_dial_fragment.xml b/java/com/android/dialer/app/res/layout/speed_dial_fragment.xml index c778c6bc4..3fa3be229 100644 --- a/java/com/android/dialer/app/res/layout/speed_dial_fragment.xml +++ b/java/com/android/dialer/app/res/layout/speed_dial_fragment.xml @@ -41,7 +41,7 @@ android:numColumns="@integer/contact_tile_column_count_in_favorites"/> </FrameLayout> - <com.android.dialer.app.widget.EmptyContentView + <com.android.dialer.widget.EmptyContentView android:id="@+id/empty_list_view" android:layout_width="match_parent" android:layout_height="wrap_content" diff --git a/java/com/android/dialer/app/res/values-af/strings.xml b/java/com/android/dialer/app/res/values-af/strings.xml index 2eb462b1c..4f4c65b8a 100644 --- a/java/com/android/dialer/app/res/values-af/strings.xml +++ b/java/com/android/dialer/app/res/values-af/strings.xml @@ -85,6 +85,10 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Keer terug na oproep wat besig is"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Voeg oproep by"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Inkomende oproepe"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Gaan tans grootmaathandelingmodus in"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Het grootmaathandelingmodus verlaat"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Het <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> gekies"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Het <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ontkies"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Speel stemboodskap"</string> <string name="description_view_contact" msgid="3940984937384372665">"Bekyk kontak <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Bel <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Stemboodskap"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Kanselleer grootmaathandelingmodus"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"stemboodskap"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"stemboodskappe"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nee"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Vee geselekteerde <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> uit?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> gekies"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> om <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Laai tans van SIM-kaart af…"</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM-kaartkontakte"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Geen kontakte-program beskikbaar nie"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Stemsoektog is nie beskikbaar nie"</string> <string name="call_not_available" msgid="7850148370757361155">"Kan nie \'n foonoproep maak nie want die Foon-program is gedeaktiveer."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Deursoek kontakte"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nuwe gemiste oproepe"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Daar is nog niemand op jou spoedbel nie"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Voeg \'n gunsteling by"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Jy het nog nie enige kontakte nie"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Voeg \'n kontak by"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Raak aan prent om al die nommers te sien of raak en hou om te herorganiseer"</string> <string name="remove_contact" msgid="2353580570488923668">"Verwyder"</string> + <string name="select_all" msgid="408601760696146245">"Kies alles"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Video-oproep"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Stuur \'n boodskap"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Oproepbesonderhede"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Geblokkeerde nommers"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> is reeds geblokkeer."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Oproeprekeninge"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Skakel aan"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Stel toestemmings"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Skakel die kontaktetoestemming aan om spoedbel te aktiveer."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Skakel die foontoestemming aan om jou oproeprekord te sien."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Skakel die kontaktetoestemming aan om jou kontakte te sien."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Skakel die foontoestemming aan om na jou stemboodskapdiens te gaan."</string> <string name="permission_no_search" msgid="2424710404207193826">"Skakel die Kontakte-toestemmings aan om jou kontakte te deursoek."</string> <string name="permission_place_call" msgid="8686908130349369423">"Skakel die foontoestemming aan om \'n oproep te maak."</string> diff --git a/java/com/android/dialer/app/res/values-am/strings.xml b/java/com/android/dialer/app/res/values-am/strings.xml index 82303019c..7f4a622d7 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"በመካሄድ ላይ ወዳለው ጥሪ ተመለስ"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ጥሪ ያክሉ"</string> <string name="actionIncomingCall" msgid="891346596090030558">"ገቢ ጥሪዎች"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ወደ የጅምላ እርምጃ ሁነታ በመግባት ላይ"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ከጅምላ እርምጃ ሁነታ ለቀው ወጥተዋል"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ተመርጧል"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> አልተመረጠም"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"የድምፅ መልዕክት አጫውት"</string> <string name="description_view_contact" msgid="3940984937384372665">"ዕውቂያ <xliff:g id="NAME">%1$s</xliff:g> ዕይ"</string> <string name="description_call" msgid="1532402285334775372">"ጥሪ <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"የድምፅ መልዕክት"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ሰከንድ"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> ደቂቃ <xliff:g id="SECONDS">%s</xliff:g> ሴከ"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"የጅምላ እርምጃ ሁነታ ይቅር"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"የድምፅ መልዕክት"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"የድምፅ መልዕክቶች"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"አዎ"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"አይ"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"የተመረጠው <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ይሰረዝ?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ተመርጠዋል"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g> ላይ"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"ከSIM ካርድ ላይ በመጫን ላይ..."</string> <string name="simContacts_title" msgid="7961069730386378887">"የSIM ካርድ ዕውቂያዎች"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"ምንም የእውቂያዎች መተግበሪያ አይገኝም"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"የድምጽ ፍለጋ አይገኝም"</string> <string name="call_not_available" msgid="7850148370757361155">"የስልክ መተግበሪያው ስለተሰናከለ የስልክ ጥሪ ማድረግ አይቻልም።"</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"ዕውቅያዎችን ፈልግ"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> አዲስ ያልተመለሱ ጥሪዎች"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"በፈጥኖ መደወያ ላይ ገና ማንም የለዎትም"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ተወዳጅ አክል"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"ገና ምንም እውቂያዎች የሉዎትም"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ዕውቂያ አክል"</string> <string name="contact_tooltip" msgid="8871614660967439999">"ሁሉንም ቁጥሮች ለማየት ምስል ይንኩ ወይም ዳግም ለመደርደር ነክተው ይያዙት"</string> <string name="remove_contact" msgid="2353580570488923668">"አስወግድ"</string> + <string name="select_all" msgid="408601760696146245">"ሁሉንም ምረጥ"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"የቪዲዮ ጥሪ"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"መልእክት ላክ"</string> <string name="call_log_action_details" msgid="2091370737371449501">"የጥሪ ዝርዝሮች"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"የታገዱ ቁጥሮች"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ቀድሞውኑ ታግዷል።"</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"የመደወያ መለያዎች"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"አብራ"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ፍቃዶችን አዋቅር"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"ፈጥኖ መደወያን ለማንቃት የእውቂያዎች ፍቃዱን ያብሩ።"</string> <string name="permission_no_calllog" msgid="4053705651238775784">"የጥሪ ምዝግብ ማስታወአሽዎን ለማየት የስልክ ፍቃዱን ያብሩ።"</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"የእርስዎን እውቂያዎች ለማየት የእውቂያዎች ፍቃዱን ያብሩ።"</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"የድምፅ መልዕክትዎን ለመድረስ የስልክ ፍቃዱን ያብሩ።"</string> <string name="permission_no_search" msgid="2424710404207193826">"የእርስዎን እውቂያዎች ለመከታተል የእውቂያዎች ፍቃዶችን ያብሩ።"</string> <string name="permission_place_call" msgid="8686908130349369423">"ስልክ ለመደወል የስልክ ፍቃዱን ያብሩ።"</string> diff --git a/java/com/android/dialer/app/res/values-ar/strings.xml b/java/com/android/dialer/app/res/values-ar/strings.xml index e4dfb4d9e..3687d0bcb 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"عودة إلى المكالمة الجارية"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"إضافة مكالمة"</string> <string name="actionIncomingCall" msgid="891346596090030558">"المكالمات الواردة"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"يتم الدخول إلى وضع الإجراء المجمَّع"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"تمت مغادرة وضع الإجراء المجمَّع"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"تم تحديد <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"تم إلغاء تحديد <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"تشغيل البريد الصوتي"</string> <string name="description_view_contact" msgid="3940984937384372665">"عرض جهة الاتصال <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"الاتصال بـ <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -103,11 +107,13 @@ <string name="voicemail" msgid="8899540969000957954">"البريد الصوتي"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ثانية"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> دقيقة <xliff:g id="SECONDS">%s</xliff:g> ثانية"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"إلغاء وضع الإجراءات المجمَّع"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"البريد الصوتي"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"رسائل البريد الصوتي"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"نعم"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"لا"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"حذف رسائل <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> المحددة؟"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"تم تحديد <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> في <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -120,7 +126,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"جارٍ التحميل من شريحة SIM…"</string> <string name="simContacts_title" msgid="7961069730386378887">"شريحة SIM وجهات الاتصال"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"لا يتوفر تطبيق لجهات الاتصال"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"البحث الصوتي غير متاح"</string> <string name="call_not_available" msgid="7850148370757361155">"يتعذر إجراء مكالمة هاتفية نظرًا لأنه تم تعطيل تطبيق الهاتف."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"البحث في جهات الاتصال"</string> @@ -149,10 +154,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> من المكالمات الجديدة الفائتة"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"لم تتم إضافة أية جهة اتصال إلى قائمة الاتصال السريع حتى الآن"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"إضافة مفضلة"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"ليست لديك أية جهات اتصال حتى الآن"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"إضافة جهة اتصال"</string> <string name="contact_tooltip" msgid="8871614660967439999">"المس الصورة للاطلاع على جميع الأرقام أو المس مع الاستمرار لإعادة الترتيب"</string> <string name="remove_contact" msgid="2353580570488923668">"إزالة"</string> + <string name="select_all" msgid="408601760696146245">"تحديد الكل"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"مكالمة فيديو"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"إرسال رسالة"</string> <string name="call_log_action_details" msgid="2091370737371449501">"تفاصيل المكالمة"</string> @@ -221,11 +225,9 @@ <string name="block_list" msgid="4701585783411870782">"الأرقام المحظورة"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"تم حظر <xliff:g id="NUMBER">%1$s</xliff:g>."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"حسابات الاتصال"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"تشغيل"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"تعيين الأذونات"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"لتمكين الاتصال السريع، شغِّل إذن جهات الاتصال."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"للاطلاع على سجل المكالمات، شغِّل إذن الهاتف."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"للاطلاع على جهات الاتصال، شغِّل إذن جهات الاتصال."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"للوصول إلى البريد الصوتي، شغِّل إذن الهاتف."</string> <string name="permission_no_search" msgid="2424710404207193826">"للبحث عن جهات الاتصال، عليك تشغيل أذونات جهات الاتصال."</string> <string name="permission_place_call" msgid="8686908130349369423">"لإجراء مكالمة، شغِّل إذن الهاتف."</string> diff --git a/java/com/android/dialer/app/res/values-az/strings.xml b/java/com/android/dialer/app/res/values-az/strings.xml index 62bc117ba..b6681c9e2 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Davam edən zəngə qayıdın"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Zəng əlavə edin"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Gələn zənglər"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Toplu əməliyyat rejiminə daxil olunur"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Toplu əməliyyat rejimi tərk edilir"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> seçildi"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> seçilmədi"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Səsli məktubu oxudun"</string> <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> adlı kontakta baxın"</string> <string name="description_call" msgid="1532402285334775372">"Zəng <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Səsli poçt"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> san"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> dəq <xliff:g id="SECONDS">%s</xliff:g> san"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Qrup əməliyyatları rejimini ləğv edin"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"səsli e-məktub"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"səsli e-məktublar"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Bəli"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Xeyr"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Seçilmiş <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> silinsin?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> seçilib"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> tarixində <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM kartdan yüklənir..."</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM kart kontaktları"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Əlaqələr proqramı mövcud deyil"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Səsli axtarış mövcud deyil"</string> <string name="call_not_available" msgid="7850148370757361155">"Telefon tətbiqi deaktiv edildiyinə görə telefon zəngi etmək mümkün deyil."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Kontakt axtarın"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> yeni buraxılmış zəng"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Hələ sürətli zəng siyahınızda hec kim yoxdur"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Sevimlilərə əlavə edin"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Hələ heç bir kontaktınız yoxdur"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Kontakt əlavə edin"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Bütün nömrələri görmək üçün təsvirə toxunun və ya yenidən qaydaya salmaq üçün basıb saxlayın"</string> <string name="remove_contact" msgid="2353580570488923668">"Yığışdır"</string> + <string name="select_all" msgid="408601760696146245">"Hamısını seçin"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Video zəng"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Mesaj göndərin"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Zəng detalları"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Bloklanmış nömrələr"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> artıq bloklanıb."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Hesabların çağrılması"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktiv edin"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"İcazələri quraşdırın"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Sürətli yığımı aktivləşdirmək üçün, Kontakt icazələrini aktivləşdirin."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Çağrı jurnalınızı görmək üçün Telefon icazəsini aktivləşdirin."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Kontaktlarınızı görmək üçün Kontakt icazəsini aktivləşdirin."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Səsli poçta daxil olmaq üçün, Telefon icazəsini aktivləşdirin."</string> <string name="permission_no_search" msgid="2424710404207193826">"Kontaktlarınızı axtarmaq üçün, Kontakt icazələrini aktiv edin."</string> <string name="permission_place_call" msgid="8686908130349369423">"Zəng etmək üçün, Telefon icazəsini aktivləşdirin."</string> diff --git a/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml index 9df729108..40c0886c8 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Vrati se na poziv koji je u toku"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Dodaj poziv"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Dolazni pozivi"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Ulazite u režim grupnih radnji"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Izašli ste iz režima grupnih radnji"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Izabrano je <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Opozvan je izbor <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Puštanje govorne pošte"</string> <string name="description_view_contact" msgid="3940984937384372665">"Prikaži kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Pozovi <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -100,11 +104,13 @@ <string name="voicemail" msgid="8899540969000957954">"Govorna pošta"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Otkažite režim grupnih radnji"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"govornu poruku"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"govorne poruke"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Da"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Želite li da izbrišete izabranu(e) <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Izabranih: <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> u <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -117,7 +123,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Učitava se sa SIM kartice…"</string> <string name="simContacts_title" msgid="7961069730386378887">"Kontakti na SIM kartici"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Nema dostupne aplikacije za kontakte"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Glasovna pretraga nije dostupna"</string> <string name="call_not_available" msgid="7850148370757361155">"Nije moguće uputiti telefonski poziv jer je aplikacija Telefon onemogućena."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Pretraži kontakte"</string> @@ -146,10 +151,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"Novih propuštenih poziva: <xliff:g id="NUMBER">%s</xliff:g>"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Nemate nijedan kontakt na brzom biranju"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Dodaj omiljen kontakt"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Još uvek nemate nijedan kontakt"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Dodaj kontakt"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Dodirnite sliku da biste videli sve brojeve ili dodirnite i zadržite da biste im promenili raspored"</string> <string name="remove_contact" msgid="2353580570488923668">"Ukloni"</string> + <string name="select_all" msgid="408601760696146245">"Izaberi sve"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Video poziv"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Pošalji poruku"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Detalji poziva"</string> @@ -215,11 +219,9 @@ <string name="block_list" msgid="4701585783411870782">"Blokirani brojevi"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> je već blokiran."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Nalozi za pozivanje"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Uključi"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Podesi dozvole"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Da biste omogućili brzo biranje, uključite dozvolu za Kontakte."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Da biste videli evidenciju poziva, uključite dozvolu za Telefon."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Da biste videli kontakte, uključite dozvolu za Kontakte."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Da biste pristupili govornoj pošti, uključite dozvolu za Telefon."</string> <string name="permission_no_search" msgid="2424710404207193826">"Da biste pretražili kontakte, uključite dozvole za Kontakte."</string> <string name="permission_place_call" msgid="8686908130349369423">"Da biste uputili poziv, uključite dozvolu za Telefon."</string> diff --git a/java/com/android/dialer/app/res/values-be/strings.xml b/java/com/android/dialer/app/res/values-be/strings.xml index aac3df2bd..f2ad3342b 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Звярнуцца да бягучага выкліку"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Дадаць выклік"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Уваходныя выклікі"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Уваход у рэжым групавога дзеяння"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Выхад з рэжыму групавога дзеяння"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Выбрана: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Выбар скасаваны: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Прайграць паведамленне галасавой пошты"</string> <string name="description_view_contact" msgid="3940984937384372665">"Прагледзець кантакт <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Выклікаць карыстальнiка <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -101,11 +105,13 @@ <string name="voicemail" msgid="8899540969000957954">"Галасавая пошта"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> с"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> хв <xliff:g id="SECONDS">%s</xliff:g> с"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Скасаваць рэжым пакетных дзеянняў"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"галасавая пошта"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"галасавая пошта"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Так"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Не"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Выдаліць вылучанае: <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Выбрана: <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> у <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -118,7 +124,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Загрузка з SIM-карты..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Кантакты SIM-карты"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Праграмы для аперацый з кантактамі няма"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Галасавы пошук недаступны"</string> <string name="call_not_available" msgid="7850148370757361155">"Немагчыма зрабіць выклік па тэлефоне, таму што праграма Тэлефон была адключана."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Пошук кантактаў"</string> @@ -147,10 +152,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"Новых прапушчаных выклікаў: <xliff:g id="NUMBER">%s</xliff:g>"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"У вас пакуль нікога няма на хуткім наборы"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Дадаць улюбёны"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"У вас пакуль няма ніякіх кантактаў"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Дадаць кантакт"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Дакраніцеся да відарыса, каб прагледзець усе нумары, або дакраніцеся і ўтрымлівайце, каб змяніць парадак"</string> <string name="remove_contact" msgid="2353580570488923668">"Выдаліць"</string> + <string name="select_all" msgid="408601760696146245">"Выбраць усё"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Відэавыклік"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Адправiць паведамленне"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Падрабязнасці выкліку"</string> @@ -217,11 +221,9 @@ <string name="block_list" msgid="4701585783411870782">"Заблакіраваныя нумары"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ужо заблакіраваны."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Уліковыя запісы для выклікаў"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Уключыць"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Задаць дазволы"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Каб уключыць хуткі набор, уключыце дазвол для Кантактаў."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Каб прагледзець свой журнал выклікаў, уключыце дазволы Тэлефона."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Каб бачыць свае кантакты, уключыце дазвол для Кантактаў."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Каб атрымаць доступ да галасавой пошты, уключыце дазвол для Тэлефона."</string> <string name="permission_no_search" msgid="2424710404207193826">"Каб шукаць свае кантакты, уключыце дазвол для Кантактаў."</string> <string name="permission_place_call" msgid="8686908130349369423">"Каб зрабіць выклік, уключыце дазвол для Тэлефона."</string> diff --git a/java/com/android/dialer/app/res/values-bg/strings.xml b/java/com/android/dialer/app/res/values-bg/strings.xml index 7bab71f3b..8083f4828 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Назад към текущото обаждане"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Добавяне на обаждане"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Вх. обаждания"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Влизате в режима на групови действия"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Излязохте от режима на групови действия"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Избрахте <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Премахнахте избора от <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Пускане на гласовата поща"</string> <string name="description_view_contact" msgid="3940984937384372665">"Преглед на контактa <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Обаждане на <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Гласова поща"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мин <xliff:g id="SECONDS">%s</xliff:g> сек"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Анулиране на режима на групови действия"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"гласово съобщение"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"гласови съобщения"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Да"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Не"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Избрахте <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> – да се изтрие ли избраното?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Избрахте <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> в <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Зарежда се от SIM карта..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Контакти от SIM карта"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Няма налично приложение за контакти"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Гласовото търсене не е налице"</string> <string name="call_not_available" msgid="7850148370757361155">"Не може да се осъществи телефонно обаждане, защото приложението Телефон е деактивирано."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Търсене в контактите"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> нови пропуснати обаждания"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Още нямате контакти за бързо набиране"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Добавяне на любим контакт"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Още нямате контакти"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Добавяне на контакт"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Докоснете изображението, за да видите всички номера, или го натиснете и задръжте за пренареждане"</string> <string name="remove_contact" msgid="2353580570488923668">"Премахване"</string> + <string name="select_all" msgid="408601760696146245">"Избиране на всички"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Видеообаждане"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Изпращане на съобщение"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Подробности за обаждането"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Блокирани номера"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> вече е блокиран."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Профили за обаждане"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Включване"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Задаване на разрешенията"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"За да активирате бързото набиране, включете разрешението за Контакти."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"За да видите списъка с обажданията си, включете разрешението за Телефон."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"За да видите контактите си, включете разрешението за Контакти."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"За да осъществите достъп до гласовата си поща, включете разрешението за Телефон."</string> <string name="permission_no_search" msgid="2424710404207193826">"За да търсите в контактите си, включете разрешенията за тях."</string> <string name="permission_place_call" msgid="8686908130349369423">"За да извършите обаждане, включете разрешението за Телефон."</string> diff --git a/java/com/android/dialer/app/res/values-bn/strings.xml b/java/com/android/dialer/app/res/values-bn/strings.xml index 271247be3..4d2d7cc1e 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"প্রগতিতে থাকা কলে প্রত্যাবর্তন"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"কল যোগ করুন"</string> <string name="actionIncomingCall" msgid="891346596090030558">"ইনকামিং কলগুলি"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"বাল্ক অ্যাকশন মোডে প্রবেশ করা হচ্ছে"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"বাল্ক অ্যাকশন মোড ত্যাগ করুন"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> নির্বাচন করা হয়েছে"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> অনির্বাচন করা হয়েছে"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"ভয়েসমেল প্লে করুন"</string> <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> পরিচিতি দেখুন"</string> <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> কে কল করুন"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"ভয়েসমেল"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> সেকেন্ড"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> মিনিট <xliff:g id="SECONDS">%s</xliff:g> সেকেন্ড"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"ব্যাচ অ্যাকশন মোড বাতিল করুন"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ভয়েসমেল"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ভয়েসমেলগুলি"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"হ্যাঁ"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"না"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"নির্বাচিত <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> মুছে ফেলতে চান?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g>টি নির্বাচিত"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> তারিখে <xliff:g id="TIME">%2$s</xliff:g>\'টায়"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"সিম কার্ড থেকে লোড করা হচ্ছে…"</string> <string name="simContacts_title" msgid="7961069730386378887">"সিম কার্ডের পরিচিতিগুলি"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"কোনো পরিচিতি অ্যাপ্লিকেশান উপলব্ধ নয়"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"ভয়েস অনুসন্ধান অনুপলব্ধ"</string> <string name="call_not_available" msgid="7850148370757361155">"কোনো ফোন কল করা যাবে না কারণ ফোন অ্যাপ্লিকেশানটি অক্ষম করা হয়েছে৷"</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"পরিচিতিগুলি খুঁজুন"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g>টি নতুন মিসড কল"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"আপনার স্পীড ডায়ালে এখনও পর্যন্ত কেউ নেই"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"একটি পছন্দসই যোগ করুন"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"আপনার এখনও পর্যন্ত কোনো পরিচিতি নেই"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"একটি পরিচিতি যোগ করুন"</string> <string name="contact_tooltip" msgid="8871614660967439999">"সমস্ত নম্বর দেখতে ছবিতে স্পর্শ করুন বা রেকর্ড করতে স্পর্শ করে ধরে রাখুন"</string> <string name="remove_contact" msgid="2353580570488923668">"সরান"</string> + <string name="select_all" msgid="408601760696146245">"সবগুলি নির্বাচন করুন"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"ভিডিও কল"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"একটি বার্তা পাঠান"</string> <string name="call_log_action_details" msgid="2091370737371449501">"কলের বিশদ বিবরণ"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"ব্লক করা নাম্বারগুলি"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ইতিমধ্যেই অববোধ করা রয়েছে৷"</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"কলিং অ্যাকাউন্টগুলি"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"চালু করুন"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"অনুমতিগুলি সেট করুন"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"স্পীড ডায়াল সক্ষম করতে, পরিচিতিগুলির অনুমতি চালু করুন।"</string> <string name="permission_no_calllog" msgid="4053705651238775784">"আপনার কল লগ দেখতে, ফোনের অনুমতি চালু করুন।"</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"আপনার পরিচিতিগুলি দেখতে, পরিচিতিগুলির অনুমতি চালু করুন।"</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"আপনার ভয়েসমেল অ্যাক্সেস করতে, ফোনের অনুমতি চালু করুন।"</string> <string name="permission_no_search" msgid="2424710404207193826">"আপনার পরিচিতিগুলি অনুসন্ধান করতে, পরিচিতির অনুমতিগুলি চালু করুন।"</string> <string name="permission_place_call" msgid="8686908130349369423">"একটি কল করতে, ফোনের অনুমতি চালু করুন।"</string> diff --git a/java/com/android/dialer/app/res/values-bs/strings.xml b/java/com/android/dialer/app/res/values-bs/strings.xml index 92c9c14e0..d8347723d 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Povratak na poziv u toku"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Dodaj poziv"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Dolazni pozivi"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Ulazak u način rada za skupnu radnju"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Napuštanje načina rada za skupnu radnju"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Odabrano <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Poništen odabir <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Pokretanje govorne pošte"</string> <string name="description_view_contact" msgid="3940984937384372665">"Prikaži kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Pozovi kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -100,11 +104,13 @@ <string name="voicemail" msgid="8899540969000957954">"Govorna pošta"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Otkaži način rada za grupnu radnju"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"poruka govorne pošte"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"poruke govorne pošte"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Da"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Izbrisati izabranu/e <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Odabrano <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> u <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -117,7 +123,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Učitavanje sa SIM kartice…"</string> <string name="simContacts_title" msgid="7961069730386378887">"Kontakti sa SIM kartice"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Nije dostupna nijedna aplikacija za kontakte"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Glasovna pretraga nije dostupna"</string> <string name="call_not_available" msgid="7850148370757361155">"Nije moguće uputiti poziv jer je aplikacija Telefon onemogućena."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Traži kontakte"</string> @@ -146,10 +151,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"Broj novih propuštenih poziva: <xliff:g id="NUMBER">%s</xliff:g>"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Nemate nikog na brzom biranju"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Dodaj u favorite"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Još nemate nijedan kontakt"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Dodaj kontakt"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Dodirnite sliku da vidite sve brojeve ili dodirnite i držite da promijenite raspored."</string> <string name="remove_contact" msgid="2353580570488923668">"Ukloni"</string> + <string name="select_all" msgid="408601760696146245">"Izaberi sve"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videopoziv"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Pošalji poruku"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Detalji o pozivu"</string> @@ -215,11 +219,9 @@ <string name="block_list" msgid="4701585783411870782">"Blokirani brojevi"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> je već blokiran."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Računi za pozivanje"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Uključi"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Postavi dozvole"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Da omogućite brzo biranje, uključite dozvolu za Kontakte."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Da vidite popis poziva, uključite dozvolu za Telefon."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Da vidite kontakte, uključite dozvolu za Kontakte."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Da pristupite govornoj pošti,uključite dozvolu za telefon."</string> <string name="permission_no_search" msgid="2424710404207193826">"Da pretražujete kontakte, uključite dozvole za Kontakte."</string> <string name="permission_place_call" msgid="8686908130349369423">"Da uputite poziv, uključite dozvolu za Telefon."</string> diff --git a/java/com/android/dialer/app/res/values-ca/strings.xml b/java/com/android/dialer/app/res/values-ca/strings.xml index fa04dd980..7b12e0dbd 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Torna a la trucada en curs"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Afegeix una trucada"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Trucades entrants"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"S\'està accedint al mode d\'acció massiva"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"S\'ha sortit del mode d\'acció massiva"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"S\'ha seleccionat <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"S\'ha desseleccionat <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Reprodueix el missatge de veu"</string> <string name="description_view_contact" msgid="3940984937384372665">"Visualitza el contacte <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Truca a <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Bústia de veu"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancel·la el mode d\'accions en lot"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"missatge de veu"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"missatges de veu"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sí"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Vols suprimir l\'element o elements seleccionats (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>)?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> seleccionades"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> a les <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"S\'està carregant des de la targeta SIM..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Contactes de la targeta SIM"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"No hi ha cap contacte disponible."</string> <string name="voice_search_not_available" msgid="6546240433719732905">"La cerca per veu no està disponible."</string> <string name="call_not_available" msgid="7850148370757361155">"No es pot fer una trucada telefònica perquè s\'ha desactivat l\'aplicació de telèfon."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Cerca als contactes"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> trucades perdudes noves"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Encara no tens cap contacte al marcatge ràpid"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Afegeix un preferit"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Encara no tens cap contacte"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Afegeix un contacte"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Toca la imatge per veure\'n tots els números o bé mantén-la premuda per canviar-ne l\'ordre"</string> <string name="remove_contact" msgid="2353580570488923668">"Suprimeix"</string> + <string name="select_all" msgid="408601760696146245">"Selecciona-ho tot"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videotrucada"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Envia un missatge"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Detalls de la trucada"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Números bloquejats"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ja està bloquejat."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Comptes de trucades"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Activa"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Defineix els permisos"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Activa el permís Contactes per activar el marcatge ràpid."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Activa el permís Telèfon per veure el teu registre de trucades."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Activa el permís Contactes per veure els teus contactes."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Activa el permís Telèfon per accedir a la bústia de veu."</string> <string name="permission_no_search" msgid="2424710404207193826">"Per cercar els teus contactes, activa els permisos de Contactes."</string> <string name="permission_place_call" msgid="8686908130349369423">"Activa el permís Telèfon per fer una trucada."</string> diff --git a/java/com/android/dialer/app/res/values-cs/strings.xml b/java/com/android/dialer/app/res/values-cs/strings.xml index 5a3e42913..bbcb35847 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Návrat k probíhajícímu hovoru"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Přidat hovor"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Příchozí volání"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Vstupování do režimu hromadných akcí"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Opustili jste režim hromadných akcí"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Položka <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> je vybrána"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Položka <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> není vybrána"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Přehrát hlasovou schránku"</string> <string name="description_view_contact" msgid="3940984937384372665">"Zobrazit kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Volat kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -101,11 +105,13 @@ <string name="voicemail" msgid="8899540969000957954">"Hlasová schránka"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Zrušit režim hromadných akcí"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"vybranou hlasovou zprávu"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"vybrané hlasové zprávy"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ano"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Smazat <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Vybráno: <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> v <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -118,7 +124,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Načítání ze SIM karty..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Kontakty na SIM kartě"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Není k dispozici žádná aplikace pro práci s kontakty."</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Hlasové vyhledávání není k dispozici."</string> <string name="call_not_available" msgid="7850148370757361155">"Telefonický hovor nelze uskutečnit, protože aplikace Telefon byla zakázána."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Vyhledat kontakty"</string> @@ -147,10 +152,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"Nové zmeškané hovory: <xliff:g id="NUMBER">%s</xliff:g>"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"V rychlém vytáčení zatím nemáte žádný kontakt."</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Přidat oblíbený kontakt"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Zatím nemáte žádné kontakty"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Přidat kontakt"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Klepnutím na obrázek zobrazíte všechna čísla. Podržením můžete změnit pořadí."</string> <string name="remove_contact" msgid="2353580570488923668">"Odstranit"</string> + <string name="select_all" msgid="408601760696146245">"Vybrat všechny"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videohovor"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Odeslat zprávu"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Podrobnosti hovoru"</string> @@ -217,11 +221,9 @@ <string name="block_list" msgid="4701585783411870782">"Blokovaná čísla"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"Číslo <xliff:g id="NUMBER">%1$s</xliff:g> je již blokováno."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Účty pro volání"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Zapnout"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Nastavit oprávnění"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Chcete-li povolit rychlé vytáčení, aktivujte oprávnění Kontakty."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Chcete-li zobrazit seznam hovorů, aktivujte oprávnění Telefon."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Chcete-li zobrazit kontakty, aktivujte oprávnění Kontakty."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Chcete-li přejít do hlasové schránky, aktivujte oprávnění Telefon."</string> <string name="permission_no_search" msgid="2424710404207193826">"Chcete-li vyhledat kontakty, zapněte oprávnění Kontakty."</string> <string name="permission_place_call" msgid="8686908130349369423">"Chcete-li uskutečnit hovor, aktivujte oprávnění Telefon."</string> diff --git a/java/com/android/dialer/app/res/values-da/strings.xml b/java/com/android/dialer/app/res/values-da/strings.xml index 42aa66378..31cf8e33d 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Vend tilbage til igangværende opkald"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Tilføj opkald"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Indgående opkald"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Massehandlingstilstanden startes"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Massehandlingstilstanden blev afsluttet"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Vælg <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Fravælg <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Afspil telefonsvarerbesked"</string> <string name="description_view_contact" msgid="3940984937384372665">"Vis kontaktpersonen <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Ring til <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Telefonsvarer"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Annuller massehandlingstilstand"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"talebesked"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"talebeskeder"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nej"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Vil du slette de valgte <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> er valgt"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Indlæser fra SIM-kort ..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Kontakter på SIM-kort"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Der er ingen app til kontaktpersoner"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Talesøgning er ikke tilgængelig"</string> <string name="call_not_available" msgid="7850148370757361155">"Det er ikke muligt at foretage et telefonopkald, fordi applikationen Telefon er deaktiveret."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Søg i kontakter"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nye ubesvarede opkald"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Der er endnu ingen kontaktpersoner i Hurtigopkald"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Angiv en kontaktperson som foretrukken"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Du har endnu ikke nogen kontaktpersoner"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Tilføj en kontaktperson"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Tryk på billedet for at se alle numre, eller tryk og hold nede på billedet for at omarrangere"</string> <string name="remove_contact" msgid="2353580570488923668">"Fjern"</string> + <string name="select_all" msgid="408601760696146245">"Vælg alt"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videoopkald"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Send en sms-besked"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Opkaldsinfo"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Blokerede telefonnumre"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> er allerede blokeret."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Opkaldskonti"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktivér"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Angiv tilladelser"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Slå tilladelsen Kontaktpersoner til for at aktivere hurtigopkald."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Slå tilladelsen Telefon til for at se din opkaldsliste."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Slå tilladelsen Kontaktpersoner til for at se dine kontaktpersoner."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Slå tilladelsen Telefon til for at få adgang til din telefonsvarer,"</string> <string name="permission_no_search" msgid="2424710404207193826">"Hvis du vil søge i dine kontaktpersoner, skal du slå tilladelserne Kontaktpersoner til."</string> <string name="permission_place_call" msgid="8686908130349369423">"Slå tilladelsen Telefon til for at foretage et opkald."</string> diff --git a/java/com/android/dialer/app/res/values-de/strings.xml b/java/com/android/dialer/app/res/values-de/strings.xml index 5653e0f12..c1f644119 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Zurück zum aktuellen Anruf"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Anruf hinzufügen"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Eingehende Anrufe"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Es wird in den Modus für Bulk-Aktionen gewechselt"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Der Modus für Bulk-Aktionen wurde verlassen"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ausgewählt"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Auswahl für <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> aufgehoben"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Mailbox abhören"</string> <string name="description_view_contact" msgid="3940984937384372665">"Kontakt <xliff:g id="NAME">%1$s</xliff:g> anzeigen"</string> <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> anrufen"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Mailbox"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Modus für Batch-Aktionen abbrechen"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"Mailboxnachricht"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"Mailboxnachrichten"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nein"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Ausgewählte <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> löschen?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ausgewählt"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> um <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Ladevorgang von SIM-Karte läuft..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Kontakte auf SIM-Karte"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Keine Kontakte-App verfügbar"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Sprachsuche nicht verfügbar"</string> <string name="call_not_available" msgid="7850148370757361155">"Es kann kein Anruf getätigt werden, da die App \"Telefon\" deaktiviert wurde."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"In Kontakten suchen"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> neue entgangene Anrufe"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Du hast für noch niemanden eine Kurzwahl festgelegt"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Favoriten hinzufügen"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Du hast noch keine Kontakte."</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Kontakt hinzufügen"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Tippe auf das Bild, um alle Nummern zu sehen, oder halte das Bild länger gedrückt, um sie neu anzuordnen"</string> <string name="remove_contact" msgid="2353580570488923668">"Entfernen"</string> + <string name="select_all" msgid="408601760696146245">"Alle auswählen"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videoanruf"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"SMS senden"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Anrufdetails"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Blockierte Nummern"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ist bereits blockiert."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Anrufkonten"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktivieren"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Berechtigungen festlegen"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Aktiviere die Berechtigung \"Kontakte\", um die Kurzwahlfunktion zu verwenden."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Aktiviere die Berechtigung \"Telefon\", um dein Anrufprotokoll abzurufen."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Aktiviere die Berechtigung \"Kontakte\", um deine Kontakte abzurufen."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Aktiviere die Berechtigung \"Telefon\", um auf deine Mailbox zuzugreifen."</string> <string name="permission_no_search" msgid="2424710404207193826">"Aktiviere die Berechtigungen \"Kontakte\", um deine Kontakte zu suchen."</string> <string name="permission_place_call" msgid="8686908130349369423">"Aktiviere die Berechtigung \"Telefon\", um einen Anruf zu tätigen."</string> diff --git a/java/com/android/dialer/app/res/values-el/strings.xml b/java/com/android/dialer/app/res/values-el/strings.xml index 847f60a26..c4ba02d0f 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Επιστροφή στην κλήση που βρίσκεται σε εξέλιξη"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Προσθήκη κλήσης"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Εισερχόμενες κλήσεις"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Εισαγωγή στη λειτουργία μαζικών ενεργειών"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Αποχώρηση από τη λειτουργία μαζικών ενεργειών"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Έγινε επιλογή <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Καταργήθηκε η επιλογή <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Αναπαραγωγή μηνύματος αυτόματου τηλεφωνητή"</string> <string name="description_view_contact" msgid="3940984937384372665">"Προβολή επαφής <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Κλήση <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Αυτόματος τηλεφωνητής"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> δευτερόλεπτα"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> λεπτά <xliff:g id="SECONDS">%s</xliff:g> δευτερόλεπτα"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Ακύρωση λειτουργίας μαζικών ενεργειών"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"φωνητικού μηνύματος αυτόματου τηλεφωνητή"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"φωνητικών μηνυμάτων αυτόματου τηλεφωνητή"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ναι"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Όχι"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Διαγραφή επιλεγμ. <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>;"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Έχουν επιλεγεί <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> στις <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Φόρτωση από κάρτα SIM…"</string> <string name="simContacts_title" msgid="7961069730386378887">"Επαφές στην κάρτα SIM"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Δεν υπάρχουν διαθέσιμες εφαρμογές επαφών"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Η φωνητική αναζήτηση δεν είναι διαθέσιμη"</string> <string name="call_not_available" msgid="7850148370757361155">"Δεν είναι δυνατή η πραγματοποίηση τηλεφωνικής κλήσης επειδή η εφαρμογή \"Τηλέφωνο\" έχει απενεργοποιηθεί."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Αναζήτηση επαφών"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> νέες αναπάντητες κλήσεις"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Δεν έχετε ορίσει ακόμη κάποια επαφή στις ταχείες κλήσεις"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Προσθέστε ένα αγαπημένο"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Δεν έχετε επαφές ακόμη"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Προσθήκη επαφής"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Αγγίξτε την εικόνα για να δείτε όλους τους αριθμούς ή αγγίξτε παρατεταμένα για αναδιάταξη"</string> <string name="remove_contact" msgid="2353580570488923668">"Κατάργηση"</string> + <string name="select_all" msgid="408601760696146245">"Επιλογή όλων"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Βιντεοκλήση"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Αποστολή μηνύματος"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Λεπτομέρειες κλήσης"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Αποκλεισμένοι αριθμοί"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"Ο αριθμός <xliff:g id="NUMBER">%1$s</xliff:g> αποκλείστηκε ήδη."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Λογαριασμοί κλήσης"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Ενεργοποίηση"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Ορισμός αδειών"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Για να ενεργοποιήσετε την ταχεία κλήση, ενεργοποιήστε την άδεια επαφών."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Για να δείτε το αρχείο καταγραφής κλήσεών σας, ενεργοποιήστε την άδεια τηλεφώνου."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Για να δείτε τις επαφές σας, ενεργοποιήστε την άδεια επαφών."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Για να αποκτήσετε πρόσβαση στον τηλεφωνητή σας, ενεργοποιήστε την άδεια τηλεφώνου."</string> <string name="permission_no_search" msgid="2424710404207193826">"Για να κάνετε αναζήτηση στις επαφές σας, ενεργοποιήστε τις άδειες \"Επαφές\"."</string> <string name="permission_place_call" msgid="8686908130349369423">"Για να πραγματοποιήσετε μια κλήση, ενεργοποιήστε την άδεια τηλεφώνου."</string> diff --git a/java/com/android/dialer/app/res/values-en-rAU/strings.xml b/java/com/android/dialer/app/res/values-en-rAU/strings.xml index 28eea8b4d..cb7e912c7 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Return to call in progress"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Add call"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Incoming calls"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entering bulk action mode"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Left bulk action mode"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Selected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Unselected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Play voicemail"</string> <string name="description_view_contact" msgid="3940984937384372665">"View contact <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Call <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Voicemail"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sec"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancel batch actions mode"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"voicemail"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"voicemails"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Yes"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Delete selected <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selected"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> at <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Loading from SIM card…"</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM card contacts"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"No contacts app available"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Voice search not available"</string> <string name="call_not_available" msgid="7850148370757361155">"Cannot make a phone call because the Phone application has been disabled."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Search contacts"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> new missed calls"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"No one is on your speed dial yet"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Add a favourite"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"You don\'t have any contacts yet"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Add a contact"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Touch image to see all numbers, or touch & hold to re-arrange"</string> <string name="remove_contact" msgid="2353580570488923668">"Remove"</string> + <string name="select_all" msgid="408601760696146245">"Select all"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Video call"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Send a message"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Call details"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Blocked numbers"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> is already blocked."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Calling accounts"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Turn on"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Set permissions"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"To enable speed dial, turn on the Contacts permission."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"To see your call log, turn on the Phone permission."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"To see your contacts, turn on the Contacts permission."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"To access your voicemail, turn on the Phone permission."</string> <string name="permission_no_search" msgid="2424710404207193826">"To search your contacts, turn on the Contacts permissions."</string> <string name="permission_place_call" msgid="8686908130349369423">"To place a call, turn on the Phone permission."</string> diff --git a/java/com/android/dialer/app/res/values-en-rGB/strings.xml b/java/com/android/dialer/app/res/values-en-rGB/strings.xml index 28eea8b4d..cb7e912c7 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Return to call in progress"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Add call"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Incoming calls"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entering bulk action mode"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Left bulk action mode"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Selected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Unselected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Play voicemail"</string> <string name="description_view_contact" msgid="3940984937384372665">"View contact <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Call <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Voicemail"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sec"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancel batch actions mode"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"voicemail"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"voicemails"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Yes"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Delete selected <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selected"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> at <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Loading from SIM card…"</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM card contacts"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"No contacts app available"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Voice search not available"</string> <string name="call_not_available" msgid="7850148370757361155">"Cannot make a phone call because the Phone application has been disabled."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Search contacts"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> new missed calls"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"No one is on your speed dial yet"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Add a favourite"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"You don\'t have any contacts yet"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Add a contact"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Touch image to see all numbers, or touch & hold to re-arrange"</string> <string name="remove_contact" msgid="2353580570488923668">"Remove"</string> + <string name="select_all" msgid="408601760696146245">"Select all"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Video call"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Send a message"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Call details"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Blocked numbers"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> is already blocked."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Calling accounts"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Turn on"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Set permissions"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"To enable speed dial, turn on the Contacts permission."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"To see your call log, turn on the Phone permission."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"To see your contacts, turn on the Contacts permission."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"To access your voicemail, turn on the Phone permission."</string> <string name="permission_no_search" msgid="2424710404207193826">"To search your contacts, turn on the Contacts permissions."</string> <string name="permission_place_call" msgid="8686908130349369423">"To place a call, turn on the Phone permission."</string> diff --git a/java/com/android/dialer/app/res/values-en-rIN/strings.xml b/java/com/android/dialer/app/res/values-en-rIN/strings.xml index 28eea8b4d..cb7e912c7 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Return to call in progress"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Add call"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Incoming calls"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entering bulk action mode"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Left bulk action mode"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Selected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Unselected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Play voicemail"</string> <string name="description_view_contact" msgid="3940984937384372665">"View contact <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Call <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Voicemail"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sec"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancel batch actions mode"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"voicemail"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"voicemails"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Yes"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Delete selected <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selected"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> at <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Loading from SIM card…"</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM card contacts"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"No contacts app available"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Voice search not available"</string> <string name="call_not_available" msgid="7850148370757361155">"Cannot make a phone call because the Phone application has been disabled."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Search contacts"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> new missed calls"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"No one is on your speed dial yet"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Add a favourite"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"You don\'t have any contacts yet"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Add a contact"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Touch image to see all numbers, or touch & hold to re-arrange"</string> <string name="remove_contact" msgid="2353580570488923668">"Remove"</string> + <string name="select_all" msgid="408601760696146245">"Select all"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Video call"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Send a message"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Call details"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Blocked numbers"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> is already blocked."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Calling accounts"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Turn on"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Set permissions"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"To enable speed dial, turn on the Contacts permission."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"To see your call log, turn on the Phone permission."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"To see your contacts, turn on the Contacts permission."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"To access your voicemail, turn on the Phone permission."</string> <string name="permission_no_search" msgid="2424710404207193826">"To search your contacts, turn on the Contacts permissions."</string> <string name="permission_place_call" msgid="8686908130349369423">"To place a call, turn on the Phone permission."</string> diff --git a/java/com/android/dialer/app/res/values-es-rUS/strings.xml b/java/com/android/dialer/app/res/values-es-rUS/strings.xml index 9d80bc9e2..79d607fc7 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Regresar a la llamada en curso"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Agregar llamada"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Llamadas entrantes"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrando al modo de acción masiva"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Saliendo del modo de acción masiva"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Se seleccionó <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Se anuló la selección de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Reproducir mensaje de voz"</string> <string name="description_view_contact" msgid="3940984937384372665">"Ver contacto <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Llamar a <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Correo de voz"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancelar el modo de acción masiva"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"el mensaje de voz"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"los mensajes de voz"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sí"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"¿Deseas borrar <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> que seleccionaste?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> seleccionada(s)"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"El <xliff:g id="DATE">%1$s</xliff:g> a la hora <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Cargando desde tarjeta SIM..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Contactos de tarjeta SIM"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"No hay aplicaciones de contactos disponibles."</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Búsqueda por voz no disponible"</string> <string name="call_not_available" msgid="7850148370757361155">"No se pueden realizar llamadas porque se inhabilitó la aplicación Teléfono."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Buscar contactos"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> llamadas perdidas nuevas"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Aún no tienes contactos en la opción de marcado rápido"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Agregar un favorito"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Aún no tienes contactos"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Agregar un contacto"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Toca la imagen para ver todos los números o mantenla presionada para reorganizar"</string> <string name="remove_contact" msgid="2353580570488923668">"Eliminar"</string> + <string name="select_all" msgid="408601760696146245">"Seleccionar todo"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videollamada"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar un mensaje"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Detalles de la llamada"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ya está bloqueado."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Cuentas telefónicas"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Activar"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Configurar permisos"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Para habilitar el marcado rápido, activa el permiso Contactos."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Para ver el registro de llamadas, activa el permiso Teléfono."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver los contactos, activa el permiso Contactos."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Para acceder al buzón de voz, activa el permiso Teléfono."</string> <string name="permission_no_search" msgid="2424710404207193826">"Para buscar contactos, activa el permiso Contactos."</string> <string name="permission_place_call" msgid="8686908130349369423">"Para realizar una llamada, activa el permiso Teléfono."</string> diff --git a/java/com/android/dialer/app/res/values-es/strings.xml b/java/com/android/dialer/app/res/values-es/strings.xml index b7383d970..170edc8ca 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Volver a la llamada"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Añadir llamada"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Llamadas entrantes"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrando en el modo de acción en bloque"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Se ha salido del modo de acción en bloque"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> seleccionado"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Selección de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> anulada"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Reproducir mensaje de voz"</string> <string name="description_view_contact" msgid="3940984937384372665">"Ver contacto <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Llamar a <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Buzón de voz"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min y <xliff:g id="SECONDS">%s</xliff:g> s"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancelar el modo de acciones en lote"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"mensaje de voz"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"mensajes de voz"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sí"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"¿Eliminar la selección de <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Se han seleccionado <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> a las <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Cargando desde tarjeta SIM…"</string> <string name="simContacts_title" msgid="7961069730386378887">"Contactos de tarjeta SIM"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"No hay aplicaciones de contactos disponibles"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"La búsqueda por voz no está disponible"</string> <string name="call_not_available" msgid="7850148370757361155">"No se puede hacer llamadas porque se ha inhabilitado la aplicación Teléfono."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Buscar contactos"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> llamadas perdidas nuevas"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Aún no tienes contactos en la función de marcación rápida"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Añadir un favorito"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Aún no tienes contactos"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Añadir un contacto"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Tocar la imagen para ver todos los números o mantenerla pulsada para cambiar el orden"</string> <string name="remove_contact" msgid="2353580570488923668">"Eliminar"</string> + <string name="select_all" msgid="408601760696146245">"Seleccionar todo"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videollamada"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar un mensaje"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Detalles de la llamada"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ya está bloqueado."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Cuentas de llamadas"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Activar"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Establecer permisos"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Para habilitar la marcación rápida, activa el permiso la aplicación Contactos."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Para ver el registro de llamadas, activa el permiso de la aplicación Teléfono."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver tus contactos, activa el permiso de la aplicación Contactos."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Para acceder al buzón de voz, activa el permiso de la aplicación Teléfono."</string> <string name="permission_no_search" msgid="2424710404207193826">"Para poder buscar tus contactos, activa los permisos de contactos."</string> <string name="permission_place_call" msgid="8686908130349369423">"Para hacer una llamada, activa el permiso de la aplicación Teléfono."</string> diff --git a/java/com/android/dialer/app/res/values-et/strings.xml b/java/com/android/dialer/app/res/values-et/strings.xml index d4e4faa59..e32b10403 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Tagasi käimasolevale kõnele"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Lisa kõne"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Sissetulevad kõned"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Sisenemine hulgitoimingute režiimi"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Lahkumine hulgitoimingute režiimist"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> on valitud"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> on valimata"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Esita kõnepostisõnum"</string> <string name="description_view_contact" msgid="3940984937384372665">"Kuva kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Helista kasutajale <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Kõnepost"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Mitme toimigu režiimi tühistamine"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"kõnepostisõnum"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"kõnepostisõnumid"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Jah"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ei"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Kas kustutada valitud kõnepostisõnumid <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> on valitud"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kell <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Laadimine SIM-kaardilt ..."</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM-kaardi kontaktid"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Kontaktide rakendus pole saadaval"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Häälotsing ei ole saadaval"</string> <string name="call_not_available" msgid="7850148370757361155">"Helistada ei saa, sest telefonirakendus on keelatud."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Otsige kontakte"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> uus/uut vastamata kõne(t)"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Te pole veel kedagi kiirvalimisse lisanud"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Lisa lemmik"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Teil pole veel kontakte"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Lisa kontakt"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Puudutage kujutist kõigi numbrite nägemiseks või puudutage pikalt järjestuse muutmiseks"</string> <string name="remove_contact" msgid="2353580570488923668">"Eemalda"</string> + <string name="select_all" msgid="408601760696146245">"Vali kõik"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videokõne"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Saada sõnum"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Kõne üksikasjad"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Blokeeritud numbrid"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> on juba blokeeritud."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Helistamiskontod"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Lülita sisse"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Määra load"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Kiirvalimise lubamiseks lülitage sisse kontaktiluba."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Kõnelogi vaatamiseks lülitage sisse telefoniluba."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Kontaktide vaatamiseks lülitage sisse kontaktiluba."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Kõnepostile juurdepääsemiseks lülitage sisse telefoniluba."</string> <string name="permission_no_search" msgid="2424710404207193826">"Kontaktide otsimiseks lülitage sisse kontaktiload."</string> <string name="permission_place_call" msgid="8686908130349369423">"Helistamiseks lülitage sisse telefoniluba."</string> diff --git a/java/com/android/dialer/app/res/values-eu/strings.xml b/java/com/android/dialer/app/res/values-eu/strings.xml index 95f4621a4..57ef67d88 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Itzuli abian den deira"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Gehitu deia"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Sarrerako deiak"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Ekintzak multzoka gauzatzeko modua aktibatzen"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Ekintzak multzoka gauzatzeko modua desaktibatu da"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> hautatu da"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> desautatu da"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Erreproduzitu erantzungailuko ahots-mezuak"</string> <string name="description_view_contact" msgid="3940984937384372665">"Ikusi <xliff:g id="NAME">%1$s</xliff:g> kontaktua"</string> <string name="description_call" msgid="1532402285334775372">"Deitu <xliff:g id="NAME">%1$s</xliff:g> erabiltzaileari"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Erantzungailua"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Utzi bertan behera ekintzak multzoka gauzatzeko modua"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ahots-mezua"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ahots-mezuak"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Bai"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ez"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Hautatutako <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ezabatu?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> hautatu dira"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> (<xliff:g id="TIME">%2$s</xliff:g>)"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM txarteletik kargatzen…"</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM txarteleko kontaktuak"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Ez dago kontaktuen aplikaziorik erabilgarri"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Ahozko bilaketa ez dago erabilgarri"</string> <string name="call_not_available" msgid="7850148370757361155">"Ezin da telefono-deirik egin Telefonoa aplikazioa desgaitu egin delako."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Bilatu kontaktuetan"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> dei galdu berri"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Ez duzu inor markatze bizkorrean oraindik"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Gehitu gogokoak"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Ez duzu kontakturik oraindik"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Gehitu kontaktua"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Ukitu irudia zenbaki guztiak ikusteko, edo eduki ezazu sakatuta berrantolatzeko"</string> <string name="remove_contact" msgid="2353580570488923668">"Kendu"</string> + <string name="select_all" msgid="408601760696146245">"Hautatu guztiak"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Bideo-deia"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Bidali mezua"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Deiaren xehetasunak"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Blokeatutako zenbakiak"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> blokeatuta dago dagoeneko."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Deiak egiteko kontuak"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktibatu"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Ezarri baimenak"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Markatze bizkorra gaitzeko, aktibatu Kontaktuak erabiltzeko baimena."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Deien erregistroa ikusteko, aktibatu Telefonoa erabiltzeko baimena."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Kontaktuak ikusteko, aktibatu Kontaktuak erabiltzeko baimena."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Erantzungailuan sartzeko, aktibatu Telefonoa erabiltzeko baimena."</string> <string name="permission_no_search" msgid="2424710404207193826">"Kontaktuak bilatzeko, aktibatu kontaktuak atzitzeko baimenak."</string> <string name="permission_place_call" msgid="8686908130349369423">"Deiak egiteko, aktibatu Telefonoa erabiltzeko baimena."</string> diff --git a/java/com/android/dialer/app/res/values-fa/strings.xml b/java/com/android/dialer/app/res/values-fa/strings.xml index 9c8c01b64..eadb0dcb7 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"برگشت به تماس درحال انجام"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"افزودن تماس"</string> <string name="actionIncomingCall" msgid="891346596090030558">"تماسهای ورودی"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"درحال ورود به حالت اقدام انبوه"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"خروج از حالت اقدام انبوه"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> انتخاب شد"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> از حالت انتخاب خارج شد"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"پخش پست صوتی"</string> <string name="description_view_contact" msgid="3940984937384372665">"مشاهده مخاطب <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"تماس با <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"پست صوتی"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ثانیه"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> دقیقه <xliff:g id="SECONDS">%s</xliff:g> ثانیه"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"لغو حالت اقدام دستهای"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"پست صوتی"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"پستهای صوتی"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"بله"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"نه"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> انتخابشده حذف شود؟"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> مورد انتخاب شد"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ساعت <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"در حال بارگیری سیم کارت..."</string> <string name="simContacts_title" msgid="7961069730386378887">"مخاطبین سیم کارت"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"هیچ برنامه مخاطبی در دسترس نیست"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"جستجوی گفتاری در دسترس نیست"</string> <string name="call_not_available" msgid="7850148370757361155">"برقراری تماس تلفنی ممکن نیست، زیرا برنامه تلفن غیرفعال شده است."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"جستجوی مخاطبین"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> تماس بیپاسخ جدید"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"هنوز کسی در فهرست شمارهگیری سریع شما نیست"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"افزودن مورد دلخواه"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"هنوز هیچ مخاطبی ندارید"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"افزودن مخاطب"</string> <string name="contact_tooltip" msgid="8871614660967439999">"برای مشاهده همه شمارهها، تصویر را لمس کنید، یا برای ترتیب مجدد، لمس کنید و نگهدارید"</string> <string name="remove_contact" msgid="2353580570488923668">"حذف"</string> + <string name="select_all" msgid="408601760696146245">"انتخاب همه"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"تماس ویدئویی"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"ارسال پیام"</string> <string name="call_log_action_details" msgid="2091370737371449501">"جزئیات تماس"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"شمارههای مسدودشده"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> درحالحاضر مسدود شده است."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"حسابهای تماس"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"روشن کردن"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"تنظیم مجوزها"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"برای فعال کردن شمارهگیری سریع، مجوز «مخاطبین» را روشن کنید."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"برای دیدن گزارش تماستان، مجوز «تلفن» را روشن کنید."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"برای دیدن مخاطبینتان، مجوز «مخاطبین» را روشن کنید."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"برای دسترسی به پست صوتیتان، مجوز «تلفن» را روشن کنید."</string> <string name="permission_no_search" msgid="2424710404207193826">"برای جستجوی مخاطبینتان، مجوزهای مخاطبین را روشن کنید."</string> <string name="permission_place_call" msgid="8686908130349369423">"برای برقراری تماس، مجوز «تلفن» را روشن کنید."</string> diff --git a/java/com/android/dialer/app/res/values-fi/strings.xml b/java/com/android/dialer/app/res/values-fi/strings.xml index c5a103d48..951095908 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Palaa käynnissä olevaan puheluun"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Lisää puhelu"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Saapuvat puhelut"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Siirrytään joukkotoimintotilaan."</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Poistuttiin joukkotoimintotilasta."</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> valittiin."</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ei ole enää valittuna."</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Toista vastaajaviesti"</string> <string name="description_view_contact" msgid="3940984937384372665">"Näytä yhteystieto <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Soita: <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Vastaaja"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Peruuta joukkotoimintotila."</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"vastaajaviesti"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"vastaajaviestit"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Kyllä"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ei"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Poistetaanko <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> valittu"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> klo <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>.<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Ladataan SIM-kortilta…"</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM-kortin yhteystiedot"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Ei käytettävissä olevaa yhteystietosovellusta"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Puhehaku ei ole käytettävissä"</string> <string name="call_not_available" msgid="7850148370757361155">"Puhelua ei voi soittaa, koska Puhelin-sovellus on poistettu käytöstä."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Hae yhteystiedoista"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> uutta vastaamatonta puhelua"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Pikavalinnassa ei ole vielä yhtään yhteystietoa."</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Lisää suosikki"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Sinulla ei ole yhteystietoja."</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Lisää yhteystieto"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Katso kaikki numerot koskettamalla kuvaa tai järjestele tietoja koskettamalla kuvaa pitkään."</string> <string name="remove_contact" msgid="2353580570488923668">"Poista"</string> + <string name="select_all" msgid="408601760696146245">"Valitse kaikki"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videopuhelu"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Lähetä viesti"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Puhelun tiedot"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Estetyt numerot"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> on jo estetty."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Puhelutilit"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Ota käyttöön"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Määritä käyttöoikeudet"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Jos haluat käyttää pikavalintaa, ota Yhteystiedot-käyttöoikeus käyttöön."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Jos haluat katsella puhelulokiasi, ota Puhelin-käyttöoikeus käyttöön."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Jos haluat katsella yhteystietojasi, ota Yhteystiedot-käyttöoikeus käyttöön."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Jos haluat käyttää puhelinvastaajaa, ota Puhelin-käyttöoikeus käyttöön."</string> <string name="permission_no_search" msgid="2424710404207193826">"Jos haluat hakea kontaktejasi, ota käyttöön kontaktien käyttöoikeudet."</string> <string name="permission_place_call" msgid="8686908130349369423">"Jos haluat soittaa puheluja, ota Puhelin-käyttöoikeus käyttöön."</string> diff --git a/java/com/android/dialer/app/res/values-fr-rCA/strings.xml b/java/com/android/dialer/app/res/values-fr-rCA/strings.xml index d557d7442..6aa285c50 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Reprendre l\'appel en cours"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Autre appel"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Appels entrants"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrée du mode d\'action groupée en cours…"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Mode d\'action groupée quitté"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Sélection : <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Désélection : <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Écouter le message vocal"</string> <string name="description_view_contact" msgid="3940984937384372665">"Afficher le contact <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Appeler <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Messagerie vocale"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min et <xliff:g id="SECONDS">%s</xliff:g> sec"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Annuler le mode d\'action par lots"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"message vocal"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"messages vocaux"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Oui"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Non"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Supprimer la sélection (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>)?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> sélection(s)"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> à <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Chargement depuis la carte SIM..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Contacts de carte SIM"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Aucune application de gestion des contacts n\'est disponible"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Recherche vocale non disponible"</string> <string name="call_not_available" msgid="7850148370757361155">"Impossible d\'effectuer un appel téléphonique, car l\'application Téléphone a été désactivée."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Rechercher des contacts"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nouveaux appels manqués"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Aucun contact ne figure dans vos numéros de composition abrégée"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Ajouter un favori"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Vous n\'avez pas encore de contacts"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Ajouter un contact"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Touchez l\'image pour afficher tous les numéros, ou maintenez le doigt dessus pour les réorganiser"</string> <string name="remove_contact" msgid="2353580570488923668">"Supprimer"</string> + <string name="select_all" msgid="408601760696146245">"Tout sélectionner"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Appel vidéo"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Envoyer un message"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Détails de l\'appel"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Numéros bloqués"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"Le numéro <xliff:g id="NUMBER">%1$s</xliff:g> est déjà bloqué."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Comptes d\'appel"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Activer"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Définir les autorisations"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Pour activer la composition abrégée, activez l\'autorisation Contacts."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Pour consulter votre journal d\'appels, activez l\'autorisation Téléphone."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Pour consulter vos contacts, activez l\'autorisation Contacts."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Pour accéder à votre messagerie vocale, activez l\'autorisation Téléphone."</string> <string name="permission_no_search" msgid="2424710404207193826">"Pour rechercher vos contacts et les lieux à proximité, activez les autorisations Contacts."</string> <string name="permission_place_call" msgid="8686908130349369423">"Pour faire un appel, activez l\'autorisation Téléphone."</string> diff --git a/java/com/android/dialer/app/res/values-fr/strings.xml b/java/com/android/dialer/app/res/values-fr/strings.xml index d8a59395b..f539d2e55 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Reprendre l\'appel en cours"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Autre appel"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Appels entrants"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Activation du mode d\'action groupée"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Désactivation du mode d\'action groupée"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> sélectionné"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> désélectionné"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Écouter le message vocal"</string> <string name="description_view_contact" msgid="3940984937384372665">"Afficher le contact <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Appeler <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Messagerie vocale"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> secondes"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min et <xliff:g id="SECONDS">%s</xliff:g> s"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Annuler le mode d\'actions groupées"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"message vocal"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"messages vocaux"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Oui"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Non"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Supprimer les messages vocaux sélectionnés (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>) ?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> sélectionnés"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> à <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Chargement depuis la carte SIM..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Contacts de carte SIM"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Aucune application de gestion des contacts n\'est disponible."</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Recherche vocale non disponible"</string> <string name="call_not_available" msgid="7850148370757361155">"Impossible d\'effectuer un appel téléphonique, car l\'application Téléphone a été désactivée."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Rech. des contacts"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"Nouveaux appels manqués : <xliff:g id="NUMBER">%s</xliff:g>"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Aucun contact pour la numérotation abrégée"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Ajouter un favori"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Vous n\'avez pas encore de contacts."</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Ajouter un contact"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Appuyer sur l\'image pour afficher tous les numéros, ou appuyer dessus de manière prolongée pour réorganiser ces derniers"</string> <string name="remove_contact" msgid="2353580570488923668">"Supprimer"</string> + <string name="select_all" msgid="408601760696146245">"Tout sélectionner"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Appel vidéo"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Envoyer un message"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Informations sur l\'appel"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Numéros bloqués"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"Le numéro \"<xliff:g id="NUMBER">%1$s</xliff:g>\" est déjà bloqué."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Comptes téléphoniques"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Activer"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Définir les autorisations"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Pour activer la numérotation abrégée, activez l\'autorisation Contacts."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Pour consulter votre journal d\'appels, activez l\'autorisation Téléphone."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Pour consulter vos contacts, activez l\'autorisation Contacts."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Pour accéder à votre messagerie vocale, activez l\'autorisation Téléphone."</string> <string name="permission_no_search" msgid="2424710404207193826">"Pour rechercher vos contacts, activez l\'autorisation Contacts."</string> <string name="permission_place_call" msgid="8686908130349369423">"Pour passer un appel, activez l\'autorisation Téléphone."</string> diff --git a/java/com/android/dialer/app/res/values-gl/strings.xml b/java/com/android/dialer/app/res/values-gl/strings.xml index 33b55a740..ca31c5e47 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Volver á chamada en curso"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Engadir chamada"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Chamadas entrantes"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrando no modo de acción masiva"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Saíu do modo de acción masiva"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Seleccionouse: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Anulouse a selección de: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Reproducir correo de voz"</string> <string name="description_view_contact" msgid="3940984937384372665">"Ver contacto <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Chamar a <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Correo de voz"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancela o modo de accións en lote"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"correo de voz"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"correos de voz"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Si"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Non"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Queres eliminar a selección (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>)?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Cantidade seleccionada: <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ás <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Cargando da tarxeta SIM..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Contactos da tarxeta SIM"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Non hai aplicacións de contactos dispoñibles"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Busca por voz non dispoñible"</string> <string name="call_not_available" msgid="7850148370757361155">"Non se pode facer unha chamada telefónica porque se desactivou a aplicación de teléfono."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Buscar contactos"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> chamadas perdidas novas"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Aínda non tes ningún contacto na marcación directa"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Engade un favorito para a marcación directa"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Aínda non tes contactos"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Engade un contacto"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Toca a imaxe para ver todos os números ou mantena premida para reordenalos"</string> <string name="remove_contact" msgid="2353580570488923668">"Eliminar"</string> + <string name="select_all" msgid="408601760696146245">"Seleccionar todos"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videochamada"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar unha mensaxe"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Detalles da chamada"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"O <xliff:g id="NUMBER">%1$s</xliff:g> xa está bloqueado."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Contas de chamadas"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Activar"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Establecer permisos"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Para activar a marcación rápida, activa o permiso de Contactos."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Para ver o teu rexistro de chamadas, activa o permiso de Teléfono."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver os teus contactos, activa o permiso de Contactos."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Para acceder ao correo de voz, activa o permiso de Teléfono."</string> <string name="permission_no_search" msgid="2424710404207193826">"Para buscar os teus contactos, activa os permisos de Contactos."</string> <string name="permission_place_call" msgid="8686908130349369423">"Para facer unha chamada, activa o permiso de Teléfono."</string> diff --git a/java/com/android/dialer/app/res/values-gu/strings.xml b/java/com/android/dialer/app/res/values-gu/strings.xml index 1df18269e..fbe4d0aaa 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"કૉલ પર પાછા આવવું પ્રગતિ પર છે"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"કૉલ ઉમેરો"</string> <string name="actionIncomingCall" msgid="891346596090030558">"ઇનકમિંગ કૉલ્સ"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"બલ્ક ક્રિયા મોડમાં દાખલ થઈ રહ્યાં છે"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"બલ્ક ક્રિયા મોડ છોડી દીધો"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> પસંદ કર્યો"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> પસંદગીમાંથી દૂર કર્યો"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"વૉઇસમેઇલ ચલાવો"</string> <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> સંપર્ક જુઓ"</string> <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ને કૉલ કરો"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"વૉઇસમેઇલ"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> સેકંડ"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> મિ <xliff:g id="SECONDS">%s</xliff:g> સે"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"બૅચ ક્રિયા મોડ રદ કરો"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"વૉઇસમેઇલ"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"વૉઇસમેઇલ"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"હા"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"નહીં"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"પસંદ કરેલ <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>ને કાઢી નાખીએ?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> પસંદ કરી"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> નાં રોજ <xliff:g id="TIME">%2$s</xliff:g> વાગ્યે"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM કાર્ડમાંથી લોડ કરી રહ્યું છે…"</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM કાર્ડ સંપર્કો"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"કોઈ સંપર્કો ઍપ્લિકેશન ઉપલબ્ધ નથી"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"વૉઇસ શોધ ઉપલબ્ધ નથી"</string> <string name="call_not_available" msgid="7850148370757361155">"ફોન કૉલ કરી શકાતો નથી કારણ કે ફોન ઍપ્લિકેશન અક્ષમ કરવામાં આવી છે."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"સંપર્કો શોધો"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> નવા છૂટેલા કૉલ્સ"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"તમારા ઝડપી ડાયલ પર હજી સુધી કોઇ નથી"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"એક મનપસંદ ઉમેરો"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"તમે હજી સુધી કોઇપણ સંપર્કો ધરાવતાં નથી"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"સંપર્ક ઉમેરો"</string> <string name="contact_tooltip" msgid="8871614660967439999">"બધા નંબર્સ જોવા માટે છબી ટચ કરો અથવા પુનઃક્રમાંકિત કરવા માટે ટચ કરો અને પકડી રાખો"</string> <string name="remove_contact" msgid="2353580570488923668">"દૂર કરો"</string> + <string name="select_all" msgid="408601760696146245">"તમામ પસંદ કરો"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"વિડિઓ કૉલ"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"એક સંદેશ મોકલો"</string> <string name="call_log_action_details" msgid="2091370737371449501">"કૉલની વિગતો"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"અવરોધિત નંબરો"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ને પહેલેથી અવરોધિત કરવામાં આવ્યો છે."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"કૉલિંગ એકાઉન્ટ્સ"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"ચાલુ કરો"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"પરવાનગીઓ સેટ કરો"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"ઝડપી ડાયલ સક્ષમ કરવા માટે, સંપર્કોની પરવાનગી ચાલુ કરો."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"તમારો કૉલ લૉગ જોવા માટે, ફોન પરવાનગી ચાલુ કરો."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"તમારા સંપર્કો જોવા માટે, સંપર્કોની પરવાનગી ચાલુ કરો."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"તમારી વૉઇસમેઇલને ઍક્સેસ કરવા માટે, ફોન પરવાનગી ચાલુ કરો."</string> <string name="permission_no_search" msgid="2424710404207193826">"તમારા સંપર્કો શોધવા માટે, સંપર્કોની પરવાનગીઓ ચાલુ કરો."</string> <string name="permission_place_call" msgid="8686908130349369423">"કૉલ કરવા માટે, ફોન પરવાનગી ચાલુ કરો."</string> diff --git a/java/com/android/dialer/app/res/values-hi/strings.xml b/java/com/android/dialer/app/res/values-hi/strings.xml index 84d2d974a..c998e4402 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"कॉल पर लौटना प्रगति पर है"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"कॉल जोड़ें"</string> <string name="actionIncomingCall" msgid="891346596090030558">"इनकमिंग कॉल"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"बल्क कार्रवाई मोड में प्रवेश कर रहे हैं"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"बल्क कार्रवाई मोड छोड़ा"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> को चुना गया"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> को नहीं चुना गया"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"ध्वनिमेल चलाएं"</string> <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> संपर्क देखें"</string> <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> को कॉल करें"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"वॉयस मेल"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> सेकंड"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> मि. <xliff:g id="SECONDS">%s</xliff:g> से."</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"बैच कार्रवाई मोड रद्द करें"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"वॉयसमेल"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"वॉयसमेल"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"हां"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"नहीं"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"क्या चुने गए <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> हटाना चाहते हैं?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> चयनित"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> को <xliff:g id="TIME">%2$s</xliff:g> बजे"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"सिम कार्ड से लोड हो रहा है…"</string> <string name="simContacts_title" msgid="7961069730386378887">"सिम कार्ड के संपर्क"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"कोई भी संपर्क ऐप उपलब्ध नहीं है"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"बोलकर खोजना उपलब्ध नहीं है"</string> <string name="call_not_available" msgid="7850148370757361155">"फ़ोन कॉल नहीं किया जा सकता क्योंकि फ़ोन ऐप्लिकेशन अक्षम कर दिया गया है."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"संपर्क खोजें"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> छूटे हुए नए कॉल"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"आपके स्पीड डायल पर अभी तक कोई भी नहीं है"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"कोई पसंदीदा जोड़ें"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"आपके पास अभी कोई भी संपर्क नहीं है"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"कोई संपर्क जोड़ें"</string> <string name="contact_tooltip" msgid="8871614660967439999">"सभी नंबर देखने के लिए चित्र को स्पर्श करें या पुन: क्रमित करने के लिए स्पर्श करके रखें"</string> <string name="remove_contact" msgid="2353580570488923668">"निकालें"</string> + <string name="select_all" msgid="408601760696146245">"सभी चुनें"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"वीडियो कॉल"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"संदेश भेजें"</string> <string name="call_log_action_details" msgid="2091370737371449501">"कॉल विवरण"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"अवरोधित नंबर"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> पहले से अवरोधित है."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"कॉलिंग खाते"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"चालू करें"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"अनुमतियां सेट करें"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"स्पीड डायल सक्षम करने के लिए, संपर्क अनुमति चालू करें."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"अपना कॉल लॉग देखने के लिए, फ़ोन अनुमति चालू करें."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"अपने संपर्क देखने के लिए, संपर्क अनुमति चालू करें."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"अपना वॉइसमेल ऐक्सेस करने के लिए, फ़ोन अनुमति चालू करें."</string> <string name="permission_no_search" msgid="2424710404207193826">"अपने संपर्कों की खोज करने के लिए, संपर्क अनुमतियों को चालू करें."</string> <string name="permission_place_call" msgid="8686908130349369423">"कॉल करने के लिए, फ़ोन अनुमति चालू करें."</string> diff --git a/java/com/android/dialer/app/res/values-hr/strings.xml b/java/com/android/dialer/app/res/values-hr/strings.xml index cd3535372..5261cfb0d 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Natrag na poziv u tijeku"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Dodaj poziv"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Dolazni pozivi"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Ulazak u način skupne radnje"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Napuštanje načina skupne radnje"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Odabrano: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Poništen odabir: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Reprodukcija govorne pošte"</string> <string name="description_view_contact" msgid="3940984937384372665">"Prikaz kontakta <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Nazovi <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -100,11 +104,13 @@ <string name="voicemail" msgid="8899540969000957954">"Govorna pošta"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Otkaži način skupnih radnji"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"poruka govorne pošte"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"poruke govorne pošte"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Da"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Želite li izbrisati odabranu poruku/e govorne pošte <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Odabrano: <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> u <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>.<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -117,7 +123,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Učitavanje sa SIM kartice..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Kontakti SIM kartice"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Nije dostupna nijedna aplikacija za kontakte"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Glasovno pretraživanje nije dostupno"</string> <string name="call_not_available" msgid="7850148370757361155">"Telefoniranje nije moguće jer je aplikacija Telefon onemogućena."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Pretraži kontakte"</string> @@ -146,10 +151,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"Broj novih propuštenih poziva: <xliff:g id="NUMBER">%s</xliff:g>"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Još nemate nikog na brzom biranju"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Dodaj omiljeni kontakt"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Još nemate nijedan kontakt"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Dodajte kontakt"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Dodirnite sliku da biste vidjeli sve brojeve ili dodirnite i zadržite da biste promijenili redoslijed"</string> <string name="remove_contact" msgid="2353580570488923668">"Ukloni"</string> + <string name="select_all" msgid="408601760696146245">"Odaberi sve"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videopoziv"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Pošalji poruku"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Pojedinosti poziva"</string> @@ -215,11 +219,9 @@ <string name="block_list" msgid="4701585783411870782">"Blokirani brojevi"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"Broj <xliff:g id="NUMBER">%1$s</xliff:g> već je blokiran."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Pozivanje računa"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Uključi"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Postavi dopuštenja"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Da biste omogućili brzo biranje, uključite dopuštenje za kontakte."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Da biste vidjeli zapisnik poziva, uključite dopuštenje za telefon."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Da biste vidjeli svoje kontakte, uključite dopuštenje za kontakte."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Da biste pristupili govornoj pošti, uključite dopuštenje za telefon."</string> <string name="permission_no_search" msgid="2424710404207193826">"Da biste pretraživali kontakte, uključite dopuštenja za kontakte."</string> <string name="permission_place_call" msgid="8686908130349369423">"Da biste nazvali nekog, uključite dopuštenje za telefon."</string> diff --git a/java/com/android/dialer/app/res/values-hu/strings.xml b/java/com/android/dialer/app/res/values-hu/strings.xml index 2e64d745d..452f0da47 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Vissza a folyamatban lévő híváshoz"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Hívás hozzáadása"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Bejövő hívások"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Belépés tömeges műveleti módba"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Kilépett a tömeges műveleti módból"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Kijelölés: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Kijelölés megszüntetve: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Hangposta lejátszása"</string> <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> névjegyének megtekintése"</string> <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> hívása"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Hangposta"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> másodperc"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> perc <xliff:g id="SECONDS">%s</xliff:g> másodperc"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Köteges művelet mód leállítva"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"hangpostaüzenetet"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"hangpostaüzeneteket"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Igen"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nem"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Törli a kiválasztott <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> kiválasztva"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Betöltés a SIM kártyáról..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Névjegyek a SIM kártyán"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Nincs elérhető névjegyek alkalmazás"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"A hangalapú keresés nem érhető el"</string> <string name="call_not_available" msgid="7850148370757361155">"Nem lehet telefonhívást kezdeményezni, mert a Telefon alkalmazást letiltották."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Keresés a névjegyek között"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> új nem fogadott hívás"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Még semelyik telefonszám sincs gyorshívón"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Kedvenc hozzáadása"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Még nem rendelkezik egyetlen névjeggyel sem"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Névjegy hozzáadása"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Koppintson a képre az összes szám megjelenítéséhez, vagy tartsa nyomva az átrendezéshez"</string> <string name="remove_contact" msgid="2353580570488923668">"Eltávolítás"</string> + <string name="select_all" msgid="408601760696146245">"Az összes kijelölése"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videohívás"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Üzenet küldése"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Hívás adatai"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Letiltott számok"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"A következő szám már le van tiltva: <xliff:g id="NUMBER">%1$s</xliff:g>."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Telefonos fiókok"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Engedélyezés"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Engedélyek beállítása"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Gyorshívás engedélyezéséhez kapcsolja be a Névjegyek engedélyt."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"A hívásnapló megtekintéséhez kapcsolja be a Telefon engedélyt."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"A névjegyek megtekintéséhez kapcsolja be a Névjegyek engedélyt."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"A hangposta eléréséhez kapcsolja be a Telefon engedélyt."</string> <string name="permission_no_search" msgid="2424710404207193826">"A névjegyek kereséséhez adja meg a Névjegyek engedélyeket."</string> <string name="permission_place_call" msgid="8686908130349369423">"Hívásindításhoz kapcsolja be a Telefon engedélyt."</string> diff --git a/java/com/android/dialer/app/res/values-hy/strings.xml b/java/com/android/dialer/app/res/values-hy/strings.xml index 6f3931c9f..97a84f2fe 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Վերադառնալ ընթացիկ զանգին"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Ավելացնել զանգ"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Մուտքային զանգեր"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Մուտք զանգվածային գործողությունների ռեժին"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Դուք դուրս եկաք զանգվածային գործողությունների ռեժիմից"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Ընտրվեց՝ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Ապընտրվեց՝ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Նվագարկել ձայնային փոստը"</string> <string name="description_view_contact" msgid="3940984937384372665">"Դիտել <xliff:g id="NAME">%1$s</xliff:g> կոնտակտը"</string> <string name="description_call" msgid="1532402285334775372">"Զանգել <xliff:g id="NAME">%1$s</xliff:g>-ին"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Ձայնային փոստ"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> վրկ"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> րոպե <xliff:g id="SECONDS">%s</xliff:g> վայրկյան"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Չեղարկել փաթեթային գործողությունների ռեժիմը"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ձայնային հաղորդագրություն"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ձայնային հաղորդագրություններ"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Այո"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ոչ"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Ջնջե՞լ նշված <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>ը"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Ընտրվել է՝ <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>-ին, ժամը <xliff:g id="TIME">%2$s</xliff:g>-ին"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM քարտը բեռնվում է..."</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM քարտի կոնտակտները"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Կոնտակտների հավելված չկա"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Ձայնային որոնումը հասանելի չէ"</string> <string name="call_not_available" msgid="7850148370757361155">"Հնարավոր չէ զանգահարել, քանի որ Հեռախոս հավելվածն անջատված է:"</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Կոնտակտների որոնում"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> նոր բաց թողնված զանգ"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Արագ համարահավաքման ցանկը դատարկ է"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Ավելացնել կոնտակտ"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Դեռ կոնտակտներ չունեք"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Ավելացնել կոնտակտ"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Բոլոր համարները տեսնելու համար հպեք պատկերին: Վերադասավորելու համար հպեք և պահեք:"</string> <string name="remove_contact" msgid="2353580570488923668">"Հեռացնել"</string> + <string name="select_all" msgid="408601760696146245">"Ընտրել բոլորը"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Տեսազանգ"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Ուղարկել հաղորդագրություն"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Զանգի մանրամասները"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Արգելափակված համարներ"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> համարն արդեն արգելափակված է:"</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Հաշիվներ զանգերի համար"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Միացնել"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Թույլտվությունների սահմանում"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Արագ համարահավաքը թույլատրելու համար միացրեք Կոնտակտների թույլտվությունը:"</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Ձեր զանգերի մատյանը տեսնելու համար միացրեք Հեռախոսի թույլտվությունը:"</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Ձեր կոնտակտները տեսնելու համար միացրեք Կոնտակտների թույլտվությունը:"</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Ձայնային փոստն օգտագործելու համար միացրեք Հեռախոսի թույլտվությունը:"</string> <string name="permission_no_search" msgid="2424710404207193826">"Կոնտակտները որոնելու համար միացրեք Կոնտակտների թույլտվությունները:"</string> <string name="permission_place_call" msgid="8686908130349369423">"Զանգ կատարելու համար միացրեք Հեռախոսի թույլտվությունը:"</string> diff --git a/java/com/android/dialer/app/res/values-in/strings.xml b/java/com/android/dialer/app/res/values-in/strings.xml index c0de9b3b4..f309f927b 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Kembali ke panggilan sedang berlangsung"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Tambahkan panggilan"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Panggilan masuk"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Masuk ke mode tindakan massal"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Keluar dari mode tindakan massal"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> dipilih"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> tidak dipilih"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Putar pesan suara"</string> <string name="description_view_contact" msgid="3940984937384372665">"Lihat kontak <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Telepon <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Kotak Pesan"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> dtk"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> mnt <xliff:g id="SECONDS">%s</xliff:g> dtk"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Membatalkan mode tindakan kelompok"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"pesan suara"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"pesan suara"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ya"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Tidak"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Hapus <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> yang dipilih?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> dipilih"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> pukul <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>.<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Memuat dari kartu SIM..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Kontak pada kartu SIM"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Aplikasi kontak tidak tersedia"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Penelusuran suara tidak tersedia"</string> <string name="call_not_available" msgid="7850148370757361155">"Tidak dapat melakukan panggilan telepon karena aplikasi Telepon telah dinonaktifkan."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Telusuri kontak"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> panggilan tidak terjawab baru"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Daftar panggilan cepat masih kosong"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Tambahkan favorit"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Anda belum memiliki kontak"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Tambahkan kontak"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Sentuh foto untuk melihat semua nomor atau sentuh & tahan untuk menyusun ulang"</string> <string name="remove_contact" msgid="2353580570488923668">"Hapus"</string> + <string name="select_all" msgid="408601760696146245">"Pilih semua"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Panggilan video"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Kirim pesan"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Detail panggilan"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Nomor yang diblokir"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> sudah diblokir."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Akun panggilan"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktifkan"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Setel izin"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Untuk mengaktifkan panggilan cepat, aktifkan izin Kontak."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Untuk melihat log panggilan, aktifkan izin Telepon."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Untuk melihat kontak, aktifkan izin Kontak."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Untuk mengakses pesan suara, aktifkan izin Telepon."</string> <string name="permission_no_search" msgid="2424710404207193826">"Untuk menelusuri kontak, aktifkan izin Kontak."</string> <string name="permission_place_call" msgid="8686908130349369423">"Untuk melakukan panggilan, aktifkan izin Telepon."</string> diff --git a/java/com/android/dialer/app/res/values-is/strings.xml b/java/com/android/dialer/app/res/values-is/strings.xml index fdd635668..b291eae84 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Fara aftur í símtal í gangi"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Bæta við símtali"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Móttekin símtöl"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Opnar fjöldaaðgerðastillingu"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Fjöldaaðgerðastillingu lokað"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Valdi <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Fjarlægði val á <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Spila talhólfsskilaboð"</string> <string name="description_view_contact" msgid="3940984937384372665">"Skoða tengiliðinn <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Hringja í <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Talhólf"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> mín. og <xliff:g id="SECONDS">%s</xliff:g> sek."</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Hætta við runuaðgerðastillingu"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"talhólfsskilaboð"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"talhólfsskilaboð"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Já"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nei"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Eyða völdum <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> valin"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Hleður af SIM-kortinu…"</string> <string name="simContacts_title" msgid="7961069730386378887">"Tengiliðir á SIM-korti"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Ekkert tengiliðaforrit í boði"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Raddleit er ekki í boði"</string> <string name="call_not_available" msgid="7850148370757361155">"Ekki er hægt að hringja vegna þess að forritið Sími hefur verið gert óvirkt."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Leita í tengiliðum"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ný ósvöruð símtöl"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Þú ert ekki með neinn í hraðvali enn sem komið er"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Bæta uppáhaldi við"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Þú ert ekki með neina tengiliði enn sem komið er"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Bæta tengilið við"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Snertu myndina til að sjá öll númer eða haltu henni inni til að endurraða"</string> <string name="remove_contact" msgid="2353580570488923668">"Fjarlægja"</string> + <string name="select_all" msgid="408601760696146245">"Velja allt"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Myndsímtal"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Senda skilaboð"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Símtalsupplýsingar"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Númer á bannlista"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> er nú þegar á bannlista."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Símtalareikningar"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Kveikja"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Stilla heimildir"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Kveiktu á tengiliðaheimildinni til að gera hraðval virkt."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Kveiktu á heimild símaforritsins til að sjá símtalaskrána þína."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Kveiktu á tengiliðaheimildinni til að sjá tengiliðina þína."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Kveiktu á heimild símaforritsins til að fá aðgang að talhólfinu þínu."</string> <string name="permission_no_search" msgid="2424710404207193826">"Kveiktu á heimildunum fyrir tengiliði til að leita að tengiliðum."</string> <string name="permission_place_call" msgid="8686908130349369423">"Kveiktu á heimild símaforritsins til að hringja símtal."</string> diff --git a/java/com/android/dialer/app/res/values-it/strings.xml b/java/com/android/dialer/app/res/values-it/strings.xml index 9bd8cd359..711ab26ee 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Torna alla chiamata in corso"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Aggiungi chiamata"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Chiamate in arrivo"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Attivazione della modalità di azione collettiva"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Disttivazione della modalità di azione collettiva"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> selezionato"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> deselezionato"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Riproduci messaggio vocale"</string> <string name="description_view_contact" msgid="3940984937384372665">"Visualizza <xliff:g id="NAME">%1$s</xliff:g> contatto"</string> <string name="description_call" msgid="1532402285334775372">"Chiama <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Segreteria"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> secondi"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Annulla modalità di azione collettiva"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"messaggio vocale"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"messaggi vocali"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sì"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Eliminare i <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> selezionati?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selezionate"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> alle ore <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Caricamento da SIM..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Contatti SIM"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Nessuna app di contatti disponibile"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Ricerca vocale non disponibile"</string> <string name="call_not_available" msgid="7850148370757361155">"Impossibile effettuare una telefonata perché l\'applicazione Telefono è stata disattivata."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Cerca contatti"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nuove chiamate perse"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Nessun preferito disponibile nella Composizione rapida"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Aggiungi un preferito"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Nessun contatto disponibile"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Aggiungi un contatto"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Tocca l\'immagine per visualizzare tutti i numeri oppure tieni premuto per cambiare l\'ordine"</string> <string name="remove_contact" msgid="2353580570488923668">"Rimuovi"</string> + <string name="select_all" msgid="408601760696146245">"Seleziona tutto"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videochiamata"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Invia un messaggio"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Dettagli chiamata"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Numeri bloccati"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> è già bloccato."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Account di chiamata"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Attiva"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Imposta autorizzazioni"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Per attivare la composizione rapida, attiva l\'autorizzazione Contatti."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Per accedere al registro chiamate, attiva l\'autorizzazione sul telefono."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Per accedere ai tuoi contatti, attiva l\'autorizzazione Contatti."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Per accedere alla segreteria, attiva l\'autorizzazione sul telefono."</string> <string name="permission_no_search" msgid="2424710404207193826">"Per cercare nei tuoi contatti, attiva le autorizzazioni Contatti."</string> <string name="permission_place_call" msgid="8686908130349369423">"Per fare una chiamata, attiva l\'autorizzazione sul telefono."</string> diff --git a/java/com/android/dialer/app/res/values-iw/strings.xml b/java/com/android/dialer/app/res/values-iw/strings.xml index bb115e2f8..bd2a05aec 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"חזור לשיחה פעילה"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"הוסף שיחה"</string> <string name="actionIncomingCall" msgid="891346596090030558">"שיחות נכנסות"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"עברת למצב של ביצוע פעולות בכמות גדולה"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"עזבת את המצב של ביצוע פעולות בכמות גדולה"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"בחרת את <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"ביטלת את הבחירה של <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"הפעל דואר קולי"</string> <string name="description_view_contact" msgid="3940984937384372665">"הצג את איש הקשר <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"התקשר אל <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -101,11 +105,13 @@ <string name="voicemail" msgid="8899540969000957954">"דואר קולי"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> שניות"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> דק\' <xliff:g id="SECONDS">%s</xliff:g> שנ\'"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"ביטול המצב של ביצוע פעולות בכמות גדולה"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ההודעה הקולית"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ההודעות הקוליות"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"כן"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"לא"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"האם למחוק את <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> שבחרת?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> נבחרו"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ב-<xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -118,7 +124,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"טוען מכרטיס SIM…"</string> <string name="simContacts_title" msgid="7961069730386378887">"אנשי קשר בכרטיס SIM"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"אין אפליקציה זמינה עבור אנשי קשר"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"חיפוש קולי אינו זמין"</string> <string name="call_not_available" msgid="7850148370757361155">"לא ניתן לבצע שיחת טלפון מפני שאפליקציית הטלפון הושבתה."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"חפש אנשי קשר"</string> @@ -147,10 +152,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> שיחות חדשות שלא נענו"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"עדיין לא הוגדר חיוג מהיר לאף איש קשר"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"הוסף פריט מועדף"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"עדיין אין לך אנשי קשר"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"הוסף איש קשר"</string> <string name="contact_tooltip" msgid="8871614660967439999">"גע בתמונה כדי להציג את כל המספרים או גע והחזק כדי לשנות את הסדר"</string> <string name="remove_contact" msgid="2353580570488923668">"הסר"</string> + <string name="select_all" msgid="408601760696146245">"בחירת הכל"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"שיחת וידאו"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"שלח הודעה"</string> <string name="call_log_action_details" msgid="2091370737371449501">"פרטי שיחה"</string> @@ -217,11 +221,9 @@ <string name="block_list" msgid="4701585783411870782">"מספרים חסומים"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> כבר חסום."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"חשבונות לביצוע שיחות"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"הפעל"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"הגדר הרשאות"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"כדי להפעיל חיוג מהיר, הפעל את ההרשאה \'אנשי קשר\'."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"כדי לראות את יומן השיחות, הפעל את ההרשאה \'טלפון\'."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"כדי להציג את אנשי הקשר, הפעל את ההרשאה \'אנשי קשר\'."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"כדי לגשת לדואר הקולי, הפעל את ההרשאה \'טלפון\'."</string> <string name="permission_no_search" msgid="2424710404207193826">"כדי לחפש באנשי הקשר, הפעל את ההרשאה \'אנשי קשר\'."</string> <string name="permission_place_call" msgid="8686908130349369423">"כדי להתקשר, הפעל את ההרשאה \'טלפון\'."</string> diff --git a/java/com/android/dialer/app/res/values-ja/strings.xml b/java/com/android/dialer/app/res/values-ja/strings.xml index 63b15cbed..9ba40fb8f 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"通話に戻る"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"別の通話を追加"</string> <string name="actionIncomingCall" msgid="891346596090030558">"着信"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"一括操作モードを開始します"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"一括操作モードを終了しました"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> を選択しました"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> を選択解除しました"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"ボイスメールを再生"</string> <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g>の連絡先を表示"</string> <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g>に発信"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"ボイスメール"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g>秒"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g>分<xliff:g id="SECONDS">%s</xliff:g>秒"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"一括操作モードをキャンセルします"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ボイスメール"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ボイスメール"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"はい"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"いいえ"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"選択した<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>を削除しますか?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> 件選択済み"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>、<xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g> 分 <xliff:g id="SECONDS">%2$02d</xliff:g> 秒"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIMカードから読み取り中..."</string> <string name="simContacts_title" msgid="7961069730386378887">"SIMカードの連絡先"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"連絡先アプリがありません"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"音声検索を利用できません"</string> <string name="call_not_available" msgid="7850148370757361155">"電話アプリが無効になっているため発信できません。"</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"連絡先を検索"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g>件の不在着信"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"クイックアクセスに登録済みの連絡先はまだありません"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"お気に入りを追加"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"連絡先はまだありません"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"連絡先を追加"</string> <string name="contact_tooltip" msgid="8871614660967439999">"画像をタップするとすべての番号が表示され、押し続けると番号を並べ替えることができます"</string> <string name="remove_contact" msgid="2353580570488923668">"削除"</string> + <string name="select_all" msgid="408601760696146245">"すべて選択"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"ビデオハングアウト"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"メッセージを送信"</string> <string name="call_log_action_details" msgid="2091370737371449501">"通話の詳細"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"ブロックした番号"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g>は既にブロックしています。"</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"通話アカウント"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"ONにする"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"権限を設定"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"クイックアクセスを有効にするには、連絡先権限をONにしてください。"</string> <string name="permission_no_calllog" msgid="4053705651238775784">"通話履歴を表示するには、電話権限をONにしてください。"</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"連絡先を表示するには、連絡先権限をONにしてください。"</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"ボイスメールにアクセスするには、電話権限をONにしてください。"</string> <string name="permission_no_search" msgid="2424710404207193826">"連絡先を検索するには、連絡先権限をONにしてください。"</string> <string name="permission_place_call" msgid="8686908130349369423">"電話をかけるには、電話権限をONにしてください。"</string> diff --git a/java/com/android/dialer/app/res/values-ka/strings.xml b/java/com/android/dialer/app/res/values-ka/strings.xml index ae89505b5..dbb48f4f5 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"მიმდინარე ზარზე დაბრუნება"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ზარის დამატება"</string> <string name="actionIncomingCall" msgid="891346596090030558">"შემომავალი ზარები"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"მიმდინარეობს ერთიანი ქმედების რეჟიმში შესვლა"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ერთიანი ქმედების რეჟიმიდან გამოხვედით"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"არჩეულია <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-ის არჩევა გაუქმდა"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"ხმოვანი ფოსტის ჩართვა"</string> <string name="description_view_contact" msgid="3940984937384372665">"კონტაქტის <xliff:g id="NAME">%1$s</xliff:g> ნახვა"</string> <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g>-თან დარეკვა"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"ხმოვანი ფოსტა"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> წმ"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> მინ <xliff:g id="SECONDS">%s</xliff:g> წამ"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"ერთიანი ქმედების რეჟიმის გაუქმება"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ხმოვანი ფოსტა"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ხმოვანი ფოსტა"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"დიახ"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"არა"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"გსურთ, წაშალოთ არჩეული <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"არჩეულია <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"იტვირთება SIM ბარათიდან…"</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM ბარათის კონტაქტები"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"კონტაქტების აპლიკაცია არ არის ხელმისაწვდომი"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"ხმოვანი ძიება არ არის ხელმისაწვდომი"</string> <string name="call_not_available" msgid="7850148370757361155">"სატელეფონო ზარის განხორციელება ვერ ხერხდება, ვინაიდან ტელეფონის აპლიკაცია გაუქმებულია."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"კონტაქტებში ძიება"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ახალი გაცდენილი ზარი"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"სწრაფი აკრეფისთვის რჩეულები ჯერ არ გყავთ"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"რჩეული კონტაქტის დამატება"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"კონტაქტები ჯერ არ გაქვთ"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"კონტაქტის დამატება"</string> <string name="contact_tooltip" msgid="8871614660967439999">"ყველა ნომრის სანახავად შეეხეთ სურათს ან შეეხეთ და დააყოვნეთ მიმდევრობის შესაცვლელად"</string> <string name="remove_contact" msgid="2353580570488923668">"ამოშლა"</string> + <string name="select_all" msgid="408601760696146245">"ყველას არჩევა"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"ვიდეო ზარი"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"შეტყობინების გაგზავნა"</string> <string name="call_log_action_details" msgid="2091370737371449501">"ზარის მონაცემები"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"დაბლოკილი ნომრები"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> უკვე დაბლოკილია."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"ანგარიშების გამოძახება"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"ჩართვა"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ნებართვების დაყენება"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"სწრაფი აკრეფის გასააქტიურებლად, ჩართეთ კონტაქტების ნებართვა."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"ზარების ჟურნალის სანახავად, ჩართეთ ტელეფონის ნებართვა."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"კონტაქტების სანახავად, ჩართეთ კონტაქტების ნებართვა."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"ხმოვან ფოსტაზე წვდომისთვის, ჩართეთ ტელეფონის ნებართვა."</string> <string name="permission_no_search" msgid="2424710404207193826">"თქვენი კონტაქტების მოსაძებნად ჩართეთ კონტაქტების ნებართვები."</string> <string name="permission_place_call" msgid="8686908130349369423">"ზარის განსახორციელებლად, ჩართეთ ტელეფონის ნებართვა."</string> diff --git a/java/com/android/dialer/app/res/values-kk/strings.xml b/java/com/android/dialer/app/res/values-kk/strings.xml index ba4238692..8dfe531a1 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Қосылып тұрған қоңырауға оралу"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Қоңырау қосу"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Келген қоңыраулар"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Жаппай әрекет режиміне өту"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Жаппай әрекет режиімінен шығу"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> таңдалды"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> таңдауы алынды"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Дауыс-хабарды ойнату"</string> <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> контактісін көру"</string> <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> нөміріне қоңырау шалу"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Дауыстық пошта"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мин <xliff:g id="SECONDS">%s</xliff:g> сек"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Топтама әрекеттер режимін жабу"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"дауыстық хабар"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"дауыстық хабарлар"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Иә"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Жоқ"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Таңдалған <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> хабарларын жою қажет пе?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> таңдалды"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID (ұялы жабдық анықтағыш)"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM картасынан жүктеу…"</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM картасының контактілері"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Контактілер қолданбасы қол жетімді емес"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Дауыс арқылы іздеу қол жетімді емес"</string> <string name="call_not_available" msgid="7850148370757361155">"Телефон қоңырауын шалу мүмкін емес, өйткені «Телефон» қолданбасы өшірілген."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Контактілерді іздеу"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> жаңа қабылданбаған қоңыраулар"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Жылдам теруде әлі ешкім жоқ"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Таңдаулыны қосу"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Әлі ешқандай контактілер жоқ"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Контакт қосу"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Барлық нөмірлерді көру үшін кескінді түртіңіз, ал ретін өзгерту үшін түртіп, ұстап тұрыңыз"</string> <string name="remove_contact" msgid="2353580570488923668">"Алып тастау"</string> + <string name="select_all" msgid="408601760696146245">"Барлығын таңдау"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Бейне қоңырау"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Хабар жіберу"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Қоңырау мәліметтері"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Бөгелген нөмірлер"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгеліп қойылған."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Қоңырау шалу есептік жазбалары"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Қосу"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Рұқсаттар орнату"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Жылдам теруді қосу үшін \"Контактілер\" рұқсатын қосыңыз."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Қоңыраулар журналы көру үшін \"Телефон\" рұқсатын қосыңыз."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Контактілерді көру үшін \"Контактілер\" рұқсатын қосыңыз."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Дауыс поштасына қатынасу үшін \"Телефон\" рұқсатын қосыңыз."</string> <string name="permission_no_search" msgid="2424710404207193826">"Контактілерді іздеу үшін \"Контактілер\" рұқсаттарын қосыңыз."</string> <string name="permission_place_call" msgid="8686908130349369423">"Қоңырауды шалу үшін \"Телефон\" рұқсатын қосыңыз."</string> diff --git a/java/com/android/dialer/app/res/values-km/strings.xml b/java/com/android/dialer/app/res/values-km/strings.xml index bdc91cf0b..ed0db05e2 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"កំពុងត្រឡប់ទៅកាន់ការហៅ"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"បន្ថែមការហៅ"</string> <string name="actionIncomingCall" msgid="891346596090030558">"ការហៅចូល"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ចូលមុខងារសកម្មភាពច្រើន"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"បានចាកចេញពីមុខងារសកម្មភាពច្រើន"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"បានជ្រើសរើស <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"បានដកការជ្រើសរើស <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"ចាក់សារជាសំឡេង"</string> <string name="description_view_contact" msgid="3940984937384372665">"មើលទំនាក់ទំនង <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"ហៅ <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"សារជាសំឡេង"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> វិនាទី"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> នាទី <xliff:g id="SECONDS">%s</xliff:g> វិនាទី"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"បោះបង់មុខងារសកម្មភាពជាក្រុម"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"សារជាសំឡេង"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"សារជាសំឡេង"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"បាទ/ចាស"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ទេ"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"លុប <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ដែលបានជ្រើសរើស?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"បានជ្រើសរើស <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> នៅម៉ោង <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"កំពុងផ្ទុកពីស៊ីមកាត..."</string> <string name="simContacts_title" msgid="7961069730386378887">"ទំនាក់ទំនងនៅក្នុងស៊ីមកាត"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"មិនមានកម្មវិធីទំនាក់ទំនងទេ"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"ការស្វែងរកជាសម្លេងមិនមានទេ"</string> <string name="call_not_available" msgid="7850148370757361155">"មិនអាចហៅបានទេ ព្រោះកម្មវិធីទូរស័ព្ទត្រូវបានបិទ។"</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"រកទំនាក់ទំនង"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"ខកខានទទួលថ្មី <xliff:g id="NUMBER">%s</xliff:g>"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"គ្មាននរណាម្នាក់នៅក្នុងការហៅរហ័សរបស់អ្នកនៅឡើយទេ"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"បញ្ចូលសំណព្វ"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"អ្នកមិនទាន់មានទំនាក់ទំនងនៅឡើយទេ"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"បន្ថែមទំនាក់ទំនង"</string> <string name="contact_tooltip" msgid="8871614660967439999">"ប៉ះរូបភាពដើម្បីមើលលេខទាំងអស់ ឬប៉ះ & សង្កត់ឲ្យជាប់ដើម្បីតម្រៀបឡើងវិញ"</string> <string name="remove_contact" msgid="2353580570488923668">"លុបចេញ"</string> + <string name="select_all" msgid="408601760696146245">"ជ្រើសរើសទាំងអស់"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"ហៅជាវីដេអូ"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"ផ្ញើសារ"</string> <string name="call_log_action_details" msgid="2091370737371449501">"ព័ត៌មានលម្អិតអំពីការហៅ"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"លេខបានរារាំង"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ត្រូវបានទប់ស្កាត់រួចហើយ"</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"គណនីហៅទូរសព្ទ"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"បើក"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"កំណត់សិទ្ធិអនុញ្ញាត"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"ដើម្បីបើកដំណើរការហៅរហ័ស សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីទំនាក់ទំនង។"</string> <string name="permission_no_calllog" msgid="4053705651238775784">"ដើម្បីមើលកំណត់ហេតុហៅទូរស័ព្ទរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។"</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"ដើម្បីមើលទំនាក់ទំនងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីទំនាក់ទំនង។"</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"ដើម្បីចូលដំណើរការសារជាសំឡេងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។"</string> <string name="permission_no_search" msgid="2424710404207193826">"ដើម្បីស្វែងរកទំនាក់ទំនងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតទំនាក់ទំនង។"</string> <string name="permission_place_call" msgid="8686908130349369423">"ដើម្បីធ្វើការហៅទូរស័ព្ទ សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។"</string> diff --git a/java/com/android/dialer/app/res/values-kn/strings.xml b/java/com/android/dialer/app/res/values-kn/strings.xml index dae544d3f..932bc4035 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"ಪ್ರತ್ಯತ್ತರ ಕರೆಯು ಪ್ರಗತಿಯಲ್ಲಿದೆ"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ಕರೆಯನ್ನು ಸೇರಿಸಿ"</string> <string name="actionIncomingCall" msgid="891346596090030558">"ಒಳಬರುವ ಕರೆಗಳು"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ದೊಡ್ಡ ಪ್ರಮಾಣದ ಕ್ರಿಯೆಯ ಮೋಡ್ಗೆ ಪ್ರವೇಶಿಸಲಾಗುತ್ತಿದೆ"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ದೊಡ್ಡ ಪ್ರಮಾಣದ ಕ್ರಿಯೆಯ ಮೋಡ್ ತೊರೆಯಲಾಗಿದೆ"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ಆಯ್ಕೆಯನ್ನು ರದ್ದುಮಾಡಲಾಗಿದೆ"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"ಧ್ವನಿಮೇಲ್ ಪ್ಲೇ ಮಾಡಿ"</string> <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> ಸಂಪರ್ಕ ವೀಕ್ಷಿಸಿ"</string> <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ಕರೆ ಮಾಡಿ"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"ಧ್ವನಿಮೇಲ್"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ಸೆಕೆಂ"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> ನಿಮಿ <xliff:g id="SECONDS">%s</xliff:g> ಸೆಕೆಂ"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"ಬ್ಯಾಚ್ ಕ್ರಿಯೆಗಳ ಮೋಡ್ ಅನ್ನು ರದ್ದುಮಾಡಿ"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ಧ್ವನಿಮೇಲ್"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ಧ್ವನಿಮೇಲ್ಗಳು"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ಹೌದು"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ಇಲ್ಲ"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ಆಯ್ಕೆ ಮಾಡಲಾದ <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ಅನ್ನು ಅಳಿಸುವುದೇ?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ರಂದು <xliff:g id="TIME">%2$s</xliff:g> ಗಂಟೆಗೆ"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"ಸಿಮ್ ಕಾರ್ಡ್ನಿಂದ ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string> <string name="simContacts_title" msgid="7961069730386378887">"ಸಿಮ್ ಕಾರ್ಡ್ ಸಂಪರ್ಕಗಳು"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"ಯಾವುದೇ ಸಂಪರ್ಕಗಳ ಅಪ್ಲಿಕೇಶನ್ ಲಭ್ಯವಿಲ್ಲ"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"ಧ್ವನಿ ಹುಡುಕಾಟ ಲಭ್ಯವಿಲ್ಲ"</string> <string name="call_not_available" msgid="7850148370757361155">"ಫೋನ್ ಅಪ್ಲಿಕೇಶನ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿರುವುದರಿಂದ ಫೋನ್ ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಿ"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ಹೊಸ ಮಿಸ್ಡ್ ಕರೆಗಳು"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"ನಿಮ್ಮ ತ್ವರಿತ ಡಯಲ್ನಲ್ಲಿ ಇದುವರೆಗೆ ಯಾರೂ ಇಲ್ಲ"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ಮೆಚ್ಚಿನದನ್ನು ಸೇರಿಸಿ"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"ನೀವು ಇನ್ನೂ ಯಾವುದೇ ಸಂಪರ್ಕಗಳನ್ನು ಹೊಂದಿಲ್ಲ"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ಸಂಪರ್ಕ ಸೇರಿಸಿ"</string> <string name="contact_tooltip" msgid="8871614660967439999">"ಎಲ್ಲಾ ಸಂಖ್ಯೆಗಳನ್ನು ನೋಡಲು ಚಿತ್ರವನ್ನು ಸ್ಪರ್ಶಿಸಿ ಅಥವಾ ಮರುಕ್ರಮಗೊಳಿಸಲು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಹೋಲ್ಡ್ ಮಾಡಿ"</string> <string name="remove_contact" msgid="2353580570488923668">"ತೆಗೆದುಹಾಕು"</string> + <string name="select_all" msgid="408601760696146245">"ಎಲ್ಲವನ್ನೂ ಆಯ್ಕೆ ಮಾಡಿ"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"ವೀಡಿಯೊ ಕರೆ"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"ಸಂದೇಶ ಕಳುಹಿಸಿ"</string> <string name="call_log_action_details" msgid="2091370737371449501">"ಕರೆಯ ವಿವರಗಳು"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"ನಿರ್ಬಂಧಿಸಲಾದ ಸಂಖ್ಯೆಗಳು"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ಈಗಾಗಲೇ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"ಕರೆ ಮಾಡುವ ಖಾತೆಗಳು"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"ಆನ್ ಮಾಡಿ"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ಅನುಮತಿಗಳನ್ನು ಹೊಂದಿಸು"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"ವೇಗ ಡಯಲ್ ಸಕ್ರಿಯಗೊಳಿಸಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"ನಿಮ್ಮ ಕರೆಯ ಲಾಗ್ ಅನ್ನು ವೀಕ್ಷಿಸಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ವೀಕ್ಷಿಸಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"ನಿಮ್ಮ ಧ್ವನಿಮೇಲ್ ಪ್ರವೇಶಿಸಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string> <string name="permission_no_search" msgid="2424710404207193826">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಗಳನ್ನು ಆನ್ ಮಾಡಿ."</string> <string name="permission_place_call" msgid="8686908130349369423">"ಕರೆ ಮಾಡಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string> diff --git a/java/com/android/dialer/app/res/values-ko/strings.xml b/java/com/android/dialer/app/res/values-ko/strings.xml index 1850b6ce1..de6b93c01 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"진행 중인 통화로 돌아가기"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"통화 추가"</string> <string name="actionIncomingCall" msgid="891346596090030558">"수신전화"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"일괄 작업 모드 시작 중"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"일괄 작업 모드 종료됨"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> 선택됨"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> 선택 취소됨"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"음성사서함 재생"</string> <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g>님의 연락처 보기"</string> <string name="description_call" msgid="1532402285334775372">"전화걸기: <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"음성사서함"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g>초"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g>분 <xliff:g id="SECONDS">%s</xliff:g>초"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"일괄 작업 모드 취소"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"음성사서함"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"음성사서함"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"예"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"아니요"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"선택한 <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>을(를) 삭제하시겠습니까?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g>개 선택됨"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>분 <xliff:g id="SECONDS">%2$02d</xliff:g>초"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM 카드에서 로딩 중..."</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM 카드 주소록"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"사용할 수 있는 주소록 앱이 없습니다."</string> <string name="voice_search_not_available" msgid="6546240433719732905">"음성검색이 지원되지 않습니다."</string> <string name="call_not_available" msgid="7850148370757361155">"전화 애플리케이션을 사용 중지했으므로 전화를 걸 수 없습니다."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"주소록 검색"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"새로운 부재중 전화 <xliff:g id="NUMBER">%s</xliff:g>건"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"아직 단축 다이얼이 설정된 연락처가 없습니다."</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"단축 다이얼 추가"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"아직 연락처가 없습니다."</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"연락처 추가"</string> <string name="contact_tooltip" msgid="8871614660967439999">"이미지를 터치하여 모든 번호를 확인하거나 길게 터치하여 재정렬합니다."</string> <string name="remove_contact" msgid="2353580570488923668">"삭제"</string> + <string name="select_all" msgid="408601760696146245">"모두 선택"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"화상 통화"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"메시지 보내기"</string> <string name="call_log_action_details" msgid="2091370737371449501">"통화 세부정보"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"차단된 번호"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g>번은 이미 차단되었습니다."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"통화 계정"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"사용"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"권한 설정"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"단축번호를 사용하려면 주소록 권한을 사용하도록 설정하세요."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"통화 기록을 보려면 전화 권한을 사용하도록 설정하세요."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"주소록을 보려면 주소록 권한을 사용하도록 설정하세요."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"음성사서함에 액세스하려면 전화 권한을 사용하도록 설정하세요."</string> <string name="permission_no_search" msgid="2424710404207193826">"주소록을 검색하려면 주소록 권한을 사용하도록 설정하세요."</string> <string name="permission_place_call" msgid="8686908130349369423">"전화를 걸려면 전화 권한을 사용하도록 설정하세요."</string> diff --git a/java/com/android/dialer/app/res/values-ky/strings.xml b/java/com/android/dialer/app/res/values-ky/strings.xml index 9e80e29ee..ac9a617ed 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Токтотулган чалууга кайтуу"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Чалууну кошуу"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Кирүүчү чалуулар"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Жапырт аракет режимине кирдиңиз"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Жапырт аракет режиминен чыктыңыз"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> объект тандалды"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> объект тандоодон чыгарылды"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Үнкатты угуу"</string> <string name="description_view_contact" msgid="3940984937384372665">"Байланышты кароо <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Чалуу <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Үн почтасы"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мүн. <xliff:g id="SECONDS">%s</xliff:g> сек."</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Жапырт аракет режимин жокко чыгаруу"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"үн почтасы"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"үн почталары"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ооба"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Жок"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Тандалган <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> жок кылынсынбы?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> тандалды"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> саат <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM картадан жүктөлүүдө..."</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM картадагы байланыштар"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Жеткиликтүү байланыштар колдонмосу жок"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Үн менен издөө жеткиликтүү эмес"</string> <string name="call_not_available" msgid="7850148370757361155">"Телефон колдонмосу өчүрүлгөндүктөн, чалуу мүмкүн болбой жатат."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Байланыштарды издөө"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> жаңы өткөзүлгөн чалуу"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Азырынча тез териле турган номерлер жок"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Сүйүктүү номер кошуу"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Азырынча бир дагы байланышыңыз жок"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Байланыш кошуу"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Бардык номерлерди көрүү үчүн, сүрөткө тийип коюңуз же коё бербей басып туруп иретин өзгөртсөңүз болот."</string> <string name="remove_contact" msgid="2353580570488923668">"Алып салуу"</string> + <string name="select_all" msgid="408601760696146245">"Баарын тандоо"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Видео чалуу"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Билдирүү жөнөтүү"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Чалуунун чоо-жайы"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Бөгөттөлгөн номерлер"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> мурунтан эле бөгөттөлгөн."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Чалуу каттоо эсептери"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Күйгүзүү"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Уруксаттарды берүү"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Тез терүүнү иштетүү үчүн, \"Байланыштар\" колдонмосуна уруксат бериңиз."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Чалуулар таржымалыңызды көрүү үчүн, \"Телефон\" колдонмосуна уруксат бериңиз."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Байланыштар тизмесин көрүү үчүн, \"Байланыштар\" колдонмосуна уруксат бериңиз."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Үн почтаңызга кирүү үчүн, \"Телефон\" колдонмосуна уруксат бериңиз."</string> <string name="permission_no_search" msgid="2424710404207193826">"Байланыштарыңызды издөө үчүн, Байланыштарга уруксатты күйгүзүңүз."</string> <string name="permission_place_call" msgid="8686908130349369423">"Чалуу үчүн, \"Телефон\" колдонмосуна уруксат бериңиз."</string> diff --git a/java/com/android/dialer/app/res/values-lo/strings.xml b/java/com/android/dialer/app/res/values-lo/strings.xml index 8284e8de0..2a829730f 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"ກັບໄປການໂທທີ່ກຳລັງດຳເນີນຢູ່"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ເພີ່ມການໂທ"</string> <string name="actionIncomingCall" msgid="891346596090030558">"ສາຍໂທເຂົ້າ"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ກຳລັງເຂົ້າໂໝດຄຳສັ່ງຈຳນວນຫຼາຍ"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ອອກຈາກໂໝດຄຳສັ່ງຈຳນວນຫຼາຍແລ້ວ"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"ເລືອກ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ແລ້ວ"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"ເຊົາເລືອກ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ແລ້ວ"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"ເປີດຂໍ້ຄວາມສຽງ"</string> <string name="description_view_contact" msgid="3940984937384372665">"ເບິ່ງລາຍຊື່ຜູ່ຕິດຕໍ່ <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"ໂທຫາ <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"ຂໍ້ຄວາມສຽງ"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ວິນາທີ"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> ນທ <xliff:g id="SECONDS">%s</xliff:g> ວິ"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"ຍົກເລີກໂໝດຄຳສັ່ງເປັນຊຸດ"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ຂໍ້ຄວາມສຽງ"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ຂໍ້ຄວາມສຽງ"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ແມ່ນແລ້ວ"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ບໍ່"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ລຶບ <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ທີ່ເລືອກອອກໄປບໍ?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"ເລືອກ <xliff:g id="NUMBER">%1$s</xliff:g> ລາຍການແລ້ວ"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ເວລາ <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"ກຳລັງໂຫລດຈາກ SIM card..."</string> <string name="simContacts_title" msgid="7961069730386378887">"ລາຍຊື່ຜູ່ຕິດຕໍ່ SIM card"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"ບໍ່ມີແອັບຯລາຍຊື່ຕິດຕໍ່ຢູ່"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"ບໍ່ມີການຊອກຫາດ້ວຍສຽງຢູ່"</string> <string name="call_not_available" msgid="7850148370757361155">"ບໍ່ສາມາດໂທໄດ້ເນື່ອງຈາກແອັບພລິເຄຊັນໂທລະສັບຖືກປິດການນຳໃຊ້ໄວ້."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"ຊອກຫາລາຍຊື່ຜູ່ຕິດຕໍ່"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ສາຍທີ່ບໍ່ໄດ້ຮັບໃໝ່"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"ບໍ່ມີຜູ້ໃດຢູ່ໃນການໂທດ່ວນຂອງທ່ານເທື່ອ"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ເພີ່ມລາຍການທີ່ມັກ"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"ທ່ານບໍ່ມີລາຍຊື່ໃດເທື່ອ"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ເພີ່ມລາຍຊື່"</string> <string name="contact_tooltip" msgid="8871614660967439999">"ແຕະຮູບເພື່ອເບິ່ງເບີໂທທັງໝົດ ຫຼື ແຕະຄ້າງໄວ້ເພື່ອຈັດລຳດັບໃໝ່"</string> <string name="remove_contact" msgid="2353580570488923668">"ລຶບອອກ"</string> + <string name="select_all" msgid="408601760696146245">"ເລືອກທັງໝົດ"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"ໂທດ້ວຍວິດີໂອ"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"ສົ່ງຂໍ້ຄວາມ"</string> <string name="call_log_action_details" msgid="2091370737371449501">"ລາຍລະອຽດການໂທ"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"ເບີໂທລະສັບທີ່ບລັອກໄວ້"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ຖືກບລັອກແລ້ວ."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"ບັນຊີໂທ"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"ເປີດ"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ຕັ້ງການອະນຸຍາດ"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"ເພື່ອເປີດໃຊ້ງານການໂທດ່ວນ, ເປີດການອະນຸຍາດລາຍຊື່."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"ເພື່ອເບິ່ງບັນທຶກການໂທຂອງທ່ານ, ເປີດການອະນຸຍາດໂທລະສັບ."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"ເພື່ອເບິ່ງລາຍຊື່ຂອງທ່ານ, ເປີດການອະນຸຍາດລາຍຊື່"</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"ເພື່ອເຂົ້າຫາຂໍ້ຄວາມສຽງຂອງທ່ານ, ເປີດການອະນຸຍາດໂທລະສັບ."</string> <string name="permission_no_search" msgid="2424710404207193826">"ເພື່ອຄົ້ນຫາລາຍາຊື່ຂອງທ່ານ, ໃຫ້ເປີດການອະນຸຍາດລາຍຊື່."</string> <string name="permission_place_call" msgid="8686908130349369423">"ເພື່ອເຮັດການໂທ, ເປີດການອະນຸຍາດໂທລະສັບ."</string> diff --git a/java/com/android/dialer/app/res/values-lt/strings.xml b/java/com/android/dialer/app/res/values-lt/strings.xml index a346d5d0a..367c928f4 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Grįžti prie vykdomo skambučio"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Pridėti skambutį"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Gaunami skambučiai"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Įjungiamas masinių veiksmų režimas"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Masinių veiksmų režimas išjungtas"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Pasirinkta: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Pasirinkimas atšauktas: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Paleisti balso pašto pranešimus"</string> <string name="description_view_contact" msgid="3940984937384372665">"Žiūrėti kontaktą <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Skambinti <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -101,11 +105,13 @@ <string name="voicemail" msgid="8899540969000957954">"Balso paštas"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Atšaukti masinių veiksmų režimą"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"balso pašto praneš."</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"balso pašto praneš."</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Taip"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Ištrinti pasir. <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Pasirinkta: <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -118,7 +124,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Įkeliama iš SIM kortelės..."</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM kortelės adresatai"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Nepasiekiama jokia kontaktų programa"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Paieška balsu nepasiekiama"</string> <string name="call_not_available" msgid="7850148370757361155">"Negalima skambinti telefonu, nes Telefono programa išjungta."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Ieškoti adresatų"</string> @@ -147,10 +152,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"Naujų praleistų skambučių: <xliff:g id="NUMBER">%s</xliff:g>"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Dar nieko neįtraukėte į sparčiojo rinkimo sąrašą"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Pridėti mėgstamiausią"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Dar neturite kontaktų"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Pridėti kontaktą"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Palieskite vaizdą, kad peržiūrėtumėte visus numerius, arba palieskite ir palaikykite, kad pertvarkytumėte"</string> <string name="remove_contact" msgid="2353580570488923668">"Pašalinti"</string> + <string name="select_all" msgid="408601760696146245">"Pasirinkti viską"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Vaizdo skambutis"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Siųsti pranešimą"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Išsami skambučio informacija"</string> @@ -217,11 +221,9 @@ <string name="block_list" msgid="4701585783411870782">"Užblokuoti numeriai"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> jau užblokuotas."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Skambinimo paskyros"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Įjungti"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Nustatyti leidimus"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Jei norite įgalinti spartųjį rinkimą, įjunkite Kontaktų programos leidimą."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Jei norite peržiūrėti skambučių žurnalą, įjunkite Telefono programos leidimą."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Jei norite peržiūrėti kontaktus, įjunkite Kontaktų programos leidimą."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Jei norite pasiekti balso paštą, įjunkite Telefono programos leidimą."</string> <string name="permission_no_search" msgid="2424710404207193826">"Kad galėtumėte ieškoti kontaktų, įjunkite Kontaktų leidimus."</string> <string name="permission_place_call" msgid="8686908130349369423">"Jei norite paskambinti, įjunkite Telefono programos leidimą."</string> diff --git a/java/com/android/dialer/app/res/values-lv/strings.xml b/java/com/android/dialer/app/res/values-lv/strings.xml index 808d7bfb7..2713b91b6 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Atgriezties pie pašreizējā zvana"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Pievienot zvanu"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Ienākošie zvani"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Tiek atvērts lielapjoma darbību režīms"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Tika aizvērts lielapjoma darbību režīms"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Atlasīt: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Noņemt atlasi: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Atskaņot balss pasta ziņojumu"</string> <string name="description_view_contact" msgid="3940984937384372665">"Skatīt kontaktpersonu <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Zvanīt: <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -100,11 +104,13 @@ <string name="voicemail" msgid="8899540969000957954">"Balss pasts"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Iziet no grupas darbību režīma"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"balss pasta ziņojums"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"balss pasta ziņojumi"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Jā"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nē"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Vai dzēst atlasi: <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Atlasīti: <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> plkst. <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -117,7 +123,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Notiek ielāde no SIM kartes..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Kontaktpersonas SIM kartē"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Nav pieejama neviena kontaktpersonu lietotne."</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Meklēšana ar balsi nav pieejama."</string> <string name="call_not_available" msgid="7850148370757361155">"Nevar veikt tālruņa zvanu, jo lietojumprogramma Tālrunis tika atspējota."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Meklēt kontaktpersonas"</string> @@ -146,10 +151,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"Jauni neatbildēti zvani: <xliff:g id="NUMBER">%s</xliff:g>"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Ātro zvanu sarakstā vēl nav nevienas kontaktpersonas."</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Pievienot izlasei"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Jums vēl nav nevienas kontaktpersonas."</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Pievienot kontaktpersonu"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Pieskarieties attēlam, lai skatītu visus numurus, vai pieskarieties attēlam un turiet to, lai veiktu pārkārtošanu."</string> <string name="remove_contact" msgid="2353580570488923668">"Noņemt"</string> + <string name="select_all" msgid="408601760696146245">"Atlasīt visu"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videozvans"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Sūtīt ziņojumu"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Informācija par zvanu"</string> @@ -215,11 +219,9 @@ <string name="block_list" msgid="4701585783411870782">"Bloķētie numuri"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> jau ir bloķēts."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Zvanu konti"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Ieslēgt"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Iestatīt atļaujas"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Lai iespējotu ātros zvanus, ieslēdziet atļauju Kontaktpersonas."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Lai skatītu zvanu žurnālu, ieslēdziet atļauju Tālrunis."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Lai skatītu kontaktpersonas, ieslēdziet atļauju Kontaktpersonas."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Lai piekļūtu balss pastam, ieslēdziet atļauju Tālrunis."</string> <string name="permission_no_search" msgid="2424710404207193826">"Lai meklētu savas kontaktpersonas, ieslēdziet atļauju Kontaktpersonas."</string> <string name="permission_place_call" msgid="8686908130349369423">"Lai veiktu zvanu, ieslēdziet atļauju Tālrunis."</string> diff --git a/java/com/android/dialer/app/res/values-mk/strings.xml b/java/com/android/dialer/app/res/values-mk/strings.xml index 6d2e533a5..09725a642 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Врати се на повик во тек"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Додај повик"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Дојдовни повици"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Влегувате во режим на групно дејство"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Излеговте од режим на групно дејство"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Избрано е <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Поништен е изборот на <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Преслушај говорна пошта"</string> <string name="description_view_contact" msgid="3940984937384372665">"Прикажи контакт <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Повикај <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Говорна пошта"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мин. <xliff:g id="SECONDS">%s</xliff:g> сек."</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Откажи го режимот на групни дејства"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"говорна пошта"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"говорни пораки"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Да"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Не"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Да се избришат избраните <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Избрани се <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> во <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Вчитување од SIM картичка..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Контакти од SIM картичка"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Не е достапна апликација за контакти"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Гласовното пребарување не е достапно"</string> <string name="call_not_available" msgid="7850148370757361155">"Не може да се воспостави телефонски повик, бидејќи апликацијата Телефон е оневозможена."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Пребарај контакти"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> нови пропуштени повици"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Сè уште немате никого на брзо бирање"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Додај омилено"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Сè уште немате контакти"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Додај контакт"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Допрете ја сликата за да ги видите сите броеви или допрете и држете за промена на редоследот"</string> <string name="remove_contact" msgid="2353580570488923668">"Отстрани"</string> + <string name="select_all" msgid="408601760696146245">"Изберете ги сите"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Видеоповик"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Испрати порака"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Детали на повик"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Блокирани броеви"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> веќе е блокиран."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Сметки за повикување"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Вклучи"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Постави дозволи"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"За да овозможите брзо бирање, вклучете ја дозволата за контакти."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"За да ја видите евиденцијата на повици, вклучете ја дозволата за телефон."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"За да ги видите контактите, вклучете ја дозволата за контакти."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"За да пристапите кон говорната пошта, вклучете ја дозволата за телефон."</string> <string name="permission_no_search" msgid="2424710404207193826">"За да ги пребарувате контактите, вклучете ги дозволите за контакти."</string> <string name="permission_place_call" msgid="8686908130349369423">"За да воспоставите повик, вклучете ја дозволата за телефон."</string> diff --git a/java/com/android/dialer/app/res/values-ml/strings.xml b/java/com/android/dialer/app/res/values-ml/strings.xml index 91accf442..7655dbe23 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"വിളിച്ചുകൊണ്ടിരിക്കുന്ന കോളിലേക്ക് മടങ്ങുക"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"കോൾ ചേർക്കുക"</string> <string name="actionIncomingCall" msgid="891346596090030558">"ഇൻകമിംഗ് കോളുകൾ"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ബൾക്ക് പ്രവർത്തന മോഡിലേക്ക് പ്രവേശിക്കുന്നു"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ബൾക്ക് പ്രവർത്തന മോഡ് വിട്ടു"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> തിരഞ്ഞെടുത്തു"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> തിരഞ്ഞെടുത്തത് മാറ്റി"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"വോയ്സ്മെയിൽ പ്ലേ ചെയ്യുക"</string> <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> എന്ന കോൺടാക്റ്റ് കാണുക"</string> <string name="description_call" msgid="1532402285334775372">"വിളിക്കുക <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"വോയ്സ്മെയിൽ"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> സെക്കൻഡ്"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> മി. <xliff:g id="SECONDS">%s</xliff:g> സെ."</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"\'ബാച്ച് പ്രവർത്തനങ്ങൾ\' മോഡ് റദ്ദാക്കുക"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"വോയ്സ്മെയിൽ"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"വോയ്സ്മെയിലുകൾ"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"അതെ"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ഇല്ല"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"തിരഞ്ഞെടുത്ത <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ഇല്ലാതാക്കണോ?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> എണ്ണം തിരഞ്ഞെടുത്തു"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>-ന്"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"സിം കാർഡിൽ നിന്നും ലോഡുചെയ്യുന്നു…"</string> <string name="simContacts_title" msgid="7961069730386378887">"സിം കാർഡ് കോൺടാക്റ്റുകൾ"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"കോൺടാക്റ്റ് അപ്ലിക്കേഷനൊന്നും ലഭ്യമല്ല"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"വോയ്സ് തിരയൽ ലഭ്യമല്ല"</string> <string name="call_not_available" msgid="7850148370757361155">"ഫോൺ അപ്ലിക്കേഷൻ പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നതിനാൽ ഫോൺ കോൾ ചെയ്യാനാകില്ല."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"കോണ്ടാക്റ്റുകള് തിരയുക"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> പുതിയ മിസ്ഡ് കോളുകൾ"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"ഇതുവരെ ആരും നിങ്ങളുടെ സ്പീഡ് ഡയലിൽ ഇല്ല"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"പ്രിയപ്പെട്ടത് ചേർക്കുക"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"നിങ്ങൾക്ക് ഇതുവരെയും കോൺടാക്റ്റുകൾ ഒന്നുമില്ല."</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ഒരു കോണ്ടാക്റ്റ് ചേര്ക്കുക"</string> <string name="contact_tooltip" msgid="8871614660967439999">"എല്ലാ നമ്പറുകളും കാണാൻ ചിത്രം സ്പർശിക്കുക അല്ലെങ്കിൽ വീണ്ടും ക്രമീകരിക്കാൻ സ്പർശിച്ച് പിടിക്കുക"</string> <string name="remove_contact" msgid="2353580570488923668">"നീക്കംചെയ്യുക"</string> + <string name="select_all" msgid="408601760696146245">"എല്ലാം തിരഞ്ഞെടുക്കുക"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"വീഡിയോ കോള്"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"ഒരു സന്ദേശം അയയ്ക്കുക"</string> <string name="call_log_action_details" msgid="2091370737371449501">"കോൾ വിശദാംശങ്ങൾ"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"ബ്ലോക്കുചെയ്ത നമ്പറുകൾ"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"ഇതിനകം തന്നെ <xliff:g id="NUMBER">%1$s</xliff:g> ബ്ലോക്കുചെയ്തിരിക്കുന്നു"</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"കോളിംഗ് അക്കൗണ്ട്"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"ഓണാക്കുക"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"അനുമതികൾ സജ്ജമാക്കുക"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"സ്പീഡ് ഡയൽ പ്രവർത്തനക്ഷമാക്കുന്നതിന്, \'കോൺടാക്റ്റുകൾ\' അനുമതി ഓണാക്കുക."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"നിങ്ങളുടെ കോൾ ലോഗ് കാണുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"നിങ്ങളുടെ കോൺടാക്റ്റുകൾ കാണുന്നതിന്, \'കോൺടാക്റ്റുകൾ\' അനുമതി ഓണാക്കുക."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"നിങ്ങളുടെ വോയ്സ്മെയിൽ ആക്സസ് ചെയ്യുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക."</string> <string name="permission_no_search" msgid="2424710404207193826">"നിങ്ങളുടെ കോൺടാക്റ്റുകൾ തിരയുന്നതിന് കോൺടാക്റ്റുകൾക്കുള്ള അനുമതികൾ ഓണാക്കുക."</string> <string name="permission_place_call" msgid="8686908130349369423">"കോൾ വിളിക്കുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക."</string> diff --git a/java/com/android/dialer/app/res/values-mn/strings.xml b/java/com/android/dialer/app/res/values-mn/strings.xml index a07a826d5..29bd8af42 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Үргэлжилж буй дуудлага руу буцах"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Дуудлага нэмэх"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Ирж буй дуудлага"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Багц үйлдлийн горимд орж байна"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Багц үйлдлийн горимоос гарсан"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> сонгосон"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> сонголтыг болиулсан"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Дуут шууданг тоглуулах"</string> <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> харилцагчийг харах"</string> <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> руу залгах"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Дуут шуудан"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> минут <xliff:g id="SECONDS">%s</xliff:g> секунд"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Багц үйлдлийн горимыг цуцлах"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"дуут шуудан"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"дуут шуудан"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Тийм"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Үгүй"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Сонгосон <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>-г устгах уу?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> сонгосон"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g>-д"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM картаас уншиж байна…"</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM картны харилцагчид"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Ямар ч харилцагчдын апликейшн байхгүй байна."</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Дуут хайлт хийх боломжгүй байна"</string> <string name="call_not_available" msgid="7850148370757361155">"Утас аппликешныг идэвхгүйжүүлсэн тул утасны дуудлага хийх боломжгүй."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Харилцагчдаас хайх"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> шинэ аваагүй дуудлага"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Таны яаралтай залгах тохиргоон дээр одоогоор харилцагч байхгүй байна"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Таалагдсан хэсэгт нэмэх"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Танд одоогоор харилцагч байхгүй байна"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Харилцагч нэмэх"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Бүх дугаарыг харахын тулд зурганд хүрнэ үү эсвэл жагсаалтыг өөрчлөхийн тулд удаан дарна уу."</string> <string name="remove_contact" msgid="2353580570488923668">"Хасах"</string> + <string name="select_all" msgid="408601760696146245">"Бүгдийг сонгох"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Видео дуудлага"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Зурвас илгээх"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Дуудлагын мэдээлэл"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Блоклосон дугаар"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g>-г аль хэдийн блоклосон байна."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Дуудах бүртгэл"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Идэвхжүүлэх"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Зөвшөөрөл тохируулах"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Яаралтай дуудлагыг идэвхжүүлэхийн тулд Харилцагчдын зөвшөөрлийг идэвхжүүлнэ үү."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Дуудлагын жагсаалтыг харахын тулд утасны зөвшөөрлийг идэвхжүүлнэ үү."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Харилцагчдаа харахын тулд Харилцагчдын зөвшөөрлийг идэвхжүүлнэ үү."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Дуут шууданд хандахын тулд Утасны зөвшөөрлийг идэвхжүүлнэ үү."</string> <string name="permission_no_search" msgid="2424710404207193826">"Харилцагчаа хайхын тулд, Харилцагчийн жагсаалтын зөвшөөрлийг идэвхжүүлнэ үү."</string> <string name="permission_place_call" msgid="8686908130349369423">"Залгахын тулд Утасны зөвшөөрлийг идэвхжүүлнэ үү."</string> diff --git a/java/com/android/dialer/app/res/values-mr/strings.xml b/java/com/android/dialer/app/res/values-mr/strings.xml index 5aca7a5e2..ee21291e8 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"चालू असलेल्या कॉलवर परत जा"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"कॉल जोडा"</string> <string name="actionIncomingCall" msgid="891346596090030558">"येणारे कॉल"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"मोठ्या प्रमाणात क्रिया मोडमध्ये प्रवेश करीत आहे"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"मोठ्या प्रमाणात क्रिया मोड सोडत आहे"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> निवडले"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ची निवड रद्द केली"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"व्हॉइसमेल प्ले करा"</string> <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> संपर्क पहा"</string> <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ला कॉल करा"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"व्हॉइसमेल"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> सेकंद"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> मिनिट <xliff:g id="SECONDS">%s</xliff:g> सेकंद"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"बॅच क्रिया मोड रद्द करा"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"व्हॉइसमेल"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"व्हॉइसमेल"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"होय"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"नाही"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"निवडलेले <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> हटवायचेे?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> निवडले"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> रोजी <xliff:g id="TIME">%2$s</xliff:g> वाजता"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"सिम कार्ड मधून लोड करीत आहे..."</string> <string name="simContacts_title" msgid="7961069730386378887">"सिम कार्ड संपर्क"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"कोणताही संपर्क अॅप उपलब्ध नाही"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"व्हॉइस शोध उपलब्ध नाही"</string> <string name="call_not_available" msgid="7850148370757361155">"फोन अनुप्रयोग अक्षम केला गेला असल्याने फोन कॉल करणे शक्य नाही."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"संपर्क शोधा"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> नवीन सुटलेले कॉल"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"अद्याप आपल्या स्पीड डायलवर कोणीही नाही"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"एक आवडते जोडा"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"आपल्याकडे अद्याप कोणतेही संपर्क नाहीत"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"एक संपर्क जोडा"</string> <string name="contact_tooltip" msgid="8871614660967439999">"सर्व नंबर पाहण्यासाठी प्रतिमेस स्पर्श करा किंवा पुन्हा क्रम लावण्यासाठी स्पर्श करा आणि धरून ठेवा"</string> <string name="remove_contact" msgid="2353580570488923668">"काढा"</string> + <string name="select_all" msgid="408601760696146245">"सर्व निवडा"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"व्हिडिओ कॉल"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"एक संदेश पाठवा"</string> <string name="call_log_action_details" msgid="2091370737371449501">"कॉल तपशील"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"अवरोधित केलेले नंबर"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> आधीच अवरोधित केलेला आहे."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"कॉल करण्याची खाती"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"चालू करा"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"परवानग्या सेट करा"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"स्पीड डायल सक्षम करण्यासाठी, संपर्क परवानगी चालू करा."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"आपला कॉल लॉग पाहण्यासाठी, फोन परवानगी चालू करा."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"आपले संपर्क पाहण्यासाठी, संपर्क परवानगी चालू करा."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"आपल्या व्हॉइसमेलमध्ये प्रवेश करण्यासाठी, फोन परवानगी चालू करा."</string> <string name="permission_no_search" msgid="2424710404207193826">"आपले संपर्क शोधण्यासाठी, संपर्क परवानग्या चालू करा."</string> <string name="permission_place_call" msgid="8686908130349369423">"कॉल करण्यासाठी, फोन परवानगी चालू करा."</string> diff --git a/java/com/android/dialer/app/res/values-ms/strings.xml b/java/com/android/dialer/app/res/values-ms/strings.xml index 9dbe541d9..dbb021359 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Kembali ke panggilan yang sedang berlangsung"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Tambah panggilan"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Panggilan masuk"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Memasuki mod tindakan pukal"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Meninggalkan mod tindakan pukal"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> dipilih"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> dinyahpilih"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Mainkan mel suara"</string> <string name="description_view_contact" msgid="3940984937384372665">"Lihat kenalan <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Panggil <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Mel suara"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> saat"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> saat"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Batalkan mod tindakan kelompok"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"mel suara"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"mel suara"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ya"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Tidak"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Padam <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> yang dipilih?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> dipilih"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> pada <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Memuatkan dari kad SIM..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Kenalan kad SIM"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Tiada apl kenalan tersedia"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Carian suara tidak tersedia"</string> <string name="call_not_available" msgid="7850148370757361155">"Tidak boleh membuat panggilan telefon kerana aplikasi Telefon telah dilumpuhkan."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Cari dalam kenalan"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> panggilan terlepas baharu"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Belum ada sesiapa pada dail pantas anda"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Tambahkan kegemaran"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Anda belum mempunyai sebarang kenalan"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Tambahkan kenalan"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Sentuh imej untuk melihat semua nombor atau sentuh & tahan untuk menyusun semula"</string> <string name="remove_contact" msgid="2353580570488923668">"Alih keluar"</string> + <string name="select_all" msgid="408601760696146245">"Pilih semua"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Panggilan video"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Hantar mesej"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Butiran panggilan"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Nombor yang disekat"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> sudah disekat."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Akaun panggilan"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Hidupkan"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Tetapkan kebenaran"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Untuk mendayakan dail laju, hidupkan kebenaran Kenalan."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Untuk melihat log panggilan anda, hidupkan kebenaran Telefon."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Untuk melihat kenalan anda, hidupkan kebenaran Kenalan."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Untuk mengakses mel suara anda, hidupkan kebenaran Telefon."</string> <string name="permission_no_search" msgid="2424710404207193826">"Untuk mencari kenalan anda, hidupkan kebenaran Kenalan."</string> <string name="permission_place_call" msgid="8686908130349369423">"Untuk membuat panggilan, hidupkan kebenaran Telefon."</string> diff --git a/java/com/android/dialer/app/res/values-my/strings.xml b/java/com/android/dialer/app/res/values-my/strings.xml index 2b51b2054..eecfeb234 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"ဖုန်းပြန်ခေါ်မှု ပြုလုပ်နေစဉ်"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ဖုန်းခေါ်မှု ထပ်ထည့်ပါ"</string> <string name="actionIncomingCall" msgid="891346596090030558">"အဝင်ခေါ်ဆိုမှုများ"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"တပြိုင်နက်တည်း စုပြုံလုပ်ဆောင်ချက်မုဒ်ကို ထည့်သွင်းခြင်း"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"တပြိုင်နက်တည်း စုပြုံလုပ်ဆောင်ချက်မုဒ်မှ ထွက်လိုက်သည်"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"ရွေးချယ်ထားသော <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"မရွေးချယ်ထားသော <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"အသံပို့စာ နားထောင်ရန်"</string> <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> လိပ်စာကြည့်ရန်"</string> <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ကိုခေါ်ပါ"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"အသံစာပို့စနစ်"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> စက္ကန့်"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> မိနစ် <xliff:g id="SECONDS">%s</xliff:g> စက္ကန့်"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"တပြိုင်နက်တည်း စုပြုံလုပ်ဆောင်ချက်များမုဒ်ကိ ပယ်ဖျက်ရန်"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"အသံမေးလ်"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"အသံမေးလ်များ"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Yes"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ရွေးထားသော <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ကို ဖျက်လိုပါသလား။"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ကို ရွေးချယ်ထားသည်"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g> ၌"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEIDနံပါတ်"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"ဆင်းမ်ကဒ်မှ ဖွင့်နေပါသည်..."</string> <string name="simContacts_title" msgid="7961069730386378887">"ဆင်းမ်ကဒ်မှ အဆက်အသွယ်များ"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"အဆက်အသွယ်များ app မရှိ"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"အသံဖြင့် ရှာဖွေမှု မရှိ"</string> <string name="call_not_available" msgid="7850148370757361155">"ဖုန်း အပလီကေးရှင်းကို ပိတ်ထား၍ ဖုန်း ခေါ်ဆိုမှု မပြုလုပ်နိုင်ခဲ့ပါ။"</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"အဆက်အသွယ်များရှာပါ"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"လွတ်သွားသောဖုန်း <xliff:g id="NUMBER">%s</xliff:g> ခါ"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"သင်၏အမြန်ခေါ်စာရင်းတွင် မည်သူမျှ မရှိသေးပါ"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"အနှစ်သက်ဆုံးတစ်ခု ထည့်ရန်"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"သင့်တွင် မည်သည့်အဆက်အသွယ်မျှ မရှိသေးပါ"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"အဆက်အသွယ်တစ်ယောက် ထည့်မည်"</string> <string name="contact_tooltip" msgid="8871614660967439999">"နံပါတ်အားလုံးကိုကြည့်ရန် ပုံကိုထိပါ (သို့) ပြန်စီရန် ထိပြီးဖိထားပါ"</string> <string name="remove_contact" msgid="2353580570488923668">"ဖယ်ရှာခြင်း"</string> + <string name="select_all" msgid="408601760696146245">"အားလုံးကို ရွေးချယ်ပါ"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"ဗီဒီယို ခေါ်ဆိုမှု"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"စာ တစ်စောင် ပို့ပါ"</string> <string name="call_log_action_details" msgid="2091370737371449501">"ဖုန်းခေါ်မှု အသေးစိတ်အချက်အလက်"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"ပိတ်ထားသည့် နံပါတ်များ"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> အားပိတ်ဆို့ထားပြီးပါပြီ။"</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"ခေါ်ဆိုသော အကောင့်များ"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"ဖွင့်ထားရန်"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ခွင့်ပြုချက်များ သတ်မှတ်မည်"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"မြန်နှုန်းမြင့်ဖုန်းခေါ်ဆိုမှုကို ဖွင့်ရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်ကို ဖွင့်ပါ။"</string> <string name="permission_no_calllog" msgid="4053705651238775784">"ခေါ်ဆိုမှုမှတ်တမ်းကို ကြည့်ရန်၊ ဖုန်းခွင့်ပြုချက်ကို ဖွင့်ပါ။"</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"အဆက်အသွယ်များကိုကြည့်ရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်ကို ဖွင့်ပါ။"</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"အသံမေးလ်ကိုအသုံးပြုရန်၊ ဖုန်းခွင့်ပြုချက်ကိုဖွင့်ပါ။"</string> <string name="permission_no_search" msgid="2424710404207193826">"သင့်အဆက်အသွယ်များကို ရှာဖွေရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်များကို ဖွင့်ပါ။"</string> <string name="permission_place_call" msgid="8686908130349369423">"ဖုန်းခေါ်ဆိုရန်၊ ဖုန်းခွင့်ပြုချက်ကိုဖွင့်ပါ။"</string> diff --git a/java/com/android/dialer/app/res/values-nb/strings.xml b/java/com/android/dialer/app/res/values-nb/strings.xml index d92edc649..bda4915b5 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Gå tilbake til aktiv samtale"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Legg til en samtale"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Innkommende samtaler"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Starter massehandlingsmodus"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Massehandlingsmodus er avsluttet"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Du har valgt <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Du har valgt bort <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Spill av talemelding"</string> <string name="description_view_contact" msgid="3940984937384372665">"Se kontakten <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Ring <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Telefonsvarer"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Avbryt massehandlinsmodus"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"talepost"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"talepost"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nei"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Slett markert <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> er valgt"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Henter fra SIM-kort…"</string> <string name="simContacts_title" msgid="7961069730386378887">"Kontakter på SIM-kort"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Ingen kontaktapper er tilgjengelige"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Talesøk er ikke tilgjengelig"</string> <string name="call_not_available" msgid="7850148370757361155">"Kan ikke ringe fordi Telefon-appen er deaktivert."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Søk i kontakter"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nye tapte anrop"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Du har ingen på hurtigoppringning ennå"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Legg til en favoritt"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Du har ingen kontakter ennå"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Legg til en kontakt"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Trykk på bildet for å se alle numrene, eller trykk og hold for å omorganisere"</string> <string name="remove_contact" msgid="2353580570488923668">"Fjern"</string> + <string name="select_all" msgid="408601760696146245">"Velg alle"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videoanrop"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Send en melding"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Samtaleinformasjon"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Blokkerte numre"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> er allerede blokkert."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Ringekontoer"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Slå på"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Angi tillatelser"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"For å slå på hurtigoppringning, slå på Kontakter-tillatelsen."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"For å se samtaleloggen din, slå på Telefon-tillatelsen."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"For å se kontaktene dine, slå på Kontakter-tillatelsen."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"For å få tilgang til talepostkassen, slå på Telefon-tillatelsen."</string> <string name="permission_no_search" msgid="2424710404207193826">"For å søke i kontaktene dine, slå på tillatelser for Kontakter."</string> <string name="permission_place_call" msgid="8686908130349369423">"For å ringe, slå på Telefon-tillatelsen."</string> diff --git a/java/com/android/dialer/app/res/values-ne/strings.xml b/java/com/android/dialer/app/res/values-ne/strings.xml index 90a3016e2..8262a316c 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"हुदै गरेको कलमा फर्कनुहोस्"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"कल थप्नुहोस्"</string> <string name="actionIncomingCall" msgid="891346596090030558">"आगमन कलहरू"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"बल्क कारबाही सम्बन्धी मोडमा प्रवेश गर्दै"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"बल्क कारबाही सम्बन्धी मोड छोडियो"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> चयन गरियो"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> चयन हटाइयो"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"भ्वाइसमेल बजाउनुहोस्"</string> <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> सम्पर्क हेर्नुहोस्"</string> <string name="description_call" msgid="1532402285334775372">"कल <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"भ्वाइसमेल"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> सेकेन्ड"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> मिनेट <xliff:g id="SECONDS">%s</xliff:g> सकेन्ड"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"ब्याच सम्बन्धी कारबाहीको मोडलाई रद्द गर्नुहोस्"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"भ्वाइस मेल"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"भ्वाइस मेलहरू"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"हो"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"होइन"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"चयन गरिएका <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> लाई मेटाउने हो?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> चयन गरियो"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> मा <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM कार्डबाट लोड हुँदै"</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM कार्ड सम्पर्कहरू"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"कुनै पनि सम्पर्क अनुप्रयोग उपलब्ध छैन"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"आवाज खोजी उपलब्ध छैन"</string> <string name="call_not_available" msgid="7850148370757361155">"फोन अनुप्रयोग असक्षम गरिएकोले फोन गर्न सकिँदैन।"</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"सम्पर्कहरू खोज्नुहोस्"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> नयाँ छुटेका कलहरु"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"तपाईँको स्पिड डायलमा अझसम्म कोही छैन"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"एक मनपर्ने थप्नुहोस्"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"तपाईँसँग अझसम्म कुनै सम्पर्कहरू छैनन्"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"एउटा सम्पर्क थप्नुहोस्"</string> <string name="contact_tooltip" msgid="8871614660967439999">"सबै नम्बरहरू हेर्न छविलाई छुनुहोस् वा पुन:क्रमबद्ध गर्न छोइराख्नुहोस्"</string> <string name="remove_contact" msgid="2353580570488923668">"हटाउँनुहोस्"</string> + <string name="select_all" msgid="408601760696146245">"सबैलाई चयन गर्नुहोस्"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"भिडियो कल"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"सन्देश पठाउनुहोस्"</string> <string name="call_log_action_details" msgid="2091370737371449501">"कल विवरणहरु"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"रोकिएका नम्बरहरू"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> पहिले नै रोकिएको छ।"</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"खाता कलिङ"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"सक्रिय पार्नुहोस्"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"अनुमतिहरू सेट गर्नुहोस्"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"तीव्र डायल सक्षम गर्न, सम्पर्क अनुमति सक्षम गर्नुहोस्।"</string> <string name="permission_no_calllog" msgid="4053705651238775784">"आफ्नो कल लग हेर्न, फोन अनुमति सक्रिय गर्नुहोस्।"</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"आफ्नो सम्पर्क हेर्न सम्पर्क अनुमति सक्रिय गर्नुहोस्।"</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"आफ्नो भ्वाइस मेल पहुँच गर्न, फोन अनुमति सक्रिय गर्नुहोस्"</string> <string name="permission_no_search" msgid="2424710404207193826">"तपाईँको सम्पर्कहरू खोज गर्न सम्पर्क अनुमतिहरू सक्रिय गर्नुहोस्।"</string> <string name="permission_place_call" msgid="8686908130349369423">"कल गर्न फोन अनुमति सक्रिय गर्नुहोस्।"</string> diff --git a/java/com/android/dialer/app/res/values-nl/strings.xml b/java/com/android/dialer/app/res/values-nl/strings.xml index 5f41b8063..eed412d69 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Terug naar actief gesprek"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Oproep toevoegen"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Inkomende oproepen"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Modus voor bulkacties openen"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Modus voor bulkacties verlaten"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> geselecteerd"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Selectie van <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> opgeheven"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Voicemail afspelen"</string> <string name="description_view_contact" msgid="3940984937384372665">"Contact <xliff:g id="NAME">%1$s</xliff:g> bekijken"</string> <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> bellen"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Voicemail"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sec."</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sec."</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Modus voor batchacties annuleren"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"voicemail"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"voicemails"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nee"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Geselecteerde <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> verwijderen?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> geselecteerd"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> om <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Laden vanaf SIM-kaart..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Contacten op SIM-kaart"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Geen app voor contacten beschikbaar"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Gesproken zoekopdracht niet beschikbaar"</string> <string name="call_not_available" msgid="7850148370757361155">"Kan niet bellen omdat de Telefoon-app is uitgeschakeld."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Contacten zoeken"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nieuwe gemiste oproepen"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Er staat nog niemand in je snelkeuzelijst"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Een favoriet toevoegen"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Je hebt nog geen contacten"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Contact toevoegen"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Tik op de afbeelding om alle nummers te bekijken of tik op de afbeelding en houd vast om opnieuw te rangschikken"</string> <string name="remove_contact" msgid="2353580570488923668">"Verwijderen"</string> + <string name="select_all" msgid="408601760696146245">"Alles selecteren"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videogesprek"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Een bericht verzenden"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Oproepdetails"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Geblokkeerde nummers"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> is al geblokkeerd."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Oproepaccounts"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Inschakelen"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Toestemmingen instellen"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Als je de snelkeuzefunctie wilt inschakelen, schakel je de machtiging voor Contacten in."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Als je je gesprekkenlijst wilt bekijken, schakel je de machtiging voor Telefoon in."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Als je je contacten wilt bekijken, schakel je de machtiging voor Contacten in."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Als je je voicemail wilt beluisteren, schakel je de machtiging voor Telefoon in."</string> <string name="permission_no_search" msgid="2424710404207193826">"Als je naar contacten wilt zoeken, schakel je de contacttoestemming in."</string> <string name="permission_place_call" msgid="8686908130349369423">"Als je iemand wilt bellen, schakel je de machtiging voor Telefoon in."</string> diff --git a/java/com/android/dialer/app/res/values-no/strings.xml b/java/com/android/dialer/app/res/values-no/strings.xml index d92edc649..bda4915b5 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Gå tilbake til aktiv samtale"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Legg til en samtale"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Innkommende samtaler"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Starter massehandlingsmodus"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Massehandlingsmodus er avsluttet"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Du har valgt <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Du har valgt bort <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Spill av talemelding"</string> <string name="description_view_contact" msgid="3940984937384372665">"Se kontakten <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Ring <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Telefonsvarer"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Avbryt massehandlinsmodus"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"talepost"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"talepost"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nei"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Slett markert <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> er valgt"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Henter fra SIM-kort…"</string> <string name="simContacts_title" msgid="7961069730386378887">"Kontakter på SIM-kort"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Ingen kontaktapper er tilgjengelige"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Talesøk er ikke tilgjengelig"</string> <string name="call_not_available" msgid="7850148370757361155">"Kan ikke ringe fordi Telefon-appen er deaktivert."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Søk i kontakter"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nye tapte anrop"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Du har ingen på hurtigoppringning ennå"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Legg til en favoritt"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Du har ingen kontakter ennå"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Legg til en kontakt"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Trykk på bildet for å se alle numrene, eller trykk og hold for å omorganisere"</string> <string name="remove_contact" msgid="2353580570488923668">"Fjern"</string> + <string name="select_all" msgid="408601760696146245">"Velg alle"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videoanrop"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Send en melding"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Samtaleinformasjon"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Blokkerte numre"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> er allerede blokkert."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Ringekontoer"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Slå på"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Angi tillatelser"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"For å slå på hurtigoppringning, slå på Kontakter-tillatelsen."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"For å se samtaleloggen din, slå på Telefon-tillatelsen."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"For å se kontaktene dine, slå på Kontakter-tillatelsen."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"For å få tilgang til talepostkassen, slå på Telefon-tillatelsen."</string> <string name="permission_no_search" msgid="2424710404207193826">"For å søke i kontaktene dine, slå på tillatelser for Kontakter."</string> <string name="permission_place_call" msgid="8686908130349369423">"For å ringe, slå på Telefon-tillatelsen."</string> diff --git a/java/com/android/dialer/app/res/values-pa/strings.xml b/java/com/android/dialer/app/res/values-pa/strings.xml index 76d4b9b70..8e6540727 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"ਪ੍ਰਗਤੀ ਵਿੱਚ ਕਾਲ ਤੇ ਵਾਪਸ ਜਾਓ"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ਕਾਲ ਜੋੜੋ"</string> <string name="actionIncomingCall" msgid="891346596090030558">"ਇਨਕਮਿੰਗ ਕਾਲਾਂ"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ਬਲਕ ਕਾਰਵਾਈ ਮੋਡ ਵਿੱਚ ਦਾਖਲ ਹੋਇਆ ਜਾ ਰਿਹਾ ਹੈ"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ਬਲਕ ਕਾਰਵਾਈ ਮੋਡ ਨੂੰ ਛੱਡਿਆ"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ਨੂੰ ਚੁਣਿਆ ਗਿਆ"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ਨੂੰ ਅਣ-ਚੁਣਿਆ ਕੀਤਾ ਗਿਆ"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"ਵੌਇਸਮੇਲ ਪਲੇ ਕਰੋ"</string> <string name="description_view_contact" msgid="3940984937384372665">"ਸੰਪਰਕ <xliff:g id="NAME">%1$s</xliff:g> ਦੇਖੋ"</string> <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ਨੂੰ ਕਾਲ ਕਰੋ"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"ਵੌਇਸਮੇਲ"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ਸਕਿੰਟ"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> ਮਿੰਟ <xliff:g id="SECONDS">%s</xliff:g> ਸਕਿੰਟ"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"ਬੈਚ ਕਾਰਵਾਈਆਂ ਮੋਡ ਨੂੰ ਰੱਦ ਕਰੋ"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ਵੌਇਸਮੇਲ"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ਵੌਇਸਮੇਲਾਂ"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ਹਾਂ"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ਨਹੀਂ"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ਕੀ ਚੁਣੀ(ਆਂ) ਹੋਈ(ਆਂ) <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ਨੂੰ ਚੁਣਿਆ ਗਿਆ"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ਨੂੰ <xliff:g id="TIME">%2$s</xliff:g> ਵਜੇ"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM ਕਾਰਡ ਵਿੱਚੋਂ ਲੋਡ ਕਰ ਰਿਹਾ ਹੈ…"</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM ਕਾਰਡ ਸੰਪਰਕ"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"ਕੋਈ ਸੰਪਰਕ ਐਪ ਉਪਲਬਧ ਨਹੀਂ"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"ਵੌਇਸ ਖੋਜ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string> <string name="call_not_available" msgid="7850148370757361155">"ਇੱਕ ਫੋਨ ਕਾਲ ਨਹੀਂ ਕਰ ਸਕਦਾ ਕਿਉਂਕਿ ਫੋਨ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਅਯੋਗ ਬਣਾਇਆ ਗਿਆ ਹੈ।"</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"ਸੰਪਰਕ ਖੋਜੋ"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ਨਵੀਆਂ ਮਿਸਡ ਕਾਲਾਂ"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"ਅਜੇ ਤੁਹਾਡੇ ਸਪੀਡ ਡਾਇਲ \'ਤੇ ਕੋਈ ਵੀ ਵਿਅਕਤੀ ਨਹੀਂ ਹੈ"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ਕੋਈ ਮਨਪਸੰਦ ਸ਼ਾਮਲ ਕਰੋ"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"ਤੁਹਾਡੇ ਕੋਲ ਅਜੇ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ ਹਨ।"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ਕੋਈ ਸੰਪਰਕ ਸ਼ਾਮਲ ਕਰੋ"</string> <string name="contact_tooltip" msgid="8871614660967439999">"ਸਾਰੇ ਨੰਬਰਾਂ ਨੂੰ ਵੇਖਣ ਲਈ ਚਿਤਰ ਨੂੰ ਸਪਰਸ਼ ਕਰੋ ਜਾਂ ਦੁਬਾਰਾ ਕ੍ਰਮਬੱਧ ਕਰਨ ਲਈ ਸਪਰਸ਼ ਕਰੋ ਅਤੇ ਦਬਾਈ ਰੱਖੋ"</string> <string name="remove_contact" msgid="2353580570488923668">"ਹਟਾਓ"</string> + <string name="select_all" msgid="408601760696146245">"ਸਭ ਚੁਣੋ"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"ਵੀਡੀਓ ਕਾਲ"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"ਇੱਕ ਸੁਨੇਹਾ ਭੇਜੋ"</string> <string name="call_log_action_details" msgid="2091370737371449501">"ਕਾਲ ਵੇਰਵੇ"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"ਬਲੌਕ ਕੀਤੇ ਗਏ ਨੰਬਰ"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ਪਹਿਲਾਂ ਹੀ ਬਲੌਕ ਕੀਤਾ ਹੋਇਆ ਹੈ।"</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"ਕਾਲਿੰਗ ਖਾਤੇ"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"ਚਾਲੂ ਕਰੋ"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ਅਨੁਮਤੀਆਂ ਸੈੱਟ ਕਰੋ"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"ਸਪੀਡ ਡਾਇਲ ਨੂੰ ਸਮਰੱਥ ਕਰਨ ਲਈ, ਸੰਪਰਕ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string> <string name="permission_no_calllog" msgid="4053705651238775784">"ਆਪਣਾ ਕਾਲ ਲੌਗ ਵੇਖਣ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਨੂੰ ਵੇਖਣ ਲਈ, ਸੰਪਰਕ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"ਆਪਣੀ ਵੌਇਸਮੇਲ ਐਕਸੈਸ ਕਰਨ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string> <string name="permission_no_search" msgid="2424710404207193826">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਦੀ ਖੋਜ ਕਰਨ ਲਈ,, ਸੰਪਰਕ ਅਨੁਮਤੀਆਂ ਨੂੰ ਚਾਲੂ ਕਰੋ।"</string> <string name="permission_place_call" msgid="8686908130349369423">"ਕਾਲ ਕਰਨ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string> diff --git a/java/com/android/dialer/app/res/values-pl/strings.xml b/java/com/android/dialer/app/res/values-pl/strings.xml index 76adfe579..8f57a82b4 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Wróć do aktywnego połączenia"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Dodaj połączenie"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Połączenia przychodzące"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Włączono tryb działań zbiorczych"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Wyłączono tryb działań zbiorczych"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Wybrano: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Anulowano wybór: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Odtwórz pocztę głosową"</string> <string name="description_view_contact" msgid="3940984937384372665">"Wyświetl kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Zadzwoń do: <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -101,11 +105,13 @@ <string name="voicemail" msgid="8899540969000957954">"Poczta głosowa"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Anuluj tryb działań zbiorczych"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"wiadomości głosowe"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"wiadomości głosowe"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Tak"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nie"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Usunąć wybrane <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Wybrane: <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> o <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -118,7 +124,6 @@ <string name="meid" msgid="3333779521535224028">"Numer MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Wczytuję z karty SIM…"</string> <string name="simContacts_title" msgid="7961069730386378887">"Kontakty z karty SIM"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Nie jest dostępna aplikacja do obsługi kontaktów"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Wyszukiwanie głosowe jest niedostępne"</string> <string name="call_not_available" msgid="7850148370757361155">"Nie można zadzwonić, ponieważ aplikacja Telefon została wyłączona."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Przeszukuj kontakty"</string> @@ -147,10 +152,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"Nowe nieodebrane połączenia: <xliff:g id="NUMBER">%s</xliff:g>"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Lista szybkiego wybierania jest pusta"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Dodaj do ulubionych"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Nie masz jeszcze żadnych kontaktów"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Dodaj kontakt"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Kliknij obraz, by zobaczyć wszystkie numery, lub kliknij go i przytrzymaj, by zmienić kolejność"</string> <string name="remove_contact" msgid="2353580570488923668">"Usuń"</string> + <string name="select_all" msgid="408601760696146245">"Zaznacz wszystkie"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Rozmowa wideo"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Wyślij wiadomość"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Szczegóły połączenia"</string> @@ -217,11 +221,9 @@ <string name="block_list" msgid="4701585783411870782">"Zablokowane numery"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"Numer <xliff:g id="NUMBER">%1$s</xliff:g> jest już zablokowany."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Konta telefoniczne"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Włącz"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Ustaw uprawnienia"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Aby włączyć szybkie wybieranie, włącz uprawnienie Kontakty."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Aby zobaczyć swój rejestr połączeń, włącz uprawnienie Telefon."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Aby zobaczyć swoje kontakty, włącz uprawnienie Kontakty."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Aby uzyskać dostęp do poczty głosowej, włącz uprawnienie Telefon."</string> <string name="permission_no_search" msgid="2424710404207193826">"Aby wyszukać kontakty, włącz uprawnienia Kontakty."</string> <string name="permission_place_call" msgid="8686908130349369423">"Aby nawiązać połączenie, włącz uprawnienie Telefon."</string> diff --git a/java/com/android/dialer/app/res/values-pt-rBR/strings.xml b/java/com/android/dialer/app/res/values-pt-rBR/strings.xml index 780ca07db..eb61923e9 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Retornar para a chamada em espera"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Ad. cham."</string> <string name="actionIncomingCall" msgid="891346596090030558">"Chamadas recebidas"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrando no modo de ação em massa"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Saindo do modo de ação em massa"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> selecionado"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> não selecionado"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Reproduzir mensagem de voz"</string> <string name="description_view_contact" msgid="3940984937384372665">"Visualizar contato <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Ligar para <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Correio de voz"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> seg"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> m <xliff:g id="SECONDS">%s</xliff:g> s"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancelar modo de ações em lote"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"correio de voz"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"correios de voz"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sim"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Não"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Excluir a seleção de <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Itens selecionados: <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> às <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Carregando do cartão SIM..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Contatos do cartão SIM"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Nenhum app de contatos disponível"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"A pesquisa por voz não está disponível"</string> <string name="call_not_available" msgid="7850148370757361155">"Não é possível fazer uma chamada porque o app Telefone foi desativado."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Pesquisar contatos"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> novas chamadas perdidas"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Ainda não há ninguém na sua discagem rápida"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Adicionar favorito"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Você ainda não tem contatos"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Adicionar um contato"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Toque na imagem para ver todos os números ou toque e segure para reordenar"</string> <string name="remove_contact" msgid="2353580570488923668">"Remover"</string> + <string name="select_all" msgid="408601760696146245">"Selecionar tudo"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videochamada"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar uma mensagem"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Detalhes da chamada"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"O número <xliff:g id="NUMBER">%1$s</xliff:g> já está bloqueado."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Contas de chamadas"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Ativar"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Definir permissões"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Para ativar a discagem rápida, ative a permissão para o app Contatos."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Para ver seu registro de chamadas, ative a permissão para o app Telefone."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver seus contatos, ative a permissão para o app Contatos."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Para acessar seu correio de voz, ative a permissão para o app Telefone."</string> <string name="permission_no_search" msgid="2424710404207193826">"Para pesquisar seus contatos, ative as permissões para \"Contatos\"."</string> <string name="permission_place_call" msgid="8686908130349369423">"Para fazer uma chamada, ative a permissão para o app Telefone."</string> diff --git a/java/com/android/dialer/app/res/values-pt-rPT/strings.xml b/java/com/android/dialer/app/res/values-pt-rPT/strings.xml index 95fa75c7e..493f846c4 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Voltar à chamada em curso"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Adicionar chamada"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Chamadas recebidas"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"A entrar no modo de ação em massa…"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Saiu do modo de ação em massa"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> selecionado"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> não selecionado"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Reproduzir mensagem de correio de voz"</string> <string name="description_view_contact" msgid="3940984937384372665">"Ver o contacto <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Ligar a <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Correio de voz"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> seg"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> seg."</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancelar modo de ações em lote"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"mensagem de correio de voz"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"mensagens de correio de voz"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sim"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Não"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Pretende eliminar a(s) <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> selecionada(s)?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selecionada(s)"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> às <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"A carregar a partir do cartão SIM..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Contactos no cartão SIM"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Não existe nenhuma aplicação de contactos disponível"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Pesquisa por voz não disponível"</string> <string name="call_not_available" msgid="7850148370757361155">"Não é possível efetuar uma chamada porque a aplicação Telefone foi desativada."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Pesquisar contactos"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> chamadas não atendidas novas"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Ainda não tem ninguém na marcação rápida"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Adicionar um favorito"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Ainda não tem nenhum contacto"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Adicionar um contacto"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Toque na imagem para ver todos os números ou toque sem soltar para reordenar"</string> <string name="remove_contact" msgid="2353580570488923668">"Remover"</string> + <string name="select_all" msgid="408601760696146245">"Selecionar tudo"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videochamada"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar uma mensagem"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Detalhes da chamada"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> já está bloqueado."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Contas de chamadas"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Ativar"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Definir autorizações"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Para ativar a marcação rápida, ative a autorização Contactos."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Para ver o registo de chamadas, ative a autorização Telemóvel."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver os seus contactos, ative a autorização Contactos."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Para aceder ao correio de voz, ative a autorização Telemóvel."</string> <string name="permission_no_search" msgid="2424710404207193826">"Para pesquisar os seus contactos, ative as autorizações Contactos."</string> <string name="permission_place_call" msgid="8686908130349369423">"Para efetuar uma chamada, ative a autorização Telemóvel."</string> diff --git a/java/com/android/dialer/app/res/values-pt/strings.xml b/java/com/android/dialer/app/res/values-pt/strings.xml index 780ca07db..eb61923e9 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Retornar para a chamada em espera"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Ad. cham."</string> <string name="actionIncomingCall" msgid="891346596090030558">"Chamadas recebidas"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrando no modo de ação em massa"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Saindo do modo de ação em massa"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> selecionado"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> não selecionado"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Reproduzir mensagem de voz"</string> <string name="description_view_contact" msgid="3940984937384372665">"Visualizar contato <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Ligar para <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Correio de voz"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> seg"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> m <xliff:g id="SECONDS">%s</xliff:g> s"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancelar modo de ações em lote"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"correio de voz"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"correios de voz"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sim"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Não"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Excluir a seleção de <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Itens selecionados: <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> às <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Carregando do cartão SIM..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Contatos do cartão SIM"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Nenhum app de contatos disponível"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"A pesquisa por voz não está disponível"</string> <string name="call_not_available" msgid="7850148370757361155">"Não é possível fazer uma chamada porque o app Telefone foi desativado."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Pesquisar contatos"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> novas chamadas perdidas"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Ainda não há ninguém na sua discagem rápida"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Adicionar favorito"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Você ainda não tem contatos"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Adicionar um contato"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Toque na imagem para ver todos os números ou toque e segure para reordenar"</string> <string name="remove_contact" msgid="2353580570488923668">"Remover"</string> + <string name="select_all" msgid="408601760696146245">"Selecionar tudo"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videochamada"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar uma mensagem"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Detalhes da chamada"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"O número <xliff:g id="NUMBER">%1$s</xliff:g> já está bloqueado."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Contas de chamadas"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Ativar"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Definir permissões"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Para ativar a discagem rápida, ative a permissão para o app Contatos."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Para ver seu registro de chamadas, ative a permissão para o app Telefone."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver seus contatos, ative a permissão para o app Contatos."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Para acessar seu correio de voz, ative a permissão para o app Telefone."</string> <string name="permission_no_search" msgid="2424710404207193826">"Para pesquisar seus contatos, ative as permissões para \"Contatos\"."</string> <string name="permission_place_call" msgid="8686908130349369423">"Para fazer uma chamada, ative a permissão para o app Telefone."</string> diff --git a/java/com/android/dialer/app/res/values-ro/strings.xml b/java/com/android/dialer/app/res/values-ro/strings.xml index 725ff4a3c..93d01888a 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Reveniți la apelul în curs"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Adăugați un apel"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Apeluri de intrare"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Se intră în modul acțiune în bloc"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Ați ieșit din modul acțiune în bloc"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"S-a selectat <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"S-a deselectat <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Redați mesajul vocal"</string> <string name="description_view_contact" msgid="3940984937384372665">"Afișați persoana din agendă <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Apelați <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -100,11 +104,13 @@ <string name="voicemail" msgid="8899540969000957954">"Mesagerie vocală"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> secunde"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sec."</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Anulați modul de acțiuni în lot"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"mesagerie vocală"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"mesaje vocale"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Da"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nu"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Ștergeți cele <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> selectate?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selectate"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> la <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -117,7 +123,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Se încarcă de pe cardul SIM..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Persoanele din agendă de pe cardul SIM"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Nu este disponibilă nicio aplicație pentru agendă"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Căutarea vocală nu este disponibilă"</string> <string name="call_not_available" msgid="7850148370757361155">"Nu se poate efectua un apel telefonic, deoarece aplicația Telefon a fost dezactivată."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Căutați în Agendă"</string> @@ -146,10 +151,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> apeluri nepreluate noi"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Nicio persoană de contact setată pentru apelarea rapidă"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Adăugați o persoană de contact preferată"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Nu aveți încă persoane de contact"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Adăugați o persoană de contact"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Atingeți imaginea pentru a vedea toate numerele sau atingeți lung pentru reordonare"</string> <string name="remove_contact" msgid="2353580570488923668">"Eliminați"</string> + <string name="select_all" msgid="408601760696146245">"Selectați tot"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Apel video"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Trimiteți un mesaj"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Detaliile apelului"</string> @@ -215,11 +219,9 @@ <string name="block_list" msgid="4701585783411870782">"Numere blocate"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> este deja blocat."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Conturi pentru apelare"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Activați"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Setați permisiunile"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Pentru a activa apelarea rapidă, activați permisiunea Agendă."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Pentru a vedea jurnalul de apeluri, activați permisiunea Telefon."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Pentru a vedea persoanele de contact, activați permisiunea Agendă."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Pentru a accesa mesageria vocală, activați permisiunea Telefon."</string> <string name="permission_no_search" msgid="2424710404207193826">"Pentru a căuta în persoanele de contact, activați permisiunea Agendă."</string> <string name="permission_place_call" msgid="8686908130349369423">"Pentru a apela, activați permisiunea Telefon."</string> diff --git a/java/com/android/dialer/app/res/values-ru/strings.xml b/java/com/android/dialer/app/res/values-ru/strings.xml index 557832bcd..54278c40b 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Вернуться к текущему вызову"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Добавить вызов"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Входящие вызовы"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Вы вошли в режим массового действия"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Вы вышли из режима массового действия"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Выбран объект <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Выбор объекта <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> отменен"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Прослушать голосовую почту"</string> <string name="description_view_contact" msgid="3940984937384372665">"Просмотреть данные: <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Вызов: <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -101,11 +105,13 @@ <string name="voicemail" msgid="8899540969000957954">"Голосовая почта"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мин. <xliff:g id="SECONDS">%s</xliff:g> сек."</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Отмена режима массового действия"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"голосовое сообщение"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"голосовые сообщения"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Да"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Нет"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Удалить <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Выбрано: <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> в <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -118,7 +124,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Загрузка с SIM-карты…"</string> <string name="simContacts_title" msgid="7961069730386378887">"Контакты на SIM-карте"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Нет приложения для работы с контактами"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Голосовой поиск недоступен"</string> <string name="call_not_available" msgid="7850148370757361155">"Нельзя совершать телефонные звонки, поскольку приложение \"Телефон\" отключено."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Поиск в контактах"</string> @@ -147,10 +152,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"Пропущенных вызовов: <xliff:g id="NUMBER">%s</xliff:g>"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Нет номеров для быстрого набора"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Настроить быстрый набор"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Нет контактов"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Добавить контакт"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Коснитесь изображения, чтобы увидеть все номера, или нажмите и удерживайте, чтобы изменить порядок"</string> <string name="remove_contact" msgid="2353580570488923668">"Удалить"</string> + <string name="select_all" msgid="408601760696146245">"Выбрать все"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Видеовстреча"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Отправить сообщение"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Сведения о вызове"</string> @@ -217,11 +221,9 @@ <string name="block_list" msgid="4701585783411870782">"Заблокированные номера"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> уже заблокирован."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Аккаунты для звонков"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Включить"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Задать разрешения"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Чтобы настроить быстрый набор, предоставьте приложению разрешение \"Контакты\"."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Чтобы открыть список вызовов, предоставьте приложению разрешение \"Телефон\"."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Чтобы открыть список контактов, предоставьте приложению разрешение \"Контакты\"."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Чтобы получить доступ к голосовой почте, предоставьте приложению разрешение \"Телефон\"."</string> <string name="permission_no_search" msgid="2424710404207193826">"Для поиска контактов включите разрешение \"Контакты\"."</string> <string name="permission_place_call" msgid="8686908130349369423">"Чтобы позвонить, предоставьте приложению разрешение \"Телефон\"."</string> diff --git a/java/com/android/dialer/app/res/values-si/strings.xml b/java/com/android/dialer/app/res/values-si/strings.xml index 329d89e8d..63634577f 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"පවතින ඇමතුමට නැවත යන්න"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ඇමතුමක් එක් කරන්න"</string> <string name="actionIncomingCall" msgid="891346596090030558">"එන ඇමතුම්"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"තොග ක්රියා ප්රකාරය ඇතුළු කරමින්"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"තොග ක්රියා ප්රකාරය හැර යන ලදී"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> තෝරා ගන්නා ලදී"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> තෝරා ගැනීම ඉවත් කරන ලදී"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"හඬ තැපෑල ධාවනය කිරීම"</string> <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> සම්බන්ධතාවය බලන්න"</string> <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> අමතන්න"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"හඬ තැපෑල"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"තත් <xliff:g id="SECONDS">%s</xliff:g>"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"මිනි <xliff:g id="MINUTES">%s</xliff:g> තත් <xliff:g id="SECONDS">%s</xliff:g>"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"කාණ්ඩ ක්රියා ප්රකාරය අවලංගු කරන්න"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"හඬ තැපෑල"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"හඬ තැපැල්"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ඔව්"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"නැත"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"තෝරා ගත් <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> මකන්නද?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> තෝරා ගන්නා ලදි"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> දින <xliff:g id="TIME">%2$s</xliff:g>ට"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM පතෙන් පූරණය කරමින්…"</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM පත් සම්බන්ධතා"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"සබඳතා යෙදුමක් ලබාගත නොහැකිය"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"හඬ සෙවුම ලබාගත නොහැකිය"</string> <string name="call_not_available" msgid="7850148370757361155">"දුරකථන යෙදුම අබල කර ඇති නිසා දුරකථන ඇමතුම ලබාගැනීම කළ නොහැක."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"සම්බන්ධතා සෙවීම"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"නව මඟ හැරුණු ඇමතුම් <xliff:g id="NUMBER">%s</xliff:g>"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"ඔබගේ වේග ඩයල් එකේ තවමත් කවුරුවත් නැහැ"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ප්රියතම ලෙස එක් කරන්න"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"ඔබ තවමත් සම්බන්ධතා නැහැ"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"සම්බන්ධතාවයක් එක් කරන්න"</string> <string name="contact_tooltip" msgid="8871614660967439999">"සියලු අංක බැලීමට රූපය ස්පර්ශ කරන්න නැතහොත් නැවත අනුපිළිවෙළට සැකසීමට ස්පර්ශ කර අල්ලාගෙන සිටින්න"</string> <string name="remove_contact" msgid="2353580570488923668">"ඉවත් කරන්න"</string> + <string name="select_all" msgid="408601760696146245">"සියල්ල තෝරන්න"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"වීඩියෝ ඇමතුම"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"පණිවිඩයක් යවන්න"</string> <string name="call_log_action_details" msgid="2091370737371449501">"ඇමතුම් විස්තර"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"අවහිර කළ අංක"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> දැනටමත් අවහිර කර ඇත."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"ගිණුම් ඇමතීම"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"ක්රියාත්මක කරන්න"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"අවසර සකසන්න"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"වේග ඩයල් කිරීම සබල කිරීමට, සම්බන්ධතා අවසරය ක්රියාත්මක කරන්න."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"ඔබේ ඇමතුම් ලොගය බැලීමට, දුරකථන අවසරය ක්රියාත්මක කරන්න."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"ඔබේ සම්බන්ධතා බැලීමට, සම්බන්ධතා අවසරය ක්රියාත්මක කරන්න."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"ඔබේ හඬ තැපෑල වෙත ප්රවේශ වීමට, දුරකථන අවසරය ක්රියාත්මක කරන්න."</string> <string name="permission_no_search" msgid="2424710404207193826">"ඔබේ සම්බන්ධතා සෙවීමට, සම්බන්ධතා අවසර ක්රියාත්මක කරන්න."</string> <string name="permission_place_call" msgid="8686908130349369423">"ඇමතුමක් ලබා ගැනීමට, දුරකථන අවසරය ක්රියාත්මක කරන්න."</string> diff --git a/java/com/android/dialer/app/res/values-sk/strings.xml b/java/com/android/dialer/app/res/values-sk/strings.xml index 60b63d520..f7bf4237c 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Návrat k prebiehajúcemu hovoru"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Pridať hovor"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Prichádzajúce hovory"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Vstupuje sa do režimu hromadných akcií"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Odišli ste z režimu hromadných akcií"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Položka <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> bola vybraná"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Výber položky <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> bol zrušený"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Prehrať hlasovú správu"</string> <string name="description_view_contact" msgid="3940984937384372665">"Zobraziť kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Zavolať kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -101,11 +105,13 @@ <string name="voicemail" msgid="8899540969000957954">"Hlasová schránka"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> s"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Zrušiť režim hromadných akcií"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"hlasová správa"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"hlasové správy"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Áno"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nie"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Chcete odstrániť vybraté položky (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>)?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Vybraté: <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> o <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -118,7 +124,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Prebieha načítavanie z SIM karty..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Kontakty na SIM karte"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Nie je k dispozícii žiadna aplikácia na kontakty"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Hlasové vyhľadávanie nie je k dispozícii"</string> <string name="call_not_available" msgid="7850148370757361155">"Nie je možné volať, pretože aplikácia Telefón bola deaktivovaná."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Hľadať v kontaktoch"</string> @@ -147,10 +152,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"Nové zmeškané hovory: <xliff:g id="NUMBER">%s</xliff:g>"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"V rýchlej voľbe zatiaľ nemáte žiadny kontakt"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Pridať obľúbený kontakt"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Zatiaľ nemáte žiadne kontakty"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Pridať kontakt"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Klepnutím na obrázok môžete zobraziť všetky čísla. Pridržaním obrázka môžete zmeniť poradie."</string> <string name="remove_contact" msgid="2353580570488923668">"Odstrániť"</string> + <string name="select_all" msgid="408601760696146245">"Vybrať všetko"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videohovor"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Odoslať správu"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Podrobnosti hovoru"</string> @@ -217,11 +221,9 @@ <string name="block_list" msgid="4701585783411870782">"Blokované čísla"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"Číslo <xliff:g id="NUMBER">%1$s</xliff:g> je už blokované."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Telefónne účty"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Zapnúť"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Nastaviť povolenia"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Ak chcete aktivovať rýchlu voľbu, zapnite povolenie Kontakty."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Ak si chcete zobraziť denník hovorov, zapnite povolenie Telefón."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Ak si chcete zobraziť kontakty, zapnite povolenie Kontakty."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Ak chcete používať hlasovú schránku, zapnite povolenie Telefón."</string> <string name="permission_no_search" msgid="2424710404207193826">"Ak chcete hľadať kontakty, zapnite povolenie Kontakty."</string> <string name="permission_place_call" msgid="8686908130349369423">"Ak chcete volať, zapnite povolenie Telefón."</string> diff --git a/java/com/android/dialer/app/res/values-sl/strings.xml b/java/com/android/dialer/app/res/values-sl/strings.xml index b46b99ab5..d3c57dd92 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Nazaj na klic, ki poteka"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Dodaj klic"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Dohodni klici"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Prehod v način množičnega dejanja"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Prehod iz načina množičnega dejanja"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Izbrano: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Preklican izbor: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Predvajanje sporočil glasovne pošte"</string> <string name="description_view_contact" msgid="3940984937384372665">"Ogled stika <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Pokliči <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -101,11 +105,13 @@ <string name="voicemail" msgid="8899540969000957954">"Glasovna pošta"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Prekliči način množičnega dejanja"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"sporočilo v odzivniku"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"sporočila v odzivniku"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Da"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Želite izbrisati <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Št. izbranih: <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ob <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -118,7 +124,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Nalaganje s kartice SIM ..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Stiki na kartici SIM"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Ni aplikacije za stike"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Glasovno iskanje ni na voljo"</string> <string name="call_not_available" msgid="7850148370757361155">"Ni mogoče opraviti telefonskega klica, ker je aplikacija Telefon onemogočena."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Iskanje stikov"</string> @@ -147,10 +152,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"Št. novih zgrešenih klicev: <xliff:g id="NUMBER">%s</xliff:g>"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Na seznamu za hitro klicanje nimate še nikogar"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Dodajte priljubljenega"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Nimate še stikov"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Dodajte stik"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Dotaknite se slike, da prikažete vse številke, ali pa se je dotaknite in pridržite, da spremenite vrstni red."</string> <string name="remove_contact" msgid="2353580570488923668">"Odstrani"</string> + <string name="select_all" msgid="408601760696146245">"Izberi vse"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videoklic"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Pošljite sporočilo"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Podrobnosti klica"</string> @@ -217,11 +221,9 @@ <string name="block_list" msgid="4701585783411870782">"Blokirane številke"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"Telefonska številka <xliff:g id="NUMBER">%1$s</xliff:g> je že blokirana."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Računi za klicanje"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Vklop"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Nastavi dovoljenja"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Če želite omogočiti hitro klicanje, vklopite dovoljenje za stike."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Če si želite ogledati dnevnik klicev, vklopite dovoljenje za telefon."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Če si želite ogledati stike, vklopite dovoljenje za stike."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Če želite dostopati do sporočil v odzivniku, vklopite dovoljenje za telefon."</string> <string name="permission_no_search" msgid="2424710404207193826">"Če želite iskati po stikih, vklopite dovoljenje za stike."</string> <string name="permission_place_call" msgid="8686908130349369423">"Če želite klicati, vklopite dovoljenje za telefon."</string> diff --git a/java/com/android/dialer/app/res/values-sq/strings.xml b/java/com/android/dialer/app/res/values-sq/strings.xml index 6a274fcd2..84704459c 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Kthehu te telefonata"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Shto një telefonatë"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Telefonatat hyrëse"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Po hyn në modalitetin e veprimit në masë"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"U largove nga modaliteti i veprimit në masë"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"U zgjodh <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Zgjedhja e <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> u anulua"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Luaj postën zanore"</string> <string name="description_view_contact" msgid="3940984937384372665">"Shiko kontaktin <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Telefono <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Posta zanore"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sekonda"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. e <xliff:g id="SECONDS">%s</xliff:g> sek."</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Anulo modalitetin e veprimeve në grup"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"posta zanore"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"postat zanore"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Po"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Jo"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Të fshihen <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> të zgjedhura?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> të zgjedhura"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> në <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Po ngarkon nga karta SIM…"</string> <string name="simContacts_title" msgid="7961069730386378887">"Kontaktet e kartës SIM"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Nuk mund të përdoret asnjë aplikacion për kontaktet"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Kërkimi me zë nuk mundësohet"</string> <string name="call_not_available" msgid="7850148370757361155">"Telefonata nuk mund të bëhet sepse aplikacioni \"Telefoni\" është i çaktivizuar."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Kërko për kontakte"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> telefonata të reja të humbura"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Askush nuk është ende në thirrjen tënde të shpejtuar"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Shto një të preferuar"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Nuk ke ende kontakte"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Shto një kontakt"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Prek imazhin për të parë të gjithë numrat ose mbaje të shtypur për ta pozicionuar përsëri"</string> <string name="remove_contact" msgid="2353580570488923668">"Hiq"</string> + <string name="select_all" msgid="408601760696146245">"Zgjidh të gjitha"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Telefonatë me video"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Dërgo një mesazh"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Detajet e telefonatës"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Numrat e bllokuar"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> është i bllokuar tashmë."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Llogaritë e telefonatave"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktivizo"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Cakto lejet"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Për të aktivizuar thirrjen e shpejtuar, aktivizo lejen e Kontakteve."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Për të parë evidencën e telefonatave, aktivizo lejen e Telefonit."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Për të parë kontaktet, aktivizo lejen e Kontakteve."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Për të pasur qasje në postën zanore, aktivizo lejen e Telefonit."</string> <string name="permission_no_search" msgid="2424710404207193826">"Për të kërkuar kontaktet, aktivizo lejet e Kontakteve"</string> <string name="permission_place_call" msgid="8686908130349369423">"Për të kryer një telefonatë, aktivizo lejen e Telefonit."</string> diff --git a/java/com/android/dialer/app/res/values-sr/strings.xml b/java/com/android/dialer/app/res/values-sr/strings.xml index 0def958d4..6cf7a7c85 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Врати се на позив који је у току"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Додај позив"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Долазни позиви"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Улазите у режим групних радњи"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Изашли сте из режима групних радњи"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Изабрано је <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Опозван је избор <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Пуштање говорне поште"</string> <string name="description_view_contact" msgid="3940984937384372665">"Прикажи контакт <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Позови <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -100,11 +104,13 @@ <string name="voicemail" msgid="8899540969000957954">"Говорна пошта"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мин <xliff:g id="SECONDS">%s</xliff:g> сек"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Откажите режим групних радњи"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"говорну поруку"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"говорне поруке"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Да"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Не"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Желите ли да избришете изабрану(е) <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Изабраних: <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> у <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -117,7 +123,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Учитава се са SIM картице…"</string> <string name="simContacts_title" msgid="7961069730386378887">"Контакти на SIM картици"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Нема доступне апликације за контакте"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Гласовна претрага није доступна"</string> <string name="call_not_available" msgid="7850148370757361155">"Није могуће упутити телефонски позив јер је апликација Телефон онемогућена."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Претражи контакте"</string> @@ -146,10 +151,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"Нових пропуштених позива: <xliff:g id="NUMBER">%s</xliff:g>"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Немате ниједан контакт на брзом бирању"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Додај омиљен контакт"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Још увек немате ниједан контакт"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Додај контакт"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Додирните слику да бисте видели све бројеве или додирните и задржите да бисте им променили распоред"</string> <string name="remove_contact" msgid="2353580570488923668">"Уклони"</string> + <string name="select_all" msgid="408601760696146245">"Изабери све"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Видео позив"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Пошаљи поруку"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Детаљи позива"</string> @@ -215,11 +219,9 @@ <string name="block_list" msgid="4701585783411870782">"Блокирани бројеви"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> је већ блокиран."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Налози за позивање"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Укључи"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Подеси дозволе"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Да бисте омогућили брзо бирање, укључите дозволу за Контакте."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Да бисте видели евиденцију позива, укључите дозволу за Телефон."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Да бисте видели контакте, укључите дозволу за Контакте."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Да бисте приступили говорној пошти, укључите дозволу за Телефон."</string> <string name="permission_no_search" msgid="2424710404207193826">"Да бисте претражили контакте, укључите дозволе за Контакте."</string> <string name="permission_place_call" msgid="8686908130349369423">"Да бисте упутили позив, укључите дозволу за Телефон."</string> diff --git a/java/com/android/dialer/app/res/values-sv/strings.xml b/java/com/android/dialer/app/res/values-sv/strings.xml index 75aa731f9..71ef3e55b 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Återvänd till pågående samtal"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Lägg t. samt."</string> <string name="actionIncomingCall" msgid="891346596090030558">"Inkommande samtal"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Öppnar läget för massåtgärd"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Stängde läget för massåtgärd"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Markerade <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Avmarkerade <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Spela upp röstmeddelande"</string> <string name="description_view_contact" msgid="3940984937384372665">"Visa kontakten <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Ring <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Röstbrevlåda"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sekund"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Avbryt läget för massåtgärd"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"röstbrevlåda"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"röstmeddelanden"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nej"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Vill du radera markerade <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> har markerats"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Läser in från SIM-kort…"</string> <string name="simContacts_title" msgid="7961069730386378887">"Kontakter från SIM-kort"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Det finns inga appar för kontakter"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Röstsökning är inte tillgänglig"</string> <string name="call_not_available" msgid="7850148370757361155">"Det går inte att ringa eftersom appen Telefon har inaktiverats."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Sök efter kontakter"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nya missade samtal"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Du har ingen kontakt som snabbval ännu"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Lägg till en favorit"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Du har inga kontakter ännu"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Lägg till en kontakt"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Tryck på bilden för att visa alla nummer eller tryck länge för att ändra ordningen"</string> <string name="remove_contact" msgid="2353580570488923668">"Ta bort"</string> + <string name="select_all" msgid="408601760696146245">"Markera alla"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Videosamtal"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Skicka ett meddelande"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Samtalsinfo"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Blockerade nummer"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> är redan blockerat."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Konton för samtal"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktivera"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Ange behörigheter"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Du måste aktivera behörigheten Kontakter för att kunna använda snabbuppringning."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Du måste aktivera behörigheten Telefon för att kunna visa samtalsloggen."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Du måste aktivera behörigheten Kontakter för att kunna visa kontakterna."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Du måste aktivera behörigheten Telefon för att kunna komma åt röstmeddelanden."</string> <string name="permission_no_search" msgid="2424710404207193826">"Aktivera behörigheter för Kontakter om du vill söka bland kontakterna."</string> <string name="permission_place_call" msgid="8686908130349369423">"Du måste aktivera behörigheten Telefon för att kunna ringa."</string> diff --git a/java/com/android/dialer/app/res/values-sw/strings.xml b/java/com/android/dialer/app/res/values-sw/strings.xml index d3b8392d4..9cbdd3e8e 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Rudi kwa simu inayoendelea"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Ongeza simu"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Simu zinazoingia"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Unaingia katika hali ya kutekeleza vitendo vingi"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Umeondoka katika hali ya kutekeleza vitendo vingi"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Umeteua <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Umebatilisha uteuzi wa <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Sikiliza ujumbe wa sauti"</string> <string name="description_view_contact" msgid="3940984937384372665">"Angalia anwani <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Pigia <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Ujumbe wa sauti"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"Sekunde <xliff:g id="SECONDS">%s</xliff:g>"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"Dak <xliff:g id="MINUTES">%s</xliff:g> sek <xliff:g id="SECONDS">%s</xliff:g>"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Ghairi hali ya kutekeleza vitendo vingi"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ujumbe wa sauti"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ujumbe wa sauti"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ndiyo"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Hapana"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Je, ungependa kufuta <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> uliochagua?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> zimechaguliwa"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> saa <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Inapakia kutoka SIM kadi..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Anwani za SIM kadi"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Hakuna programu za mawasiliano zinazopatikana"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Kutafuta kwa kutamka hakupatikani"</string> <string name="call_not_available" msgid="7850148370757361155">"Haiwezi kupiga simu kwa sababu programu ya Simu imezimwa."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Tafuta anwani"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"Simu <xliff:g id="NUMBER">%s</xliff:g> za karibuni ambazo hazikujibiwa"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Hakuna mtu aliye katika orodha yako ya watu unaowasiliana nao zaidi"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Ongeza anwani unazopenda zaidi"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Bado huna anwani zozote"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Ongeza anwani"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Gusa picha ili uone nambari zote ama uguse na kushikilia ili upange upya"</string> <string name="remove_contact" msgid="2353580570488923668">"Ondoa"</string> + <string name="select_all" msgid="408601760696146245">"Chagua zote"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Hangout ya Video"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Tuma SMS"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Maelezo ya simu"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Nambari zilizozuiwa"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> tayari imezuiwa."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Akaunti za simu"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Washa"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Weka ruhusa"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Ili kuwasha kipengele cha unaowasiliana nao zaidi, washa ruhusa ya Anwani."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Ili uone rekodi yako ya nambari za simu, washa ruhusa ya Simu."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Ili uone anwani zako, washa ruhusa ya Anwani."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Ili ufikie ujumbe wako wa sauti, washa ruhusa ya Simu."</string> <string name="permission_no_search" msgid="2424710404207193826">"Ili utafute anwani zako, washa ruhusa za Anwani."</string> <string name="permission_place_call" msgid="8686908130349369423">"Ili upige simu, washa ruhusa ya Simu."</string> diff --git a/java/com/android/dialer/app/res/values-ta/strings.xml b/java/com/android/dialer/app/res/values-ta/strings.xml index afb852b6d..a91088c4f 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"செயலிலுள்ள அழைப்பிற்குத் திரும்பு"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"அழைப்பைச் சேர்"</string> <string name="actionIncomingCall" msgid="891346596090030558">"உள்வரும் அழைப்புகள்"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"மொத்தச் செயல் பயன்முறையில் நுழைகிறீர்கள்"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"மொத்தச் செயல் பயன்முறையிலிருந்து வெளியேறிவிட்டீர்கள்"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"தேர்ந்தெடுத்த <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"தேர்வுநீக்கிய <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"குரலஞ்சலை இயக்கு"</string> <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> தொடர்பைக் காட்டு"</string> <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ஐ அழை"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"குரலஞ்சல்"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> வி"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> நிமிடம் <xliff:g id="SECONDS">%s</xliff:g> வினாடி"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"தொகுப்புச் செயல்கள் பயன்முறையை ரத்துசெய்யும்"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"குரலஞ்சல்"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"குரலஞ்சல்கள்"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ஆம்"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"வேண்டாம்"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"தேர்ந்தெடுத்த <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>ஐ நீக்கவா?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> தேர்ந்தெடுக்கப்பட்டன"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> அன்று <xliff:g id="TIME">%2$s</xliff:g> மணிக்கு"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"சிம் கார்டிலிருந்து ஏற்றுகிறது…"</string> <string name="simContacts_title" msgid="7961069730386378887">"சிம் கார்டின் தொடர்புகள்"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"தொடர்புகள் பயன்பாடு எதுவுமில்லை"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"குரல் தேடல் இல்லை"</string> <string name="call_not_available" msgid="7850148370757361155">"Phone பயன்பாடு முடக்கப்பட்டுள்ளதால், ஃபோன் அழைப்பைச் செய்ய முடியாது."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"தொடர்புகளைத் தேடு"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> புதிய தவறிய அழைப்புகள்"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"இன்னும் விரைவு டயலில் யாரையும் சேர்க்கவில்லை"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"முக்கியமானவர்களைச் சேர்"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"இதுவரை எந்தத் தொடர்புகளும் இல்லை"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ஒரு தொடர்பைச் சேர்க்கவும்"</string> <string name="contact_tooltip" msgid="8871614660967439999">"எல்லா எண்களையும் பார்க்க, படத்தைத் தொடவும் அல்லது மறுவரிசைப்படுத்த, தொட்டுப் பிடித்திருக்கவும்"</string> <string name="remove_contact" msgid="2353580570488923668">"அகற்று"</string> + <string name="select_all" msgid="408601760696146245">"அனைத்தையும் தேர்ந்தெடு"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"வீடியோ அழைப்பு"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"செய்தி அனுப்பவும்"</string> <string name="call_log_action_details" msgid="2091370737371449501">"அழைப்பு விவரங்கள்"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"தடுக்கப்பட்ட எண்கள்"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ஏற்கனவே தடுக்கப்பட்டுள்ளது."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"அழைப்பு கணக்குகள்"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"இயக்கு"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"அனுமதிகளை அமை"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"விரைவு டயலை இயக்க, தொடர்புகள் அனுமதியை இயக்கவும்."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"அழைப்புப் பதிவைப் பார்க்க, ஃபோன் அனுமதியை இயக்கவும்."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"தொடர்புகளைப் பார்க்க, தொடர்புகள் அனுமதியை இயக்கவும்."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"குரலஞ்சலை அணுக, ஃபோன் அனுமதியை இயக்கவும்."</string> <string name="permission_no_search" msgid="2424710404207193826">"தொடர்புகளைத் தேட, தொடர்புகள் அனுமதிகளை இயக்கவும்."</string> <string name="permission_place_call" msgid="8686908130349369423">"அழைக்க, ஃபோன் அனுமதியை இயக்கவும்."</string> diff --git a/java/com/android/dialer/app/res/values-te/strings.xml b/java/com/android/dialer/app/res/values-te/strings.xml index ffc046f69..aecc1c4b9 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"ప్రోగ్రెస్లో ఉన్న కాల్కు వెళ్లు"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"కాల్ను జోడించు"</string> <string name="actionIncomingCall" msgid="891346596090030558">"ఇన్కమింగ్ కాల్లు"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"బల్క్ చర్య మోడ్లోకి ప్రవేశిస్తున్నారు"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"బల్క్ చర్య మోడ్ నుండి నిష్క్రమించారు"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ఎంచుకోబడింది"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ఎంపిక తీసివేయబడింది"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"వాయిస్ మెయిల్ ప్లే చేయండి"</string> <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> పరిచయాన్ని వీక్షించండి"</string> <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g>కు కాల్ చేయి"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"వాయిస్ మెయిల్"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> సెక"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> నిమి <xliff:g id="SECONDS">%s</xliff:g> సెక"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"సమూహ చర్యల మోడ్ను రద్దు చేస్తుంది"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"వాయిస్ మెయిల్"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"వాయిస్ మెయిల్లు"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"అవును"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"వద్దు"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ఎంచుకున్న <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>ను తొలగించాలా?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ఎంచుకోబడ్డాయి"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g>కి"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"సిమ్ కార్డు నుండి లోడ్ చేస్తోంది…"</string> <string name="simContacts_title" msgid="7961069730386378887">"సిమ్ కార్డు పరిచయాలు"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"పరిచయాల అనువర్తనం ఏదీ అందుబాటులో లేదు"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"వాయిస్ శోధన అందుబాటులో లేదు"</string> <string name="call_not_available" msgid="7850148370757361155">"ఫోన్ అనువర్తనం నిలిపివేయబడినందున ఫోన్ కాల్ చేయలేరు."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"పరిచయాలను శోధించు"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> కొత్త సమాధానం ఇవ్వని కాల్లు"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"మీ స్పీడ్ డయల్లో ఇంకా ఎవరూ లేరు"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ఇష్టమైన వారిని జోడించండి"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"మీకు ఇప్పటికీ పరిచయాలేవీ లేవు"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"పరిచయాన్ని జోడించండి"</string> <string name="contact_tooltip" msgid="8871614660967439999">"అన్ని నంబర్లను చూడటానికి చిత్రాన్ని తాకండి లేదా క్రమం మార్చడానికి తాకి, కాసేపు అలాగే ఉంచండి"</string> <string name="remove_contact" msgid="2353580570488923668">"తీసివేయి"</string> + <string name="select_all" msgid="408601760696146245">"అన్నీ ఎంచుకోండి"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"వీడియో కాల్"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"సందేశాన్ని పంపు"</string> <string name="call_log_action_details" msgid="2091370737371449501">"కాల్ వివరాలు"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"బ్లాక్ చేయబడిన నంబర్లు"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ఇప్పటికే బ్లాక్ చేయబడింది."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"కాల్ చేసే ఖాతాలు"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"ఆన్ చేయి"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"అనుమతులను సెట్ చేయి"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"స్పీడ్ డయల్ను ప్రారంభించడానికి, పరిచయాల అనుమతిని ఆన్ చేయండి."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"మీ కాల్ లాగ్ను చూడటానికి, ఫోన్ అనుమతిని ఆన్ చేయండి."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"మీ పరిచయాలను చూడటానికి, పరిచయాల అనుమతిని ఆన్ చేయండి."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"మీ వాయిస్ మెయిల్ను ప్రాప్యత చేయడానికి, ఫోన్ అనుమతిని ఆన్ చేయండి."</string> <string name="permission_no_search" msgid="2424710404207193826">"మీ పరిచయాలను శోధించడానికి, పరిచయాల అనుమతులను ఆన్ చేయండి."</string> <string name="permission_place_call" msgid="8686908130349369423">"కాల్ చేయడానికి, ఫోన్ అనుమతిని ఆన్ చేయండి."</string> diff --git a/java/com/android/dialer/app/res/values-th/strings.xml b/java/com/android/dialer/app/res/values-th/strings.xml index 13916a51d..58507b49e 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"กลับไปคุยสายต่อ"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"เพิ่มการโทร"</string> <string name="actionIncomingCall" msgid="891346596090030558">"สายโทรเข้า"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"กำลังเข้าสู่โหมดการดำเนินการแบบกลุ่ม"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ออกจากโหมดการทำงานแบบกลุ่มแล้ว"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"เลือก <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> แล้ว"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"ยกเลิกการเลือก <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> แล้ว"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"เล่นข้อความเสียง"</string> <string name="description_view_contact" msgid="3940984937384372665">"ดูรายชื่อติดต่อ <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"โทรหา <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"ข้อความเสียง"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> วินาที"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> นาที <xliff:g id="SECONDS">%s</xliff:g> วินาที"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"ยกเลิกโหมดการทำงานแบบกลุ่ม"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ข้อความเสียง"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ข้อความเสียง"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ใช่"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ไม่"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ลบ<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>ที่เลือกหรือไม่"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"เลือกไว้ <xliff:g id="NUMBER">%1$s</xliff:g> รายการ"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"วันที่ <xliff:g id="DATE">%1$s</xliff:g> เวลา <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"กำลังโหลดจากซิมการ์ด…"</string> <string name="simContacts_title" msgid="7961069730386378887">"รายชื่อบนซิมการ์ด"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"ไม่มีแอปรายชื่อติดต่อที่พร้อมใช้งาน"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"การค้นหาด้วยเสียงไม่พร้อมใช้งาน"</string> <string name="call_not_available" msgid="7850148370757361155">"ไม่สามารถโทรศัพท์ได้เนื่องจากแอปพลิเคชันโทรศัพท์ถูกปิดใช้งาน"</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"ค้นหารายชื่อติดต่อ"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"สายที่ไม่ได้รับใหม่ <xliff:g id="NUMBER">%s</xliff:g> สาย"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"ยังไม่ได้กำหนดผู้ใดในการโทรด่วน"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"เพิ่มรายการโปรด"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"คุณยังไม่มีรายชื่อติดต่อ"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"เพิ่มรายชื่อติดต่อ"</string> <string name="contact_tooltip" msgid="8871614660967439999">"แตะรูปภาพเพื่อดูหมายเลขทั้งหมด หรือแตะค้างไว้เพื่อจัดเรียงใหม่"</string> <string name="remove_contact" msgid="2353580570488923668">"ลบ"</string> + <string name="select_all" msgid="408601760696146245">"เลือกทั้งหมด"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"แฮงเอาท์วิดีโอ"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"ส่งข้อความ"</string> <string name="call_log_action_details" msgid="2091370737371449501">"รายละเอียดการโทร"</string> @@ -201,7 +205,7 @@ <string name="voicemail_settings_label" msgid="4594299554519920570">"ข้อความเสียง"</string> <string name="voicemail_settings_select_sim_title" msgid="129296966967476845">"เลือกซิมสำหรับการตั้งค่าข้อความเสียง"</string> <string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"การบล็อกสายเรียกเข้าปิดชั่วคราว"</string> - <string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"ระบบปิดใช้การบล็อกสายเรียกเข้าเนื่องจากคุณติดต่อบริการฉุกเฉินจากโทรศัพท์เครื่องนี้ภายใน 48 ชั่วโมงที่ผ่านมา ระบบจะเปิดใช้คุณลักษณะนี้อีกครั้งโดยอัตโนมัติเมื่อครบ 48 ชั่วโมง"</string> + <string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"ระบบปิดใช้การบล็อกสายเรียกเข้าเนื่องจากคุณติดต่อบริการฉุกเฉินจากโทรศัพท์เครื่องนี้ภายใน 48 ชั่วโมงที่ผ่านมา ระบบจะเปิดใช้ฟีเจอร์นี้อีกครั้งโดยอัตโนมัติเมื่อครบ 48 ชั่วโมง"</string> <string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"นำเข้าหมายเลข"</string> <string name="blocked_call_settings_import_description" msgid="1819412052545228965">"ก่อนหน้านี้คุณได้ทำเครื่องหมายว่าให้ส่งผู้โทรบางคนไปยังข้อความเสียงโดยอัตโนมัติผ่านแอปอื่นๆ"</string> <string name="blocked_call_settings_view_numbers_button" msgid="3332727948554356704">"ดูหมายเลข"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"หมายเลขที่ถูกบล็อก"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ถูกบล็อกอยู่แล้ว"</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"บัญชีการโทร"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"เปิด"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ตั้งค่าสิทธิ์"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"หากต้องการเปิดใช้การโทรด่วน ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string> <string name="permission_no_calllog" msgid="4053705651238775784">"หากต้องการดูประวัติการโทร ให้เปิดสิทธิ์เข้าถึงโทรศัพท์"</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"หากต้องการดูรายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"หากต้องการเข้าถึงข้อความเสียง ให้เปิดสิทธิ์เข้าถึงโทรศัพท์"</string> <string name="permission_no_search" msgid="2424710404207193826">"หากต้องการค้นหารายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string> <string name="permission_place_call" msgid="8686908130349369423">"หากต้องการโทรออก ให้เปิดสิทธิ์เข้าถึงโทรศัพท์"</string> diff --git a/java/com/android/dialer/app/res/values-tl/strings.xml b/java/com/android/dialer/app/res/values-tl/strings.xml index cc44cb5f2..9a8157fea 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Bumalik sa kasalukuyang tawag"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Mag-add: tawag"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Mga paparating na tawag"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Pumapasok sa bulk action mode"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Umalis sa bulk action mode"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Napili <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Inalis sa pagkakapili <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"I-play ang voicemail"</string> <string name="description_view_contact" msgid="3940984937384372665">"Tingnan ang contact na si <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Tawagan si <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Voicemail"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sec"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Kanselahin ang batch actions mode"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"voicemail"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"mga voicemail"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Oo"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Hindi"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"I-delete ang napiling <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ang napili"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ng <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Naglo-load mula sa SIM card…"</string> <string name="simContacts_title" msgid="7961069730386378887">"Mga contact sa SIM card"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Walang available na app ng mga contact"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Hindi available ang paghahanap gamit ang boses"</string> <string name="call_not_available" msgid="7850148370757361155">"Hindi makagawa ng tawag sa telepono dahil naka-disable ang application na Telepono."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Maghanap ng mga contact"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> (na) bagong hindi nasagot na tawag"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Wala pang tao sa iyong speed dial"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Magdagdag ng paborito"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Wala ka pang sinumang mga contact"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Magdagdag ng contact"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Pindutin ang larawan upang makita ang lahat ng numero o pindutin nang matagal upang ayusing muli"</string> <string name="remove_contact" msgid="2353580570488923668">"Alisin"</string> + <string name="select_all" msgid="408601760696146245">"Piliin lahat"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Mag-video call"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Magpadala ng mensahe"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Mga detalye ng tawag"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Mga naka-block na numero"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"Naka-block na ang <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Account sa pagtawag"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"I-on"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Magtakda ng mga pahintulot"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Upang i-enable ang speed dial, i-on ang pahintulot ng Mga Contact."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Upang makita ang iyong log ng tawag, i-on ang pahintulot ng Telepono."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Upang makita ang iyong mga contact, i-on ang pahintulot ng Mga Contact."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Upang ma-access ang iyong voicemail, i-on ang pahintulot ng Telepono."</string> <string name="permission_no_search" msgid="2424710404207193826">"Upang hanapin ang iyong mga contact, i-on ang mga pahintulot sa Mga Contact."</string> <string name="permission_place_call" msgid="8686908130349369423">"Upang tumawag, i-on ang pahintulot ng Telepono."</string> diff --git a/java/com/android/dialer/app/res/values-tr/strings.xml b/java/com/android/dialer/app/res/values-tr/strings.xml index 2f6f704f8..17bd6645c 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Çağrıya dön"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Çağrı ekle"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Gelen çağrılar"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Toplu işlem moduna giriliyor"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Toplu işlem modundan çıkıldı"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Seçildi: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Seçimi kaldırıldı: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Sesli mesajı oynat"</string> <string name="description_view_contact" msgid="3940984937384372665">"Kişiyi görüntüle: <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Ara: <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Sesli Mesaj"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sn."</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> dk. <xliff:g id="SECONDS">%s</xliff:g> sn."</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Toplu işlemler modu iptal edilir"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"sesli mesaj"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"sesli mesajlar"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Evet"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Hayır"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Seçili <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> silinsin mi?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> öğe seçildi"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM karttan yükleniyor..."</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM kart kişileri"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Kullanılabilir rehber uygulaması yok"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Sesli arama kullanılamaz"</string> <string name="call_not_available" msgid="7850148370757361155">"Telefon uygulaması devre dışı bırakıldığından telefon edilemiyor."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Kişilerde ara"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> yeni cevapsız çağrı"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Hızlı arama listenizde henüz kimse yok"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Favori ekle"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Henüz kayıtlı kişi yok"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Kişi ekle"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Tüm numaraları görmek için resme dokunun veya yeniden sıralamak için dokunup basılı tutun"</string> <string name="remove_contact" msgid="2353580570488923668">"Kaldır"</string> + <string name="select_all" msgid="408601760696146245">"Tümünü seç"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Video görüşmesi"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"İleti gönder"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Çağrı ayrıntıları"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Engellenen numaralar"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> numaralı telefon zaten engellendi."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Çağrı hesapları"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Aç"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"İzinleri ayarla"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Hızlı aramayı etkinleştirmek için Kişiler iznini açın."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Çağrı günlüğünüzü görmek için Telefon iznini açın."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Kişilerinizi görmek için Kişiler iznini açın."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Sesli mesajınıza erişmek için Telefon iznini açın."</string> <string name="permission_no_search" msgid="2424710404207193826">"Kişilerinizde arama yapmak için Kişiler izinlerini açın."</string> <string name="permission_place_call" msgid="8686908130349369423">"Telefon etmek için Telefon iznini açın."</string> diff --git a/java/com/android/dialer/app/res/values-uk/strings.xml b/java/com/android/dialer/app/res/values-uk/strings.xml index 9a790125b..a020a1f1b 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Повернутися до поточного виклику"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Додати виклик"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Вхідні виклики"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Перехід у режим масових дій"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Ви вийшли з режиму масових дій"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Вибрано користувача <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Скасовано вибір користувача <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Відтворити голосову пошту"</string> <string name="description_view_contact" msgid="3940984937384372665">"Переглянути контакт <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Набрати <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -101,11 +105,13 @@ <string name="voicemail" msgid="8899540969000957954">"Голосова пошта"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> с"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> хв <xliff:g id="SECONDS">%s</xliff:g> с"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Скасувати режим масових дій"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"голосова пошта"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"голосова пошта"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Так"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ні"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Видалити вибране (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>)?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Вибрано <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> о <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -118,7 +124,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Завантаж. із SIM-карти…"</string> <string name="simContacts_title" msgid="7961069730386378887">"Контакти SIM-карти"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Немає додатка з контактами"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Голосовий пошук недоступний"</string> <string name="call_not_available" msgid="7850148370757361155">"Не вдається здійснити дзвінок, оскільки додаток Телефон вимкнено."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Пошук контактів"</string> @@ -147,10 +152,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"Нових пропущених дзвінків: <xliff:g id="NUMBER">%s</xliff:g>"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Немає номерів для швидкого набору"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Додати номер"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Ще немає контактів"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Додати контакт"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Торкніться зображення, щоб побачити всі номери, або натисніть і утримуйте, щоб змінити порядок."</string> <string name="remove_contact" msgid="2353580570488923668">"Видалити"</string> + <string name="select_all" msgid="408601760696146245">"Вибрати все"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Відеодзвінок"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Надіслати повідомлення"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Деталі виклику"</string> @@ -217,11 +221,9 @@ <string name="block_list" msgid="4701585783411870782">"Заблоковані номери"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> уже заблоковано."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Обл. записи для дзвінків"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Увімкнути"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Налаштувати дозволи"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Щоб активувати швидкий набір, увімкніть дозвіл \"Контакти\"."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Щоб переглянути журнал викликів, увімкніть дозвіл \"Телефон\"."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Щоб переглянути контакти, увімкніть дозвіл \"Контакти\"."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Щоб користуватися голосовою поштою, увімкніть дозвіл \"Телефон\"."</string> <string name="permission_no_search" msgid="2424710404207193826">"Щоб шукати контакти, увімкніть дозвіл \"Контакти\"."</string> <string name="permission_place_call" msgid="8686908130349369423">"Щоб зателефонувати, увімкніть дозвіл \"Телефон\"."</string> diff --git a/java/com/android/dialer/app/res/values-ur/strings.xml b/java/com/android/dialer/app/res/values-ur/strings.xml index 25198711b..d696bd54c 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"جاری کال پر واپس لوٹیں"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"کال شامل کریں"</string> <string name="actionIncomingCall" msgid="891346596090030558">"آنے والی کالیں"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"بلک کاروائی موڈ میں داخل ہو رہا ہے"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"بلک کاروائی موڈ چھوڑ دیا"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"منتخب کردہ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"غیر منتخب کردہ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"صوتی میل چلائیں"</string> <string name="description_view_contact" msgid="3940984937384372665">"رابطہ <xliff:g id="NAME">%1$s</xliff:g> دیکھیں"</string> <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> کو کال کریں"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"صوتی میل"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> سیکنڈ"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> منٹ <xliff:g id="SECONDS">%s</xliff:g> سیکنڈ"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"بیچ کاروائی موڈ منسوخ کریں"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"صوتی میل"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"صوتی میلز"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ہاں"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"نہیں"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"منتخب کردہ <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> حذف کریں؟"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> منتخب کردہ"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> بوقت <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM کارڈ سے لوڈ ہو رہا ہے…"</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM کارڈ کے رابطے"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"رابطوں کی کوئی ایپ دستیاب نہیں ہے"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"صوتی تلاش دستیاب نہیں ہے"</string> <string name="call_not_available" msgid="7850148370757361155">"فون کال نہیں کی جا سکتی ہے کیونکہ فون ایپلیکیشن کو غیر فعال کر دیا گیا ہے۔"</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"رابطے تلاش کریں"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> نئی چھوٹی ہوئی کالیں"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"آپ کے اسپیڈ ڈائل پر ابھی تک کوئی نہیں ہے"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ایک پسندیدہ شامل کریں"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"آپ کے پاس ابھی تک کوئی رابطے نہیں ہیں"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ایک رابطہ شامل کریں"</string> <string name="contact_tooltip" msgid="8871614660967439999">"سبھی نمبرز دیکھنے کیلئے تصویر ٹچ کریں یا دوبارہ ترتیب دینے کیلئے ٹچ کریں اور پکڑے رہیں"</string> <string name="remove_contact" msgid="2353580570488923668">"ہٹائیں"</string> + <string name="select_all" msgid="408601760696146245">"سبھی کو منتخب کریں"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"ویڈیو کال"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"پیغام بھیجیں"</string> <string name="call_log_action_details" msgid="2091370737371449501">"کال کی تفصیلات"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"مسدود کردہ نمبرز"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> پہلے ہی مسدود ہے۔"</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"کالنگ اکاؤنٹس"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"آن کریں"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"اجازتیں طے کریں"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"اسپیڈ ڈائل کو فعال کرنے کیلئے رابطوں کی اجازت آن کریں۔"</string> <string name="permission_no_calllog" msgid="4053705651238775784">"اپنا کال لاگ دیکھنے کیلئے فون کی اجازت آن کریں۔"</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"اپنے رابطے دیکھنے کیلئے رابطوں کی اجازت آن کریں۔"</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"اپنی صوتی میل تک رسائی کیلئے فون کی اجازت آن کریں۔"</string> <string name="permission_no_search" msgid="2424710404207193826">"اپنے رابطوں کو تلاش کرنے کیلئے رابطوں کی اجازتیں آن کریں۔"</string> <string name="permission_place_call" msgid="8686908130349369423">"کال کرنے کیلئے فون کی اجازت آن کریں۔"</string> diff --git a/java/com/android/dialer/app/res/values-uz/strings.xml b/java/com/android/dialer/app/res/values-uz/strings.xml index 705cae765..aa645bf88 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Amaldagi chaqiruvga qaytish"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Chaqiruv qo‘shish"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Kiruvchi qo‘ng‘iroqlar"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Yoppasiga bajariladigan amallar rejimiga o‘tilmoqda"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Yoppasiga bajariladigan amallar rejimidan chiqib ketildi"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> tanlandi"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> tanlovi bekor qilindi"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Ovozli xabarni eshitish"</string> <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> kontaktini ko‘rish"</string> <string name="description_call" msgid="1532402285334775372">"Qo‘ng‘iroq: <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Ovozli pochta"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> soniya"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> daq <xliff:g id="SECONDS">%s</xliff:g> son"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Yoppasiga bajariladigan amallar rejimini bekor qilish"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ovozli xabar"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ovozli xabarlar"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ha"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Yo‘q"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Tanlangan <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> o‘chirib tashlansinmi?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Tanlandi: <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM kartadan yuklanmoqda…"</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM karta kontaktlari"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Hech qanday kontakt ilovasi yo‘q"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Ovozli qidiruv mavjud emas"</string> <string name="call_not_available" msgid="7850148370757361155">"Telefon ilovasi o‘chirib qo‘yilgani sababli telefon qo‘ng‘iroqlarini amalga oshirib bo‘lmaydi."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Kontaktlar ichidan qidirish"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ta javobsiz chaqiruv"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Tezkor terish uchun hech kim yo‘q"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Tezkor raqam terishni sozlang"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Sizda hali hech qanday kontakt yo‘q"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Yangi kontakt qo‘shing"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Barcha raqamlarni ko‘rish uchun rasm ustiga bosing yoki joyini o‘zgartirish uchun rasmni bosib turing."</string> <string name="remove_contact" msgid="2353580570488923668">"O‘chirish"</string> + <string name="select_all" msgid="408601760696146245">"Hammasini tanlash"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Video qo‘ng‘iroq"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Xabar yuborish"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Chaqiruv tafsilotlari"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Bloklangan raqamlar"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> raqami allaqachon bloklangan."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Chaqiruv uchun hisoblar"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Yoqish"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Ruxsatnomalarni sozlash"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Tezkor raqam terish uchun “Kontaktlar” ruxsatnomasini yoqing."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Qo‘ng‘iroqlaringiz ro‘yxatini ko‘rish uchun “Telefon” ruxsatnomasini yoqing."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Kontaktlaringizni ko‘rish uchun “Kontaktlar” ruxsatnomasini yoqing."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Ovozli pochtaga kirish uchun “Telefon” ruxsatnomasini yoqing."</string> <string name="permission_no_search" msgid="2424710404207193826">"Kontaktlarni qidirish uchun “Kontaktlar” ruxsatnomasini yoqing."</string> <string name="permission_place_call" msgid="8686908130349369423">"Qo‘ng‘iroq qilish uchun “Telefon” ruxsatnomasini yoqing."</string> diff --git a/java/com/android/dialer/app/res/values-vi/strings.xml b/java/com/android/dialer/app/res/values-vi/strings.xml index 5a60e0ac3..dda7c1523 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Quay lại cuộc gọi đang thực hiện"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Thêm cuộc gọi"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Cuộc gọi đến"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Truy cập chế độ tác vụ hàng loạt"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Đã rời khỏi chế độ tác vụ hàng loạt"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Đã chọn <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Đã bỏ chọn <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Phát thư thoại"</string> <string name="description_view_contact" msgid="3940984937384372665">"Xem thông tin liên hệ của <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Gọi <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Thư thoại"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> giây"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> phút <xliff:g id="SECONDS">%s</xliff:g> giây"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Hủy chế độ tác vụ hàng loạt"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"thư thoại"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"thư thoại"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Có"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Không"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Xóa <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> đã chọn?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Đã chọn <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> lúc <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Đang tải từ thẻ SIM…"</string> <string name="simContacts_title" msgid="7961069730386378887">"Danh bạ trên thẻ SIM"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Không có ứng dụng danh bạ"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Không có tính năng tìm kiếm bằng giọng nói"</string> <string name="call_not_available" msgid="7850148370757361155">"Không thể thực hiện cuộc gọi điện thoại vì ứng dụng Điện thoại đã bị tắt."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Tìm kiếm trong danh bạ"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> cuộc gọi nhỡ mới"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Chưa có ai trong danh bạ quay số nhanh của bạn"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Thêm liên hệ quay số nhanh yêu thích"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Bạn chưa có bất kỳ liên hệ nào"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Thêm liên hệ"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Chạm vào hình ảnh để xem tất cả các số hoặc chạm và giữ để sắp xếp lại"</string> <string name="remove_contact" msgid="2353580570488923668">"Xóa"</string> + <string name="select_all" msgid="408601760696146245">"Chọn tất cả"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Cuộc gọi điện video"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Gửi tin nhắn"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Chi tiết cuộc gọi"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Số bị chặn"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> đã bị chặn."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Tài khoản gọi"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Bật"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Đặt quyền"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Để bật quay số nhanh, bật quyền đối với Danh bạ."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Để xem nhật ký cuộc gọi của bạn, bật quyền đối với Điện thoại."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Để xem danh bạ của bạn, bật quyền đối với Danh bạ."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Để truy cập thư thoại của bạn, bật quyền đối với Điện thoại."</string> <string name="permission_no_search" msgid="2424710404207193826">"Để tìm kiếm liên hệ của bạn, hãy bật quyền đối với Danh bạ."</string> <string name="permission_place_call" msgid="8686908130349369423">"Để thực hiện cuộc gọi, bật quyền đối với Điện thoại."</string> diff --git a/java/com/android/dialer/app/res/values-zh-rCN/strings.xml b/java/com/android/dialer/app/res/values-zh-rCN/strings.xml index 98abc396a..672614e48 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"返回正在进行的通话"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"添加通话"</string> <string name="actionIncomingCall" msgid="891346596090030558">"来电"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"正在进入批量操作模式"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"已退出批量操作模式"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"已选择 <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"已取消选择 <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"播放语音邮件"</string> <string name="description_view_contact" msgid="3940984937384372665">"查看联系人<xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"呼叫<xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"语音信箱"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> 秒"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> 分钟 <xliff:g id="SECONDS">%s</xliff:g> 秒"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"取消批量操作模式"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"语音邮件"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"语音邮件"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"是"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"否"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"要删除所选的<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>吗?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"已选择 <xliff:g id="NUMBER">%1$s</xliff:g> 封"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g><xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"正从 SIM 卡中加载..."</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM卡联系人"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"没有可用的通讯录应用"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"无法使用语音搜索"</string> <string name="call_not_available" msgid="7850148370757361155">"“电话”应用已被停用,因此无法拨打电话。"</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"搜索联系人"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g>个新的未接电话"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"尚未给任何联系人设定快速拨号"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"添加常用联系人"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"您还没有任何联系人"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"添加联系人"</string> <string name="contact_tooltip" msgid="8871614660967439999">"触摸图片可查看所有号码,触摸并按住可重新排序"</string> <string name="remove_contact" msgid="2353580570488923668">"移除"</string> + <string name="select_all" msgid="408601760696146245">"全选"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"视频通话"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"发送短信"</string> <string name="call_log_action_details" msgid="2091370737371449501">"通话详情"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"已屏蔽的号码"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> 已被屏蔽。"</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"通话帐号"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"开启"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"设置权限"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"要启用快速拨号功能,请开启“通讯录”权限。"</string> <string name="permission_no_calllog" msgid="4053705651238775784">"要查看您的通话记录,请开启“电话”权限。"</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"要查看您的联系人,请开启“通讯录”权限。"</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"要使用您的语音信箱,请开启“电话”权限。"</string> <string name="permission_no_search" msgid="2424710404207193826">"要搜索您的联系人,请开启“通讯录”权限。"</string> <string name="permission_place_call" msgid="8686908130349369423">"要拨打电话,请开启“电话”权限。"</string> diff --git a/java/com/android/dialer/app/res/values-zh-rHK/strings.xml b/java/com/android/dialer/app/res/values-zh-rHK/strings.xml index 2a96ce045..f3dc44baf 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"返回進行中的通話"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"新增通話"</string> <string name="actionIncomingCall" msgid="891346596090030558">"來電"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"正在進入大量操作模式"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"已離開大量操作模式"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"已選取<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"已取消選取<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"播放語音留言"</string> <string name="description_view_contact" msgid="3940984937384372665">"查看聯絡人<xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"打電話給<xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"留言"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> 秒"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> 分 <xliff:g id="SECONDS">%s</xliff:g> 秒"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"取消批量操作模式"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"留言"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"留言"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"是"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"否"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"要刪除所選的<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>嗎?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"已選取 <xliff:g id="NUMBER">%1$s</xliff:g> 個"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g><xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"正在從 SIM 卡載入..."</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM 卡聯絡人"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"沒有可用的聯絡人應用程式"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"無法使用語音搜尋"</string> <string name="call_not_available" msgid="7850148370757361155">"由於「電話」應用程式已停用,因此無法打電話。"</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"搜尋聯絡人"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> 個新的未接來電"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"快速撥號名單中沒有聯絡人"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"新增常用聯絡人"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"暫時沒有聯絡人"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"新增聯絡人"</string> <string name="contact_tooltip" msgid="8871614660967439999">"輕觸圖片以查看所有電話號碼,或輕觸並按住圖片以重新排序"</string> <string name="remove_contact" msgid="2353580570488923668">"移除"</string> + <string name="select_all" msgid="408601760696146245">"全選"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"視像通話"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"傳送訊息"</string> <string name="call_log_action_details" msgid="2091370737371449501">"通話詳情"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"已封鎖的號碼"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"已封鎖 <xliff:g id="NUMBER">%1$s</xliff:g>。"</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"通話帳戶"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"開放權限"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"設定權限"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"如要啟用快速撥號功能,請開放「通訊錄」權限。"</string> <string name="permission_no_calllog" msgid="4053705651238775784">"如要查看通話記錄,請開放「手機」權限。"</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"如要查看聯絡人,請開放「通訊錄」權限。"</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"如要存取留言信箱,請開放「手機」權限。"</string> <string name="permission_no_search" msgid="2424710404207193826">"如要搜尋聯絡人,請開啟「通訊錄」權限。"</string> <string name="permission_place_call" msgid="8686908130349369423">"如要撥打電話,請開放「手機」權限。"</string> diff --git a/java/com/android/dialer/app/res/values-zh-rTW/strings.xml b/java/com/android/dialer/app/res/values-zh-rTW/strings.xml index 917452133..473955c5d 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"返回進行中的通話"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"新增通話"</string> <string name="actionIncomingCall" msgid="891346596090030558">"來電"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"已進入大量操作模式"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"已離開大量操作模式"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"已選取:<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"已取消選取:<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"播放語音留言"</string> <string name="description_view_contact" msgid="3940984937384372665">"查看聯絡人<xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"撥電話給<xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"語音留言"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> 秒"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> 分 <xliff:g id="SECONDS">%s</xliff:g> 秒"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"取消批次操作模式"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"語音留言"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"語音留言"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"是"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"否"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"要刪除選取的<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>嗎?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"已選取 <xliff:g id="NUMBER">%1$s</xliff:g> 個"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g><xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"從 SIM 卡讀取中…"</string> <string name="simContacts_title" msgid="7961069730386378887">"SIM 卡聯絡人"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"沒有可用的聯絡人應用程式"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"無法使用語音搜尋"</string> <string name="call_not_available" msgid="7850148370757361155">"「電話」應用程式已遭停用,因此無法撥打電話。"</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"搜尋聯絡人"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> 通新的未接來電"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"您的快速撥號功能尚未設定任何聯絡人"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"新增常用聯絡人"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"您尚未加入任何聯絡人"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"新增聯絡人"</string> <string name="contact_tooltip" msgid="8871614660967439999">"輕觸圖片即可查看所有號碼,按住則可重新排序"</string> <string name="remove_contact" msgid="2353580570488923668">"移除"</string> + <string name="select_all" msgid="408601760696146245">"全選"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"視訊通話"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"傳送簡訊"</string> <string name="call_log_action_details" msgid="2091370737371449501">"通話詳細資料"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"已封鎖的號碼"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> 已在封鎖清單中。"</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"通話帳戶"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"開啟"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"設定權限"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"如要啟用快速撥號,請開啟「聯絡人」存取權限。"</string> <string name="permission_no_calllog" msgid="4053705651238775784">"如要查看您的通話紀錄,請開啟「電話」存取權限。"</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"如要查看您的聯絡人,請開啟「聯絡人」存取權限。"</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"如要存取您的語音信箱,請開啟「電話」存取權限。"</string> <string name="permission_no_search" msgid="2424710404207193826">"如要搜尋您的聯絡人,請開啟「聯絡人」存取權限。"</string> <string name="permission_place_call" msgid="8686908130349369423">"如要撥打電話,請開啟「電話」存取權限。"</string> diff --git a/java/com/android/dialer/app/res/values-zu/strings.xml b/java/com/android/dialer/app/res/values-zu/strings.xml index 9c8a6b8e1..93843aa2c 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 @@ <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Buyela kukholi eqhubekayo"</string> <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Yengeza ikholi"</string> <string name="actionIncomingCall" msgid="891346596090030558">"Amakholi angenayo"</string> + <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Kungenwa kumodi yesenzo senqwaba"</string> + <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Ishiye imodi yesenzo senqwaba"</string> + <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Kukhethwe i-<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> + <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Akukhethiwe i-<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string> <string name="description_call_log_play_button" msgid="2349845005022431438">"Dlala i-imeyli yezwi"</string> <string name="description_view_contact" msgid="3940984937384372665">"Bheka oxhumana naye <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="description_call" msgid="1532402285334775372">"Shayela <xliff:g id="NAME">%1$s</xliff:g>"</string> @@ -99,11 +103,13 @@ <string name="voicemail" msgid="8899540969000957954">"Ivoyisimeyili"</string> <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> isekhondi"</string> <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> amaminithi <xliff:g id="SECONDS">%s</xliff:g> amasekhondi"</string> + <string name="description_cancel_multi_select" msgid="3930475950253360461">"Khansela imodi lezenzo zeqoqo"</string> <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ivoyisimeyili"</string> <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ama-meyli ezwi"</string> <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Yebo"</string> <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Cha"</string> <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Susa okukhethiwe <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string> + <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Engu-<xliff:g id="NUMBER">%1$s</xliff:g> ekhethiwe"</string> <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string> <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ngo-<xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string> @@ -116,7 +122,6 @@ <string name="meid" msgid="3333779521535224028">"I-MEID"</string> <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Ilayisha kusuka ekhadini le-SIM..."</string> <string name="simContacts_title" msgid="7961069730386378887">"Othintana nabo bekhadi le-SIM"</string> - <string name="add_contact_not_available" msgid="7065884447935173347">"Alukho uhlelo lokusebenza loxhumana nabo olutholakalayo"</string> <string name="voice_search_not_available" msgid="6546240433719732905">"Usesho lwezwi alutholakali"</string> <string name="call_not_available" msgid="7850148370757361155">"Ayikwazi ukwenza ikholi yefoni ngoba uhlelo lokusebenza lwefoni likhutshaziwe."</string> <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Sesha othintana nabo"</string> @@ -145,10 +150,9 @@ <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> amakholi amasha owaphuthelwe"</string> <string name="speed_dial_empty" msgid="3346406399966039505">"Akekho umuntu osekudayeleni kwakho okusheshayo okwamanje"</string> <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Engeza intandokazi"</string> - <string name="all_contacts_empty" msgid="243071567853617177">"Awunabo oxhumana nabo okwamanje"</string> - <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Engeza oxhumana naye"</string> <string name="contact_tooltip" msgid="8871614660967439999">"Thinta isithombe ukuze ubone zonke izinombolo noma thinta bese ubambe ukuze uhlele kabusha"</string> <string name="remove_contact" msgid="2353580570488923668">"Susa"</string> + <string name="select_all" msgid="408601760696146245">"Khetha konke"</string> <string name="call_log_action_video_call" msgid="7565549950343850819">"Ikholi yevidiyo"</string> <string name="call_log_action_send_message" msgid="6948727362660115554">"Thumela umlayezo"</string> <string name="call_log_action_details" msgid="2091370737371449501">"Imininingwane yekholi"</string> @@ -213,11 +217,9 @@ <string name="block_list" msgid="4701585783411870782">"Izinombolo ezivinjiwe"</string> <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> isivinjiwe kakade."</string> <string name="phone_account_settings_label" msgid="8372485478006965920">"Ama-akhawunti wokushaya"</string> - <string name="permission_single_turn_on" msgid="8014796118294187894">"Vula"</string> <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Setha izimvume"</string> <string name="permission_no_speeddial" msgid="8487215628510596753">"Nika amandla ukudayela okusheshayo, vula imvume yoxhumana nabo."</string> <string name="permission_no_calllog" msgid="4053705651238775784">"Ukuze ubone irekhodi lakho lamakholi, vuma imvume yefoni."</string> - <string name="permission_no_contacts" msgid="8995025765862026771">"Ukuze ubone oxhumana nabo, vula imvume yoxhumana nabo."</string> <string name="permission_no_voicemail" msgid="1908142679289209291">"Ukuze ufinyelele ivoyisimeyili, vula imvume yefoni."</string> <string name="permission_no_search" msgid="2424710404207193826">"Ukuze useshe oxhumana nabo, vula izimvume zoxhumana nabo."</string> <string name="permission_place_call" msgid="8686908130349369423">"Ukuze ubeke ikholi, vula imvume yefoni."</string> diff --git a/java/com/android/dialer/app/res/values/colors.xml b/java/com/android/dialer/app/res/values/colors.xml index cf6b926be..2f6d87b49 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 @@ <!-- Colour of voicemail progress bar to the left of position indicator. --> <color name="voicemail_playback_seek_bar_already_played">@color/dialer_theme_color</color> - <!-- Background color of new dialer activity --> - <color name="background_dialer_light">#fafafa</color> <!-- Background color for search results and call details --> <color name="background_dialer_results">#f9f9f9</color> <color name="background_dialer_call_log">@color/background_dialer_light</color> @@ -69,8 +67,6 @@ <!-- Undo dialogue color --> <color name="undo_dialogue_text_color">#4d4d4d</color> - <color name="empty_list_text_color">#b2b2b2</color> - <color name="remove_text_color">#ffffff</color> <!-- Text color for the "Remove" text when a contact is dragged on top of the remove view --> diff --git a/java/com/android/dialer/app/res/values/dimens.xml b/java/com/android/dialer/app/res/values/dimens.xml index 7da29c7a3..57c43ebbd 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 @@ <!-- Length of dialpad's shadows in dialer. --> <dimen name="shadow_length">10dp</dimen> - <dimen name="empty_list_message_top_padding">20dp</dimen> - <dimen name="empty_list_message_text_size">16sp</dimen> - <!-- Dimensions for individual preference cards --> <dimen name="preference_padding_top">16dp</dimen> <dimen name="preference_padding_bottom">16dp</dimen> diff --git a/java/com/android/dialer/app/res/values/strings.xml b/java/com/android/dialer/app/res/values/strings.xml index 9e1fdeb5a..6110601d8 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 @@ <!-- Description for incoming calls going to voice mail vs. not --> <string name="actionIncomingCall">Incoming calls</string> + <!-- String describing the user entering bulk action mode. + + Note: AccessibilityServices use this attribute to announce what the view represents. + This is especially valuable for views without textual representation like ImageView. +--> + <string name="description_entering_bulk_action_mode">Entering bulk action mode</string> + + <!-- String describing the user leaving bulk action mode. + + Note: AccessibilityServices use this attribute to announce what the view represents. + This is especially valuable for views without textual representation like ImageView. +--> + <string name="description_leaving_bulk_action_mode">Left bulk action mode</string> + + <!-- String describing the button to select an entry for bulk action. + + Note: AccessibilityServices use this attribute to announce what the view represents. + This is especially valuable for views without textual representation like ImageView. + --> + <string name="description_selecting_bulk_action_mode">Selected <xliff:g id="nameOrNumber">%1$s</xliff:g></string> + + <!-- String describing the button to unselect an entry for bulk action. + + Note: AccessibilityServices use this attribute to announce what the view represents. + This is especially valuable for views without textual representation like ImageView. + --> + <string name="description_unselecting_bulk_action_mode">Unselected <xliff:g id="nameOrNumber">%1$s</xliff:g></string> + <!-- String describing the icon in the call log used to play a voicemail. Note: AccessibilityServices use this attribute to announce what the view represents. @@ -362,12 +390,19 @@ <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" --> <string name="callDetailsDurationFormat"><xliff:g example="42" id="minutes">%s</xliff:g> min <xliff:g example="28" id="seconds">%s</xliff:g> sec</string> + <!-- String describing the cancel button in multi select. + Note: AccessibilityServices uses this attribute to announce what the view represents. + [CHAR LIMIT=NONE] --> + <string name="description_cancel_multi_select">Cancel batch actions mode</string> + <string name="voicemailMultiSelectVoicemail">voicemail</string> <string name="voicemailMultiSelectVoicemails">voicemails</string> <string name="voicemailMultiSelectDeleteConfirm">Yes</string> <string name="voicemailMultiSelectDeleteCancel">No</string> <string name="voicemailMultiSelectDialogTitle">Delete selected <xliff:g id="voicemailorvoicemails">%1$s</xliff:g>?</string> + <string name="voicemailMultiSelectActionBarTitle"><xliff:g id="number">%1$s</xliff:g> selected</string> + <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the current day --> @@ -411,9 +446,6 @@ <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial --> <string name="simContacts_title">SIM card contacts</string> - <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] --> - <string name="add_contact_not_available">No contacts app available</string> - <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] --> <string name="voice_search_not_available">Voice search not available</string> @@ -514,12 +546,6 @@ <!-- Shown as an action when there are no speed dial favorites --> <string name="speed_dial_empty_add_favorite_action">Add a favorite</string> - <!-- Shown when there are no contacts in the all contacts list. --> - <string name="all_contacts_empty">You don\'t have any contacts yet</string> - - <!-- Shown as an action when the all contacts list is empty --> - <string name="all_contacts_empty_add_contact_action">Add a contact</string> - <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact card can be tapped to bring up a list of all numbers, or long pressed to start reordering [CHAR LIMIT=NONE] @@ -529,6 +555,9 @@ <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] --> <string name="remove_contact">Remove</string> + <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] --> + <string name="select_all">Select all</string> + <!-- Button text for the "video call" displayed underneath an entry in the call log. Tapping causes a video call to be placed to the caller represented by the call log entry. [CHAR LIMIT=30] --> @@ -554,7 +583,7 @@ Call <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g> </string> - <!-- String describing an incoming missed call entry in the call log. + <!-- String describing an incoming missed call entry in the call log. Note: AccessibilityServices uses this attribute to announce what the view represents. [CHAR LIMIT=NONE] --> <string name="description_incoming_missed_call">Missed call from <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>, <xliff:g example="Mobile" id="typeOrLocation">^2</xliff:g>, <xliff:g example="2 min ago" id="timeOfCall">^3</xliff:g>, <xliff:g example="on SIM 1" id="phoneAccount">^4</xliff:g>.</string> @@ -841,9 +870,6 @@ <!-- Internal key for DTMF tone length preference. --> <string name="dtmf_tone_length_preference_key" translatable="false">button_dtmf_settings</string> - <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]--> - <string name="permission_single_turn_on">Turn on</string> - <!-- The label of the button used to turn on multiple permissions [CHAR LIMIT=30]--> <string name="permission_multiple_turn_on">Set permissions</string> @@ -853,9 +879,6 @@ <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]--> <string name="permission_no_calllog">To see your call log, turn on the Phone permission.</string> - <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]--> - <string name="permission_no_contacts">To see your contacts, turn on the Contacts permission.</string> - <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]--> <string name="permission_no_voicemail">To access your voicemail, turn on the Phone permission.</string> diff --git a/java/com/android/dialer/app/res/values/styles.xml b/java/com/android/dialer/app/res/values/styles.xml index 7adf7ca2c..592f06d29 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 @@ <item name="windowActionModeOverlay">true</item> <item name="android:actionBarStyle">@style/DialtactsActionBarStyle</item> <item name="actionBarStyle">@style/DialtactsActionBarStyle</item> + <item name="actionModeStyle">@style/ActionModeStyle</item> + <item name="android:actionModeStyle">@style/ActionModeStyle</item> + <item name="android:windowContentOverlay">@null</item> <item name="android:overlapAnchor">true</item> - <item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item> + <item name="android:homeAsUpIndicator">@drawable/quantum_ic_arrow_back_vd_theme_24</item> <item name="android:listViewStyle">@style/ListViewStyle</item> - <item name="section_header_background">@drawable/list_title_holo</item> <item name="list_section_header_height">32dip</item> <item name="list_item_padding_top">7dp</item> <item name="list_item_padding_right">24dp</item> @@ -66,7 +68,7 @@ <item name="android:textAppearanceButton">@style/DialerButtonTextStyle</item> <!-- Video call icon --> - <item name="list_item_video_call_icon_size">32dip</item> + <item name="list_item_video_call_icon_size">48dip</item> <item name="list_item_video_call_icon_margin">8dip</item> <item name="dialpad_style">@style/Dialpad.Light</item> @@ -129,6 +131,12 @@ <item name="contentInsetStart">@dimen/actionbar_contentInsetStart</item> </style> + <style name="ActionModeStyle" parent="Widget.AppCompat.ActionMode"> + <item name="android:background">@color/actionbar_background_color</item> + <item name="background">@color/actionbar_background_color</item> + <item name="closeItemLayout">@layout/action_mode_close_button</item> + </style> + <style name="DialtactsActionBarWithoutTitleStyle" parent="DialtactsActionBarStyle"> <!-- Styles that require AppCompat compatibility, remember to update both sets --> <item name="android:displayOptions"></item> diff --git a/java/com/android/dialer/app/res/xml/sound_settings.xml b/java/com/android/dialer/app/res/xml/sound_settings.xml index 796ed2ec1..d9afb7411 100644 --- a/java/com/android/dialer/app/res/xml/sound_settings.xml +++ b/java/com/android/dialer/app/res/xml/sound_settings.xml @@ -25,13 +25,13 @@ android:ringtoneType="ringtone" android:title="@string/ringtone_title"/> - <CheckBoxPreference + <SwitchPreference android:defaultValue="false" android:key="@string/vibrate_on_preference_key" android:persistent="false" android:title="@string/vibrate_on_ring_title"/> - <CheckBoxPreference + <SwitchPreference android:defaultValue="true" android:key="@string/play_dtmf_preference_key" android:persistent="false" diff --git a/java/com/android/dialer/app/settings/AppCompatPreferenceActivity.java b/java/com/android/dialer/app/settings/AppCompatPreferenceActivity.java index 2c464386b..e8e425626 100644 --- a/java/com/android/dialer/app/settings/AppCompatPreferenceActivity.java +++ b/java/com/android/dialer/app/settings/AppCompatPreferenceActivity.java @@ -18,7 +18,6 @@ package com.android.dialer.app.settings; import android.content.res.Configuration; import android.os.Bundle; import android.preference.PreferenceActivity; -import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatDelegate; import android.support.v7.widget.Toolbar; import android.view.MenuInflater; @@ -49,10 +48,6 @@ public class AppCompatPreferenceActivity extends PreferenceActivity { getDelegate().onPostCreate(savedInstanceState); } - public ActionBar getSupportActionBar() { - return getDelegate().getSupportActionBar(); - } - public void setSupportActionBar(Toolbar toolbar) { getDelegate().setSupportActionBar(toolbar); } diff --git a/java/com/android/dialer/app/settings/DialerSettingsActivity.java b/java/com/android/dialer/app/settings/DialerSettingsActivity.java index f1c270ca9..6036c85ce 100644 --- a/java/com/android/dialer/app/settings/DialerSettingsActivity.java +++ b/java/com/android/dialer/app/settings/DialerSettingsActivity.java @@ -36,7 +36,6 @@ import com.android.dialer.about.AboutPhoneFragment; import com.android.dialer.app.R; import com.android.dialer.blocking.FilteredNumberCompat; import com.android.dialer.common.LogUtil; -import com.android.dialer.compat.CompatUtils; import com.android.dialer.proguard.UsedByReflection; import com.android.voicemail.VoicemailClient; import com.android.voicemail.VoicemailComponent; @@ -83,14 +82,12 @@ public class DialerSettingsActivity extends AppCompatPreferenceActivity { soundSettingsHeader.id = R.id.settings_header_sounds_and_vibration; target.add(soundSettingsHeader); - if (CompatUtils.isMarshmallowCompatible()) { - Header quickResponseSettingsHeader = new Header(); - Intent quickResponseSettingsIntent = - new Intent(TelecomManager.ACTION_SHOW_RESPOND_VIA_SMS_SETTINGS); - quickResponseSettingsHeader.titleRes = R.string.respond_via_sms_setting_title; - quickResponseSettingsHeader.intent = quickResponseSettingsIntent; - target.add(quickResponseSettingsHeader); - } + Header quickResponseSettingsHeader = new Header(); + Intent quickResponseSettingsIntent = + new Intent(TelecomManager.ACTION_SHOW_RESPOND_VIA_SMS_SETTINGS); + quickResponseSettingsHeader.titleRes = R.string.respond_via_sms_setting_title; + quickResponseSettingsHeader.intent = quickResponseSettingsIntent; + target.add(quickResponseSettingsHeader); TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); diff --git a/java/com/android/dialer/app/settings/SoundSettingsFragment.java b/java/com/android/dialer/app/settings/SoundSettingsFragment.java index 83ce45398..dcfb7a595 100644 --- a/java/com/android/dialer/app/settings/SoundSettingsFragment.java +++ b/java/com/android/dialer/app/settings/SoundSettingsFragment.java @@ -23,11 +23,11 @@ import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.Vibrator; -import android.preference.CheckBoxPreference; import android.preference.ListPreference; import android.preference.Preference; import android.preference.PreferenceFragment; import android.preference.PreferenceScreen; +import android.preference.SwitchPreference; import android.provider.Settings; import android.telephony.CarrierConfigManager; import android.telephony.TelephonyManager; @@ -68,8 +68,8 @@ public class SoundSettingsFragment extends PreferenceFragment updateRingtonePreferenceSummary(); } }; - private CheckBoxPreference mVibrateWhenRinging; - private CheckBoxPreference mPlayDtmfTone; + private SwitchPreference mVibrateWhenRinging; + private SwitchPreference mPlayDtmfTone; private ListPreference mDtmfToneLength; @Override @@ -87,9 +87,9 @@ public class SoundSettingsFragment extends PreferenceFragment mRingtonePreference = findPreference(context.getString(R.string.ringtone_preference_key)); mVibrateWhenRinging = - (CheckBoxPreference) findPreference(context.getString(R.string.vibrate_on_preference_key)); + (SwitchPreference) findPreference(context.getString(R.string.vibrate_on_preference_key)); mPlayDtmfTone = - (CheckBoxPreference) findPreference(context.getString(R.string.play_dtmf_preference_key)); + (SwitchPreference) findPreference(context.getString(R.string.play_dtmf_preference_key)); mDtmfToneLength = (ListPreference) findPreference(context.getString(R.string.dtmf_tone_length_preference_key)); diff --git a/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java b/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java index 9d07ec561..ffbae71f2 100644 --- a/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java +++ b/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java @@ -43,6 +43,15 @@ public class LegacyVoicemailNotificationReceiver extends BroadcastReceiver { private static final String LEGACY_VOICEMAIL_COUNT = "legacy_voicemail_count"; + /** + * Hidden extra for {@link TelephonyManager#ACTION_SHOW_VOICEMAIL_NOTIFICATION} for whether the + * notification is just a refresh or for a new voicemail. The phone should not play a ringtone or + * vibrate during a refresh if the notification is already showing. + * + * <p>TODO(b/62202833): make public + */ + private static final String EXTRA_IS_REFRESH = "is_refresh"; + @Override public void onReceive(Context context, Intent intent) { LogUtil.i( @@ -51,7 +60,6 @@ public class LegacyVoicemailNotificationReceiver extends BroadcastReceiver { PhoneAccountHandle phoneAccountHandle = Assert.isNotNull(intent.getParcelableExtra(TelephonyManager.EXTRA_PHONE_ACCOUNT_HANDLE)); - int count = intent.getIntExtra(TelephonyManager.EXTRA_NOTIFICATION_COUNT, -1); if (!hasVoicemailCountChanged(context, phoneAccountHandle, count)) { @@ -97,7 +105,8 @@ public class LegacyVoicemailNotificationReceiver extends BroadcastReceiver { count, voicemailNumber, callVoicemailIntent, - voicemailSettingIntent); + voicemailSettingIntent, + intent.getBooleanExtra(EXTRA_IS_REFRESH, false)); } private static boolean hasVoicemailCountChanged( diff --git a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java index ea48c8321..686e3e8c4 100644 --- a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java +++ b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java @@ -548,7 +548,9 @@ public class VoicemailPlaybackPresenter mView.setClipPosition(mPosition, mDuration.get()); mView.enableUiElements(); mView.setSuccess(); - mMediaPlayer.seekTo(mPosition); + if (!mp.isPlaying()) { + mMediaPlayer.seekTo(mPosition); + } if (mIsPlaying) { resumePlayback(); diff --git a/java/com/android/dialer/app/voicemail/error/res/values-hi/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-hi/strings.xml index bc9c46331..fb1b18621 100644 --- a/java/com/android/dialer/app/voicemail/error/res/values-hi/strings.xml +++ b/java/com/android/dialer/app/voicemail/error/res/values-hi/strings.xml @@ -55,7 +55,7 @@ <string name="voicemail_action_set_pin" msgid="958510049866316228">"पिन सेट करें"</string> <string name="voicemail_action_retry" msgid="4450307484541052511">"पुन: प्रयास करें"</string> <string name="voicemail_action_turn_archive_on" msgid="6008444955560830591">"चालू करें"</string> - <string name="voicemail_action_dimiss" msgid="6018415798136796966">"नहीं धन्यवाद"</string> + <string name="voicemail_action_dimiss" msgid="6018415798136796966">"रहने दें"</string> <string name="voicemail_action_sync" msgid="5139315923415392787">"समन्वयित करें"</string> <string name="voicemail_action_call_voicemail" msgid="6701710720535556395">"वॉइसमेल को कॉल करें"</string> <string name="voicemail_action_call_customer_support" msgid="7698973007656462748">"ग्राहक सहायता को कॉल करें"</string> diff --git a/java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java b/java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java index 85fd5ec6a..5846b1f73 100644 --- a/java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java +++ b/java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java @@ -21,6 +21,7 @@ import android.view.LayoutInflater; import android.widget.LinearLayout; import com.android.dialer.app.R; import com.android.dialer.util.OrientationUtil; +import com.android.dialer.widget.EmptyContentView; /** Empty content view to be shown when dialpad is visible. */ public class DialpadSearchEmptyContentView extends EmptyContentView { diff --git a/java/com/android/dialer/app/widget/SearchEditTextLayout.java b/java/com/android/dialer/app/widget/SearchEditTextLayout.java index f83c48288..d67fd9eff 100644 --- a/java/com/android/dialer/app/widget/SearchEditTextLayout.java +++ b/java/com/android/dialer/app/widget/SearchEditTextLayout.java @@ -52,7 +52,6 @@ public class SearchEditTextLayout extends FrameLayout { private View mVoiceSearchButtonView; private View mOverflowButtonView; private View mBackButtonView; - private View mExpandedSearchBox; private View mClearButtonView; private ValueAnimator mAnimator; @@ -90,20 +89,27 @@ public class SearchEditTextLayout extends FrameLayout { mVoiceSearchButtonView = findViewById(R.id.voice_search_button); mOverflowButtonView = findViewById(R.id.dialtacts_options_menu_button); mBackButtonView = findViewById(R.id.search_back_button); - mExpandedSearchBox = findViewById(R.id.search_box_expanded); + mBackButtonView + .getResources() + .getDrawable(R.drawable.quantum_ic_arrow_back_vd_theme_24) + .setAutoMirrored(true); mClearButtonView = findViewById(R.id.search_close_button); - // Convert a long click into a click to expand the search box, and then long click on the - // search view. This accelerates the long-press scenario for copy/paste. + // Convert a long click into a click to expand the search box. Touch events are also + // forwarded to the searchView. This accelerates the long-press scenario for copy/paste. mCollapsed.setOnLongClickListener( new OnLongClickListener() { @Override public boolean onLongClick(View view) { mCollapsed.performClick(); - mSearchView.performLongClick(); return false; } }); + mCollapsed.setOnTouchListener( + (v, event) -> { + mSearchView.onTouchEvent(event); + return false; + }); mSearchView.setOnFocusChangeListener( new OnFocusChangeListener() { @@ -212,7 +218,7 @@ public class SearchEditTextLayout extends FrameLayout { AnimUtils.crossFadeViews(mExpanded, mCollapsed, ANIMATION_DURATION); mAnimator = ValueAnimator.ofFloat(EXPAND_MARGIN_FRACTION_START, 0f); setMargins(EXPAND_MARGIN_FRACTION_START); - prepareAnimator(true); + prepareAnimator(); } else { mExpanded.setVisibility(View.VISIBLE); mExpanded.setAlpha(1); @@ -241,7 +247,7 @@ public class SearchEditTextLayout extends FrameLayout { if (animate) { AnimUtils.crossFadeViews(mCollapsed, mExpanded, ANIMATION_DURATION); mAnimator = ValueAnimator.ofFloat(0f, 1f); - prepareAnimator(false); + prepareAnimator(); } else { mCollapsed.setVisibility(View.VISIBLE); mCollapsed.setAlpha(1); @@ -279,7 +285,7 @@ public class SearchEditTextLayout extends FrameLayout { } } - private void prepareAnimator(final boolean expand) { + private void prepareAnimator() { if (mAnimator != null) { mAnimator.cancel(); } diff --git a/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java b/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java index 595401c70..bc0b39bb8 100644 --- a/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java +++ b/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java @@ -18,6 +18,7 @@ package com.android.dialer.binary.aosp; import com.android.dialer.binary.basecomponent.BaseDialerRootComponent; import com.android.dialer.calllog.CallLogModule; +import com.android.dialer.common.concurrent.DialerExecutorModule; import com.android.dialer.enrichedcall.stub.StubEnrichedCallModule; import com.android.dialer.inject.ContextModule; import com.android.dialer.lightbringer.stub.StubLightbringerModule; @@ -34,6 +35,7 @@ import javax.inject.Singleton; modules = { CallLogModule.class, ContextModule.class, + DialerExecutorModule.class, SimulatorModule.class, StubCallLocationModule.class, StubEnrichedCallModule.class, diff --git a/java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java b/java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java index 2deb7fdc4..6e6ae4b6c 100644 --- a/java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java +++ b/java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java @@ -17,6 +17,8 @@ package com.android.dialer.binary.basecomponent; import com.android.dialer.calllog.CallLogComponent; +import com.android.dialer.calllog.database.CallLogDatabaseComponent; +import com.android.dialer.common.concurrent.DialerExecutorComponent; import com.android.dialer.enrichedcall.EnrichedCallComponent; import com.android.dialer.lightbringer.LightbringerComponent; import com.android.dialer.simulator.SimulatorComponent; @@ -31,6 +33,8 @@ import com.android.voicemail.VoicemailComponent; public interface BaseDialerRootComponent extends CallLocationComponent.HasComponent, CallLogComponent.HasComponent, + CallLogDatabaseComponent.HasComponent, + DialerExecutorComponent.HasComponent, EnrichedCallComponent.HasComponent, MapsComponent.HasComponent, SimulatorComponent.HasComponent, diff --git a/java/com/android/dialer/binary/common/DialerApplication.java b/java/com/android/dialer/binary/common/DialerApplication.java index a4c2e7d6f..5037883ee 100644 --- a/java/com/android/dialer/binary/common/DialerApplication.java +++ b/java/com/android/dialer/binary/common/DialerApplication.java @@ -55,8 +55,9 @@ public abstract class DialerApplication extends Application implements HasRootCo private void enableStrictMode() { StrictMode.setThreadPolicy( - new StrictMode.ThreadPolicy.Builder().detectAll().penaltyDeath().build()); - StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll().penaltyDeath().build()); + new StrictMode.ThreadPolicy.Builder().detectAll().penaltyLog().penaltyDeath().build()); + StrictMode.setVmPolicy( + new StrictMode.VmPolicy.Builder().detectAll().penaltyLog().penaltyDeath().build()); } /** diff --git a/java/com/android/dialer/callcomposer/AndroidManifest.xml b/java/com/android/dialer/callcomposer/AndroidManifest.xml index 369db6f4a..cce71105f 100644 --- a/java/com/android/dialer/callcomposer/AndroidManifest.xml +++ b/java/com/android/dialer/callcomposer/AndroidManifest.xml @@ -17,7 +17,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.dialer.callcomposer"> - <application> + <application android:theme="@style/Theme.AppCompat"> <activity android:name="com.android.dialer.callcomposer.CallComposerActivity" android:exported="true" diff --git a/java/com/android/dialer/callcomposer/CallComposerActivity.java b/java/com/android/dialer/callcomposer/CallComposerActivity.java index 074fc6de1..bc20c7314 100644 --- a/java/com/android/dialer/callcomposer/CallComposerActivity.java +++ b/java/com/android/dialer/callcomposer/CallComposerActivity.java @@ -37,10 +37,8 @@ import android.text.TextUtils; import android.util.Base64; import android.view.View; import android.view.View.OnClickListener; -import android.view.View.OnLayoutChangeListener; import android.view.ViewAnimationUtils; import android.view.ViewGroup; -import android.view.WindowManager.LayoutParams; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; @@ -56,6 +54,7 @@ import com.android.dialer.common.LogUtil; import com.android.dialer.common.UiUtil; import com.android.dialer.common.concurrent.DialerExecutors; import com.android.dialer.constants.Constants; +import com.android.dialer.dialercontact.DialerContact; import com.android.dialer.enrichedcall.EnrichedCallComponent; import com.android.dialer.enrichedcall.EnrichedCallManager; import com.android.dialer.enrichedcall.EnrichedCallManager.State; @@ -86,7 +85,6 @@ public class CallComposerActivity extends AppCompatActivity implements OnClickListener, OnPageChangeListener, CallComposerListener, - OnLayoutChangeListener, EnrichedCallManager.StateChangedListener { public static final String KEY_CONTACT_NAME = "contact_name"; @@ -102,7 +100,7 @@ public class CallComposerActivity extends AppCompatActivity private static final String VIEW_PAGER_STATE_KEY = "view_pager_state_key"; private static final String SESSION_ID_KEY = "session_id_key"; - private CallComposerContact contact; + private DialerContact contact; private Long sessionId = Session.NO_SESSION_ID; private TextView nameView; @@ -126,10 +124,9 @@ public class CallComposerActivity extends AppCompatActivity private boolean shouldAnimateEntrance = true; private boolean inFullscreenMode; private boolean isSendAndCallHidingOrHidden = true; - private boolean layoutChanged; private int currentIndex; - public static Intent newIntent(Context context, CallComposerContact contact) { + public static Intent newIntent(Context context, DialerContact contact) { Intent intent = new Intent(context, CallComposerActivity.class); ProtoParsers.put(intent, ARG_CALL_COMPOSER_CONTACT, contact); return intent; @@ -140,19 +137,19 @@ public class CallComposerActivity extends AppCompatActivity super.onCreate(savedInstanceState); setContentView(R.layout.call_composer_activity); - nameView = (TextView) findViewById(R.id.contact_name); - numberView = (TextView) findViewById(R.id.phone_number); - contactPhoto = (QuickContactBadge) findViewById(R.id.contact_photo); - cameraIcon = (ImageView) findViewById(R.id.call_composer_camera); - galleryIcon = (ImageView) findViewById(R.id.call_composer_photo); - messageIcon = (ImageView) findViewById(R.id.call_composer_message); - contactContainer = (RelativeLayout) findViewById(R.id.contact_bar); - pager = (ViewPager) findViewById(R.id.call_composer_view_pager); - background = (FrameLayout) findViewById(R.id.background); - windowContainer = (LinearLayout) findViewById(R.id.call_composer_container); - toolbar = (DialerToolbar) findViewById(R.id.toolbar); + nameView = findViewById(R.id.contact_name); + numberView = findViewById(R.id.phone_number); + contactPhoto = findViewById(R.id.contact_photo); + cameraIcon = findViewById(R.id.call_composer_camera); + galleryIcon = findViewById(R.id.call_composer_photo); + messageIcon = findViewById(R.id.call_composer_message); + contactContainer = findViewById(R.id.contact_bar); + pager = findViewById(R.id.call_composer_view_pager); + background = findViewById(R.id.background); + windowContainer = findViewById(R.id.call_composer_container); + toolbar = findViewById(R.id.toolbar); sendAndCall = findViewById(R.id.send_and_call_button); - sendAndCallText = (TextView) findViewById(R.id.send_and_call_text); + sendAndCallText = findViewById(R.id.send_and_call_text); interpolator = new FastOutSlowInInterpolator(); adapter = @@ -162,7 +159,6 @@ public class CallComposerActivity extends AppCompatActivity pager.setAdapter(adapter); pager.addOnPageChangeListener(this); - background.addOnLayoutChangeListener(this); cameraIcon.setOnClickListener(this); galleryIcon.setOnClickListener(this); messageIcon.setOnClickListener(this); @@ -178,11 +174,6 @@ public class CallComposerActivity extends AppCompatActivity onPageSelected(currentIndex); } - int adjustMode = - isLandscapeLayout() - ? LayoutParams.SOFT_INPUT_ADJUST_PAN - : LayoutParams.SOFT_INPUT_ADJUST_RESIZE; - getWindow().setSoftInputMode(adjustMode); // Since we can't animate the views until they are ready to be drawn, we use this listener to // track that and animate the call compose UI as soon as it's ready. ViewUtil.doOnPreDraw( @@ -264,7 +255,7 @@ public class CallComposerActivity extends AppCompatActivity } else if (view == sendAndCall) { sendAndCall(); } else { - Assert.fail(); + throw Assert.createIllegalStateFailException("View on click not implemented: " + view); } } @@ -340,11 +331,7 @@ public class CallComposerActivity extends AppCompatActivity private boolean sessionReady() { Session session = getEnrichedCallManager().getSession(sessionId); - if (session == null) { - return false; - } - - return session.getState() == EnrichedCallManager.STATE_STARTED; + return session != null && session.getState() == EnrichedCallManager.STATE_STARTED; } private void placeRCSCall(MultimediaData.Builder builder) { @@ -424,28 +411,6 @@ public class CallComposerActivity extends AppCompatActivity animateSendAndCall(fragment.shouldHide()); } - // To detect when the keyboard changes. - @Override - public void onLayoutChange( - View view, - int left, - int top, - int right, - int bottom, - int oldLeft, - int oldTop, - int oldRight, - int oldBottom) { - // To prevent infinite layout change loops - if (layoutChanged) { - layoutChanged = false; - return; - } - - layoutChanged = true; - showFullscreen(contactContainer.getTop() < 0 || inFullscreenMode); - } - /** * Reads arguments from the fragment arguments and populates the necessary instance variables. * Copied from {@link com.android.contacts.common.dialog.CallSubjectDialog}. @@ -456,14 +421,14 @@ public class CallComposerActivity extends AppCompatActivity byte[] bytes = Base64.decode(intent.getStringExtra(ARG_CALL_COMPOSER_CONTACT_BASE64), Base64.DEFAULT); try { - contact = CallComposerContact.parseFrom(bytes); + contact = DialerContact.parseFrom(bytes); } catch (InvalidProtocolBufferException e) { throw Assert.createAssertionFailException(e.toString()); } } else { contact = ProtoParsers.getTrusted( - intent, ARG_CALL_COMPOSER_CONTACT, CallComposerContact.getDefaultInstance()); + intent, ARG_CALL_COMPOSER_CONTACT, DialerContact.getDefaultInstance()); } updateContactInfo(); } diff --git a/java/com/android/dialer/callcomposer/CameraComposerFragment.java b/java/com/android/dialer/callcomposer/CameraComposerFragment.java index f65207fa3..ecdc25822 100644 --- a/java/com/android/dialer/callcomposer/CameraComposerFragment.java +++ b/java/com/android/dialer/callcomposer/CameraComposerFragment.java @@ -17,13 +17,14 @@ package com.android.dialer.callcomposer; import android.Manifest; -import android.Manifest.permission; import android.content.Intent; +import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.graphics.drawable.Animatable; import android.hardware.Camera.CameraInfo; import android.net.Uri; import android.os.Bundle; +import android.preference.PreferenceManager; import android.provider.Settings; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -56,6 +57,7 @@ import com.android.dialer.util.PermissionsUtil; public class CameraComposerFragment extends CallComposerFragment implements CameraManagerListener, OnClickListener, CameraManager.MediaCallback { + private static final String CAMERA_PRIVACY_PREF = "camera_privacy_permission"; private static final String CAMERA_DIRECTION_KEY = "camera_direction"; private static final String CAMERA_URI_KEY = "camera_key"; @@ -107,7 +109,8 @@ public class CameraComposerFragment extends CallComposerFragment capture.setOnClickListener(this); cancel.setOnClickListener(this); - if (!PermissionsUtil.hasPermission(getContext(), permission.CAMERA)) { + + if (!PermissionsUtil.hasCameraPermissions(getContext())) { LogUtil.i("CameraComposerFragment.onCreateView", "Permission view shown."); Logger.get(getContext()).logImpression(DialerImpression.Type.CAMERA_PERMISSION_DISPLAYED); ImageView permissionImage = (ImageView) permissionView.findViewById(R.id.permission_icon); @@ -131,6 +134,12 @@ public class CameraComposerFragment extends CallComposerFragment } private void setupCamera() { + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getContext()); + if (!preferences.getBoolean(CAMERA_PRIVACY_PREF, false)) { + Toast.makeText(getContext(), getString(R.string.camera_privacy_text), Toast.LENGTH_LONG) + .show(); + preferences.edit().putBoolean(CAMERA_PRIVACY_PREF, true).apply(); + } CameraManager.get().setListener(this); preview.setShown(); CameraManager.get().setRenderOverlay(focus); diff --git a/java/com/android/dialer/callcomposer/GalleryCursorLoader.java b/java/com/android/dialer/callcomposer/GalleryCursorLoader.java index f9990e167..39d6a4a6d 100644 --- a/java/com/android/dialer/callcomposer/GalleryCursorLoader.java +++ b/java/com/android/dialer/callcomposer/GalleryCursorLoader.java @@ -28,7 +28,7 @@ import android.support.v4.content.CursorLoader; public class GalleryCursorLoader extends CursorLoader { public static final String MEDIA_SCANNER_VOLUME_EXTERNAL = "external"; public static final String[] ACCEPTABLE_IMAGE_TYPES = - new String[] {"image/jpeg", "image/jpg", "image/png", "image/gif", "image/webp"}; + new String[] {"image/jpeg", "image/jpg", "image/png", "image/webp"}; private static final Uri STORAGE_URI = Files.getContentUri(MEDIA_SCANNER_VOLUME_EXTERNAL); private static final String SORT_ORDER = Media.DATE_MODIFIED + " DESC"; @@ -47,7 +47,7 @@ public class GalleryCursorLoader extends CursorLoader { @SuppressLint("DefaultLocale") private static String createSelection() { return String.format( - "mime_type IN ('image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'image/webp')" + "mime_type IN ('image/jpeg', 'image/jpg', 'image/png', 'image/webp')" + " AND media_type in (%d)", FileColumns.MEDIA_TYPE_IMAGE); } diff --git a/java/com/android/dialer/callcomposer/MessageComposerFragment.java b/java/com/android/dialer/callcomposer/MessageComposerFragment.java index 2a342bb08..392f6e716 100644 --- a/java/com/android/dialer/callcomposer/MessageComposerFragment.java +++ b/java/com/android/dialer/callcomposer/MessageComposerFragment.java @@ -24,11 +24,8 @@ import android.text.TextUtils; import android.text.TextWatcher; import android.view.KeyEvent; import android.view.LayoutInflater; -import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; -import android.view.View.OnLongClickListener; -import android.view.View.OnTouchListener; import android.view.ViewGroup; import android.widget.EditText; import android.widget.TextView; @@ -36,17 +33,12 @@ import android.widget.TextView.OnEditorActionListener; /** Fragment used to compose call with message fragment. */ public class MessageComposerFragment extends CallComposerFragment - implements OnClickListener, - TextWatcher, - OnTouchListener, - OnLongClickListener, - OnEditorActionListener { + implements OnClickListener, TextWatcher, OnEditorActionListener { private static final String CHAR_LIMIT_KEY = "char_limit"; public static final int NO_CHAR_LIMIT = -1; private EditText customMessage; - private boolean isLongClick = false; private int charLimit; public static MessageComposerFragment newInstance(int charLimit) { @@ -73,8 +65,6 @@ public class MessageComposerFragment extends CallComposerFragment customMessage = (EditText) view.findViewById(R.id.custom_message); urgent.setOnClickListener(this); - customMessage.setOnTouchListener(this); - customMessage.setOnLongClickListener(this); customMessage.addTextChangedListener(this); customMessage.setOnEditorActionListener(this); if (charLimit != NO_CHAR_LIMIT) { @@ -118,30 +108,6 @@ public class MessageComposerFragment extends CallComposerFragment getListener().composeCall(this); } - /** - * EditTexts take two clicks to dispatch an onClick() event, so instead we add an onTouchListener - * to listen for them. The caveat to this is that it also requires listening for onLongClicks to - * distinguish whether a MotionEvent came from a click or a long click. - */ - @Override - public boolean onTouch(View view, MotionEvent event) { - if (event.getAction() == MotionEvent.ACTION_UP) { - if (isLongClick) { - isLongClick = false; - } else { - getListener().showFullscreen(true); - } - } - view.performClick(); - return false; - } - - @Override - public boolean onLongClick(View v) { - isLongClick = true; - return false; - } - @Override public boolean shouldHide() { return TextUtils.isEmpty(getMessage()); diff --git a/java/com/android/dialer/callcomposer/camera/CameraManager.java b/java/com/android/dialer/callcomposer/camera/CameraManager.java index 4cc08ba32..977f063df 100644 --- a/java/com/android/dialer/callcomposer/camera/CameraManager.java +++ b/java/com/android/dialer/callcomposer/camera/CameraManager.java @@ -522,6 +522,7 @@ public class CameraManager implements FocusOverlayManager.Listener { switch (windowManager.getDefaultDisplay().getRotation()) { case Surface.ROTATION_0: degrees = 0; + mCamera.setDisplayOrientation(90); break; case Surface.ROTATION_90: degrees = 90; @@ -531,31 +532,22 @@ public class CameraManager implements FocusOverlayManager.Listener { break; case Surface.ROTATION_270: degrees = 270; + mCamera.setDisplayOrientation(180); break; default: throw Assert.createAssertionFailException(""); } - // The display orientation of the camera (this controls the preview image). - int orientation; - // The clockwise rotation angle relative to the orientation of the camera. This affects // pictures returned by the camera in Camera.PictureCallback. - int rotation; if (mCameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { - orientation = (mCameraInfo.orientation + degrees) % 360; - rotation = orientation; - // compensate the mirror but only for orientation - orientation = (360 - orientation) % 360; + mRotation = (mCameraInfo.orientation + degrees) % 360; } else { // back-facing - orientation = (mCameraInfo.orientation - degrees + 360) % 360; - rotation = orientation; + mRotation = (mCameraInfo.orientation - degrees + 360) % 360; } - mRotation = rotation; try { - mCamera.setDisplayOrientation(orientation); final Camera.Parameters params = mCamera.getParameters(); - params.setRotation(rotation); + params.setRotation(mRotation); mCamera.setParameters(params); } catch (final RuntimeException e) { LogUtil.e( @@ -589,7 +581,6 @@ public class CameraManager implements FocusOverlayManager.Listener { mOrientationHandler.disable(); mOrientationHandler = null; } - // releaseMediaRecorder(true /* cleanupFile */); mFocusOverlayManager.onPreviewStopped(); return; } diff --git a/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java b/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java index 31751e536..b5542ab6c 100644 --- a/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java +++ b/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java @@ -20,13 +20,11 @@ import android.annotation.TargetApi; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; -import android.graphics.Canvas; import android.graphics.Matrix; import android.net.Uri; import android.os.Build.VERSION_CODES; import android.support.v4.content.FileProvider; import com.android.dialer.callcomposer.camera.exif.ExifInterface; -import com.android.dialer.callcomposer.camera.exif.ExifTag; import com.android.dialer.callcomposer.util.BitmapResizer; import com.android.dialer.common.Assert; import com.android.dialer.common.concurrent.FallibleAsyncTask; @@ -71,13 +69,7 @@ public class ImagePersistTask extends FallibleAsyncTask<Void, Void, Uri> { File outputFile = DialerUtils.createShareableFile(mContext); try (OutputStream outputStream = new FileOutputStream(outputFile)) { - if (mHeightPercent != 1.0f) { - writeClippedBitmap(outputStream); - } else { - Bitmap bitmap = BitmapFactory.decodeByteArray(mBytes, 0, mBytes.length); - bitmap = BitmapResizer.resizeForEnrichedCalling(bitmap); - bitmap.compress(Bitmap.CompressFormat.JPEG, 90, outputStream); - } + writeClippedBitmap(outputStream); } return FileProvider.getUriForFile( @@ -105,10 +97,12 @@ public class ImagePersistTask extends FallibleAsyncTask<Void, Void, Uri> { } catch (final IOException e) { // Couldn't get exif tags, not the end of the world } + Bitmap bitmap = BitmapFactory.decodeByteArray(mBytes, 0, mBytes.length); final int clippedWidth; final int clippedHeight; - if (ExifInterface.getOrientationParams(orientation).invertDimensions) { + boolean invert = ExifInterface.getOrientationParams(orientation).invertDimensions; + if (invert) { Assert.checkState(mWidth == bitmap.getHeight()); Assert.checkState(mHeight == bitmap.getWidth()); clippedWidth = (int) (mHeight * mHeightPercent); @@ -119,24 +113,22 @@ public class ImagePersistTask extends FallibleAsyncTask<Void, Void, Uri> { clippedWidth = mWidth; clippedHeight = (int) (mHeight * mHeightPercent); } - final int offsetTop = (bitmap.getHeight() - clippedHeight) / 2; - final int offsetLeft = (bitmap.getWidth() - clippedWidth) / 2; + + int offsetTop = (bitmap.getHeight() - clippedHeight) / 2; + int offsetLeft = (bitmap.getWidth() - clippedWidth) / 2; mWidth = clippedWidth; mHeight = clippedHeight; + + Matrix matrix = new Matrix(); + matrix.postRotate(invert ? 90 : 0); + Bitmap clippedBitmap = - Bitmap.createBitmap(clippedWidth, clippedHeight, Bitmap.Config.ARGB_8888); - clippedBitmap.setDensity(bitmap.getDensity()); - final Canvas clippedBitmapCanvas = new Canvas(clippedBitmap); - final Matrix matrix = new Matrix(); - matrix.postTranslate(-offsetLeft, -offsetTop); - clippedBitmapCanvas.drawBitmap(bitmap, matrix, null /* paint */); - clippedBitmapCanvas.save(); + Bitmap.createBitmap( + bitmap, offsetLeft, offsetTop, clippedWidth, clippedHeight, matrix, true); clippedBitmap = BitmapResizer.resizeForEnrichedCalling(clippedBitmap); - // EXIF data can take a big chunk of the file size and is often cleared by the - // carrier, only store orientation since that's critical - final ExifTag orientationTag = exifInterface.getTag(ExifInterface.TAG_ORIENTATION); + // EXIF data can take a big chunk of the file size and we've already manually rotated our image, + // so remove all of the exif data. exifInterface.clearExif(); - exifInterface.setTag(orientationTag); exifInterface.writeExif(clippedBitmap, outputStream); clippedBitmap.recycle(); diff --git a/java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml b/java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml index c3f1102d1..14703a44c 100644 --- a/java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml +++ b/java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml @@ -15,11 +15,11 @@ ~ limitations under the License --> <FrameLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/background" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="@color/call_composer_background_color"> + xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/background" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/call_composer_background_color"> <LinearLayout android:id="@+id/call_composer_container" @@ -87,7 +87,7 @@ android:layout_height="@dimen/call_composer_media_bar_height" android:orientation="horizontal" android:gravity="center_horizontal" - android:background="@color/dialer_secondary_color" + android:background="@color/dialer_theme_color_dark" android:clickable="true"> <ImageView diff --git a/java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml b/java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml index 77c7a58d1..15562476a 100644 --- a/java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml +++ b/java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml @@ -70,7 +70,7 @@ android:background="@color/background_dialer_white" android:textCursorDrawable="@drawable/searchedittext_custom_cursor" android:layout_toStartOf="@+id/remaining_characters" - android:inputType="textShortMessage" + android:inputType="textShortMessage|textCapSentences" android:imeOptions="flagNoExtractUi|actionSend"/> <TextView diff --git a/java/com/android/dialer/callcomposer/res/values-ca/strings.xml b/java/com/android/dialer/callcomposer/res/values-ca/strings.xml index 4fa52ad63..1a57f87ce 100644 --- a/java/com/android/dialer/callcomposer/res/values-ca/strings.xml +++ b/java/com/android/dialer/callcomposer/res/values-ca/strings.xml @@ -28,6 +28,6 @@ <string name="camera_switch_to_still_mode" msgid="1881982437979592567">"Fes una foto"</string> <string name="camera_media_failure" msgid="8979549551450965882">"No s\'ha pogut carregar la imatge de la càmera"</string> <string name="allow" msgid="8637148297403066623">"Permet"</string> - <string name="camera_permission_text" msgid="7863231776480341614">"Per fer una foto, dóna accés a la càmera"</string> - <string name="gallery_permission_text" msgid="4102566850658919346">"Per compartir una imatge, dóna accés al contingut multimèdia"</string> + <string name="camera_permission_text" msgid="7863231776480341614">"Per fer una foto, dona accés a la càmera"</string> + <string name="gallery_permission_text" msgid="4102566850658919346">"Per compartir una imatge, dona accés al contingut multimèdia"</string> </resources> diff --git a/java/com/android/dialer/callcomposer/res/values/styles.xml b/java/com/android/dialer/callcomposer/res/values/styles.xml index 29ac4ddaa..16e7fb622 100644 --- a/java/com/android/dialer/callcomposer/res/values/styles.xml +++ b/java/com/android/dialer/callcomposer/res/values/styles.xml @@ -15,7 +15,7 @@ ~ limitations under the License --> <resources> - <style name="Theme.AppCompat.CallComposer" parent="Theme.AppCompat.NoActionBar"> + <style name="Theme.AppCompat.CallComposer" parent="DialerThemeBase.NoActionBar"> <item name="android:colorPrimaryDark">@color/dialer_theme_color_dark</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:colorBackgroundCacheHint">@null</item> diff --git a/java/com/android/dialer/calldetails/AndroidManifest.xml b/java/com/android/dialer/calldetails/AndroidManifest.xml index adaac402e..fd887c4b5 100644 --- a/java/com/android/dialer/calldetails/AndroidManifest.xml +++ b/java/com/android/dialer/calldetails/AndroidManifest.xml @@ -16,11 +16,11 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.dialer.calldetails"> - <application> + <application android:theme="@style/Theme.AppCompat"> <activity android:label="@string/call_details" android:name="com.android.dialer.calldetails.CallDetailsActivity" - android:theme="@style/Theme.AppCompat.Light.NoActionBar"> + android:theme="@style/DialerThemeBase.NoActionBar"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> diff --git a/java/com/android/dialer/calldetails/CallDetailsActivity.java b/java/com/android/dialer/calldetails/CallDetailsActivity.java index 7eab951fa..4d5853fef 100644 --- a/java/com/android/dialer/calldetails/CallDetailsActivity.java +++ b/java/com/android/dialer/calldetails/CallDetailsActivity.java @@ -29,12 +29,13 @@ import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar.OnMenuItemClickListener; import android.view.MenuItem; -import com.android.dialer.callcomposer.CallComposerContact; import com.android.dialer.calldetails.CallDetailsEntries.CallDetailsEntry; import com.android.dialer.common.Assert; import com.android.dialer.common.concurrent.AsyncTaskExecutors; +import com.android.dialer.dialercontact.DialerContact; import com.android.dialer.logging.DialerImpression; import com.android.dialer.logging.Logger; +import com.android.dialer.postcall.PostCall; import com.android.dialer.protos.ProtoParsers; import java.util.List; @@ -48,7 +49,7 @@ public class CallDetailsActivity extends AppCompatActivity implements OnMenuItem private List<CallDetailsEntry> entries; public static Intent newInstance( - Context context, @NonNull CallDetailsEntries details, @NonNull CallComposerContact contact) { + Context context, @NonNull CallDetailsEntries details, @NonNull DialerContact contact) { Assert.isNotNull(details); Assert.isNotNull(contact); @@ -70,14 +71,20 @@ public class CallDetailsActivity extends AppCompatActivity implements OnMenuItem } @Override + protected void onResume() { + super.onResume(); + PostCall.promptUserForMessageIfNecessary(this, findViewById(R.id.recycler_view)); + } + + @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); onHandleIntent(intent); } private void onHandleIntent(Intent intent) { - CallComposerContact contact = - ProtoParsers.getTrusted(intent, EXTRA_CONTACT, CallComposerContact.getDefaultInstance()); + DialerContact contact = + ProtoParsers.getTrusted(intent, EXTRA_CONTACT, DialerContact.getDefaultInstance()); entries = ProtoParsers.getTrusted( intent, EXTRA_CALL_DETAILS_ENTRIES, CallDetailsEntries.getDefaultInstance()) diff --git a/java/com/android/dialer/calldetails/CallDetailsAdapter.java b/java/com/android/dialer/calldetails/CallDetailsAdapter.java index 725077965..d2fdbb424 100644 --- a/java/com/android/dialer/calldetails/CallDetailsAdapter.java +++ b/java/com/android/dialer/calldetails/CallDetailsAdapter.java @@ -22,26 +22,26 @@ import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; import android.view.LayoutInflater; import android.view.ViewGroup; -import com.android.dialer.callcomposer.CallComposerContact; import com.android.dialer.calldetails.CallDetailsEntries.CallDetailsEntry; import com.android.dialer.calllogutils.CallTypeHelper; import com.android.dialer.common.Assert; +import com.android.dialer.dialercontact.DialerContact; import java.util.List; /** Adapter for RecyclerView in {@link CallDetailsActivity}. */ -public class CallDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { +final class CallDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private static final int HEADER_VIEW_TYPE = 1; private static final int CALL_ENTRY_VIEW_TYPE = 2; private static final int FOOTER_VIEW_TYPE = 3; - private final CallComposerContact contact; + private final DialerContact contact; private final List<CallDetailsEntry> callDetailsEntries; private final CallTypeHelper callTypeHelper; - public CallDetailsAdapter( + CallDetailsAdapter( Context context, - @NonNull CallComposerContact contact, + @NonNull DialerContact contact, @NonNull List<CallDetailsEntry> callDetailsEntries) { this.contact = Assert.isNotNull(contact); this.callDetailsEntries = callDetailsEntries; @@ -62,8 +62,8 @@ public class CallDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo return new CallDetailsFooterViewHolder( inflater.inflate(R.layout.call_details_footer, parent, false)); default: - Assert.fail("No ViewHolder available for viewType: " + viewType); - return null; + throw Assert.createIllegalStateFailException( + "No ViewHolder available for viewType: " + viewType); } } diff --git a/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java b/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java index 4d9aacf7b..1ddd2e77e 100644 --- a/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java +++ b/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java @@ -25,11 +25,12 @@ import android.view.View.OnClickListener; import android.widget.QuickContactBadge; import android.widget.TextView; import com.android.contacts.common.ContactPhotoManager; -import com.android.dialer.callcomposer.CallComposerContact; import com.android.dialer.callintent.CallInitiationType; import com.android.dialer.callintent.CallIntentBuilder; import com.android.dialer.common.Assert; +import com.android.dialer.dialercontact.DialerContact; import com.android.dialer.logging.DialerImpression; +import com.android.dialer.logging.InteractionEvent; import com.android.dialer.logging.Logger; import com.android.dialer.util.DialerUtils; @@ -43,20 +44,24 @@ public class CallDetailsHeaderViewHolder extends RecyclerView.ViewHolder private final QuickContactBadge contactPhoto; private final Context context; - private CallComposerContact contact; + private DialerContact contact; CallDetailsHeaderViewHolder(View container) { super(container); context = container.getContext(); callBackButton = container.findViewById(R.id.call_back_button); - nameView = (TextView) container.findViewById(R.id.contact_name); - numberView = (TextView) container.findViewById(R.id.phone_number); - contactPhoto = (QuickContactBadge) container.findViewById(R.id.quick_contact_photo); + nameView = container.findViewById(R.id.contact_name); + numberView = container.findViewById(R.id.phone_number); + contactPhoto = container.findViewById(R.id.quick_contact_photo); + callBackButton.setOnClickListener(this); + Logger.get(context) + .logQuickContactOnTouch( + contactPhoto, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_CALL_DETAILS, true); } /** Populates the contact info fields based on the current contact information. */ - void updateContactInfo(CallComposerContact contact) { + void updateContactInfo(DialerContact contact) { this.contact = contact; ContactPhotoManager.getInstance(context) .loadDialerThumbnailOrPhoto( @@ -98,7 +103,7 @@ public class CallDetailsHeaderViewHolder extends RecyclerView.ViewHolder view.getContext(), new CallIntentBuilder(contact.getNumber(), CallInitiationType.Type.CALL_DETAILS).build()); } else { - Assert.fail("View OnClickListener not implemented: " + view); + throw Assert.createIllegalStateFailException("View OnClickListener not implemented: " + view); } } } diff --git a/java/com/android/dialer/calldetails/res/layout/contact_container.xml b/java/com/android/dialer/calldetails/res/layout/contact_container.xml index bb89b36f2..d8d6e4e70 100644 --- a/java/com/android/dialer/calldetails/res/layout/contact_container.xml +++ b/java/com/android/dialer/calldetails/res/layout/contact_container.xml @@ -56,6 +56,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="@dimen/photo_text_margin" + android:ellipsize="end" + android:maxLines="1" style="@style/SecondaryText"/> </LinearLayout> @@ -66,8 +68,8 @@ android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:background="?android:attr/selectableItemBackgroundBorderless" - android:contentDescription="@string/description_call_log_call_action" + android:contentDescription="@string/call" android:scaleType="center" android:src="@drawable/quantum_ic_call_white_24" android:tint="@color/secondary_text_color"/> -</RelativeLayout> +</RelativeLayout>
\ No newline at end of file diff --git a/java/com/android/dialer/calldetails/res/values-af/strings.xml b/java/com/android/dialer/calldetails/res/values-af/strings.xml index 86bef4b9a..74fbcd023 100644 --- a/java/com/android/dialer/calldetails/res/values-af/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-af/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Vee uit"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Kopieer nommer"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Wysig nommer voordat jy bel"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Bel"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Het \'n foto gestuur"</string> <string name="received_a_photo" msgid="3528953225576480505">"Het \'n foto ontvang"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-am/strings.xml b/java/com/android/dialer/calldetails/res/values-am/strings.xml index 2a23945fe..4deaceb8c 100644 --- a/java/com/android/dialer/calldetails/res/values-am/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-am/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"ሰርዝ"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"ቁጥር ቅዳ"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"ከመደወል በፊት ቁጥር አርትዕ ያድርጉ"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"ጥሪ"</string> <string name="sent_a_photo" msgid="3978670717462979502">"አንድ ፎቶ ተልኳል"</string> <string name="received_a_photo" msgid="3528953225576480505">"አንድ ፎቶ ደርሷል"</string> <string name="message_in_quotes" msgid="3270574830115828365">"«<xliff:g id="MESSAGE">%1$s</xliff:g>»"</string> diff --git a/java/com/android/dialer/calldetails/res/values-ar/strings.xml b/java/com/android/dialer/calldetails/res/values-ar/strings.xml index 6b0d8a773..11a80e9b3 100644 --- a/java/com/android/dialer/calldetails/res/values-ar/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-ar/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"حذف"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"نسخ الرقم"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"تعديل الرقم قبل الاتصال"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"الاتصال"</string> <string name="sent_a_photo" msgid="3978670717462979502">"تم إرسال صورة"</string> <string name="received_a_photo" msgid="3528953225576480505">"تم تلقي صورة"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-az/strings.xml b/java/com/android/dialer/calldetails/res/values-az/strings.xml index 479837c34..6710966a8 100644 --- a/java/com/android/dialer/calldetails/res/values-az/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-az/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Silin"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Nömrəni kopyalayın"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Zəng etmədən öncə nömrəyə düzəliş edin"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Zəng edin"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Foto göndərildi"</string> <string name="received_a_photo" msgid="3528953225576480505">"Foto alındı"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/calldetails/res/values-b+sr+Latn/strings.xml index 01141ffa4..a08c4eda1 100644 --- a/java/com/android/dialer/calldetails/res/values-b+sr+Latn/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-b+sr+Latn/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Izbriši"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiraj broj"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Izmenite broj pre poziva"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Pozovi"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Slika je poslata"</string> <string name="received_a_photo" msgid="3528953225576480505">"Slika je primljena"</string> <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string> diff --git a/java/com/android/dialer/calldetails/res/values-be/strings.xml b/java/com/android/dialer/calldetails/res/values-be/strings.xml index 683f29bb2..3997fb2f2 100644 --- a/java/com/android/dialer/calldetails/res/values-be/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-be/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Выдаліць"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Скапіраваць нумар"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Рэдагаваць нумар перад выклікам"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Выклік"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Адпраўлена фота"</string> <string name="received_a_photo" msgid="3528953225576480505">"Атрымана фота"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-bg/strings.xml b/java/com/android/dialer/calldetails/res/values-bg/strings.xml index 9cd70e2f6..2354517db 100644 --- a/java/com/android/dialer/calldetails/res/values-bg/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-bg/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Изтриване"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Копиране на номера"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Редактиране на номера преди обаждане"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Обаждане"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Изпратена бе снимка"</string> <string name="received_a_photo" msgid="3528953225576480505">"Получена бе снимка"</string> <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string> diff --git a/java/com/android/dialer/calldetails/res/values-bn/strings.xml b/java/com/android/dialer/calldetails/res/values-bn/strings.xml index 148f61aba..066715265 100644 --- a/java/com/android/dialer/calldetails/res/values-bn/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-bn/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"মুছুন"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"নম্বর কপি করুন"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"কল করার আগে নম্বর সম্পাদন করুন"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"কল করুন"</string> <string name="sent_a_photo" msgid="3978670717462979502">"একটি ফটো পাঠিয়েছেন"</string> <string name="received_a_photo" msgid="3528953225576480505">"একটি ফটো পেয়েছেন"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-bs/strings.xml b/java/com/android/dialer/calldetails/res/values-bs/strings.xml index 6f164b228..305a41347 100644 --- a/java/com/android/dialer/calldetails/res/values-bs/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-bs/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Izbriši"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiraj broj"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Uredi broj prije poziva"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Poziv"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Fotografija poslana"</string> <string name="received_a_photo" msgid="3528953225576480505">"Fotografija primljena"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-ca/strings.xml b/java/com/android/dialer/calldetails/res/values-ca/strings.xml index 0e33e60e7..6d5092e19 100644 --- a/java/com/android/dialer/calldetails/res/values-ca/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-ca/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Suprimeix"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Copia el número"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Edita el número abans de trucar"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Truca"</string> <string name="sent_a_photo" msgid="3978670717462979502">"S\'ha enviat una foto"</string> <string name="received_a_photo" msgid="3528953225576480505">"S\'ha rebut una foto"</string> <string name="message_in_quotes" msgid="3270574830115828365">"<xliff:g id="MESSAGE">%1$s</xliff:g>"</string> diff --git a/java/com/android/dialer/calldetails/res/values-cs/strings.xml b/java/com/android/dialer/calldetails/res/values-cs/strings.xml index 9747ee139..bec5bab59 100644 --- a/java/com/android/dialer/calldetails/res/values-cs/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-cs/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Smazat"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Kopírovat číslo"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Před voláním upravit číslo"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Zavolat"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Byla poslána fotka"</string> <string name="received_a_photo" msgid="3528953225576480505">"Byla přijata fotka"</string> <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string> diff --git a/java/com/android/dialer/calldetails/res/values-da/strings.xml b/java/com/android/dialer/calldetails/res/values-da/strings.xml index 41bc25254..cfc4ad151 100644 --- a/java/com/android/dialer/calldetails/res/values-da/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-da/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Slet"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiér nummer"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Rediger nummer før opkald"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Ring op"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Der blev sendt et billede"</string> <string name="received_a_photo" msgid="3528953225576480505">"Der blev modtaget et billede"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-de/strings.xml b/java/com/android/dialer/calldetails/res/values-de/strings.xml index 014666b3f..64439240e 100644 --- a/java/com/android/dialer/calldetails/res/values-de/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-de/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Löschen"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Nummer kopieren"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Nummer vor Anruf bearbeiten"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Anrufen"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Hat ein Foto gesendet"</string> <string name="received_a_photo" msgid="3528953225576480505">"Hat ein Foto empfangen"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-el/strings.xml b/java/com/android/dialer/calldetails/res/values-el/strings.xml index 6b51fc71d..04c850e2f 100644 --- a/java/com/android/dialer/calldetails/res/values-el/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-el/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Διαγραφή"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Αντιγραφή αριθμού"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Επεξεργασία αριθμού πριν από την κλήση"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Κλήση"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Έγινε αποστολή φωτογραφίας"</string> <string name="received_a_photo" msgid="3528953225576480505">"Έγινε λήψη φωτογραφίας"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-en-rAU/strings.xml b/java/com/android/dialer/calldetails/res/values-en-rAU/strings.xml index 2d5210e8c..5f4f55910 100644 --- a/java/com/android/dialer/calldetails/res/values-en-rAU/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-en-rAU/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Delete"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Copy number"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Edit number before call"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Call"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Sent a photo"</string> <string name="received_a_photo" msgid="3528953225576480505">"Received a photo"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-en-rGB/strings.xml b/java/com/android/dialer/calldetails/res/values-en-rGB/strings.xml index 2d5210e8c..5f4f55910 100644 --- a/java/com/android/dialer/calldetails/res/values-en-rGB/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-en-rGB/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Delete"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Copy number"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Edit number before call"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Call"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Sent a photo"</string> <string name="received_a_photo" msgid="3528953225576480505">"Received a photo"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-en-rIN/strings.xml b/java/com/android/dialer/calldetails/res/values-en-rIN/strings.xml index 2d5210e8c..5f4f55910 100644 --- a/java/com/android/dialer/calldetails/res/values-en-rIN/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-en-rIN/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Delete"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Copy number"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Edit number before call"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Call"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Sent a photo"</string> <string name="received_a_photo" msgid="3528953225576480505">"Received a photo"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-es-rUS/strings.xml b/java/com/android/dialer/calldetails/res/values-es-rUS/strings.xml index d9db2825c..898653431 100644 --- a/java/com/android/dialer/calldetails/res/values-es-rUS/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-es-rUS/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Borrar"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Editar número antes de llamar"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Llamar"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Enviaste una foto"</string> <string name="received_a_photo" msgid="3528953225576480505">"Recibiste una foto"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-es/strings.xml b/java/com/android/dialer/calldetails/res/values-es/strings.xml index e72e898b4..ad581b4f6 100644 --- a/java/com/android/dialer/calldetails/res/values-es/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-es/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Eliminar"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Editar número antes de llamar"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Llamar"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Se ha enviado una foto"</string> <string name="received_a_photo" msgid="3528953225576480505">"Se ha recibido una foto"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-et/strings.xml b/java/com/android/dialer/calldetails/res/values-et/strings.xml index 496459d6b..9190b2831 100644 --- a/java/com/android/dialer/calldetails/res/values-et/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-et/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Kustuta"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Kopeeri number"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Muuda numbrit enne helistamist"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Kõne"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Saatis foto"</string> <string name="received_a_photo" msgid="3528953225576480505">"Sai foto"</string> <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string> diff --git a/java/com/android/dialer/calldetails/res/values-eu/strings.xml b/java/com/android/dialer/calldetails/res/values-eu/strings.xml index 913082fb8..a8c48cf66 100644 --- a/java/com/android/dialer/calldetails/res/values-eu/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-eu/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Ezabatu"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiatu zenbakia"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Editatu zenbakia deitu aurretik"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Deia"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Argazki bat bidali duzu"</string> <string name="received_a_photo" msgid="3528953225576480505">"Argazki bat jaso duzu"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-fa/strings.xml b/java/com/android/dialer/calldetails/res/values-fa/strings.xml index cad85a265..d02591be9 100644 --- a/java/com/android/dialer/calldetails/res/values-fa/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-fa/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"حذف"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"کپی کردن شماره"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"ویرایش شماره قبل از تماس"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"تماس"</string> <string name="sent_a_photo" msgid="3978670717462979502">"عکسی ارسال کرد"</string> <string name="received_a_photo" msgid="3528953225576480505">"عکسی دریافت کرد"</string> <string name="message_in_quotes" msgid="3270574830115828365">"«<xliff:g id="MESSAGE">%1$s</xliff:g>»"</string> diff --git a/java/com/android/dialer/calldetails/res/values-fi/strings.xml b/java/com/android/dialer/calldetails/res/values-fi/strings.xml index c16110d58..3b409edea 100644 --- a/java/com/android/dialer/calldetails/res/values-fi/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-fi/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Poista"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Kopioi numero"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Muokkaa numeroa ennen puhelua"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Soita"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Lähetetty kuva"</string> <string name="received_a_photo" msgid="3528953225576480505">"Vastaanotettu kuva"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-fr-rCA/strings.xml b/java/com/android/dialer/calldetails/res/values-fr-rCA/strings.xml index 676861f3f..7b88bddcd 100644 --- a/java/com/android/dialer/calldetails/res/values-fr-rCA/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-fr-rCA/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Supprimer"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Copier le numéro"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Modifier le numéro avant de passer l\'appel"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Appeler"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Photo envoyée"</string> <string name="received_a_photo" msgid="3528953225576480505">"Photo reçue"</string> <string name="message_in_quotes" msgid="3270574830115828365">"« <xliff:g id="MESSAGE">%1$s</xliff:g> »"</string> diff --git a/java/com/android/dialer/calldetails/res/values-fr/strings.xml b/java/com/android/dialer/calldetails/res/values-fr/strings.xml index 606cb1095..8319a2c9e 100644 --- a/java/com/android/dialer/calldetails/res/values-fr/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-fr/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Supprimer"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Copier le numéro"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Modifier le numéro avant d\'appeler"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Appeler"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Envoi d\'une photo"</string> <string name="received_a_photo" msgid="3528953225576480505">"Réception d\'une photo"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-gl/strings.xml b/java/com/android/dialer/calldetails/res/values-gl/strings.xml index aa5ff14dd..f7aa16660 100644 --- a/java/com/android/dialer/calldetails/res/values-gl/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-gl/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Eliminar"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Editar número antes de chamar"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Chamar"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Enviouse unha foto"</string> <string name="received_a_photo" msgid="3528953225576480505">"Recibiuse unha foto"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-gu/strings.xml b/java/com/android/dialer/calldetails/res/values-gu/strings.xml index ccb8755b3..03e402e00 100644 --- a/java/com/android/dialer/calldetails/res/values-gu/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-gu/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"કાઢી નાખો"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"નંબર કૉપિ કરો"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"કૉલ કરતાં પહેલાં નંબર સંપાદિત કરો"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"કૉલ કરો"</string> <string name="sent_a_photo" msgid="3978670717462979502">"એક ફોટો મોકલ્યો"</string> <string name="received_a_photo" msgid="3528953225576480505">"એક ફોટો પ્રાપ્ત કર્યો"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-hi/strings.xml b/java/com/android/dialer/calldetails/res/values-hi/strings.xml index 517fbe52d..3e46920fb 100644 --- a/java/com/android/dialer/calldetails/res/values-hi/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-hi/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"हटाएं"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"नंबर कॉपी करें"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"कॉल करने से पहले नंबर संपादित करें"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"कॉल करें"</string> <string name="sent_a_photo" msgid="3978670717462979502">"फ़ोटो भेजी गई"</string> <string name="received_a_photo" msgid="3528953225576480505">"फ़ोटो मिली"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-hr/strings.xml b/java/com/android/dialer/calldetails/res/values-hr/strings.xml index 687a65e2b..c1cc36098 100644 --- a/java/com/android/dialer/calldetails/res/values-hr/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-hr/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Brisanje"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiranje broja"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Uređivanje broja prije poziva"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Poziv"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Šalje fotografiju"</string> <string name="received_a_photo" msgid="3528953225576480505">"Prima fotografiju"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-hu/strings.xml b/java/com/android/dialer/calldetails/res/values-hu/strings.xml index 66863e87d..298c10e53 100644 --- a/java/com/android/dialer/calldetails/res/values-hu/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-hu/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Törlés"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Szám másolása"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Szám szerkesztése hívás előtt"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Telefonhívás"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Küldött egy fotót"</string> <string name="received_a_photo" msgid="3528953225576480505">"Kapott egy fotót"</string> <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string> diff --git a/java/com/android/dialer/calldetails/res/values-hy/strings.xml b/java/com/android/dialer/calldetails/res/values-hy/strings.xml index a1e84e955..ab44622d2 100644 --- a/java/com/android/dialer/calldetails/res/values-hy/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-hy/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Ջնջել"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Պատճենել համարը"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Փոփոխել համարը զանգելուց առաջ"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Զանգ"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Ուղարկվել է լուսանկար"</string> <string name="received_a_photo" msgid="3528953225576480505">"Ստացվել է լուսանկար"</string> <string name="message_in_quotes" msgid="3270574830115828365">"«<xliff:g id="MESSAGE">%1$s</xliff:g>»"</string> diff --git a/java/com/android/dialer/calldetails/res/values-in/strings.xml b/java/com/android/dialer/calldetails/res/values-in/strings.xml index ba58ba01c..68ced556e 100644 --- a/java/com/android/dialer/calldetails/res/values-in/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-in/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Hapus"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Salin nomor"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Edit nomor sebelum menelepon"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Telepon"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Mengirim foto"</string> <string name="received_a_photo" msgid="3528953225576480505">"Menerima foto"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-is/strings.xml b/java/com/android/dialer/calldetails/res/values-is/strings.xml index 0770814df..667ebd62a 100644 --- a/java/com/android/dialer/calldetails/res/values-is/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-is/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Eyða"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Afrita númer"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Breyta númeri áður en hringt er"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Hringja"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Sendi mynd"</string> <string name="received_a_photo" msgid="3528953225576480505">"Tók á móti mynd"</string> <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string> diff --git a/java/com/android/dialer/calldetails/res/values-it/strings.xml b/java/com/android/dialer/calldetails/res/values-it/strings.xml index 97af25168..4f159d574 100644 --- a/java/com/android/dialer/calldetails/res/values-it/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-it/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Elimina"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Copia numero"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Modifica numero prima di chiamare"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Chiama"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Foto inviata"</string> <string name="received_a_photo" msgid="3528953225576480505">"Foto ricevuta"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-iw/strings.xml b/java/com/android/dialer/calldetails/res/values-iw/strings.xml index 329eded62..87c6fed79 100644 --- a/java/com/android/dialer/calldetails/res/values-iw/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-iw/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"מחק"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"העתק את המספר"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"ערוך את המספר לפני השיחה"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"התקשר"</string> <string name="sent_a_photo" msgid="3978670717462979502">"נשלחה תמונה"</string> <string name="received_a_photo" msgid="3528953225576480505">"התקבלה תמונה"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-ja/strings.xml b/java/com/android/dialer/calldetails/res/values-ja/strings.xml index 7aef345fd..d3a15d420 100644 --- a/java/com/android/dialer/calldetails/res/values-ja/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-ja/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"削除"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"電話番号をコピー"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"発信前に電話番号を編集"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"発信"</string> <string name="sent_a_photo" msgid="3978670717462979502">"写真を送信しました"</string> <string name="received_a_photo" msgid="3528953225576480505">"写真を受信しました"</string> <string name="message_in_quotes" msgid="3270574830115828365">"「<xliff:g id="MESSAGE">%1$s</xliff:g>」"</string> diff --git a/java/com/android/dialer/calldetails/res/values-ka/strings.xml b/java/com/android/dialer/calldetails/res/values-ka/strings.xml index 1cd7bc219..66f19282d 100644 --- a/java/com/android/dialer/calldetails/res/values-ka/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-ka/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"წაშლა"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"ნომრის კოპირება"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"ნომრის რედაქტირება დარეკვამდე"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"დარეკვა"</string> <string name="sent_a_photo" msgid="3978670717462979502">"ფოტო გაიგზავნა"</string> <string name="received_a_photo" msgid="3528953225576480505">"მიღებულია ფოტო"</string> <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string> diff --git a/java/com/android/dialer/calldetails/res/values-kk/strings.xml b/java/com/android/dialer/calldetails/res/values-kk/strings.xml index 1923cf79b..c3903e158 100644 --- a/java/com/android/dialer/calldetails/res/values-kk/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-kk/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Жою"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Нөмірді көшіру"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Нөмірді қоңырау шалуға дейін өзгерту"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Қоңырау шалу"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Сурет жіберілді"</string> <string name="received_a_photo" msgid="3528953225576480505">"Сурет қабылданды"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-km/strings.xml b/java/com/android/dialer/calldetails/res/values-km/strings.xml index e0472796f..240e28ab7 100644 --- a/java/com/android/dialer/calldetails/res/values-km/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-km/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"លុប"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"ថតចម្លងលេខទូរសព្ទ"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"កែលេខ មុនពេលហៅទូរសព្ទ"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"ហៅទូរសព្ទ"</string> <string name="sent_a_photo" msgid="3978670717462979502">"បានផ្ញើរូបថត"</string> <string name="received_a_photo" msgid="3528953225576480505">"បានទទួលរូបថត"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-kn/strings.xml b/java/com/android/dialer/calldetails/res/values-kn/strings.xml index 66c0d6349..a833ffc95 100644 --- a/java/com/android/dialer/calldetails/res/values-kn/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-kn/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"ಅಳಿಸಿ"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"ಸಂಖ್ಯೆಯನ್ನು ನಕಲಿಸಿ"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"ಕರೆ ಮಾಡುವ ಮೊದಲು ಸಂಖ್ಯೆಯನ್ನು ಎಡಿಟ್ ಮಾಡಿ"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"ಕರೆಮಾಡಿ"</string> <string name="sent_a_photo" msgid="3978670717462979502">"ಫೋಟೋ ಕಳುಹಿಸಲಾಗಿದೆ"</string> <string name="received_a_photo" msgid="3528953225576480505">"ಫೋಟೋ ಸ್ವೀಕರಿಸಲಾಗಿದೆ"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-ko/strings.xml b/java/com/android/dialer/calldetails/res/values-ko/strings.xml index 35c503858..700c3603d 100644 --- a/java/com/android/dialer/calldetails/res/values-ko/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-ko/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"삭제"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"전화번호 복사"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"통화하기 전에 번호 수정"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"전화걸기"</string> <string name="sent_a_photo" msgid="3978670717462979502">"사진 전송됨"</string> <string name="received_a_photo" msgid="3528953225576480505">"사진 수신됨"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\'<xliff:g id="MESSAGE">%1$s</xliff:g>\'"</string> diff --git a/java/com/android/dialer/calldetails/res/values-ky/strings.xml b/java/com/android/dialer/calldetails/res/values-ky/strings.xml index fe37b33bd..08546c8ec 100644 --- a/java/com/android/dialer/calldetails/res/values-ky/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-ky/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Жок кылуу"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Номерди көчүрүү"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Чалуудан мурун номерди түзөтүү"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Чалуу"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Сүрөт жөнөтүлдү"</string> <string name="received_a_photo" msgid="3528953225576480505">"Сүрөт алынды"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-lo/strings.xml b/java/com/android/dialer/calldetails/res/values-lo/strings.xml index 85b636acd..8f099e827 100644 --- a/java/com/android/dialer/calldetails/res/values-lo/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-lo/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"ລຶບ"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"ສຳເນົາເບີໂທ"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"ແກ້ໄຂເບີກ່ອນໂທ"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"ໂທ"</string> <string name="sent_a_photo" msgid="3978670717462979502">"ສົ່ງຮູບພາບ"</string> <string name="received_a_photo" msgid="3528953225576480505">"ໄດ້ຮັບຮູບພາບແລ້ວ"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-lt/strings.xml b/java/com/android/dialer/calldetails/res/values-lt/strings.xml index 9c8ad7b7f..62d89f5b9 100644 --- a/java/com/android/dialer/calldetails/res/values-lt/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-lt/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Ištrinti"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Kopijuoti numerį"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Redaguoti numerį prieš skambinant"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Skambinti"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Išsiuntė nuotrauką"</string> <string name="received_a_photo" msgid="3528953225576480505">"Gavo nuotrauką"</string> <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string> diff --git a/java/com/android/dialer/calldetails/res/values-lv/strings.xml b/java/com/android/dialer/calldetails/res/values-lv/strings.xml index d8783935b..3625649ee 100644 --- a/java/com/android/dialer/calldetails/res/values-lv/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-lv/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Dzēst"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Kopēt numuru"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Rediģēt numuru pirms zvanīšanas"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Zvanīt"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Nosūtīja fotoattēlu"</string> <string name="received_a_photo" msgid="3528953225576480505">"Saņēma fotoattēlu"</string> <string name="message_in_quotes" msgid="3270574830115828365">"“<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string> diff --git a/java/com/android/dialer/calldetails/res/values-mk/strings.xml b/java/com/android/dialer/calldetails/res/values-mk/strings.xml index 9388ae070..6d1fd710f 100644 --- a/java/com/android/dialer/calldetails/res/values-mk/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-mk/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Избриши"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Копирај го бројот"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Измени го бројот пред повикот"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Повикај"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Испрати фотографија"</string> <string name="received_a_photo" msgid="3528953225576480505">"Прими фотографија"</string> <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string> diff --git a/java/com/android/dialer/calldetails/res/values-ml/strings.xml b/java/com/android/dialer/calldetails/res/values-ml/strings.xml index d29691159..fbafb88ea 100644 --- a/java/com/android/dialer/calldetails/res/values-ml/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-ml/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"ഇല്ലാതാക്കുക"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"നമ്പർ പകർത്തുക"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"കോൾ ചെയ്യുന്നതിന് മുമ്പായി നമ്പർ എഡിറ്റുചെയ്യുക"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"കോള് ചെയ്യുക"</string> <string name="sent_a_photo" msgid="3978670717462979502">"ഒരു ഫോട്ടോ അയച്ചു"</string> <string name="received_a_photo" msgid="3528953225576480505">"ഒരു ഫോട്ടോ ലഭിച്ചു"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-mn/strings.xml b/java/com/android/dialer/calldetails/res/values-mn/strings.xml index cb264e016..10b5d967a 100644 --- a/java/com/android/dialer/calldetails/res/values-mn/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-mn/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Устгах"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Дугаар хуулах"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Залгахын өмнө дугаар засах"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Залгах"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Зураг илгээсэн"</string> <string name="received_a_photo" msgid="3528953225576480505">"Зураг хүлээн авсан"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-mr/strings.xml b/java/com/android/dialer/calldetails/res/values-mr/strings.xml index 5c31e361e..5644664f6 100644 --- a/java/com/android/dialer/calldetails/res/values-mr/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-mr/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"हटवा"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"नंबर कॉपी करा"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"कॉल करण्यापूर्वी नंबर संपादित करा"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"कॉल करा"</string> <string name="sent_a_photo" msgid="3978670717462979502">"एक फोटो पाठविला"</string> <string name="received_a_photo" msgid="3528953225576480505">"एक फोटो प्राप्त झाला"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-ms/strings.xml b/java/com/android/dialer/calldetails/res/values-ms/strings.xml index da17d6edb..157198dfc 100644 --- a/java/com/android/dialer/calldetails/res/values-ms/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-ms/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Padam"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Salin nombor"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Edit nombor sebelum panggilan"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Panggil"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Menghantar foto"</string> <string name="received_a_photo" msgid="3528953225576480505">"Foto diterima"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-my/strings.xml b/java/com/android/dialer/calldetails/res/values-my/strings.xml index 75508d8d4..bf3f90b60 100644 --- a/java/com/android/dialer/calldetails/res/values-my/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-my/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"ဖျက်ရန်"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"နံပါတ်ကိုကူးယူရန်"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"မခေါ်ဆိုမီ နံပါတ်ကိုပြင်ဆင်ရန်"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"ခေါ်ဆိုရန်"</string> <string name="sent_a_photo" msgid="3978670717462979502">"ဓာတ်ပုံ ပို့လိုက်သည်"</string> <string name="received_a_photo" msgid="3528953225576480505">"ဓာတ်ပုံ လက်ခံရရှိသည်"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-nb/strings.xml b/java/com/android/dialer/calldetails/res/values-nb/strings.xml index 022025fa3..609c8afcf 100644 --- a/java/com/android/dialer/calldetails/res/values-nb/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-nb/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Slett"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiér nummeret"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Rediger nummeret før du ringer"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Ring"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Et bilde ble sendt"</string> <string name="received_a_photo" msgid="3528953225576480505">"Et bilde ble mottatt"</string> <string name="message_in_quotes" msgid="3270574830115828365">"«<xliff:g id="MESSAGE">%1$s</xliff:g>»"</string> diff --git a/java/com/android/dialer/calldetails/res/values-ne/strings.xml b/java/com/android/dialer/calldetails/res/values-ne/strings.xml index 8fe355ba6..6b609670c 100644 --- a/java/com/android/dialer/calldetails/res/values-ne/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-ne/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"मेट्नुहोस्"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"नम्बर प्रतिलिपि गर्नुहोस्"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"कल गर्नु अघि नम्बर सम्पादन गर्नुहोस्"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"कल"</string> <string name="sent_a_photo" msgid="3978670717462979502">"एउटा तस्बिर पठाइयो"</string> <string name="received_a_photo" msgid="3528953225576480505">"एउटा तस्बिर प्राप्त भयो"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-nl/strings.xml b/java/com/android/dialer/calldetails/res/values-nl/strings.xml index 71657b813..f5efb1a43 100644 --- a/java/com/android/dialer/calldetails/res/values-nl/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-nl/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Verwijderen"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Nummer kopiëren"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Nummer bewerken vóór bellen"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Bellen"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Foto verzonden"</string> <string name="received_a_photo" msgid="3528953225576480505">"Foto ontvangen"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\'<xliff:g id="MESSAGE">%1$s</xliff:g>\'"</string> diff --git a/java/com/android/dialer/calldetails/res/values-no/strings.xml b/java/com/android/dialer/calldetails/res/values-no/strings.xml index 022025fa3..609c8afcf 100644 --- a/java/com/android/dialer/calldetails/res/values-no/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-no/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Slett"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiér nummeret"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Rediger nummeret før du ringer"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Ring"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Et bilde ble sendt"</string> <string name="received_a_photo" msgid="3528953225576480505">"Et bilde ble mottatt"</string> <string name="message_in_quotes" msgid="3270574830115828365">"«<xliff:g id="MESSAGE">%1$s</xliff:g>»"</string> diff --git a/java/com/android/dialer/calldetails/res/values-pa/strings.xml b/java/com/android/dialer/calldetails/res/values-pa/strings.xml index d4f175943..8a9ec1f69 100644 --- a/java/com/android/dialer/calldetails/res/values-pa/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-pa/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"ਮਿਟਾਓ"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"ਨੰਬਰ ਕਾਪੀ ਕਰੋ"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"ਕਾਲ ਤੋਂ ਪਹਿਲਾਂ ਨੰਬਰ ਸੰਪਾਦਿਤ ਕਰੋ"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"ਕਾਲ ਕਰੋ"</string> <string name="sent_a_photo" msgid="3978670717462979502">"ਇੱਕ ਫ਼ੋਟੋ ਭੇਜੀ ਗਈ"</string> <string name="received_a_photo" msgid="3528953225576480505">"ਇੱਕ ਫ਼ੋਟੋ ਪ੍ਰਾਪਤ ਹੋਈ"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-pl/strings.xml b/java/com/android/dialer/calldetails/res/values-pl/strings.xml index 96446005d..1a342b0ce 100644 --- a/java/com/android/dialer/calldetails/res/values-pl/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-pl/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Usuń"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiuj numer"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Edytuj numer, zanim zadzwonisz"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Zadzwoń"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Wysłano zdjęcie"</string> <string name="received_a_photo" msgid="3528953225576480505">"Odebrano zdjęcie"</string> <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string> diff --git a/java/com/android/dialer/calldetails/res/values-pt-rBR/strings.xml b/java/com/android/dialer/calldetails/res/values-pt-rBR/strings.xml index 467973d55..7abc8be39 100644 --- a/java/com/android/dialer/calldetails/res/values-pt-rBR/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-pt-rBR/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Excluir"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Editar número antes de ligar"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Ligar"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Enviou uma foto"</string> <string name="received_a_photo" msgid="3528953225576480505">"Recebeu uma foto"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-pt-rPT/strings.xml b/java/com/android/dialer/calldetails/res/values-pt-rPT/strings.xml index cfbbc0240..5e6dae83f 100644 --- a/java/com/android/dialer/calldetails/res/values-pt-rPT/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-pt-rPT/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Eliminar"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Editar o número antes de efetuar a chamada"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Telefonar"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Enviou uma foto"</string> <string name="received_a_photo" msgid="3528953225576480505">"Recebeu uma foto"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-pt/strings.xml b/java/com/android/dialer/calldetails/res/values-pt/strings.xml index 467973d55..7abc8be39 100644 --- a/java/com/android/dialer/calldetails/res/values-pt/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-pt/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Excluir"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Editar número antes de ligar"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Ligar"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Enviou uma foto"</string> <string name="received_a_photo" msgid="3528953225576480505">"Recebeu uma foto"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-ro/strings.xml b/java/com/android/dialer/calldetails/res/values-ro/strings.xml index e9281ae66..3a6447b64 100644 --- a/java/com/android/dialer/calldetails/res/values-ro/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-ro/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Ștergeți"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Copiați numărul"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Modificați numărul înainte de apelare"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Apelați"</string> <string name="sent_a_photo" msgid="3978670717462979502">"A fost trimisă o fotografie."</string> <string name="received_a_photo" msgid="3528953225576480505">"A fost primită o fotografie."</string> <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string> diff --git a/java/com/android/dialer/calldetails/res/values-ru/strings.xml b/java/com/android/dialer/calldetails/res/values-ru/strings.xml index bf981e293..b071dc68d 100644 --- a/java/com/android/dialer/calldetails/res/values-ru/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-ru/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Удалить"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Скопировать номер"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Изменить номер перед вызовом"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Позвонить"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Отправлена фотография"</string> <string name="received_a_photo" msgid="3528953225576480505">"Получена фотография"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-si/strings.xml b/java/com/android/dialer/calldetails/res/values-si/strings.xml index 5fdca0d52..999183b20 100644 --- a/java/com/android/dialer/calldetails/res/values-si/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-si/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"මකන්න"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"අංකය පිටපත් කරන්න"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"ඇමතුමට පෙර අංකය සංස්කරණය කරන්න"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"අමතන්න"</string> <string name="sent_a_photo" msgid="3978670717462979502">"ඡායාරූපයක් යැවිණි"</string> <string name="received_a_photo" msgid="3528953225576480505">"ඡායාරූපයක් ලැබිණි"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-sk/strings.xml b/java/com/android/dialer/calldetails/res/values-sk/strings.xml index db0478713..57b90cf8d 100644 --- a/java/com/android/dialer/calldetails/res/values-sk/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-sk/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Odstrániť"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Kopírovať číslo"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Pred volaním upraviť číslo"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Volať"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Bola odoslaná fotka"</string> <string name="received_a_photo" msgid="3528953225576480505">"Bola prijatá fotka"</string> <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string> diff --git a/java/com/android/dialer/calldetails/res/values-sl/strings.xml b/java/com/android/dialer/calldetails/res/values-sl/strings.xml index 98975f406..83ffcbb96 100644 --- a/java/com/android/dialer/calldetails/res/values-sl/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-sl/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Izbriši"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiraj številko"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Pred klicanjem uredi številko"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Pokliči"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Poslana fotografija"</string> <string name="received_a_photo" msgid="3528953225576480505">"Prejeta fotografija"</string> <string name="message_in_quotes" msgid="3270574830115828365">"»<xliff:g id="MESSAGE">%1$s</xliff:g>«"</string> diff --git a/java/com/android/dialer/calldetails/res/values-sq/strings.xml b/java/com/android/dialer/calldetails/res/values-sq/strings.xml index dd9915da5..d05770fb6 100644 --- a/java/com/android/dialer/calldetails/res/values-sq/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-sq/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Fshi"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Kopjo numrin"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Redakto numrin para telefonatës"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Telefono"</string> <string name="sent_a_photo" msgid="3978670717462979502">"U dërgua një fotografi"</string> <string name="received_a_photo" msgid="3528953225576480505">"U mor një fotografi"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-sr/strings.xml b/java/com/android/dialer/calldetails/res/values-sr/strings.xml index 7f4005d78..a1294df1a 100644 --- a/java/com/android/dialer/calldetails/res/values-sr/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-sr/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Избриши"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Копирај број"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Измените број пре позива"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Позови"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Слика је послата"</string> <string name="received_a_photo" msgid="3528953225576480505">"Слика је примљена"</string> <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string> diff --git a/java/com/android/dialer/calldetails/res/values-sv/strings.xml b/java/com/android/dialer/calldetails/res/values-sv/strings.xml index 3967b4ff3..9b2e25e44 100644 --- a/java/com/android/dialer/calldetails/res/values-sv/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-sv/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Radera"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiera nummer"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Redigera nummer före samtal"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Ring"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Skickade ett foto"</string> <string name="received_a_photo" msgid="3528953225576480505">"Tog emot ett foto"</string> <string name="message_in_quotes" msgid="3270574830115828365">"<xliff:g id="MESSAGE">%1$s</xliff:g>"</string> diff --git a/java/com/android/dialer/calldetails/res/values-sw/strings.xml b/java/com/android/dialer/calldetails/res/values-sw/strings.xml index e5df8230a..b7673372f 100644 --- a/java/com/android/dialer/calldetails/res/values-sw/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-sw/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Futa"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Nakili nambari"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Hariri nambari kabla ya kupiga"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Piga simu"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Picha imetumwa"</string> <string name="received_a_photo" msgid="3528953225576480505">"Picha imepokelewa"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-ta/strings.xml b/java/com/android/dialer/calldetails/res/values-ta/strings.xml index 840ad8790..51ff04f2c 100644 --- a/java/com/android/dialer/calldetails/res/values-ta/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-ta/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"நீக்கு"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"எண்ணை நகலெடு"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"அழைப்பதற்கு முன் எண்ணைத் திருத்து"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"அழை"</string> <string name="sent_a_photo" msgid="3978670717462979502">"படம் அனுப்பப்பட்டது"</string> <string name="received_a_photo" msgid="3528953225576480505">"படம் பெறப்பட்டது"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-te/strings.xml b/java/com/android/dialer/calldetails/res/values-te/strings.xml index 3054444ac..1d44e5514 100644 --- a/java/com/android/dialer/calldetails/res/values-te/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-te/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"తొలగించు"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"నంబర్ను కాపీ చేయి"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"కాల్ చేసే ముందు నంబర్ను సవరించు"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"కాల్ చేయి"</string> <string name="sent_a_photo" msgid="3978670717462979502">"ఫోటో పంపబడింది"</string> <string name="received_a_photo" msgid="3528953225576480505">"ఫోటో స్వీకరించబడింది"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-th/strings.xml b/java/com/android/dialer/calldetails/res/values-th/strings.xml index c565ebadf..3fe88f950 100644 --- a/java/com/android/dialer/calldetails/res/values-th/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-th/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"ลบ"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"คัดลอกหมายเลข"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"แก้ไขหมายเลขก่อนโทร"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"โทร"</string> <string name="sent_a_photo" msgid="3978670717462979502">"ส่งรูปภาพแล้ว"</string> <string name="received_a_photo" msgid="3528953225576480505">"ได้รับรูปภาพแล้ว"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-tl/strings.xml b/java/com/android/dialer/calldetails/res/values-tl/strings.xml index 81c148e6b..91fb3bec4 100644 --- a/java/com/android/dialer/calldetails/res/values-tl/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-tl/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"I-delete"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Kopyahin ang numero"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"I-edit ang numero bago tumawag"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Tumawag"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Nagpadala ng larawan"</string> <string name="received_a_photo" msgid="3528953225576480505">"Nakatanggap ng larawan"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-tr/strings.xml b/java/com/android/dialer/calldetails/res/values-tr/strings.xml index ade401843..f84d0b383 100644 --- a/java/com/android/dialer/calldetails/res/values-tr/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-tr/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Sil"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Numarayı kopyala"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Telefon etmeden önce numarayı düzenleyin"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Telefon eder"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Bir fotoğraf gönderildi"</string> <string name="received_a_photo" msgid="3528953225576480505">"Bir fotoğraf alındı"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-uk/strings.xml b/java/com/android/dialer/calldetails/res/values-uk/strings.xml index 6538d664d..bf6e0acc1 100644 --- a/java/com/android/dialer/calldetails/res/values-uk/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-uk/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Видалити"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Копіювати номер"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Редагувати номер перед дзвінком"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Виклик"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Надіслано фотографію"</string> <string name="received_a_photo" msgid="3528953225576480505">"Отримано фотографію"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-ur/strings.xml b/java/com/android/dialer/calldetails/res/values-ur/strings.xml index 90c3a590a..5a22869dc 100644 --- a/java/com/android/dialer/calldetails/res/values-ur/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-ur/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"حذف کریں"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"نمبر کاپی کریں"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"کال کرنے سے پہلے نمبر میں ترمیم کریں"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"کال"</string> <string name="sent_a_photo" msgid="3978670717462979502">"ایک تصویر بھیجی"</string> <string name="received_a_photo" msgid="3528953225576480505">"ایک تصویر موصول ہوئی"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-uz/strings.xml b/java/com/android/dialer/calldetails/res/values-uz/strings.xml index 7b443ca2e..890b7ae59 100644 --- a/java/com/android/dialer/calldetails/res/values-uz/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-uz/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"O‘chirib tashlash"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Raqamni nusxalash"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Qo‘ng‘iroq qilishdan oldin raqamni tahrirlash"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Qo‘ng‘iroq qilish"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Rasm yuborildi"</string> <string name="received_a_photo" msgid="3528953225576480505">"Rasm qabul qilindi"</string> <string name="message_in_quotes" msgid="3270574830115828365">"“<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string> diff --git a/java/com/android/dialer/calldetails/res/values-vi/strings.xml b/java/com/android/dialer/calldetails/res/values-vi/strings.xml index 7a950216d..b58963293 100644 --- a/java/com/android/dialer/calldetails/res/values-vi/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-vi/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Xóa"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Sao chép số"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Chỉnh sửa số trước khi gọi"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Gọi"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Đã gửi một ảnh"</string> <string name="received_a_photo" msgid="3528953225576480505">"Đã nhận một ảnh"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values-zh-rCN/strings.xml b/java/com/android/dialer/calldetails/res/values-zh-rCN/strings.xml index aad695a73..7b8b9723c 100644 --- a/java/com/android/dialer/calldetails/res/values-zh-rCN/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-zh-rCN/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"删除"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"复制号码"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"拨打电话之前修改号码"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"拨打电话"</string> <string name="sent_a_photo" msgid="3978670717462979502">"发送了一张照片"</string> <string name="received_a_photo" msgid="3528953225576480505">"收到了一张照片"</string> <string name="message_in_quotes" msgid="3270574830115828365">"“<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string> diff --git a/java/com/android/dialer/calldetails/res/values-zh-rHK/strings.xml b/java/com/android/dialer/calldetails/res/values-zh-rHK/strings.xml index eb5b606b7..87710986a 100644 --- a/java/com/android/dialer/calldetails/res/values-zh-rHK/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-zh-rHK/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"刪除"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"複製號碼"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"在撥打前編輯號碼"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"通話"</string> <string name="sent_a_photo" msgid="3978670717462979502">"已傳送相片"</string> <string name="received_a_photo" msgid="3528953225576480505">"已收到相片"</string> <string name="message_in_quotes" msgid="3270574830115828365">"「<xliff:g id="MESSAGE">%1$s</xliff:g>」"</string> diff --git a/java/com/android/dialer/calldetails/res/values-zh-rTW/strings.xml b/java/com/android/dialer/calldetails/res/values-zh-rTW/strings.xml index fd426c0fa..73aba80c6 100644 --- a/java/com/android/dialer/calldetails/res/values-zh-rTW/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-zh-rTW/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"刪除"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"複製號碼"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"撥打電話前編輯號碼"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"撥號"</string> <string name="sent_a_photo" msgid="3978670717462979502">"傳送了 1 張相片"</string> <string name="received_a_photo" msgid="3528953225576480505">"收到了 1 張相片"</string> <string name="message_in_quotes" msgid="3270574830115828365">"「<xliff:g id="MESSAGE">%1$s</xliff:g>」"</string> diff --git a/java/com/android/dialer/calldetails/res/values-zu/strings.xml b/java/com/android/dialer/calldetails/res/values-zu/strings.xml index d41d1f5cb..94040ce2b 100644 --- a/java/com/android/dialer/calldetails/res/values-zu/strings.xml +++ b/java/com/android/dialer/calldetails/res/values-zu/strings.xml @@ -21,7 +21,6 @@ <string name="delete" msgid="2141020674108406737">"Susa"</string> <string name="call_details_copy_number" msgid="4265479408878990796">"Kopisha inombolo"</string> <string name="call_details_edit_number" msgid="8718476514903513624">"Hlela inombolo ngaphambi kokushaya ucingo"</string> - <string name="description_call_log_call_action" msgid="1421313064764221900">"Shaya"</string> <string name="sent_a_photo" msgid="3978670717462979502">"Uthumele isithombe"</string> <string name="received_a_photo" msgid="3528953225576480505">"Uthole isithombe"</string> <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string> diff --git a/java/com/android/dialer/calldetails/res/values/dimens.xml b/java/com/android/dialer/calldetails/res/values/dimens.xml index f85d02f83..91bf70e88 100644 --- a/java/com/android/dialer/calldetails/res/values/dimens.xml +++ b/java/com/android/dialer/calldetails/res/values/dimens.xml @@ -15,8 +15,6 @@ ~ limitations under the License --> <resources> - <dimen name="call_details_primary_text_size">16sp</dimen> - <dimen name="call_details_secondary_text_size">14sp</dimen> <dimen name="call_details_top_margin">6dp</dimen> <!-- contact container --> diff --git a/java/com/android/dialer/calldetails/res/values/strings.xml b/java/com/android/dialer/calldetails/res/values/strings.xml index 4471605f6..6b3b17962 100644 --- a/java/com/android/dialer/calldetails/res/values/strings.xml +++ b/java/com/android/dialer/calldetails/res/values/strings.xml @@ -27,10 +27,6 @@ <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] --> <string name="call_details_edit_number">Edit number before call</string> - <!-- String describing the phone icon on a call log list item. When tapped, it will place a - call to the number represented by that call log entry. [CHAR LIMIT=NONE]--> - <string name="description_call_log_call_action">Call</string> - <!-- String shown when the call details show a image that was sent --> <string name="sent_a_photo">Sent a photo</string> diff --git a/java/com/android/dialer/calldetails/res/values/styles.xml b/java/com/android/dialer/calldetails/res/values/styles.xml index 4fffe1afb..1a2b52994 100644 --- a/java/com/android/dialer/calldetails/res/values/styles.xml +++ b/java/com/android/dialer/calldetails/res/values/styles.xml @@ -15,24 +15,6 @@ ~ limitations under the License --> <resources> - <style name="PrimaryText"> - <item name="android:textColor">#DE000000</item> - <item name="android:textSize">@dimen/call_details_primary_text_size</item> - <item name="android:maxLines">1</item> - </style> - - <style name="SecondaryText"> - <item name="android:textColor">#8A000000</item> - <item name="android:textSize">@dimen/call_details_secondary_text_size</item> - <item name="android:maxLines">1</item> - </style> - - <style name="ECText"> - <item name="android:textColor">#8A000000</item> - <item name="android:textSize">@dimen/call_details_ec_text_size</item> - <item name="android:maxLines">1</item> - </style> - <style name="CallDetailsActionItemStyle"> <item name="android:foreground">?android:attr/selectableItemBackground</item> <item name="android:clickable">true</item> diff --git a/java/com/android/dialer/callintent/call_specific_app_data.proto b/java/com/android/dialer/callintent/call_specific_app_data.proto index 20ffc1ff4..c62006dfc 100644 --- a/java/com/android/dialer/callintent/call_specific_app_data.proto +++ b/java/com/android/dialer/callintent/call_specific_app_data.proto @@ -7,6 +7,7 @@ option optimize_for = LITE_RUNTIME; package com.android.dialer.callintent; import "java/com/android/dialer/callintent/call_initiation_type.proto"; +import "java/com/android/dialer/callintent/speed_dial_contact_type.proto"; // Miscellaneous data that's included in a new outgoing call initiated by // Dialer. The system will pass this data to the InCallUi which can use it @@ -17,4 +18,7 @@ message CallSpecificAppData { optional int32 position_of_selected_search_result = 2; optional int32 characters_in_search_string = 3; + + repeated SpeedDialContactType.Type speed_dial_contact_type = 4; + optional int32 speed_dial_contact_position = 5; } diff --git a/java/com/android/dialer/callintent/speed_dial_contact_type.proto b/java/com/android/dialer/callintent/speed_dial_contact_type.proto new file mode 100644 index 000000000..d352f458b --- /dev/null +++ b/java/com/android/dialer/callintent/speed_dial_contact_type.proto @@ -0,0 +1,18 @@ +syntax = "proto2"; + +option java_package = "com.android.dialer.callintent"; +option java_multiple_files = true; + +package com.android.dialer.callintent; +option optimize_for = LITE_RUNTIME; + +// The type of speed call contact (favorites). Applies to initiation type +// SPEED_DIAL only. +message SpeedDialContactType { + enum Type { + UNDEFINED = 0; + PINNED_CONTACT = 1; + STARRED_CONTACT = 2; + FREQUENT_CONTACT = 3; + } +} diff --git a/java/com/android/dialer/calllog/CallLogComponent.java b/java/com/android/dialer/calllog/CallLogComponent.java index 5cdd2b4d0..c7db2a1b8 100644 --- a/java/com/android/dialer/calllog/CallLogComponent.java +++ b/java/com/android/dialer/calllog/CallLogComponent.java @@ -25,6 +25,8 @@ public abstract class CallLogComponent { public abstract CallLogFramework callLogFramework(); + public abstract RefreshAnnotatedCallLogWorker getRefreshAnnotatedCallLogWorker(); + public static CallLogComponent get(Context context) { return ((HasComponent) ((HasRootComponent) context.getApplicationContext()).component()) .callLogComponent(); diff --git a/java/com/android/dialer/calllog/CallLogFramework.java b/java/com/android/dialer/calllog/CallLogFramework.java index 508413b14..55ef15b47 100644 --- a/java/com/android/dialer/calllog/CallLogFramework.java +++ b/java/com/android/dialer/calllog/CallLogFramework.java @@ -22,6 +22,7 @@ import android.preference.PreferenceManager; import android.support.annotation.MainThread; import android.support.annotation.Nullable; import com.android.dialer.calllog.datasources.CallLogDataSource; +import com.android.dialer.calllog.datasources.DataSources; import com.android.dialer.common.Assert; import com.android.dialer.common.ConfigProviderBindings; import com.android.dialer.common.LogUtil; @@ -38,7 +39,6 @@ import javax.inject.Singleton; public final class CallLogFramework implements CallLogDataSource.ContentObserverCallbacks { static final String PREF_FORCE_REBUILD = "callLogFrameworkForceRebuild"; - static final String PREF_LAST_REBUILD_TIMESTAMP_MILLIS = "callLogFrameworkLastRebuild"; private final DataSources dataSources; @@ -58,6 +58,7 @@ public final class CallLogFramework implements CallLogDataSource.ContentObserver LogUtil.enterBlock("CallLogFramework.registerContentObservers"); if (!isNewCallLogEnabled(appContext)) { + LogUtil.i("CallLogFramework.registerContentObservers", "new call log not enabled"); return; } diff --git a/java/com/android/dialer/calllog/CallLogModule.java b/java/com/android/dialer/calllog/CallLogModule.java index d7473a75e..2f2f16d5b 100644 --- a/java/com/android/dialer/calllog/CallLogModule.java +++ b/java/com/android/dialer/calllog/CallLogModule.java @@ -17,11 +17,9 @@ package com.android.dialer.calllog; import com.android.dialer.calllog.datasources.CallLogDataSource; +import com.android.dialer.calllog.datasources.DataSources; import com.android.dialer.calllog.datasources.contacts.ContactsDataSource; import com.android.dialer.calllog.datasources.systemcalllog.SystemCallLogDataSource; -import com.android.dialer.common.concurrent.DefaultDialerExecutorFactory; -import com.android.dialer.common.concurrent.DialerExecutorFactory; -import dagger.Binds; import dagger.Module; import dagger.Provides; import java.util.Arrays; @@ -32,10 +30,6 @@ import java.util.List; @Module public abstract class CallLogModule { - @Binds - abstract DialerExecutorFactory bindDialerExecutorFactory( - DefaultDialerExecutorFactory defaultDialerExecutorFactory); - @Provides static DataSources provideCallLogDataSources( SystemCallLogDataSource systemCallLogDataSource, ContactsDataSource contactsDataSource) { diff --git a/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java b/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java index f9f0c9935..d25ec5e65 100644 --- a/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java +++ b/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java @@ -18,14 +18,16 @@ package com.android.dialer.calllog; import android.annotation.TargetApi; import android.content.Context; +import android.content.OperationApplicationException; import android.content.SharedPreferences; -import android.database.sqlite.SQLiteDatabase; import android.os.Build; +import android.os.RemoteException; import android.preference.PreferenceManager; import android.support.annotation.WorkerThread; -import com.android.dialer.calllog.database.AnnotatedCallLog; -import com.android.dialer.calllog.database.CallLogMutations; +import com.android.dialer.calllog.database.CallLogDatabaseComponent; import com.android.dialer.calllog.datasources.CallLogDataSource; +import com.android.dialer.calllog.datasources.CallLogMutations; +import com.android.dialer.calllog.datasources.DataSources; import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; import com.android.dialer.common.concurrent.DialerExecutor.Worker; @@ -34,75 +36,65 @@ import javax.inject.Inject; /** * Worker which brings the annotated call log up to date, if necessary. * - * <p>Accepts a boolean which indicates if the dirty check should be skipped, and returns true if - * the annotated call log was updated. + * <p>Accepts a boolean which indicates if the dirty check should be skipped. */ -public class RefreshAnnotatedCallLogWorker implements Worker<Boolean, Boolean> { +public class RefreshAnnotatedCallLogWorker implements Worker<Boolean, Void> { private final Context appContext; private final DataSources dataSources; @Inject - public RefreshAnnotatedCallLogWorker(Context appContext, DataSources dataSources) { + RefreshAnnotatedCallLogWorker(Context appContext, DataSources dataSources) { this.appContext = appContext; this.dataSources = dataSources; } @Override - public Boolean doInBackground(Boolean skipDirtyCheck) { - LogUtil.enterBlock("RefreshAnnotatedCallLogWorker.doInBackgroundFallible"); + public Void doInBackground(Boolean skipDirtyCheck) + throws RemoteException, OperationApplicationException { + LogUtil.enterBlock("RefreshAnnotatedCallLogWorker.doInBackground"); long startTime = System.currentTimeMillis(); - boolean annotatedCallLogUpdated = checkDirtyAndRebuildIfNecessary(appContext, skipDirtyCheck); + checkDirtyAndRebuildIfNecessary(appContext, skipDirtyCheck); LogUtil.i( - "RefreshAnnotatedCallLogWorker.doInBackgroundFallible", - "updated? %s, took %dms", - annotatedCallLogUpdated, + "RefreshAnnotatedCallLogWorker.doInBackground", + "took %dms", System.currentTimeMillis() - startTime); - return annotatedCallLogUpdated; + return null; } @WorkerThread - private boolean checkDirtyAndRebuildIfNecessary(Context appContext, boolean skipDirtyCheck) { + private void checkDirtyAndRebuildIfNecessary(Context appContext, boolean skipDirtyCheck) + throws RemoteException, OperationApplicationException { Assert.isWorkerThread(); long startTime = System.currentTimeMillis(); SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(appContext); - long lastRebuildTimeMillis = - sharedPreferences.getLong(CallLogFramework.PREF_LAST_REBUILD_TIMESTAMP_MILLIS, 0); - if (lastRebuildTimeMillis == 0) { - LogUtil.i( - "RefreshAnnotatedCallLogWorker.checkDirtyAndRebuildIfNecessary", - "annotated call log has never been built, marking it dirty"); - } + // Default to true. If the pref doesn't exist, the annotated call log hasn't been created and + // we just skip isDirty checks and force a rebuild. boolean forceRebuildPrefValue = - sharedPreferences.getBoolean(CallLogFramework.PREF_FORCE_REBUILD, false); + sharedPreferences.getBoolean(CallLogFramework.PREF_FORCE_REBUILD, true); if (forceRebuildPrefValue) { LogUtil.i( "RefreshAnnotatedCallLogWorker.checkDirtyAndRebuildIfNecessary", - "call log has been marked dirty"); + "annotated call log has been marked dirty or does not exist"); } - boolean isDirty = - lastRebuildTimeMillis == 0 - || skipDirtyCheck - || forceRebuildPrefValue - || isDirty(appContext); + boolean isDirty = skipDirtyCheck || forceRebuildPrefValue || isDirty(appContext); + LogUtil.i( "RefreshAnnotatedCallLogWorker.checkDirtyAndRebuildIfNecessary", "isDirty took: %dms", System.currentTimeMillis() - startTime); if (isDirty) { startTime = System.currentTimeMillis(); - rebuild(appContext, lastRebuildTimeMillis); + rebuild(appContext); LogUtil.i( "RefreshAnnotatedCallLogWorker.checkDirtyAndRebuildIfNecessary", "rebuild took: %dms", System.currentTimeMillis() - startTime); - return true; // Annotated call log was updated. } - return false; // Annotated call log was not updated. } @WorkerThread @@ -129,51 +121,48 @@ public class RefreshAnnotatedCallLogWorker implements Worker<Boolean, Boolean> { @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources @WorkerThread - private void rebuild(Context appContext, long lastRebuildTimeMillis) { + private void rebuild(Context appContext) throws RemoteException, OperationApplicationException { Assert.isWorkerThread(); - // TODO: Start a transaction? - try (SQLiteDatabase database = AnnotatedCallLog.getWritableDatabase(appContext)) { + CallLogMutations mutations = new CallLogMutations(); - CallLogMutations mutations = new CallLogMutations(); + // System call log data source must go first! + CallLogDataSource systemCallLogDataSource = dataSources.getSystemCallLogDataSource(); + String dataSourceName = getName(systemCallLogDataSource); + LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "filling %s", dataSourceName); + long startTime = System.currentTimeMillis(); + systemCallLogDataSource.fill(appContext, mutations); + LogUtil.i( + "RefreshAnnotatedCallLogWorker.rebuild", + "%s.fill took: %dms", + dataSourceName, + System.currentTimeMillis() - startTime); - // System call log data source must go first! - CallLogDataSource systemCallLogDataSource = dataSources.getSystemCallLogDataSource(); - String dataSourceName = getName(systemCallLogDataSource); + for (CallLogDataSource dataSource : dataSources.getDataSourcesExcludingSystemCallLog()) { + dataSourceName = getName(dataSource); LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "filling %s", dataSourceName); - long startTime = System.currentTimeMillis(); - systemCallLogDataSource.fill(appContext, database, lastRebuildTimeMillis, mutations); + startTime = System.currentTimeMillis(); + dataSource.fill(appContext, mutations); LogUtil.i( - "RefreshAnnotatedCallLogWorker.rebuild", + "CallLogFramework.rebuild", "%s.fill took: %dms", dataSourceName, System.currentTimeMillis() - startTime); - - for (CallLogDataSource dataSource : dataSources.getDataSourcesExcludingSystemCallLog()) { - dataSourceName = getName(dataSource); - LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "filling %s", dataSourceName); - startTime = System.currentTimeMillis(); - dataSource.fill(appContext, database, lastRebuildTimeMillis, mutations); - LogUtil.i( - "CallLogFramework.rebuild", - "%s.fill took: %dms", - dataSourceName, - System.currentTimeMillis() - startTime); - } - LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "applying mutations to database"); - startTime = System.currentTimeMillis(); - mutations.applyToDatabase(database); - LogUtil.i( - "RefreshAnnotatedCallLogWorker.rebuild", - "applyToDatabase took: %dms", - System.currentTimeMillis() - startTime); } + LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "applying mutations to database"); + startTime = System.currentTimeMillis(); + CallLogDatabaseComponent.get(appContext) + .mutationApplier() + .applyToDatabase(mutations, appContext); + LogUtil.i( + "RefreshAnnotatedCallLogWorker.rebuild", + "applyToDatabase took: %dms", + System.currentTimeMillis() - startTime); SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(appContext); sharedPreferences .edit() .putBoolean(CallLogFramework.PREF_FORCE_REBUILD, false) - .putLong(CallLogFramework.PREF_LAST_REBUILD_TIMESTAMP_MILLIS, System.currentTimeMillis()) .commit(); } diff --git a/java/com/android/dialer/calllog/database/AndroidManifest.xml b/java/com/android/dialer/calllog/database/AndroidManifest.xml new file mode 100644 index 000000000..396a6d9a1 --- /dev/null +++ b/java/com/android/dialer/calllog/database/AndroidManifest.xml @@ -0,0 +1,28 @@ +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.android.dialer.calllog.database"> + + <application> + + <provider + android:authorities="com.android.dialer.annotatedcalllog" + android:exported="false" + android:multiprocess="false" + android:name=".AnnotatedCallLogContentProvider"/> + + </application> +</manifest> diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLog.java b/java/com/android/dialer/calllog/database/AnnotatedCallLog.java deleted file mode 100644 index 7dca44a60..000000000 --- a/java/com/android/dialer/calllog/database/AnnotatedCallLog.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.dialer.calllog.database; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.support.annotation.WorkerThread; -import com.android.dialer.common.Assert; - -/** Static methods and constants for interacting with the annotated call log table. */ -public final class AnnotatedCallLog { - - private static final String DATABASE_NAME = "annotated_call_log.db"; - - public static final String TABLE_NAME = "AnnotatedCallLog"; - - /** Column names for the annotated call log table. */ - public static final class Columns { - public static final String ID = "_id"; - public static final String TIMESTAMP = "timestamp"; - public static final String CONTACT_NAME = "contact_name"; - } - - private AnnotatedCallLog() {} - - @WorkerThread - public static SQLiteDatabase getWritableDatabase(Context appContext) { - Assert.isWorkerThread(); - - return new AnnotatedCallLogDatabaseHelper(appContext, DATABASE_NAME).getWritableDatabase(); - } - - @WorkerThread - public static SQLiteDatabase getReadableDatabase(Context appContext) { - Assert.isWorkerThread(); - - return new AnnotatedCallLogDatabaseHelper(appContext, DATABASE_NAME).getReadableDatabase(); - } -} diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java b/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java new file mode 100644 index 000000000..a9c0d36b0 --- /dev/null +++ b/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java @@ -0,0 +1,310 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.dialer.calllog.database; + +import android.annotation.TargetApi; +import android.content.ContentProvider; +import android.content.ContentProviderOperation; +import android.content.ContentProviderResult; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.OperationApplicationException; +import android.content.UriMatcher; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteQueryBuilder; +import android.net.Uri; +import android.os.Build; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract; +import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog; +import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.CoalescedAnnotatedCallLog; +import com.android.dialer.common.Assert; +import com.android.dialer.common.LogUtil; +import java.util.ArrayList; + +/** {@link ContentProvider} for the annotated call log. */ +public class AnnotatedCallLogContentProvider extends ContentProvider { + + private static final int ANNOTATED_CALL_LOG_TABLE_CODE = 1; + private static final int ANNOTATED_CALL_LOG_TABLE_ID_CODE = 2; + private static final int COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE = 3; + + private static final UriMatcher uriMatcher = new UriMatcher(UriMatcher.NO_MATCH); + + static { + uriMatcher.addURI( + AnnotatedCallLogContract.AUTHORITY, AnnotatedCallLog.TABLE, ANNOTATED_CALL_LOG_TABLE_CODE); + uriMatcher.addURI( + AnnotatedCallLogContract.AUTHORITY, + AnnotatedCallLog.TABLE + "/#", + ANNOTATED_CALL_LOG_TABLE_ID_CODE); + uriMatcher.addURI( + AnnotatedCallLogContract.AUTHORITY, + CoalescedAnnotatedCallLog.TABLE, + COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE); + } + + private AnnotatedCallLogDatabaseHelper databaseHelper; + private Coalescer coalescer; + + private final ThreadLocal<Boolean> applyingBatch = new ThreadLocal<>(); + + /** Ensures that only a single notification is generated from {@link #applyBatch(ArrayList)}. */ + private boolean isApplyingBatch() { + return applyingBatch.get() != null && applyingBatch.get(); + } + + @Override + public boolean onCreate() { + databaseHelper = new AnnotatedCallLogDatabaseHelper(getContext()); + coalescer = CallLogDatabaseComponent.get(getContext()).coalescer(); + return true; + } + + @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources + @Nullable + @Override + public Cursor query( + @NonNull Uri uri, + @Nullable String[] projection, + @Nullable String selection, + @Nullable String[] selectionArgs, + @Nullable String sortOrder) { + SQLiteDatabase db = databaseHelper.getReadableDatabase(); + SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder(); + queryBuilder.setTables(AnnotatedCallLog.TABLE); + int match = uriMatcher.match(uri); + switch (match) { + case ANNOTATED_CALL_LOG_TABLE_ID_CODE: + queryBuilder.appendWhere(AnnotatedCallLog._ID + "=" + ContentUris.parseId(uri)); + // fall through + case ANNOTATED_CALL_LOG_TABLE_CODE: + Cursor cursor = + queryBuilder.query(db, projection, selection, selectionArgs, null, null, sortOrder); + if (cursor != null) { + cursor.setNotificationUri( + getContext().getContentResolver(), AnnotatedCallLog.CONTENT_URI); + } else { + LogUtil.w("AnnotatedCallLogContentProvider.query", "cursor was null"); + } + return cursor; + case COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE: + Assert.checkArgument(projection == null, "projection not supported for coalesced call log"); + Assert.checkArgument(selection == null, "selection not supported for coalesced call log"); + Assert.checkArgument( + selectionArgs == null, "selection args not supported for coalesced call log"); + Assert.checkArgument(sortOrder == null, "sort order not supported for coalesced call log"); + try (Cursor allAnnotatedCallLogRows = + queryBuilder.query( + db, null, null, null, null, null, AnnotatedCallLog.TIMESTAMP + " DESC")) { + Cursor coalescedRows = coalescer.coalesce(allAnnotatedCallLogRows); + coalescedRows.setNotificationUri( + getContext().getContentResolver(), CoalescedAnnotatedCallLog.CONTENT_URI); + return coalescedRows; + } + default: + throw new IllegalArgumentException("Unknown uri: " + uri); + } + } + + @Nullable + @Override + public String getType(@NonNull Uri uri) { + return AnnotatedCallLog.CONTENT_ITEM_TYPE; + } + + @Nullable + @Override + public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) { + // Javadoc states values is not nullable, even though it is annotated as such (b/38123194)! + Assert.checkArgument(values != null); + + SQLiteDatabase database = databaseHelper.getWritableDatabase(); + int match = uriMatcher.match(uri); + switch (match) { + case ANNOTATED_CALL_LOG_TABLE_CODE: + Assert.checkArgument( + values.get(AnnotatedCallLog._ID) != null, "You must specify an _ID when inserting"); + break; + case ANNOTATED_CALL_LOG_TABLE_ID_CODE: + Long idFromUri = ContentUris.parseId(uri); + Long idFromValues = values.getAsLong(AnnotatedCallLog._ID); + Assert.checkArgument( + idFromValues == null || idFromValues.equals(idFromUri), + "_ID from values %d does not match ID from URI: %s", + idFromValues, + uri); + if (idFromValues == null) { + values.put(AnnotatedCallLog._ID, idFromUri); + } + break; + case COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE: + throw new UnsupportedOperationException("coalesced call log does not support inserting"); + default: + throw new IllegalArgumentException("Unknown uri: " + uri); + } + long id = database.insert(AnnotatedCallLog.TABLE, null, values); + if (id < 0) { + LogUtil.w( + "AnnotatedCallLogContentProvider.insert", + "error inserting row with id: %d", + values.get(AnnotatedCallLog._ID)); + return null; + } + Uri insertedUri = ContentUris.withAppendedId(AnnotatedCallLog.CONTENT_URI, id); + if (!isApplyingBatch()) { + notifyChange(insertedUri); + } + return insertedUri; + } + + @Override + public int delete( + @NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) { + SQLiteDatabase database = databaseHelper.getWritableDatabase(); + final int match = uriMatcher.match(uri); + switch (match) { + case ANNOTATED_CALL_LOG_TABLE_CODE: + break; + case ANNOTATED_CALL_LOG_TABLE_ID_CODE: + Assert.checkArgument(selection == null, "Do not specify selection when deleting by ID"); + Assert.checkArgument( + selectionArgs == null, "Do not specify selection args when deleting by ID"); + long id = ContentUris.parseId(uri); + Assert.checkArgument(id != -1, "error parsing id from uri %s", uri); + selection = getSelectionWithId(id); + break; + case COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE: + throw new UnsupportedOperationException("coalesced call log does not support deleting"); + default: + throw new IllegalArgumentException("Unknown uri: " + uri); + } + int rows = database.delete(AnnotatedCallLog.TABLE, selection, selectionArgs); + if (rows > 0) { + if (!isApplyingBatch()) { + notifyChange(uri); + } + } else { + LogUtil.w("AnnotatedCallLogContentProvider.delete", "no rows deleted"); + } + return rows; + } + + @Override + public int update( + @NonNull Uri uri, + @Nullable ContentValues values, + @Nullable String selection, + @Nullable String[] selectionArgs) { + // Javadoc states values is not nullable, even though it is annotated as such (b/38123194)! + Assert.checkArgument(values != null); + + SQLiteDatabase database = databaseHelper.getWritableDatabase(); + int match = uriMatcher.match(uri); + switch (match) { + case ANNOTATED_CALL_LOG_TABLE_CODE: + break; + case ANNOTATED_CALL_LOG_TABLE_ID_CODE: + Assert.checkArgument( + !values.containsKey(AnnotatedCallLog._ID), "Do not specify _ID when updating by ID"); + Assert.checkArgument(selection == null, "Do not specify selection when updating by ID"); + Assert.checkArgument( + selectionArgs == null, "Do not specify selection args when updating by ID"); + selection = getSelectionWithId(ContentUris.parseId(uri)); + break; + case COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE: + throw new UnsupportedOperationException("coalesced call log does not support updating"); + default: + throw new IllegalArgumentException("Unknown uri: " + uri); + } + int rows = database.update(AnnotatedCallLog.TABLE, values, selection, selectionArgs); + if (rows > 0) { + if (!isApplyingBatch()) { + notifyChange(uri); + } + } else { + LogUtil.w("AnnotatedCallLogContentProvider.update", "no rows updated"); + } + return rows; + } + + /** + * {@inheritDoc} + * + * <p>Note: When applyBatch is used with the AnnotatedCallLog, only a single notification for the + * content URI is generated, not individual notifications for each affected URI. + */ + @NonNull + @Override + public ContentProviderResult[] applyBatch(@NonNull ArrayList<ContentProviderOperation> operations) + throws OperationApplicationException { + ContentProviderResult[] results = new ContentProviderResult[operations.size()]; + if (operations.isEmpty()) { + return results; + } + + SQLiteDatabase database = databaseHelper.getWritableDatabase(); + try { + applyingBatch.set(true); + database.beginTransaction(); + for (int i = 0; i < operations.size(); i++) { + ContentProviderOperation operation = operations.get(i); + int match = uriMatcher.match(operation.getUri()); + switch (match) { + case ANNOTATED_CALL_LOG_TABLE_CODE: + case ANNOTATED_CALL_LOG_TABLE_ID_CODE: + // These are allowed values, continue. + break; + case COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE: + throw new UnsupportedOperationException( + "coalesced call log does not support applyBatch"); + default: + throw new IllegalArgumentException("Unknown uri: " + operation.getUri()); + } + ContentProviderResult result = operation.apply(this, results, i); + if (operations.get(i).isInsert()) { + if (result.uri == null) { + throw new OperationApplicationException("error inserting row"); + } + } else if (result.count == 0) { + throw new OperationApplicationException("error updating or deleting rows"); + } + results[i] = result; + } + database.setTransactionSuccessful(); + } finally { + applyingBatch.set(false); + database.endTransaction(); + } + notifyChange(AnnotatedCallLog.CONTENT_URI); + return results; + } + + private String getSelectionWithId(long id) { + return AnnotatedCallLog._ID + "=" + id; + } + + private void notifyChange(Uri uri) { + getContext().getContentResolver().notifyChange(uri, null); + // Any time the annotated call log changes, we need to also notify observers of the + // CoalescedAnnotatedCallLog, since that is just a massaged in-memory view of the real annotated + // call log table. + getContext().getContentResolver().notifyChange(CoalescedAnnotatedCallLog.CONTENT_URI, null); + } +} diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java index 7b28e5505..3cca639ff 100644 --- a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java +++ b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java @@ -16,28 +16,25 @@ package com.android.dialer.calllog.database; -import static com.android.dialer.calllog.database.AnnotatedCallLog.Columns.CONTACT_NAME; -import static com.android.dialer.calllog.database.AnnotatedCallLog.Columns.ID; -import static com.android.dialer.calllog.database.AnnotatedCallLog.Columns.TIMESTAMP; - import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; +import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog; import com.android.dialer.common.LogUtil; /** {@link SQLiteOpenHelper} for the AnnotatedCallLog database. */ class AnnotatedCallLogDatabaseHelper extends SQLiteOpenHelper { - AnnotatedCallLogDatabaseHelper(Context appContext, String databaseName) { - super(appContext, databaseName, null, 1); + AnnotatedCallLogDatabaseHelper(Context appContext) { + super(appContext, "annotated_call_log.db", null, 1); } private static final String CREATE_SQL = new StringBuilder() - .append("create table if not exists " + AnnotatedCallLog.TABLE_NAME + " (") - .append(ID + " integer primary key, ") - .append(TIMESTAMP + " integer, ") - .append(CONTACT_NAME + " string") + .append("create table if not exists " + AnnotatedCallLog.TABLE + " (") + .append(AnnotatedCallLog._ID + " integer primary key, ") + .append(AnnotatedCallLog.TIMESTAMP + " integer, ") + .append(AnnotatedCallLog.CONTACT_NAME + " string") .append(");") .toString(); diff --git a/java/com/android/dialer/calllog/database/CallLogDatabaseComponent.java b/java/com/android/dialer/calllog/database/CallLogDatabaseComponent.java new file mode 100644 index 000000000..ede46911c --- /dev/null +++ b/java/com/android/dialer/calllog/database/CallLogDatabaseComponent.java @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.dialer.calllog.database; + +import android.content.Context; +import com.android.dialer.inject.HasRootComponent; +import dagger.Subcomponent; + +/** Dagger component for database package. */ +@Subcomponent +public abstract class CallLogDatabaseComponent { + + public abstract Coalescer coalescer(); + + public abstract MutationApplier mutationApplier(); + + public static CallLogDatabaseComponent get(Context context) { + return ((CallLogDatabaseComponent.HasComponent) + ((HasRootComponent) context.getApplicationContext()).component()) + .callLogDatabaseComponent(); + } + + /** Used to refer to the root application component. */ + public interface HasComponent { + CallLogDatabaseComponent callLogDatabaseComponent(); + } +} diff --git a/java/com/android/dialer/calllog/database/CallLogMutations.java b/java/com/android/dialer/calllog/database/CallLogMutations.java deleted file mode 100644 index ec020c6af..000000000 --- a/java/com/android/dialer/calllog/database/CallLogMutations.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.dialer.calllog.database; - -import android.content.ContentValues; -import android.database.sqlite.SQLiteDatabase; -import android.support.annotation.WorkerThread; -import android.util.ArrayMap; -import android.util.ArraySet; -import com.android.dialer.common.Assert; - -/** A collection of mutations to the annotated call log. */ -public final class CallLogMutations { - - private final ArrayMap<Integer, ContentValues> inserts = new ArrayMap<>(); - private final ArrayMap<Integer, ContentValues> updates = new ArrayMap<>(); - private final ArraySet<Integer> deletes = new ArraySet<>(); - - /** @param contentValues an entire row not including the ID */ - public void insert(int id, ContentValues contentValues) { - inserts.put(id, contentValues); - } - - /** @param contentValues the specific columns to update, not including the ID. */ - public void update(int id, ContentValues contentValues) { - // TODO: Consider merging automatically. - updates.put(id, contentValues); - } - - public void delete(int id) { - deletes.add(id); - } - - public boolean isEmpty() { - return inserts.isEmpty() && updates.isEmpty() && deletes.isEmpty(); - } - - @WorkerThread - public void applyToDatabase(SQLiteDatabase writableDatabase) { - Assert.isWorkerThread(); - - // TODO: Implementation. - } -} diff --git a/java/com/android/dialer/calllog/database/Coalescer.java b/java/com/android/dialer/calllog/database/Coalescer.java new file mode 100644 index 000000000..e3dfb7ece --- /dev/null +++ b/java/com/android/dialer/calllog/database/Coalescer.java @@ -0,0 +1,142 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.dialer.calllog.database; + +import android.content.ContentValues; +import android.database.Cursor; +import android.database.DatabaseUtils; +import android.database.MatrixCursor; +import android.support.annotation.NonNull; +import android.support.annotation.WorkerThread; +import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog; +import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.CoalescedAnnotatedCallLog; +import com.android.dialer.calllog.datasources.CallLogDataSource; +import com.android.dialer.calllog.datasources.DataSources; +import com.android.dialer.common.Assert; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import javax.inject.Inject; + +/** + * Coalesces call log rows by combining some adjacent rows. + * + * <p>Applies the business which logic which determines which adjacent rows should be coalasced, and + * then delegates to each data source to determine how individual columns should be aggregated. + */ +public class Coalescer { + + private final DataSources dataSources; + + @Inject + Coalescer(DataSources dataSources) { + this.dataSources = dataSources; + } + + /** + * Reads the entire {@link AnnotatedCallLog} database into memory from the provided {@code + * allAnnotatedCallLog} parameter and then builds and returns a new {@link MatrixCursor} which is + * the result of combining adjacent rows which should be collapsed for display purposes. + * + * @param allAnnotatedCallLogRowsSortedByTimestampDesc all {@link AnnotatedCallLog} rows, sorted + * by timestamp descending + * @return a new {@link MatrixCursor} containing the {@link CoalescedAnnotatedCallLog} rows to + * display + */ + @WorkerThread + @NonNull + Cursor coalesce(@NonNull Cursor allAnnotatedCallLogRowsSortedByTimestampDesc) { + Assert.isWorkerThread(); + + // Note: This method relies on rowsShouldBeCombined to determine which rows should be combined, + // but delegates to data sources to actually aggregate column values. + + MatrixCursor allCoalescedRowsMatrixCursor = + new MatrixCursor( + CoalescedAnnotatedCallLog.ALL_COLUMNS, + Assert.isNotNull(allAnnotatedCallLogRowsSortedByTimestampDesc).getCount()); + + if (allAnnotatedCallLogRowsSortedByTimestampDesc.moveToFirst()) { + int coalescedRowId = 0; + + List<ContentValues> currentRowGroup = new ArrayList<>(); + + do { + ContentValues currentRow = new ContentValues(); + DatabaseUtils.cursorRowToContentValues( + allAnnotatedCallLogRowsSortedByTimestampDesc, currentRow); + + if (currentRowGroup.isEmpty()) { + currentRowGroup.add(currentRow); + continue; + } + + ContentValues previousRow = currentRowGroup.get(currentRowGroup.size() - 1); + + if (!rowsShouldBeCombined(previousRow, currentRow)) { + ContentValues coalescedRow = coalesceRowsForAllDataSources(currentRowGroup); + coalescedRow.put(CoalescedAnnotatedCallLog.NUMBER_CALLS, currentRowGroup.size()); + addContentValuesToMatrixCursor( + coalescedRow, allCoalescedRowsMatrixCursor, coalescedRowId++); + currentRowGroup.clear(); + } + currentRowGroup.add(currentRow); + } while (allAnnotatedCallLogRowsSortedByTimestampDesc.moveToNext()); + + // Deal with leftover rows. + ContentValues coalescedRow = coalesceRowsForAllDataSources(currentRowGroup); + coalescedRow.put(CoalescedAnnotatedCallLog.NUMBER_CALLS, currentRowGroup.size()); + addContentValuesToMatrixCursor(coalescedRow, allCoalescedRowsMatrixCursor, coalescedRowId); + } + return allCoalescedRowsMatrixCursor; + } + + /** + * @param row1 a row from {@link AnnotatedCallLog} + * @param row2 a row from {@link AnnotatedCallLog} + */ + private static boolean rowsShouldBeCombined(ContentValues row1, ContentValues row2) { + // TODO: Real implementation. + return row1.get(AnnotatedCallLog.TIMESTAMP).equals(row2.get(AnnotatedCallLog.TIMESTAMP)); + } + + /** + * Delegates to data sources to aggregate individual columns to create a new coalesced row. + * + * @param individualRows {@link AnnotatedCallLog} rows sorted by timestamp descending + * @return a {@link CoalescedAnnotatedCallLog} row + */ + private ContentValues coalesceRowsForAllDataSources(List<ContentValues> individualRows) { + ContentValues coalescedValues = new ContentValues(); + for (CallLogDataSource dataSource : dataSources.getDataSourcesIncludingSystemCallLog()) { + coalescedValues.putAll(dataSource.coalesce(individualRows)); + } + return coalescedValues; + } + + /** + * @param contentValues a {@link CoalescedAnnotatedCallLog} row + * @param matrixCursor represents {@link CoalescedAnnotatedCallLog} + */ + private static void addContentValuesToMatrixCursor( + ContentValues contentValues, MatrixCursor matrixCursor, int rowId) { + MatrixCursor.RowBuilder rowBuilder = matrixCursor.newRow(); + rowBuilder.add(CoalescedAnnotatedCallLog._ID, rowId); + for (Map.Entry<String, Object> entry : contentValues.valueSet()) { + rowBuilder.add(entry.getKey(), entry.getValue()); + } + } +} diff --git a/java/com/android/dialer/calllog/database/MutationApplier.java b/java/com/android/dialer/calllog/database/MutationApplier.java new file mode 100644 index 000000000..21c8a507d --- /dev/null +++ b/java/com/android/dialer/calllog/database/MutationApplier.java @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.dialer.calllog.database; + +import android.content.ContentProviderOperation; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.Context; +import android.content.OperationApplicationException; +import android.os.RemoteException; +import android.support.annotation.WorkerThread; +import android.text.TextUtils; +import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract; +import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog; +import com.android.dialer.calllog.datasources.CallLogMutations; +import com.android.dialer.common.Assert; +import com.android.dialer.common.LogUtil; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Map.Entry; +import javax.inject.Inject; + +/** Applies {@link CallLogMutations} to the annotated call log. */ +public class MutationApplier { + + @Inject + MutationApplier() {} + + /** Applies the provided {@link CallLogMutations} to the annotated call log. */ + @WorkerThread + public void applyToDatabase(CallLogMutations mutations, Context appContext) + throws RemoteException, OperationApplicationException { + Assert.isWorkerThread(); + + if (mutations.isEmpty()) { + return; + } + + ArrayList<ContentProviderOperation> operations = new ArrayList<>(); + + if (!mutations.getInserts().isEmpty()) { + LogUtil.i( + "CallLogMutations.applyToDatabase", "inserting %d rows", mutations.getInserts().size()); + for (Entry<Long, ContentValues> entry : mutations.getInserts().entrySet()) { + long id = entry.getKey(); + ContentValues contentValues = entry.getValue(); + operations.add( + ContentProviderOperation.newInsert( + ContentUris.withAppendedId(AnnotatedCallLog.CONTENT_URI, id)) + .withValues(contentValues) + .build()); + } + } + + if (!mutations.getUpdates().isEmpty()) { + LogUtil.i( + "CallLogMutations.applyToDatabase", "updating %d rows", mutations.getUpdates().size()); + for (Entry<Long, ContentValues> entry : mutations.getUpdates().entrySet()) { + long id = entry.getKey(); + ContentValues contentValues = entry.getValue(); + operations.add( + ContentProviderOperation.newUpdate( + ContentUris.withAppendedId(AnnotatedCallLog.CONTENT_URI, id)) + .withValues(contentValues) + .build()); + } + } + + if (!mutations.getDeletes().isEmpty()) { + LogUtil.i( + "CallLogMutations.applyToDatabase", "deleting %d rows", mutations.getDeletes().size()); + String[] questionMarks = new String[mutations.getDeletes().size()]; + Arrays.fill(questionMarks, "?"); + + String whereClause = + (AnnotatedCallLog._ID + " in (") + TextUtils.join(",", questionMarks) + ")"; + + String[] whereArgs = new String[mutations.getDeletes().size()]; + int i = 0; + for (long id : mutations.getDeletes()) { + whereArgs[i++] = String.valueOf(id); + } + + operations.add( + ContentProviderOperation.newDelete(AnnotatedCallLog.CONTENT_URI) + .withSelection(whereClause, whereArgs) + .build()); + } + + appContext.getContentResolver().applyBatch(AnnotatedCallLogContract.AUTHORITY, operations); + } +} diff --git a/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java b/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java new file mode 100644 index 000000000..8b3b0a852 --- /dev/null +++ b/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java @@ -0,0 +1,114 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.dialer.calllog.database.contract; + +import android.net.Uri; +import android.provider.BaseColumns; +import com.android.dialer.constants.Constants; +import java.util.Arrays; + +/** Contract for the AnnotatedCallLog content provider. */ +public class AnnotatedCallLogContract { + public static final String AUTHORITY = Constants.get().getAnnotatedCallLogProviderAuthority(); + + public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY); + + /** + * Columns shared by {@link AnnotatedCallLog} and {@link CoalescedAnnotatedCallLog}. + * + * <p>When adding columns be sure to update {@link #ALL_COMMON_COLUMNS}. + */ + interface CommonColumns extends BaseColumns { + + /** + * Timestamp of the entry, in milliseconds. + * + * <p>Type: INTEGER (long) + */ + String TIMESTAMP = "timestamp"; + + /** + * Name to display for the entry. + * + * <p>Type: TEXT + */ + String CONTACT_NAME = "contact_name"; + + String[] ALL_COMMON_COLUMNS = new String[] {_ID, TIMESTAMP, CONTACT_NAME}; + } + + /** + * AnnotatedCallLog table. + * + * <p>This contains all of the non-coalesced call log entries. + */ + public static final class AnnotatedCallLog implements CommonColumns { + + public static final String TABLE = "AnnotatedCallLog"; + + /** The content URI for this table. */ + public static final Uri CONTENT_URI = + Uri.withAppendedPath(AnnotatedCallLogContract.CONTENT_URI, TABLE); + + /** The MIME type of a {@link android.content.ContentProvider#getType(Uri)} single entry. */ + public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/annotated_call_log"; + } + + /** + * Coalesced view of the AnnotatedCallLog table. + * + * <p>This is an in-memory view of the {@link AnnotatedCallLog} with some adjacent entries + * collapsed. + * + * <p>When adding columns be sure to update {@link #COLUMNS_ONLY_IN_COALESCED_CALL_LOG}. + */ + public static final class CoalescedAnnotatedCallLog implements CommonColumns { + + public static final String TABLE = "CoalescedAnnotatedCallLog"; + + /** The content URI for this table. */ + public static final Uri CONTENT_URI = + Uri.withAppendedPath(AnnotatedCallLogContract.CONTENT_URI, TABLE); + + /** The MIME type of a {@link android.content.ContentProvider#getType(Uri)} single entry. */ + public static final String CONTENT_ITEM_TYPE = + "vnd.android.cursor.item/coalesced_annotated_call_log"; + + /** + * Number of AnnotatedCallLog rows represented by this CoalescedAnnotatedCallLog row. + * + * <p>Type: INTEGER + */ + public static final String NUMBER_CALLS = "number_calls"; + + /** + * Columns that are only in the {@link CoalescedAnnotatedCallLog} but not the {@link + * AnnotatedCallLog}. + */ + private static final String[] COLUMNS_ONLY_IN_COALESCED_CALL_LOG = new String[] {NUMBER_CALLS}; + + /** All columns in the {@link CoalescedAnnotatedCallLog}. */ + public static final String[] ALL_COLUMNS = + concat(ALL_COMMON_COLUMNS, COLUMNS_ONLY_IN_COALESCED_CALL_LOG); + } + + private static String[] concat(String[] first, String[] second) { + String[] result = Arrays.copyOf(first, first.length + second.length); + System.arraycopy(second, 0, result, first.length, second.length); + return result; + } +} diff --git a/java/com/android/dialer/calllog/datasources/CallLogDataSource.java b/java/com/android/dialer/calllog/datasources/CallLogDataSource.java index 13d0b842d..3fff3ba53 100644 --- a/java/com/android/dialer/calllog/datasources/CallLogDataSource.java +++ b/java/com/android/dialer/calllog/datasources/CallLogDataSource.java @@ -16,13 +16,39 @@ package com.android.dialer.calllog.datasources; +import android.content.ContentValues; import android.content.Context; -import android.database.sqlite.SQLiteDatabase; import android.support.annotation.MainThread; import android.support.annotation.WorkerThread; -import com.android.dialer.calllog.database.CallLogMutations; +import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract; +import java.util.List; -/** A source of data for one or more columns in the annotated call log. */ +/** + * A source of data for one or more columns in the annotated call log. + * + * <p>Data sources have three lifecycle operations, which are always called on the same thread and + * in the same order for a particular "checkDirtyAndRebuild" cycle. However, not all operations are + * always invoked. + * + * <ol> + * <li>{@link #isDirty(Context)}: Invoked only if the framework doesn't yet know if a rebuild is + * necessary. + * <li>{@link #fill(Context, CallLogMutations)}: Invoked only if the framework determined a + * rebuild is necessary. + * <li>{@link #onSuccessfulFill(Context)}: Invoked if and only if fill was previously called and + * the mutations provided by the previous fill operation succeeded in being applied. + * </ol> + * + * <p>Because {@link #isDirty(Context)} is not always invoked, {@link #fill(Context, + * CallLogMutations)} shouldn't rely on any state saved during {@link #isDirty(Context)}. It + * <em>is</em> safe to assume that {@link #onSuccessfulFill(Context)} refers to the previous fill + * operation. + * + * <p>The same data source objects may be reused across multiple checkDirtyAndRebuild cycles, so + * implementors should take care to clear any internal state at the start of a new cycle. + * + * <p>{@link #coalesce(List)} may be called from any worker thread at any time. + */ public interface CallLogDataSource { /** @@ -35,6 +61,8 @@ public interface CallLogDataSource { * <p>Most implementations of this method will rely on some sort of last modified timestamp. If it * is impossible for a data source to be modified without the dialer application being notified, * this method may immediately return false. + * + * @see CallLogDataSource class doc for complete lifecyle information */ @WorkerThread boolean isDirty(Context appContext); @@ -43,16 +71,39 @@ public interface CallLogDataSource { * Computes the set of mutations necessary to update the annotated call log with respect to this * data source. * + * @see CallLogDataSource class doc for complete lifecyle information * @param mutations the set of mutations which this method should contribute to. Note that it may * contain inserts from the system call log, and these inserts should be modified by each data * source. */ @WorkerThread - void fill( - Context appContext, - SQLiteDatabase readableDatabase, - long lastRebuildTimeMillis, - CallLogMutations mutations); + void fill(Context appContext, CallLogMutations mutations); + + /** + * Called after database mutations have been applied to all data sources. This is useful for + * saving state such as the timestamp of the last row processed in an underlying database. Note + * that all mutations across all data sources are applied in a single transaction. + * + * @see CallLogDataSource class doc for complete lifecyle information + */ + @WorkerThread + void onSuccessfulFill(Context appContext); + + /** + * Combines raw annotated call log rows into a single coalesced row. + * + * <p>May be called by any worker thread at any time so implementations should take care to be + * threadsafe. (Ideally no state should be required to implement this.) + * + * @param individualRowsSortedByTimestampDesc group of fully populated rows from {@link + * AnnotatedCallLogContract.AnnotatedCallLog} which need to be combined for display purposes. + * This method should not modify this list. + * @return a partial {@link AnnotatedCallLogContract.CoalescedAnnotatedCallLog} row containing + * only columns which this data source is responsible for, which is the result of aggregating + * {@code individualRowsSortedByTimestampDesc}. + */ + @WorkerThread + ContentValues coalesce(List<ContentValues> individualRowsSortedByTimestampDesc); @MainThread void registerContentObservers( diff --git a/java/com/android/dialer/calllog/datasources/CallLogMutations.java b/java/com/android/dialer/calllog/datasources/CallLogMutations.java new file mode 100644 index 000000000..148601d68 --- /dev/null +++ b/java/com/android/dialer/calllog/datasources/CallLogMutations.java @@ -0,0 +1,110 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.dialer.calllog.datasources; + +import android.content.ContentValues; +import android.util.ArrayMap; +import android.util.ArraySet; +import com.android.dialer.common.Assert; + +/** A collection of mutations to the annotated call log. */ +public final class CallLogMutations { + + private final ArrayMap<Long, ContentValues> inserts = new ArrayMap<>(); + private final ArrayMap<Long, ContentValues> updates = new ArrayMap<>(); + private final ArraySet<Long> deletes = new ArraySet<>(); + + /** + * @param contentValues an entire row not including the ID + * @throws IllegalStateException if this {@link CallLogMutations} already contains an insert, + * update, or delete with the provided id + */ + public void insert(long id, ContentValues contentValues) { + Assert.checkArgument(!inserts.containsKey(id), "Can't insert row already scheduled for insert"); + Assert.checkArgument(!updates.containsKey(id), "Can't insert row scheduled for update"); + Assert.checkArgument(!deletes.contains(id), "Can't insert row scheduled for delete"); + + inserts.put(id, contentValues); + } + + /** + * Stores a database update using the provided ID and content values. If this {@link + * CallLogMutations} object already contains an update with the specified ID, the existing content + * values are merged with the provided ones, with the provided ones overwriting the existing ones + * for values with the same key. + * + * @param contentValues the specific columns to update, not including the ID. + * @throws IllegalStateException if this {@link CallLogMutations} already contains an insert or + * delete with the provided id + */ + public void update(long id, ContentValues contentValues) { + Assert.checkArgument(!inserts.containsKey(id), "Can't update row scheduled for insert"); + Assert.checkArgument(!deletes.contains(id), "Can't delete row scheduled for delete"); + + ContentValues existingContentValues = updates.get(id); + if (existingContentValues != null) { + existingContentValues.putAll(contentValues); + } else { + updates.put(id, contentValues); + } + } + + /** + * @throws IllegalStateException if this {@link CallLogMutations} already contains an insert, + * update, or delete with the provided id + */ + public void delete(long id) { + Assert.checkArgument(!inserts.containsKey(id), "Can't delete row scheduled for insert"); + Assert.checkArgument(!updates.containsKey(id), "Can't delete row scheduled for update"); + Assert.checkArgument(!deletes.contains(id), "Can't delete row already scheduled for delete"); + + deletes.add(id); + } + + public boolean isEmpty() { + return inserts.isEmpty() && updates.isEmpty() && deletes.isEmpty(); + } + + /** + * Get the pending inserts. + * + * @return the pending inserts where the key is the annotated call log database ID and the values + * are values to be inserted (not including the ID) + */ + public ArrayMap<Long, ContentValues> getInserts() { + return inserts; + } + + /** + * Get the pending updates. + * + * @return the pending updates where the key is the annotated call log database ID and the values + * are values to be updated (not including the ID) + */ + public ArrayMap<Long, ContentValues> getUpdates() { + return updates; + } + + /** + * Get the pending deletes. + * + * @return the annotated call log database IDs corresponding to the rows to be deleted + */ + public ArraySet<Long> getDeletes() { + return deletes; + } +} diff --git a/java/com/android/dialer/calllog/DataSources.java b/java/com/android/dialer/calllog/datasources/DataSources.java index 21d190167..911ca3fa3 100644 --- a/java/com/android/dialer/calllog/DataSources.java +++ b/java/com/android/dialer/calllog/datasources/DataSources.java @@ -14,14 +14,13 @@ * limitations under the License */ -package com.android.dialer.calllog; +package com.android.dialer.calllog.datasources; -import com.android.dialer.calllog.datasources.CallLogDataSource; import com.android.dialer.calllog.datasources.systemcalllog.SystemCallLogDataSource; import java.util.List; /** Immutable lists of data sources used to populate the annotated call log. */ -interface DataSources { +public interface DataSources { SystemCallLogDataSource getSystemCallLogDataSource(); diff --git a/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java b/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java index 355940f6a..e9538daab 100644 --- a/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java +++ b/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java @@ -16,13 +16,16 @@ package com.android.dialer.calllog.datasources.contacts; +import android.content.ContentValues; import android.content.Context; -import android.database.sqlite.SQLiteDatabase; import android.support.annotation.MainThread; import android.support.annotation.WorkerThread; -import com.android.dialer.calllog.database.CallLogMutations; +import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog; import com.android.dialer.calllog.datasources.CallLogDataSource; +import com.android.dialer.calllog.datasources.CallLogMutations; +import com.android.dialer.calllog.datasources.util.RowCombiner; import com.android.dialer.common.Assert; +import java.util.List; import javax.inject.Inject; /** Responsible for maintaining the contacts related columns in the annotated call log. */ @@ -44,13 +47,24 @@ public final class ContactsDataSource implements CallLogDataSource { @Override public void fill( Context appContext, - SQLiteDatabase readableDatabase, - long lastRebuildTimeMillis, CallLogMutations mutations) { Assert.isWorkerThread(); // TODO: Implementation. } + @Override + public void onSuccessfulFill(Context appContext) { + // TODO: Implementation. + } + + @Override + public ContentValues coalesce(List<ContentValues> individualRowsSortedByTimestampDesc) { + // TODO: Implementation. + return new RowCombiner(individualRowsSortedByTimestampDesc) + .useSingleValueString(AnnotatedCallLog.CONTACT_NAME) + .combine(); + } + @MainThread @Override public void registerContentObservers( diff --git a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java index ea6663fbe..be2df6043 100644 --- a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java +++ b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java @@ -16,28 +16,49 @@ package com.android.dialer.calllog.datasources.systemcalllog; +import android.Manifest.permission; +import android.annotation.TargetApi; +import android.content.ContentValues; import android.content.Context; import android.database.ContentObserver; -import android.database.sqlite.SQLiteDatabase; +import android.database.Cursor; import android.net.Uri; +import android.os.Build; import android.os.Handler; +import android.preference.PreferenceManager; import android.provider.CallLog; +import android.provider.CallLog.Calls; import android.support.annotation.MainThread; +import android.support.annotation.Nullable; +import android.support.annotation.VisibleForTesting; import android.support.annotation.WorkerThread; -import com.android.dialer.calllog.database.CallLogMutations; +import android.text.TextUtils; +import android.util.ArraySet; +import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog; import com.android.dialer.calllog.datasources.CallLogDataSource; +import com.android.dialer.calllog.datasources.CallLogMutations; +import com.android.dialer.calllog.datasources.util.RowCombiner; import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; import com.android.dialer.common.concurrent.ThreadUtil; import com.android.dialer.util.PermissionsUtil; +import java.util.Arrays; +import java.util.List; +import java.util.Set; import javax.inject.Inject; /** * Responsible for defining the rows in the annotated call log and maintaining the columns in it * which are derived from the system call log. */ +@SuppressWarnings("MissingPermission") public class SystemCallLogDataSource implements CallLogDataSource { + @VisibleForTesting + static final String PREF_LAST_TIMESTAMP_PROCESSED = "systemCallLogLastTimestampProcessed"; + + @Nullable private Long lastTimestampProcessed; + @Inject public SystemCallLogDataSource() {} @@ -47,6 +68,8 @@ public class SystemCallLogDataSource implements CallLogDataSource { Context appContext, ContentObserverCallbacks contentObserverCallbacks) { Assert.isMainThread(); + LogUtil.enterBlock("SystemCallLogDataSource.registerContentObservers"); + if (!PermissionsUtil.hasCallLogReadPermissions(appContext)) { LogUtil.i("SystemCallLogDataSource.registerContentObservers", "no call log permissions"); return; @@ -77,17 +100,185 @@ public class SystemCallLogDataSource implements CallLogDataSource { @WorkerThread @Override - public void fill( - Context appContext, - SQLiteDatabase readableDatabase, - long lastRebuildTimeMillis, - CallLogMutations mutations) { + public void fill(Context appContext, CallLogMutations mutations) { Assert.isWorkerThread(); + lastTimestampProcessed = null; + + if (!PermissionsUtil.hasPermission(appContext, permission.READ_CALL_LOG)) { + LogUtil.i("SystemCallLogDataSource.fill", "no call log permissions"); + return; + } + // This data source should always run first so the mutations should always be empty. - Assert.checkState(mutations.isEmpty()); + Assert.checkArgument(mutations.isEmpty()); + + Set<Long> annotatedCallLogIds = getAnnotatedCallLogIds(appContext); + + LogUtil.i( + "SystemCallLogDataSource.fill", + "found %d existing annotated call log ids", + annotatedCallLogIds.size()); + + handleInsertsAndUpdates(appContext, mutations, annotatedCallLogIds); + handleDeletes(appContext, annotatedCallLogIds, mutations); + } + + @WorkerThread + @Override + public void onSuccessfulFill(Context appContext) { + // If a fill operation was a no-op, lastTimestampProcessed could still be null. + if (lastTimestampProcessed != null) { + PreferenceManager.getDefaultSharedPreferences(appContext) + .edit() + .putLong(PREF_LAST_TIMESTAMP_PROCESSED, lastTimestampProcessed) + .commit(); + } + } + + @Override + public ContentValues coalesce(List<ContentValues> individualRowsSortedByTimestampDesc) { + // TODO: Complete implementation. + return new RowCombiner(individualRowsSortedByTimestampDesc) + .useMostRecentLong(AnnotatedCallLog.TIMESTAMP) + .combine(); + } + + @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources + private void handleInsertsAndUpdates( + Context appContext, CallLogMutations mutations, Set<Long> existingAnnotatedCallLogIds) { + long previousTimestampProcessed = + PreferenceManager.getDefaultSharedPreferences(appContext) + .getLong(PREF_LAST_TIMESTAMP_PROCESSED, 0L); + + try (Cursor cursor = + appContext + .getContentResolver() + .query( + Calls.CONTENT_URI, // Excludes voicemail + new String[] {Calls._ID, Calls.DATE, Calls.LAST_MODIFIED}, + Calls.LAST_MODIFIED + " > ?", + new String[] {String.valueOf(previousTimestampProcessed)}, + Calls.LAST_MODIFIED + " DESC LIMIT 1000")) { + + if (cursor == null) { + LogUtil.e("SystemCallLogDataSource.handleInsertsAndUpdates", "null cursor"); + return; + } + + LogUtil.i( + "SystemCallLogDataSource.handleInsertsAndUpdates", + "found %d entries to insert/update", + cursor.getCount()); - // TODO: Implementation. + if (cursor.moveToFirst()) { + int idColumn = cursor.getColumnIndexOrThrow(Calls._ID); + int dateColumn = cursor.getColumnIndexOrThrow(Calls.DATE); + int lastModifiedColumn = cursor.getColumnIndexOrThrow(Calls.LAST_MODIFIED); + + // The cursor orders by LAST_MODIFIED DESC, so the first result is the most recent timestamp + // processed. + lastTimestampProcessed = cursor.getLong(lastModifiedColumn); + do { + long id = cursor.getLong(idColumn); + long date = cursor.getLong(dateColumn); + + ContentValues contentValues = new ContentValues(); + contentValues.put(AnnotatedCallLog.TIMESTAMP, date); + + if (existingAnnotatedCallLogIds.contains(id)) { + mutations.update(id, contentValues); + } else { + mutations.insert(id, contentValues); + } + } while (cursor.moveToNext()); + } // else no new results, do nothing. + } + } + + private static void handleDeletes( + Context appContext, Set<Long> existingAnnotatedCallLogIds, CallLogMutations mutations) { + Set<Long> systemCallLogIds = + getIdsFromSystemCallLogThatMatch(appContext, existingAnnotatedCallLogIds); + LogUtil.i( + "SystemCallLogDataSource.handleDeletes", + "found %d entries in system call log", + systemCallLogIds.size()); + Set<Long> idsInAnnotatedCallLogNoLongerInSystemCallLog = new ArraySet<>(); + idsInAnnotatedCallLogNoLongerInSystemCallLog.addAll(existingAnnotatedCallLogIds); + idsInAnnotatedCallLogNoLongerInSystemCallLog.removeAll(systemCallLogIds); + + LogUtil.i( + "SystemCallLogDataSource.handleDeletes", + "found %d call log entries to remove", + idsInAnnotatedCallLogNoLongerInSystemCallLog.size()); + + for (long id : idsInAnnotatedCallLogNoLongerInSystemCallLog) { + mutations.delete(id); + } + } + + @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources + private static Set<Long> getAnnotatedCallLogIds(Context appContext) { + ArraySet<Long> ids = new ArraySet<>(); + + try (Cursor cursor = + appContext + .getContentResolver() + .query( + AnnotatedCallLog.CONTENT_URI, + new String[] {AnnotatedCallLog._ID}, + null, + null, + null)) { + + if (cursor == null) { + LogUtil.e("SystemCallLogDataSource.getAnnotatedCallLogIds", "null cursor"); + return ids; + } + + if (cursor.moveToFirst()) { + int idColumn = cursor.getColumnIndexOrThrow(AnnotatedCallLog._ID); + do { + ids.add(cursor.getLong(idColumn)); + } while (cursor.moveToNext()); + } + } + return ids; + } + + @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources + private static Set<Long> getIdsFromSystemCallLogThatMatch( + Context appContext, Set<Long> matchingIds) { + ArraySet<Long> ids = new ArraySet<>(); + + String[] questionMarks = new String[matchingIds.size()]; + Arrays.fill(questionMarks, "?"); + String whereClause = (Calls._ID + " in (") + TextUtils.join(",", questionMarks) + ")"; + String[] whereArgs = new String[matchingIds.size()]; + int i = 0; + for (long id : matchingIds) { + whereArgs[i++] = String.valueOf(id); + } + + try (Cursor cursor = + appContext + .getContentResolver() + .query(Calls.CONTENT_URI, new String[] {Calls._ID}, whereClause, whereArgs, null)) { + + if (cursor == null) { + LogUtil.e("SystemCallLogDataSource.getIdsFromSystemCallLog", "null cursor"); + return ids; + } + + if (cursor.moveToFirst()) { + int idColumn = cursor.getColumnIndexOrThrow(Calls._ID); + do { + ids.add(cursor.getLong(idColumn)); + } while (cursor.moveToNext()); + } + return ids; + } } private static class CallLogObserver extends ContentObserver { diff --git a/java/com/android/dialer/calllog/datasources/util/RowCombiner.java b/java/com/android/dialer/calllog/datasources/util/RowCombiner.java new file mode 100644 index 000000000..0c7be1e27 --- /dev/null +++ b/java/com/android/dialer/calllog/datasources/util/RowCombiner.java @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.dialer.calllog.datasources.util; + +import android.content.ContentValues; +import com.android.dialer.common.Assert; +import java.util.Iterator; +import java.util.List; + +/** Convenience class for aggregating row values. */ +public class RowCombiner { + private final List<ContentValues> individualRowsSortedByTimestampDesc; + private final ContentValues combinedRow = new ContentValues(); + + public RowCombiner(List<ContentValues> individualRowsSortedByTimestampDesc) { + Assert.checkArgument(!individualRowsSortedByTimestampDesc.isEmpty()); + this.individualRowsSortedByTimestampDesc = individualRowsSortedByTimestampDesc; + } + + /** Use the most recent value for the specified column. */ + public RowCombiner useMostRecentLong(String columnName) { + combinedRow.put(columnName, individualRowsSortedByTimestampDesc.get(0).getAsLong(columnName)); + return this; + } + + /** Asserts that all column values for the given column name are the same, and uses it. */ + public RowCombiner useSingleValueString(String columnName) { + Iterator<ContentValues> iterator = individualRowsSortedByTimestampDesc.iterator(); + String singleValue = iterator.next().getAsString(columnName); + while (iterator.hasNext()) { + Assert.checkState(iterator.next().getAsString(columnName).equals(singleValue)); + } + combinedRow.put(columnName, singleValue); + return this; + } + + public ContentValues combine() { + return combinedRow; + } +} diff --git a/java/com/android/dialer/calllog/testing/FakeCallLogApplication.java b/java/com/android/dialer/calllog/testing/FakeCallLogApplication.java new file mode 100644 index 000000000..cb2240539 --- /dev/null +++ b/java/com/android/dialer/calllog/testing/FakeCallLogApplication.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.dialer.calllog.testing; + +import android.app.Application; +import com.android.dialer.calllog.CallLogModule; +import com.android.dialer.calllog.database.CallLogDatabaseComponent; +import com.android.dialer.inject.HasRootComponent; +import dagger.Component; +import javax.inject.Singleton; + +/** + * Fake application for call log robolectric tests which uses all real bindings but doesn't require + * tests to depend on and use all of DialerApplication. + */ +public final class FakeCallLogApplication extends Application implements HasRootComponent { + + @Override + public Object component() { + return DaggerFakeCallLogApplication_FakeComponent.create(); + } + + @Singleton + @Component(modules = CallLogModule.class) + interface FakeComponent extends CallLogDatabaseComponent.HasComponent {} +} diff --git a/java/com/android/dialer/calllog/ui/AndroidManifest.xml b/java/com/android/dialer/calllog/ui/AndroidManifest.xml index 228167749..eaf71aba8 100644 --- a/java/com/android/dialer/calllog/ui/AndroidManifest.xml +++ b/java/com/android/dialer/calllog/ui/AndroidManifest.xml @@ -13,4 +13,4 @@ ~ See the License for the specific language governing permissions and ~ limitations under the License --> -<manifest package="com.android.dialer.calllog"/> +<manifest package="com.android.dialer.calllog.ui"/> diff --git a/java/com/android/dialer/calllog/ui/AnnotatedCallLogCursorLoader.java b/java/com/android/dialer/calllog/ui/AnnotatedCallLogCursorLoader.java deleted file mode 100644 index cd8622e80..000000000 --- a/java/com/android/dialer/calllog/ui/AnnotatedCallLogCursorLoader.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.dialer.calllog.ui; - -import android.annotation.TargetApi; -import android.content.Context; -import android.content.CursorLoader; -import android.database.Cursor; -import android.database.sqlite.SQLiteDatabase; -import android.os.Build; -import com.android.dialer.calllog.database.AnnotatedCallLog; -import com.android.dialer.calllog.database.AnnotatedCallLog.Columns; - -/** CursorLoader which reads the annotated call log. */ -class AnnotatedCallLogCursorLoader extends CursorLoader { - - AnnotatedCallLogCursorLoader(Context context) { - super(context); - } - - @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources - @Override - public Cursor loadInBackground() { - try (SQLiteDatabase readableDatabase = AnnotatedCallLog.getReadableDatabase(getContext())) { - return readableDatabase.rawQuery( - "SELECT * FROM " - + AnnotatedCallLog.TABLE_NAME - + " ORDER BY " - + Columns.TIMESTAMP - + " DESC", - null /* selectionArgs */); - } - } -} diff --git a/java/com/android/dialer/calllog/ui/NewCallLogAdapter.java b/java/com/android/dialer/calllog/ui/NewCallLogAdapter.java new file mode 100644 index 000000000..f9ab21cb3 --- /dev/null +++ b/java/com/android/dialer/calllog/ui/NewCallLogAdapter.java @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.dialer.calllog.ui; + +import android.database.Cursor; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.ViewGroup; +import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.CoalescedAnnotatedCallLog; + +/** {@link RecyclerView.Adapter} for the new call log fragment. */ +final class NewCallLogAdapter extends RecyclerView.Adapter<NewCallLogViewHolder> { + + private final Cursor cursor; + private final int timestampIndex; + + NewCallLogAdapter(Cursor cursor) { + this.cursor = cursor; + timestampIndex = cursor.getColumnIndexOrThrow(CoalescedAnnotatedCallLog.TIMESTAMP); + } + + @Override + public NewCallLogViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { + return new NewCallLogViewHolder( + LayoutInflater.from(viewGroup.getContext()) + .inflate(R.layout.new_call_log_entry, viewGroup, false)); + } + + @Override + public void onBindViewHolder(NewCallLogViewHolder viewHolder, int position) { + cursor.moveToPosition(position); + long timestamp = cursor.getLong(timestampIndex); + viewHolder.bind(timestamp); + } + + @Override + public int getItemCount() { + return cursor.getCount(); + } +} diff --git a/java/com/android/dialer/calllog/ui/NewCallLogFragment.java b/java/com/android/dialer/calllog/ui/NewCallLogFragment.java index b8f2b1326..89ed52fd7 100644 --- a/java/com/android/dialer/calllog/ui/NewCallLogFragment.java +++ b/java/com/android/dialer/calllog/ui/NewCallLogFragment.java @@ -17,30 +17,30 @@ package com.android.dialer.calllog.ui; import android.app.Fragment; import android.app.LoaderManager.LoaderCallbacks; -import android.content.Context; +import android.content.CursorLoader; import android.content.Loader; import android.database.Cursor; import android.os.Bundle; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.CursorAdapter; -import android.widget.ListView; -import android.widget.SimpleCursorAdapter; -import android.widget.TextView; import com.android.dialer.calllog.CallLogComponent; import com.android.dialer.calllog.CallLogFramework; import com.android.dialer.calllog.CallLogFramework.CallLogUi; -import com.android.dialer.calllog.database.AnnotatedCallLog.Columns; +import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.CoalescedAnnotatedCallLog; import com.android.dialer.common.LogUtil; -import java.text.SimpleDateFormat; -import java.util.Locale; +import com.android.dialer.common.concurrent.DialerExecutor; +import com.android.dialer.common.concurrent.DialerExecutorComponent; +import com.android.dialer.common.concurrent.DialerExecutorFactory; /** The "new" call log fragment implementation, which is built on top of the annotated call log. */ public final class NewCallLogFragment extends Fragment implements CallLogUi, LoaderCallbacks<Cursor> { - private CursorAdapter cursorAdapter; + private DialerExecutor<Boolean> refreshAnnotatedCallLogTask; + private RecyclerView recyclerView; public NewCallLogFragment() { LogUtil.enterBlock("NewCallLogFragment.NewCallLogFragment"); @@ -52,8 +52,27 @@ public final class NewCallLogFragment extends Fragment LogUtil.enterBlock("NewCallLogFragment.onCreate"); - CallLogFramework callLogFramework = CallLogComponent.get(getContext()).callLogFramework(); + CallLogComponent component = CallLogComponent.get(getContext()); + CallLogFramework callLogFramework = component.callLogFramework(); callLogFramework.attachUi(this); + + DialerExecutorFactory dialerExecutorFactory = + DialerExecutorComponent.get(getContext()).dialerExecutorFactory(); + + refreshAnnotatedCallLogTask = + dialerExecutorFactory + .createUiTaskBuilder( + getFragmentManager(), + "NewCallLogFragment.refreshAnnotatedCallLog", + component.getRefreshAnnotatedCallLogWorker()) + .build(); + } + + @Override + public void onStart() { + super.onStart(); + + LogUtil.enterBlock("NewCallLogFragment.onStart"); } @Override @@ -64,6 +83,9 @@ public final class NewCallLogFragment extends Fragment CallLogFramework callLogFramework = CallLogComponent.get(getContext()).callLogFramework(); callLogFramework.attachUi(this); + + // TODO: Consider doing this when fragment becomes visible. + checkAnnotatedCallLogDirtyAndRefreshIfNecessary(); } @Override @@ -82,57 +104,44 @@ public final class NewCallLogFragment extends Fragment LogUtil.enterBlock("NewCallLogFragment.onCreateView"); View view = inflater.inflate(R.layout.new_call_log_fragment, container, false); - ListView listView = (ListView) view.findViewById(R.id.list); + recyclerView = view.findViewById(R.id.new_call_log_recycler_view); - this.cursorAdapter = - new MyCursorAdapter( - getContext(), - R.layout.new_call_log_entry, - null /* cursor */, - new String[] {Columns.TIMESTAMP, Columns.CONTACT_NAME}, - new int[] {R.id.timestamp, R.id.contact_name}, - 0); - listView.setAdapter(cursorAdapter); - - getLoaderManager().initLoader(0, null, this); + getLoaderManager().restartLoader(0, null, this); return view; } + private void checkAnnotatedCallLogDirtyAndRefreshIfNecessary() { + LogUtil.enterBlock("NewCallLogFragment.checkAnnotatedCallLogDirtyAndRefreshIfNecessary"); + refreshAnnotatedCallLogTask.executeSerial(false /* skipDirtyCheck */); + } + @Override public void invalidateUi() { LogUtil.enterBlock("NewCallLogFragment.invalidateUi"); - // TODO: Implementation. + refreshAnnotatedCallLogTask.executeSerial(true /* skipDirtyCheck */); } @Override public Loader<Cursor> onCreateLoader(int id, Bundle args) { - // TODO: This is sort of weird, do we need to implement a content provider? - return new AnnotatedCallLogCursorLoader(getContext()); + LogUtil.enterBlock("NewCallLogFragment.onCreateLoader"); + // CoalescedAnnotatedCallLog requires that all params be null. + return new CursorLoader( + getContext(), CoalescedAnnotatedCallLog.CONTENT_URI, null, null, null, null); } @Override public void onLoadFinished(Loader<Cursor> loader, Cursor newCursor) { - cursorAdapter.swapCursor(newCursor); + LogUtil.enterBlock("NewCallLogFragment.onLoadFinished"); + + // TODO: Handle empty cursor by showing empty view. + recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); + recyclerView.setAdapter(new NewCallLogAdapter(newCursor)); } @Override public void onLoaderReset(Loader<Cursor> loader) { - cursorAdapter.swapCursor(null); - } - - private static class MyCursorAdapter extends SimpleCursorAdapter { - - MyCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to, int flags) { - super(context, layout, c, from, to, flags); - } - - @Override - public void setViewText(TextView view, String text) { - if (view.getId() == R.id.timestamp) { - text = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.US).format(Long.valueOf(text)); - } - view.setText(text); - } + LogUtil.enterBlock("NewCallLogFragment.onLoaderReset"); + recyclerView.setAdapter(null); } } diff --git a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java new file mode 100644 index 000000000..4c459e123 --- /dev/null +++ b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.dialer.calllog.ui; + +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.TextView; +import java.text.SimpleDateFormat; +import java.util.Locale; + +/** {@link RecyclerView.ViewHolder} for the new call log. */ +final class NewCallLogViewHolder extends RecyclerView.ViewHolder { + + // TODO: Format correctly using current locale. + private final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.US); + + private final TextView contactNameView; + private final TextView timestampView; + + NewCallLogViewHolder(View view) { + super(view); + contactNameView = view.findViewById(R.id.contact_name); + timestampView = view.findViewById(R.id.timestamp); + } + + void bind(long timestamp) { + contactNameView.setText("Contact Name Placeholder"); + timestampView.setText(dateFormat.format(timestamp)); + } +} diff --git a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml index ee3efd002..99797fab4 100644 --- a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml +++ b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml @@ -18,16 +18,20 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="horizontal"> + android:layout_height="wrap_content" + android:padding="8dp" + android:orientation="vertical"> <TextView - android:id="@+id/timestamp" + android:id="@+id/contact_name" android:layout_width="wrap_content" - android:layout_height="wrap_content"/> + android:layout_height="wrap_content" + style="@style/PrimaryText"/> <TextView - android:id="@+id/contact_name" + android:id="@+id/timestamp" android:layout_width="wrap_content" - android:layout_height="wrap_content"/> + android:layout_height="wrap_content" + style="@style/SecondaryText"/> + </LinearLayout>
\ No newline at end of file diff --git a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_fragment.xml b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_fragment.xml index 433dbdd0f..e1d8410b6 100644 --- a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_fragment.xml +++ b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_fragment.xml @@ -15,8 +15,9 @@ ~ limitations under the License --> -<ListView +<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/list" + android:id="@+id/new_call_log_recycler_view" android:layout_width="match_parent" - android:layout_height="match_parent"/> + android:layout_height="match_parent" + android:background="@color/background_dialer_light"/> diff --git a/java/com/android/dialer/common/Assert.java b/java/com/android/dialer/common/Assert.java index 189d209c8..943e1ddcf 100644 --- a/java/com/android/dialer/common/Assert.java +++ b/java/com/android/dialer/common/Assert.java @@ -30,10 +30,6 @@ public class Assert { Assert.areThreadAssertsEnabled = areThreadAssertsEnabled; } - public static boolean areThreadAssertsEnabled() { - return areThreadAssertsEnabled; - } - /** * Called when a truly exceptional case occurs. * diff --git a/java/com/android/dialer/common/concurrent/DialerExecutorComponent.java b/java/com/android/dialer/common/concurrent/DialerExecutorComponent.java new file mode 100644 index 000000000..25033251f --- /dev/null +++ b/java/com/android/dialer/common/concurrent/DialerExecutorComponent.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.dialer.common.concurrent; + +import android.content.Context; +import com.android.dialer.inject.HasRootComponent; +import dagger.Subcomponent; + +/** Dagger component which provides a {@link DialerExecutorFactory}. */ +@Subcomponent +public abstract class DialerExecutorComponent { + + public abstract DialerExecutorFactory dialerExecutorFactory(); + + public static DialerExecutorComponent get(Context context) { + return ((DialerExecutorComponent.HasComponent) + ((HasRootComponent) context.getApplicationContext()).component()) + .dialerExecutorComponent(); + } + + /** Used to refer to the root application component. */ + public interface HasComponent { + DialerExecutorComponent dialerExecutorComponent(); + } +} diff --git a/java/com/android/contacts/common/util/TrafficStatsTags.java b/java/com/android/dialer/common/concurrent/DialerExecutorModule.java index b0e7fb583..281f88c15 100644 --- a/java/com/android/contacts/common/util/TrafficStatsTags.java +++ b/java/com/android/dialer/common/concurrent/DialerExecutorModule.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 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. @@ -11,12 +11,18 @@ * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and - * limitations under the License. + * limitations under the License */ -package com.android.contacts.common.util; +package com.android.dialer.common.concurrent; -public class TrafficStatsTags { +import dagger.Binds; +import dagger.Module; - public static final int CONTACT_PHOTO_DOWNLOAD_TAG = 0x0001; - public static final int TAG_MAX = 0x9999; +/** Module which binds the production {@link DialerExecutorFactory}. */ +@Module +public abstract class DialerExecutorModule { + + @Binds + abstract DialerExecutorFactory bindDialerExecutorFactory( + DefaultDialerExecutorFactory defaultDialerExecutorFactory); } diff --git a/java/com/android/dialer/compat/CompatUtils.java b/java/com/android/dialer/compat/CompatUtils.java index 673cb709b..351c89ad7 100644 --- a/java/com/android/dialer/compat/CompatUtils.java +++ b/java/com/android/dialer/compat/CompatUtils.java @@ -16,15 +16,9 @@ package com.android.dialer.compat; import android.os.Build; -import android.support.annotation.Nullable; -import android.text.TextUtils; -import android.util.Log; -import java.lang.reflect.InvocationTargetException; public final class CompatUtils { - private static final String TAG = CompatUtils.class.getSimpleName(); - /** PrioritizedMimeType is added in API level 23. */ public static boolean hasPrioritizedMimeType() { return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M; @@ -70,153 +64,4 @@ public final class CompatUtils { public static boolean isCallSubjectCompatible() { return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP) >= Build.VERSION_CODES.M; } - - /** - * Determines if this version is compatible with a default dialer. Can also force the version to - * be lower through {@link SdkVersionOverride}. - * - * @return {@code true} if default dialer is a feature on this device, {@code false} otherwise. - */ - public static boolean isDefaultDialerCompatible() { - return isMarshmallowCompatible(); - } - - /** - * Determines if this version is compatible with Lollipop Mr1-specific APIs. Can also force the - * version to be lower through SdkVersionOverride. - * - * @return {@code true} if runtime sdk is compatible with Lollipop MR1, {@code false} otherwise. - */ - public static boolean isLollipopMr1Compatible() { - return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP_MR1) - >= Build.VERSION_CODES.LOLLIPOP_MR1; - } - - /** - * Determines if this version is compatible with Marshmallow-specific APIs. Can also force the - * version to be lower through SdkVersionOverride. - * - * @return {@code true} if runtime sdk is compatible with Marshmallow, {@code false} otherwise. - */ - public static boolean isMarshmallowCompatible() { - return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP) >= Build.VERSION_CODES.M; - } - - /** - * Determines if the given class is available. Can be used to check if system apis exist at - * runtime. - * - * @param className the name of the class to look for. - * @return {@code true} if the given class is available, {@code false} otherwise or if className - * is empty. - */ - public static boolean isClassAvailable(@Nullable String className) { - if (TextUtils.isEmpty(className)) { - return false; - } - try { - Class.forName(className); - return true; - } catch (ClassNotFoundException e) { - return false; - } catch (Throwable t) { - Log.e( - TAG, - "Unexpected exception when checking if class:" + className + " exists at " + "runtime", - t); - return false; - } - } - - /** - * Determines if the given class's method is available to call. Can be used to check if system - * apis exist at runtime. - * - * @param className the name of the class to look for - * @param methodName the name of the method to look for - * @param parameterTypes the needed parameter types for the method to look for - * @return {@code true} if the given class is available, {@code false} otherwise or if className - * or methodName are empty. - */ - public static boolean isMethodAvailable( - @Nullable String className, @Nullable String methodName, Class<?>... parameterTypes) { - if (TextUtils.isEmpty(className) || TextUtils.isEmpty(methodName)) { - return false; - } - - try { - Class.forName(className).getMethod(methodName, parameterTypes); - return true; - } catch (ClassNotFoundException | NoSuchMethodException e) { - Log.v(TAG, "Could not find method: " + className + "#" + methodName); - return false; - } catch (Throwable t) { - Log.e( - TAG, - "Unexpected exception when checking if method: " - + className - + "#" - + methodName - + " exists at runtime", - t); - return false; - } - } - - /** - * Invokes a given class's method using reflection. Can be used to call system apis that exist at - * runtime but not in the SDK. - * - * @param instance The instance of the class to invoke the method on. - * @param methodName The name of the method to invoke. - * @param parameterTypes The needed parameter types for the method. - * @param parameters The parameter values to pass into the method. - * @return The result of the invocation or {@code null} if instance or methodName are empty, or if - * the reflection fails. - */ - @Nullable - public static Object invokeMethod( - @Nullable Object instance, - @Nullable String methodName, - Class<?>[] parameterTypes, - Object[] parameters) { - if (instance == null || TextUtils.isEmpty(methodName)) { - return null; - } - - String className = instance.getClass().getName(); - try { - return Class.forName(className) - .getMethod(methodName, parameterTypes) - .invoke(instance, parameters); - } catch (ClassNotFoundException - | NoSuchMethodException - | IllegalArgumentException - | IllegalAccessException - | InvocationTargetException e) { - Log.v(TAG, "Could not invoke method: " + className + "#" + methodName); - return null; - } catch (Throwable t) { - Log.e( - TAG, - "Unexpected exception when invoking method: " - + className - + "#" - + methodName - + " at runtime", - t); - return null; - } - } - - /** - * Determines if this version is compatible with Lollipop-specific APIs. Can also force the - * version to be lower through SdkVersionOverride. - * - * @return {@code true} if call subject is a feature on this device, {@code false} otherwise. - */ - public static boolean isLollipopCompatible() { - return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP) - >= Build.VERSION_CODES.LOLLIPOP; - } } diff --git a/java/com/android/dialer/constants/Constants.java b/java/com/android/dialer/constants/Constants.java index d92c0bcfc..076393e63 100644 --- a/java/com/android/dialer/constants/Constants.java +++ b/java/com/android/dialer/constants/Constants.java @@ -53,5 +53,8 @@ public abstract class Constants { @NonNull public abstract String getFileProviderAuthority(); + @NonNull + public abstract String getAnnotatedCallLogProviderAuthority(); + protected Constants() {} } diff --git a/java/com/android/dialer/constants/ScheduledJobIds.java b/java/com/android/dialer/constants/ScheduledJobIds.java index 2fed4ef8a..a54adc757 100644 --- a/java/com/android/dialer/constants/ScheduledJobIds.java +++ b/java/com/android/dialer/constants/ScheduledJobIds.java @@ -32,6 +32,7 @@ public final class ScheduledJobIds { public static final int VVM_TASK_SCHEDULER_JOB = 200; public static final int VVM_STATUS_CHECK_JOB = 201; public static final int VVM_DEVICE_PROVISIONED_JOB = 202; + public static final int VVM_TRANSCRIPTION_JOB = 203; public static final int VOIP_REGISTRATION = 300; diff --git a/java/com/android/incallui/calllocation/impl/TrafficStatsTags.java b/java/com/android/dialer/constants/TrafficStatsTags.java index 02cc2e083..4e6140431 100644 --- a/java/com/android/incallui/calllocation/impl/TrafficStatsTags.java +++ b/java/com/android/dialer/constants/TrafficStatsTags.java @@ -11,19 +11,18 @@ * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and - * limitations under the License + * limitations under the License. */ -package com.android.incallui.calllocation.impl; +package com.android.dialer.constants; -/** Constants used for logging */ +/** Registry of tags for {@link android.net.TrafficStats#setThreadStatsTag(int)} */ public class TrafficStatsTags { - - /** - * Must be greater than {@link com.android.contacts.common.util.TrafficStatsTags#TAG_MAX}, to - * respect the namespace of the tags in ContactsCommon. - */ + public static final int CONTACT_PHOTO_DOWNLOAD_TAG = 0x0001; + public static final int NEARBY_PLACES_TAG = 0xaaaa; + public static final int REVERSE_LOOKUP_CONTACT_TAG = 0xbaaa; + public static final int REVERSE_LOOKUP_IMAGE_TAG = 0xbaab; public static final int DOWNLOAD_LOCATION_MAP_TAG = 0xd000; - public static final int REVERSE_GEOCODE_TAG = 0xd001; + public static final int VISUAL_VOICEMAIL_TAG = 0xd002; } diff --git a/java/com/android/dialer/constants/aospdialer/ConstantsImpl.java b/java/com/android/dialer/constants/aospdialer/ConstantsImpl.java index 6b78b986c..1111732f3 100644 --- a/java/com/android/dialer/constants/aospdialer/ConstantsImpl.java +++ b/java/com/android/dialer/constants/aospdialer/ConstantsImpl.java @@ -34,4 +34,10 @@ public class ConstantsImpl extends Constants { public String getFileProviderAuthority() { return "com.android.dialer.files"; } + + @NonNull + @Override + public String getAnnotatedCallLogProviderAuthority() { + return "com.android.dialer.annotatedcalllog"; + } } diff --git a/java/com/android/dialer/contactactions/AndroidManifest.xml b/java/com/android/dialer/contactactions/AndroidManifest.xml new file mode 100644 index 000000000..a64066e0b --- /dev/null +++ b/java/com/android/dialer/contactactions/AndroidManifest.xml @@ -0,0 +1,16 @@ +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> +<manifest package="com.android.dialer.contactactions"/> diff --git a/java/com/android/dialer/contactactions/ContactActionBottomSheet.java b/java/com/android/dialer/contactactions/ContactActionBottomSheet.java new file mode 100644 index 000000000..4718ff036 --- /dev/null +++ b/java/com/android/dialer/contactactions/ContactActionBottomSheet.java @@ -0,0 +1,136 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.dialer.contactactions; + +import android.content.Context; +import android.net.Uri; +import android.os.Bundle; +import android.support.design.widget.BottomSheetDialog; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; +import com.android.contacts.common.ContactPhotoManager; +import com.android.dialer.common.Assert; +import com.android.dialer.dialercontact.DialerContact; +import java.util.List; + +/** + * {@link BottomSheetDialog} used for building a list of contact actions in a bottom sheet menu. + * + * <p>{@link #show(Context, DialerContact, List)} should be used to create and display the menu. + * Modules are built using {@link ContactActionModule} and some defaults are provided by {@link + * IntentModule} and {@link DividerModule}. + */ +public class ContactActionBottomSheet extends BottomSheetDialog implements OnClickListener { + + private final List<ContactActionModule> modules; + private final DialerContact contact; + + private ContactActionBottomSheet( + Context context, DialerContact contact, List<ContactActionModule> modules) { + super(context); + this.modules = modules; + this.contact = contact; + setContentView(LayoutInflater.from(context).inflate(R.layout.sheet_layout, null)); + } + + public static ContactActionBottomSheet show( + Context context, DialerContact contact, List<ContactActionModule> modules) { + ContactActionBottomSheet sheet = new ContactActionBottomSheet(context, contact, modules); + sheet.show(); + return sheet; + } + + @Override + protected void onCreate(Bundle bundle) { + super.onCreate(bundle); + LinearLayout container = Assert.isNotNull(findViewById(R.id.action_container)); + container.addView(getContactView(container)); + + for (ContactActionModule module : modules) { + if (module instanceof DividerModule) { + container.addView(getDividerView(container)); + } else { + container.addView(getModuleView(container, module)); + } + } + } + + // TODO: add on click action to contact. + private View getContactView(ViewGroup container) { + LayoutInflater inflater = LayoutInflater.from(getContext()); + View contactView = inflater.inflate(R.layout.contact_layout, container, false); + + ContactPhotoManager.getInstance(getContext()) + .loadDialerThumbnailOrPhoto( + contactView.findViewById(R.id.quick_contact_photo), + contact.hasContactUri() ? Uri.parse(contact.getContactUri()) : null, + contact.getPhotoId(), + contact.hasPhotoUri() ? Uri.parse(contact.getPhotoUri()) : null, + contact.getNameOrNumber(), + contact.getContactType()); + + TextView nameView = contactView.findViewById(R.id.contact_name); + TextView numberView = contactView.findViewById(R.id.phone_number); + + nameView.setText(contact.getNameOrNumber()); + if (!TextUtils.isEmpty(contact.getDisplayNumber())) { + numberView.setVisibility(View.VISIBLE); + String secondaryInfo = + TextUtils.isEmpty(contact.getNumberLabel()) + ? contact.getDisplayNumber() + : getContext() + .getString( + com.android.contacts.common.R.string.call_subject_type_and_number, + contact.getNumberLabel(), + contact.getDisplayNumber()); + numberView.setText(secondaryInfo); + } else { + numberView.setVisibility(View.GONE); + numberView.setText(null); + } + return contactView; + } + + private View getDividerView(ViewGroup container) { + LayoutInflater inflater = LayoutInflater.from(getContext()); + return inflater.inflate(R.layout.divider_layout, container, false); + } + + private View getModuleView(ViewGroup container, ContactActionModule module) { + LayoutInflater inflater = LayoutInflater.from(getContext()); + View moduleView = inflater.inflate(R.layout.module_layout, container, false); + ((TextView) moduleView.findViewById(R.id.module_text)).setText(module.getStringId()); + ((ImageView) moduleView.findViewById(R.id.module_image)) + .setImageResource(module.getDrawableId()); + moduleView.setOnClickListener(this); + moduleView.setTag(module); + return moduleView; + } + + @Override + public void onClick(View view) { + if (((ContactActionModule) view.getTag()).onClick()) { + dismiss(); + } + } +} diff --git a/java/com/android/dialer/contactactions/ContactActionModule.java b/java/com/android/dialer/contactactions/ContactActionModule.java new file mode 100644 index 000000000..8089edc7b --- /dev/null +++ b/java/com/android/dialer/contactactions/ContactActionModule.java @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.dialer.contactactions; + +import android.support.annotation.DrawableRes; +import android.support.annotation.StringRes; + +/** + * Modules used to build {@link ContactActionBottomSheet}. + * + * <p>Contacts as they relate to this class should be thought of as any entity that an action can be + * performed on like unknown/restricted contacts, along with saved and non-saved contacts. + */ +public interface ContactActionModule { + + @StringRes + int getStringId(); + + @DrawableRes + int getDrawableId(); + + /** @return true if the bottom sheet should close, false otherwise */ + boolean onClick(); +} diff --git a/java/com/android/dialer/contactactions/DividerModule.java b/java/com/android/dialer/contactactions/DividerModule.java new file mode 100644 index 000000000..aabd160db --- /dev/null +++ b/java/com/android/dialer/contactactions/DividerModule.java @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.dialer.contactactions; + +import com.android.dialer.common.Assert; + +/** + * A module that inserts a grey line divider into {@link ContactActionModule}. Layout it provided in + * R.layout.divider_layout.xml + */ +public final class DividerModule implements ContactActionModule { + + @Override + public int getStringId() { + throw Assert.createUnsupportedOperationFailException(); + } + + @Override + public int getDrawableId() { + throw Assert.createUnsupportedOperationFailException(); + } + + @Override + public boolean onClick() { + throw Assert.createUnsupportedOperationFailException(); + } +} diff --git a/java/com/android/dialer/contactactions/IntentModule.java b/java/com/android/dialer/contactactions/IntentModule.java new file mode 100644 index 000000000..201f52192 --- /dev/null +++ b/java/com/android/dialer/contactactions/IntentModule.java @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.dialer.contactactions; + +import android.content.Context; +import android.content.Intent; +import android.support.annotation.DrawableRes; +import android.support.annotation.StringRes; +import com.android.dialer.callintent.CallInitiationType.Type; +import com.android.dialer.callintent.CallIntentBuilder; + +/** + * {@link ContactActionModule} useful for making easy to build modules based on starting an intent. + */ +public class IntentModule implements ContactActionModule { + + private final Context context; + private final Intent intent; + private final @StringRes int text; + private final @DrawableRes int image; + + public IntentModule(Context context, Intent intent, @StringRes int text, @DrawableRes int image) { + this.context = context; + this.intent = intent; + this.text = text; + this.image = image; + } + + @Override + public int getStringId() { + return text; + } + + @Override + public int getDrawableId() { + return image; + } + + @Override + public boolean onClick() { + context.startActivity(intent); + return true; + } + + public static IntentModule newCallModule(Context context, String number, Type initiationType) { + return new IntentModule( + context, + new CallIntentBuilder(number, initiationType).build(), + R.string.call, + R.drawable.quantum_ic_call_white_24); + } + + public static IntentModule newVideoCallModule( + Context context, String number, Type initiationType) { + return new IntentModule( + context, + new CallIntentBuilder(number, initiationType).setIsVideoCall(true).build(), + R.string.video_call, + R.drawable.quantum_ic_videocam_white_24); + } +} diff --git a/java/com/android/dialer/contactactions/res/layout/contact_layout.xml b/java/com/android/dialer/contactactions/res/layout/contact_layout.xml new file mode 100644 index 000000000..bf3297153 --- /dev/null +++ b/java/com/android/dialer/contactactions/res/layout/contact_layout.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:orientation="horizontal" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_marginTop="8dp" + android:layout_marginBottom="12dp" + android:layout_marginEnd="8dp"> + + <QuickContactBadge + android:id="@+id/quick_contact_photo" + android:layout_width="@dimen/contact_actions_image_size" + android:layout_height="@dimen/contact_actions_image_size" + android:layout_marginStart="@dimen/contact_actions_image_margin" + android:layout_marginEnd="@dimen/contact_actions_image_margin" + android:padding="4dp" + android:focusable="true"/> + + <LinearLayout + android:orientation="vertical" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:gravity="center_vertical"> + + <TextView + android:id="@+id/contact_name" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + style="@style/PrimaryText"/> + + <TextView + android:id="@+id/phone_number" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="2dp" + style="@style/SecondaryText"/> + </LinearLayout> +</LinearLayout>
\ No newline at end of file diff --git a/java/com/android/dialer/contactactions/res/layout/divider_layout.xml b/java/com/android/dialer/contactactions/res/layout/divider_layout.xml new file mode 100644 index 000000000..fdee50e48 --- /dev/null +++ b/java/com/android/dialer/contactactions/res/layout/divider_layout.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> +<View + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="1dp" + android:layout_marginTop="8dp" + android:layout_marginBottom="8dp" + android:background="#12000000"/> diff --git a/java/com/android/dialer/contactactions/res/layout/module_layout.xml b/java/com/android/dialer/contactactions/res/layout/module_layout.xml new file mode 100644 index 000000000..9aee67937 --- /dev/null +++ b/java/com/android/dialer/contactactions/res/layout/module_layout.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/module_container" + android:orientation="horizontal" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="?android:attr/selectableItemBackground"> + + <ImageView + android:id="@+id/module_image" + android:layout_width="@dimen/contact_actions_image_size" + android:layout_height="@dimen/contact_actions_image_size" + android:layout_marginStart="@dimen/contact_actions_image_margin" + android:layout_marginEnd="@dimen/contact_actions_image_margin" + android:tint="@color/dialer_secondary_text_color" + android:scaleType="center"/> + + <TextView + android:id="@+id/module_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + style="@style/PrimaryText"/> +</LinearLayout>
\ No newline at end of file diff --git a/java/com/android/dialer/contactactions/res/layout/sheet_layout.xml b/java/com/android/dialer/contactactions/res/layout/sheet_layout.xml new file mode 100644 index 000000000..6984367bf --- /dev/null +++ b/java/com/android/dialer/contactactions/res/layout/sheet_layout.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/action_container" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:paddingTop="4dp" + android:paddingBottom="8dp"/> diff --git a/java/com/android/contacts/common/res/drawable/ic_person_add_tinted_24dp.xml b/java/com/android/dialer/contactactions/res/values/dimens.xml index c2538cfd1..47bf804ac 100644 --- a/java/com/android/contacts/common/res/drawable/ic_person_add_tinted_24dp.xml +++ b/java/com/android/dialer/contactactions/res/values/dimens.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <!-- - ~ Copyright (C) 2014 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. @@ -14,7 +14,7 @@ ~ See the License for the specific language governing permissions and ~ limitations under the License --> -<bitmap xmlns:android="http://schemas.android.com/apk/res/android" - android:autoMirrored="true" - android:src="@drawable/quantum_ic_person_add_white_24" - android:tint="@color/actionbar_icon_color"/> +<resources> + <dimen name="contact_actions_image_size">48dp</dimen> + <dimen name="contact_actions_image_margin">12dp</dimen> +</resources>
\ No newline at end of file diff --git a/java/com/android/dialer/contactsfragment/ContactViewHolder.java b/java/com/android/dialer/contactsfragment/ContactViewHolder.java index 5df106dbc..586e22aab 100644 --- a/java/com/android/dialer/contactsfragment/ContactViewHolder.java +++ b/java/com/android/dialer/contactsfragment/ContactViewHolder.java @@ -16,6 +16,7 @@ package com.android.dialer.contactsfragment; +import android.content.Context; import android.net.Uri; import android.provider.ContactsContract.QuickContact; import android.support.v7.widget.RecyclerView; @@ -25,6 +26,8 @@ import android.view.View.OnClickListener; import android.widget.QuickContactBadge; import android.widget.TextView; import com.android.dialer.common.Assert; +import com.android.dialer.logging.InteractionEvent; +import com.android.dialer.logging.Logger; /** View holder for a contact. */ final class ContactViewHolder extends RecyclerView.ViewHolder implements OnClickListener { @@ -32,12 +35,14 @@ final class ContactViewHolder extends RecyclerView.ViewHolder implements OnClick private final TextView header; private final TextView name; private final QuickContactBadge photo; + private final Context context; private String headerText; private Uri contactUri; public ContactViewHolder(View itemView) { super(itemView); + context = itemView.getContext(); itemView.findViewById(R.id.click_target).setOnClickListener(this); header = (TextView) itemView.findViewById(R.id.header); name = (TextView) itemView.findViewById(R.id.contact_name); @@ -60,6 +65,10 @@ final class ContactViewHolder extends RecyclerView.ViewHolder implements OnClick name.setText(displayName); header.setText(headerText); header.setVisibility(showHeader ? View.VISIBLE : View.INVISIBLE); + + Logger.get(context) + .logQuickContactOnTouch( + photo, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_CONTACTS_FRAGMENT_BADGE, true); } public QuickContactBadge getPhoto() { @@ -76,6 +85,8 @@ final class ContactViewHolder extends RecyclerView.ViewHolder implements OnClick @Override public void onClick(View v) { + Logger.get(context) + .logInteraction(InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_CONTACTS_FRAGMENT_ITEM); QuickContact.showQuickContact( photo.getContext(), photo, contactUri, QuickContact.MODE_LARGE, null /* excludeMimes */); } diff --git a/java/com/android/dialer/contactsfragment/ContactsAdapter.java b/java/com/android/dialer/contactsfragment/ContactsAdapter.java index 4692eff5d..309e034cc 100644 --- a/java/com/android/dialer/contactsfragment/ContactsAdapter.java +++ b/java/com/android/dialer/contactsfragment/ContactsAdapter.java @@ -23,10 +23,10 @@ import android.provider.ContactsContract.Contacts; import android.support.v4.util.ArrayMap; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; +import android.view.View; import android.view.ViewGroup; -import android.widget.TextView; import com.android.contacts.common.ContactPhotoManager; -import com.android.dialer.common.Assert; +import com.android.contacts.common.lettertiles.LetterTileDrawable; /** List adapter for the union of all contacts associated with every account on the device. */ final class ContactsAdapter extends RecyclerView.Adapter<ContactViewHolder> { @@ -70,7 +70,7 @@ final class ContactsAdapter extends RecyclerView.Adapter<ContactViewHolder> { getPhotoId(cursor), getPhotoUri(cursor), name, - 0); + LetterTileDrawable.TYPE_DEFAULT); String photoDescription = context.getString(com.android.contacts.common.R.string.description_quick_contact_for, name); @@ -79,17 +79,23 @@ final class ContactsAdapter extends RecyclerView.Adapter<ContactViewHolder> { // Always show the view holder's header if it's the first item in the list. Otherwise, compare // it to the previous element and only show the anchored header if the row elements fall into // the same sublists. - if (position == 0) { - contactViewHolder.bind(header, name, contactUri, true); - } else { - boolean showHeader = !header.equals(getHeaderString(position - 1)); - contactViewHolder.bind(header, name, contactUri, showHeader); - } + boolean showHeader = position == 0 || !header.equals(getHeaderString(position - 1)); + contactViewHolder.bind(header, name, contactUri, showHeader); + } + + @Override + public void onViewRecycled(ContactViewHolder contactViewHolder) { + super.onViewRecycled(contactViewHolder); + holderMap.remove(contactViewHolder); } public void refreshHeaders() { for (ContactViewHolder holder : holderMap.keySet()) { - onBindViewHolder(holder, holderMap.get(holder)); + int position = holderMap.get(holder); + boolean showHeader = + position == 0 || !getHeaderString(position).equals(getHeaderString(position - 1)); + int visibility = showHeader ? View.VISIBLE : View.INVISIBLE; + holder.getHeaderView().setVisibility(visibility); } } @@ -98,27 +104,6 @@ final class ContactsAdapter extends RecyclerView.Adapter<ContactViewHolder> { return cursor == null ? 0 : cursor.getCount(); } - public String getHeader(int position) { - return getHolderAt(position).getHeader(); - } - - public TextView getHeaderView(int position) { - return getHolderAt(position).getHeaderView(); - } - - public void setHeaderVisibility(int position, int visibility) { - getHolderAt(position).getHeaderView().setVisibility(visibility); - } - - private ContactViewHolder getHolderAt(int position) { - for (ContactViewHolder holder : holderMap.keySet()) { - if (holderMap.get(holder) == position) { - return holder; - } - } - throw Assert.createIllegalStateFailException("No holder for position: " + position); - } - private static String getDisplayName(Cursor cursor) { return cursor.getString(ContactsCursorLoader.CONTACT_DISPLAY_NAME); } @@ -138,7 +123,7 @@ final class ContactsAdapter extends RecyclerView.Adapter<ContactViewHolder> { return Contacts.getLookupUri(contactId, lookupKey); } - private String getHeaderString(int position) { + public String getHeaderString(int position) { int index = -1; int sum = 0; while (sum <= position) { diff --git a/java/com/android/dialer/contactsfragment/ContactsCursorLoader.java b/java/com/android/dialer/contactsfragment/ContactsCursorLoader.java index 6d4d21079..2bb540ac0 100644 --- a/java/com/android/dialer/contactsfragment/ContactsCursorLoader.java +++ b/java/com/android/dialer/contactsfragment/ContactsCursorLoader.java @@ -29,7 +29,7 @@ final class ContactsCursorLoader extends CursorLoader { public static final int CONTACT_PHOTO_URI = 3; public static final int CONTACT_LOOKUP_KEY = 4; - public static final String[] CONTACTS_PROJECTION = + public static final String[] CONTACTS_PROJECTION_DISPLAY_NAME_PRIMARY = new String[] { Contacts._ID, // 0 Contacts.DISPLAY_NAME_PRIMARY, // 1 @@ -38,16 +38,35 @@ final class ContactsCursorLoader extends CursorLoader { Contacts.LOOKUP_KEY, // 4 }; - public ContactsCursorLoader(Context context) { + public static final String[] CONTACTS_PROJECTION_DISPLAY_NAME_ALTERNATIVE = + new String[] { + Contacts._ID, // 0 + Contacts.DISPLAY_NAME_ALTERNATIVE, // 1 + Contacts.PHOTO_ID, // 2 + Contacts.PHOTO_THUMBNAIL_URI, // 3 + Contacts.LOOKUP_KEY, // 4 + }; + + private ContactsCursorLoader(Context context, String[] contactProjection, String sortKey) { super( context, Contacts.CONTENT_URI .buildUpon() .appendQueryParameter(Contacts.EXTRA_ADDRESS_BOOK_INDEX, "true") .build(), - CONTACTS_PROJECTION, + contactProjection, null, null, - Contacts.SORT_KEY_PRIMARY + " ASC"); + sortKey + " ASC"); + } + + public static ContactsCursorLoader createInstanceDisplayNamePrimary( + Context context, String sortKey) { + return new ContactsCursorLoader(context, CONTACTS_PROJECTION_DISPLAY_NAME_PRIMARY, sortKey); + } + + public static ContactsCursorLoader createInstanceDisplayNameAlternative( + Context context, String sortKey) { + return new ContactsCursorLoader(context, CONTACTS_PROJECTION_DISPLAY_NAME_ALTERNATIVE, sortKey); } } diff --git a/java/com/android/dialer/contactsfragment/ContactsFragment.java b/java/com/android/dialer/contactsfragment/ContactsFragment.java index ea662fc89..a996a4fad 100644 --- a/java/com/android/dialer/contactsfragment/ContactsFragment.java +++ b/java/com/android/dialer/contactsfragment/ContactsFragment.java @@ -16,63 +16,125 @@ package com.android.dialer.contactsfragment; +import android.Manifest.permission; import android.app.Fragment; import android.app.LoaderManager.LoaderCallbacks; import android.content.Loader; +import android.content.pm.PackageManager; import android.database.Cursor; import android.os.Bundle; +import android.provider.ContactsContract.Contacts; import android.support.annotation.Nullable; +import android.support.v13.app.FragmentCompat; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.RecyclerView.Recycler; +import android.support.v7.widget.RecyclerView.State; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnScrollChangeListener; import android.view.ViewGroup; import android.widget.TextView; +import com.android.contacts.common.preference.ContactsPreferences; +import com.android.dialer.common.Assert; +import com.android.dialer.util.DialerUtils; +import com.android.dialer.util.IntentUtil; import com.android.dialer.util.PermissionsUtil; +import com.android.dialer.widget.EmptyContentView; +import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener; /** Fragment containing a list of all contacts. */ public class ContactsFragment extends Fragment - implements LoaderCallbacks<Cursor>, OnScrollChangeListener { + implements LoaderCallbacks<Cursor>, + OnScrollChangeListener, + OnEmptyViewActionButtonClickedListener { + public static final int READ_CONTACTS_PERMISSION_REQUEST_CODE = 1; + + private FastScroller fastScroller; private TextView anchoredHeader; private RecyclerView recyclerView; private LinearLayoutManager manager; private ContactsAdapter adapter; + private EmptyContentView emptyContentView; + + private ContactsPreferences contactsPrefs; + + private final ContactsPreferences.ChangeListener preferencesChangeListener = + () -> getLoaderManager().restartLoader(0, null, this); + + @Override + public void onCreate(Bundle savedState) { + super.onCreate(savedState); + contactsPrefs = new ContactsPreferences(getContext()); + contactsPrefs.registerChangeListener(preferencesChangeListener); + } @Nullable @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_contacts, container, false); + fastScroller = (FastScroller) view.findViewById(R.id.fast_scroller); anchoredHeader = (TextView) view.findViewById(R.id.header); - manager = new LinearLayoutManager(getContext()); - - // TODO: Handle contacts permission denied view - // TODO: Handle 0 contacts layout recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view); - recyclerView.setLayoutManager(manager); - getLoaderManager().initLoader(0, null, this); + + emptyContentView = (EmptyContentView) view.findViewById(R.id.empty_list_view); + emptyContentView.setImage(R.drawable.empty_contacts); + emptyContentView.setActionClickedListener(this); if (PermissionsUtil.hasContactsReadPermissions(getContext())) { getLoaderManager().initLoader(0, null, this); + } else { + emptyContentView.setDescription(R.string.permission_no_contacts); + emptyContentView.setActionLabel(R.string.permission_single_turn_on); + emptyContentView.setVisibility(View.VISIBLE); } return view; } + /** @return a loader according to sort order and display order. */ @Override public Loader<Cursor> onCreateLoader(int id, Bundle args) { - return new ContactsCursorLoader(getContext()); + boolean sortOrderPrimary = + (contactsPrefs.getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY); + boolean displayOrderPrimary = + (contactsPrefs.getDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_PRIMARY); + + String sortKey = sortOrderPrimary ? Contacts.SORT_KEY_PRIMARY : Contacts.SORT_KEY_ALTERNATIVE; + return displayOrderPrimary + ? ContactsCursorLoader.createInstanceDisplayNamePrimary(getContext(), sortKey) + : ContactsCursorLoader.createInstanceDisplayNameAlternative(getContext(), sortKey); } @Override public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) { - // TODO setup fast scroller. - adapter = new ContactsAdapter(getContext(), cursor); - recyclerView.setAdapter(adapter); - if (adapter.getItemCount() > 1) { - recyclerView.setOnScrollChangeListener(this); + if (cursor.getCount() == 0) { + emptyContentView.setDescription(R.string.all_contacts_empty); + emptyContentView.setActionLabel(R.string.all_contacts_empty_add_contact_action); + emptyContentView.setVisibility(View.VISIBLE); + } else { + emptyContentView.setVisibility(View.GONE); + adapter = new ContactsAdapter(getContext(), cursor); + manager = + new LinearLayoutManager(getContext()) { + @Override + public void onLayoutChildren(Recycler recycler, State state) { + super.onLayoutChildren(recycler, state); + int itemsShown = findLastVisibleItemPosition() - findFirstVisibleItemPosition() + 1; + if (adapter.getItemCount() > itemsShown) { + fastScroller.setVisibility(View.VISIBLE); + recyclerView.setOnScrollChangeListener(ContactsFragment.this); + } else { + fastScroller.setVisibility(View.GONE); + } + } + }; + + recyclerView.setLayoutManager(manager); + recyclerView.setAdapter(adapter); + fastScroller.setup(adapter, manager); } } @@ -81,6 +143,7 @@ public class ContactsFragment extends Fragment recyclerView.setAdapter(null); recyclerView.setOnScrollChangeListener(null); adapter = null; + contactsPrefs.unregisterChangeListener(); } /* @@ -95,8 +158,10 @@ public class ContactsFragment extends Fragment */ @Override public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) { + fastScroller.updateContainerAndScrollBarPosition(recyclerView); int firstVisibleItem = manager.findFirstVisibleItemPosition(); int firstCompletelyVisible = manager.findFirstCompletelyVisibleItemPosition(); + String anchoredHeaderString = adapter.getHeaderString(firstCompletelyVisible); // If the user swipes to the top of the list very quickly, there is some strange behavior // between this method updating headers and adapter#onBindViewHolder updating headers. @@ -104,15 +169,46 @@ public class ContactsFragment extends Fragment if (firstVisibleItem == firstCompletelyVisible && firstVisibleItem == 0) { adapter.refreshHeaders(); anchoredHeader.setVisibility(View.INVISIBLE); + } else if (adapter.getHeaderString(firstVisibleItem).equals(anchoredHeaderString)) { + anchoredHeader.setText(anchoredHeaderString); + anchoredHeader.setVisibility(View.VISIBLE); + getContactHolder(firstVisibleItem).getHeaderView().setVisibility(View.INVISIBLE); + getContactHolder(firstCompletelyVisible).getHeaderView().setVisibility(View.INVISIBLE); } else { - boolean showAnchor = - adapter.getHeader(firstVisibleItem).equals(adapter.getHeader(firstCompletelyVisible)); - anchoredHeader.setText(adapter.getHeader(firstCompletelyVisible)); - anchoredHeader.setVisibility(showAnchor ? View.VISIBLE : View.INVISIBLE); - - int rowHeaderVisibility = showAnchor ? View.INVISIBLE : View.VISIBLE; - adapter.setHeaderVisibility(firstVisibleItem, rowHeaderVisibility); - adapter.setHeaderVisibility(firstCompletelyVisible, rowHeaderVisibility); + anchoredHeader.setVisibility(View.INVISIBLE); + getContactHolder(firstVisibleItem).getHeaderView().setVisibility(View.VISIBLE); + getContactHolder(firstCompletelyVisible).getHeaderView().setVisibility(View.VISIBLE); + } + } + + private ContactViewHolder getContactHolder(int position) { + return ((ContactViewHolder) recyclerView.findViewHolderForAdapterPosition(position)); + } + + @Override + public void onEmptyViewActionButtonClicked() { + if (emptyContentView.getActionLabel() == R.string.permission_single_turn_on) { + FragmentCompat.requestPermissions( + this, new String[] {permission.READ_CONTACTS}, READ_CONTACTS_PERMISSION_REQUEST_CODE); + } else if (emptyContentView.getActionLabel() + == R.string.all_contacts_empty_add_contact_action) { + // Add new contact + DialerUtils.startActivityWithErrorToast( + getContext(), IntentUtil.getNewContactIntent(), R.string.add_contact_not_available); + } else { + throw Assert.createIllegalStateFailException("Invalid empty content view action label."); + } + } + + @Override + public void onRequestPermissionsResult( + int requestCode, String[] permissions, int[] grantResults) { + if (requestCode == READ_CONTACTS_PERMISSION_REQUEST_CODE) { + if (grantResults.length >= 1 && PackageManager.PERMISSION_GRANTED == grantResults[0]) { + // Force a refresh of the data since we were missing the permission before this. + emptyContentView.setVisibility(View.GONE); + getLoaderManager().initLoader(0, null, this); + } } } } diff --git a/java/com/android/dialer/contactsfragment/FastScroller.java b/java/com/android/dialer/contactsfragment/FastScroller.java new file mode 100644 index 000000000..980032cb5 --- /dev/null +++ b/java/com/android/dialer/contactsfragment/FastScroller.java @@ -0,0 +1,129 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.dialer.contactsfragment; + +import android.content.Context; +import android.support.annotation.NonNull; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.AttributeSet; +import android.view.MotionEvent; +import android.view.View; +import android.widget.RelativeLayout; +import android.widget.TextView; + +/** Widget to add fast scrolling to {@link ContactsFragment}. */ +public class FastScroller extends RelativeLayout { + + private final int touchTargetWidth; + + private ContactsAdapter adapter; + private LinearLayoutManager layoutManager; + + private TextView container; + private View scrollBar; + + private boolean dragStarted; + + public FastScroller(Context context, AttributeSet attrs) { + super(context, attrs); + touchTargetWidth = + context.getResources().getDimensionPixelSize(R.dimen.fast_scroller_touch_target_width); + } + + @Override + protected void onFinishInflate() { + super.onFinishInflate(); + container = (TextView) findViewById(R.id.fast_scroller_container); + scrollBar = findViewById(R.id.fast_scroller_scroll_bar); + } + + void setup(ContactsAdapter adapter, LinearLayoutManager layoutManager) { + this.adapter = adapter; + this.layoutManager = layoutManager; + } + + @Override + public boolean onTouchEvent(@NonNull MotionEvent event) { + // Don't override if touch event isn't within desired touch target and dragging hasn't started. + if (!dragStarted && getWidth() - touchTargetWidth - event.getX() > 0) { + return super.onTouchEvent(event); + } + + switch (event.getAction()) { + case MotionEvent.ACTION_DOWN: + dragStarted = true; + container.setVisibility(VISIBLE); + scrollBar.setSelected(true); + // fall through + case MotionEvent.ACTION_MOVE: + setContainerAndScrollBarPosition(event.getY()); + setRecyclerViewPosition(event.getY()); + return true; + case MotionEvent.ACTION_UP: + case MotionEvent.ACTION_CANCEL: + dragStarted = false; + container.setVisibility(INVISIBLE); + scrollBar.setSelected(false); + return true; + } + return super.onTouchEvent(event); + } + + private void setRecyclerViewPosition(float y) { + final int itemCount = adapter.getItemCount(); + float scrolledPosition = getScrolledPercentage(y) * (float) itemCount; + int targetPos = getValueInRange(0, itemCount - 1, (int) scrolledPosition); + layoutManager.scrollToPositionWithOffset(targetPos, 0); + container.setText(adapter.getHeaderString(targetPos)); + } + + // Returns a float in range [0, 1] which represents the position of the scroller. + private float getScrolledPercentage(float y) { + if (scrollBar.getY() == 0) { + return 0f; + } else if (scrollBar.getY() + scrollBar.getHeight() >= getHeight()) { + return 1f; + } else { + return y / (float) getHeight(); + } + } + + private int getValueInRange(int min, int max, int value) { + int minimum = Math.max(min, value); + return Math.min(minimum, max); + } + + void updateContainerAndScrollBarPosition(RecyclerView recyclerView) { + if (!scrollBar.isSelected()) { + int verticalScrollOffset = recyclerView.computeVerticalScrollOffset(); + int verticalScrollRange = recyclerView.computeVerticalScrollRange(); + float proportion = (float) verticalScrollOffset / ((float) verticalScrollRange - getHeight()); + setContainerAndScrollBarPosition(getHeight() * proportion); + } + } + + private void setContainerAndScrollBarPosition(float y) { + int scrollBarHeight = scrollBar.getHeight(); + int containerHeight = container.getHeight(); + scrollBar.setY( + getValueInRange(0, getHeight() - scrollBarHeight, (int) (y - scrollBarHeight / 2))); + container.setY( + getValueInRange( + 0, getHeight() - containerHeight - scrollBarHeight / 2, (int) (y - containerHeight))); + } +} diff --git a/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_container_background.xml b/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_container_background.xml new file mode 100644 index 000000000..a7b227799 --- /dev/null +++ b/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_container_background.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> +<shape xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="rectangle"> + <solid android:color="@color/dialer_theme_color"/> + <size + android:height="@dimen/fast_scroller_container_size" + android:width="@dimen/fast_scroller_container_size"/> + <corners + android:topLeftRadius="@dimen/fast_scroller_container_corner_radius" + android:topRightRadius="@dimen/fast_scroller_container_corner_radius" + android:bottomLeftRadius="@dimen/fast_scroller_bottom_left_corner_radius" + android:bottomRightRadius="@dimen/fast_scroller_bottom_right_corner_radius"/> +</shape>
\ No newline at end of file diff --git a/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_scroll_bar.xml b/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_scroll_bar.xml new file mode 100644 index 000000000..a3e0c25c7 --- /dev/null +++ b/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_scroll_bar.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:state_selected="true"> + <shape android:shape="rectangle"> + <solid android:color="@color/dialer_theme_color"/> + <size android:height="32dp" android:width="4dp"/> + <corners android:radius="2dp"/> + </shape> + </item> + <item> + <shape android:shape="rectangle"> + <solid android:color="@color/dialer_secondary_text_color"/> + <size android:height="32dp" android:width="4dp"/> + <corners android:radius="2dp"/> + </shape> + </item> +</selector>
\ No newline at end of file diff --git a/java/com/android/dialer/contactsfragment/res/layout/contact_row.xml b/java/com/android/dialer/contactsfragment/res/layout/contact_row.xml index af87c7f18..9e829fee4 100644 --- a/java/com/android/dialer/contactsfragment/res/layout/contact_row.xml +++ b/java/com/android/dialer/contactsfragment/res/layout/contact_row.xml @@ -43,11 +43,13 @@ <TextView android:id="@+id/contact_name" - android:layout_width="match_parent" + android:layout_width="wrap_content" android:layout_height="match_parent" android:paddingStart="@dimen/text_padding_start" android:paddingEnd="@dimen/text_padding_end" - android:gravity="center_vertical|start" + android:maxLines="1" + android:ellipsize="end" + android:gravity="center_vertical" android:textSize="@dimen/text_size" android:textColor="@color/dialer_primary_text_color" android:fontFamily="sans-serif"/> diff --git a/java/com/android/dialer/contactsfragment/res/layout/fragment_contacts.xml b/java/com/android/dialer/contactsfragment/res/layout/fragment_contacts.xml index 67b490f03..7cbc4f0e6 100644 --- a/java/com/android/dialer/contactsfragment/res/layout/fragment_contacts.xml +++ b/java/com/android/dialer/contactsfragment/res/layout/fragment_contacts.xml @@ -23,8 +23,46 @@ android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/background_dialer_white"/> + android:background="@color/background_dialer_light"/> + + <!-- Scrollbars are always on the right side of the screen. Layouts should use Rights/Left instead + of Start/End --> + <com.android.dialer.contactsfragment.FastScroller + android:id="@+id/fast_scroller" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_marginTop="8dp" + android:layout_marginBottom="8dp" + android:clipChildren="false"> + + <TextView + android:id="@+id/fast_scroller_container" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_toLeftOf="@+id/fast_scroller_scroll_bar" + android:gravity="center" + android:textSize="48sp" + android:textColor="@color/background_dialer_white" + android:visibility="gone" + android:background="@drawable/fast_scroller_container_background"/> + + <ImageView + android:id="@+id/fast_scroller_scroll_bar" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginLeft="8dp" + android:layout_alignParentRight="true" + android:paddingRight="16dp" + android:src="@drawable/fast_scroller_scroll_bar" /> + </com.android.dialer.contactsfragment.FastScroller> <!-- Anchored header view --> <include layout="@layout/header"/> + + <com.android.dialer.widget.EmptyContentView + android:id="@+id/empty_list_view" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:visibility="gone"/> </FrameLayout> diff --git a/java/com/android/dialer/contactsfragment/res/values/dimens.xml b/java/com/android/dialer/contactsfragment/res/values/dimens.xml index 00d7c6d7e..f120014e2 100644 --- a/java/com/android/dialer/contactsfragment/res/values/dimens.xml +++ b/java/com/android/dialer/contactsfragment/res/values/dimens.xml @@ -25,4 +25,11 @@ <dimen name="text_padding_start">16dp</dimen> <dimen name="text_padding_end">8dp</dimen> <dimen name="text_size">16sp</dimen> -</resources> + + <dimen name="fast_scroller_touch_target_width">20dp</dimen> + + <dimen name="fast_scroller_container_size">88dp</dimen> + <dimen name="fast_scroller_container_corner_radius">44dp</dimen> + <dimen name="fast_scroller_bottom_right_corner_radius">0px</dimen> + <dimen name="fast_scroller_bottom_left_corner_radius">44dp</dimen> +</resources>
\ No newline at end of file diff --git a/java/com/android/dialer/database/DialerDatabaseHelper.java b/java/com/android/dialer/database/DialerDatabaseHelper.java index 348814281..6dd7cf462 100644 --- a/java/com/android/dialer/database/DialerDatabaseHelper.java +++ b/java/com/android/dialer/database/DialerDatabaseHelper.java @@ -34,6 +34,7 @@ import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Data; import android.provider.ContactsContract.Directory; import android.support.annotation.VisibleForTesting; +import android.support.annotation.WorkerThread; import android.text.TextUtils; import com.android.contacts.common.R; import com.android.contacts.common.util.StopWatch; @@ -46,7 +47,6 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.Objects; import java.util.Set; -import java.util.concurrent.atomic.AtomicBoolean; /** * Database helper for smart dial. Designed as a singleton to make sure there is only one access @@ -77,8 +77,6 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper { private static final int MAX_ENTRIES = 20; private final Context mContext; - private final Object mLock = new Object(); - private final AtomicBoolean mInUpdate = new AtomicBoolean(false); private boolean mIsTestInstance = false; protected DialerDatabaseHelper(Context context, String databaseName, int dbVersion) { @@ -596,218 +594,212 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper { * accordingly. It also queries the deleted contact database to remove newly deleted contacts * since last update. */ - public void updateSmartDialDatabase() { + @WorkerThread + public synchronized void updateSmartDialDatabase() { LogUtil.enterBlock("DialerDatabaseHelper.updateSmartDialDatabase"); final SQLiteDatabase db = getWritableDatabase(); - synchronized (mLock) { - LogUtil.v("DialerDatabaseHelper.updateSmartDialDatabase", "starting to update database"); - final StopWatch stopWatch = DEBUG ? StopWatch.start("Updating databases") : null; + LogUtil.v("DialerDatabaseHelper.updateSmartDialDatabase", "starting to update database"); + final StopWatch stopWatch = DEBUG ? StopWatch.start("Updating databases") : null; - /** Gets the last update time on the database. */ - final SharedPreferences databaseLastUpdateSharedPref = - mContext.getSharedPreferences(DATABASE_LAST_CREATED_SHARED_PREF, Context.MODE_PRIVATE); - final String lastUpdateMillis = - String.valueOf(databaseLastUpdateSharedPref.getLong(LAST_UPDATED_MILLIS, 0)); - - LogUtil.v( - "DialerDatabaseHelper.updateSmartDialDatabase", "last updated at " + lastUpdateMillis); - - /** Sets the time after querying the database as the current update time. */ - final Long currentMillis = System.currentTimeMillis(); + /** Gets the last update time on the database. */ + final SharedPreferences databaseLastUpdateSharedPref = + mContext.getSharedPreferences(DATABASE_LAST_CREATED_SHARED_PREF, Context.MODE_PRIVATE); + final String lastUpdateMillis = + String.valueOf(databaseLastUpdateSharedPref.getLong(LAST_UPDATED_MILLIS, 0)); - if (DEBUG) { - stopWatch.lap("Queried the Contacts database"); - } + LogUtil.v( + "DialerDatabaseHelper.updateSmartDialDatabase", "last updated at " + lastUpdateMillis); - /** Prevents the app from reading the dialer database when updating. */ - mInUpdate.getAndSet(true); + /** Sets the time after querying the database as the current update time. */ + final Long currentMillis = System.currentTimeMillis(); - /** Removes contacts that have been deleted. */ - removeDeletedContacts(db, getDeletedContactCursor(lastUpdateMillis)); - removePotentiallyCorruptedContacts(db, lastUpdateMillis); + if (DEBUG) { + stopWatch.lap("Queried the Contacts database"); + } - if (DEBUG) { - stopWatch.lap("Finished deleting deleted entries"); - } + /** Removes contacts that have been deleted. */ + removeDeletedContacts(db, getDeletedContactCursor(lastUpdateMillis)); + removePotentiallyCorruptedContacts(db, lastUpdateMillis); - /** - * If the database did not exist before, jump through deletion as there is nothing to delete. - */ - if (!lastUpdateMillis.equals("0")) { - /** - * Removes contacts that have been updated. Updated contact information will be inserted - * later. Note that this has to use a separate result set from updatePhoneCursor, since it - * is possible for a contact to be updated (e.g. phone number deleted), but have no results - * show up in updatedPhoneCursor (since all of its phone numbers have been deleted). - */ - final Cursor updatedContactCursor = - mContext - .getContentResolver() - .query( - UpdatedContactQuery.URI, - UpdatedContactQuery.PROJECTION, - UpdatedContactQuery.SELECT_UPDATED_CLAUSE, - new String[] {lastUpdateMillis}, - null); - if (updatedContactCursor == null) { - LogUtil.e( - "DialerDatabaseHelper.updateSmartDialDatabase", - "smartDial query received null for cursor"); - return; - } - try { - removeUpdatedContacts(db, updatedContactCursor); - } finally { - updatedContactCursor.close(); - } - if (DEBUG) { - stopWatch.lap("Finished deleting entries belonging to updated contacts"); - } - } + if (DEBUG) { + stopWatch.lap("Finished deleting deleted entries"); + } + /** + * If the database did not exist before, jump through deletion as there is nothing to delete. + */ + if (!lastUpdateMillis.equals("0")) { /** - * Queries the contact database to get all phone numbers that have been updated since the last - * update time. + * Removes contacts that have been updated. Updated contact information will be inserted + * later. Note that this has to use a separate result set from updatePhoneCursor, since it is + * possible for a contact to be updated (e.g. phone number deleted), but have no results show + * up in updatedPhoneCursor (since all of its phone numbers have been deleted). */ - final Cursor updatedPhoneCursor = + final Cursor updatedContactCursor = mContext .getContentResolver() .query( - PhoneQuery.URI, - PhoneQuery.PROJECTION, - PhoneQuery.SELECTION, + UpdatedContactQuery.URI, + UpdatedContactQuery.PROJECTION, + UpdatedContactQuery.SELECT_UPDATED_CLAUSE, new String[] {lastUpdateMillis}, null); - if (updatedPhoneCursor == null) { + if (updatedContactCursor == null) { LogUtil.e( "DialerDatabaseHelper.updateSmartDialDatabase", "smartDial query received null for cursor"); return; } - try { - /** Inserts recently updated phone numbers to the smartdial database. */ - insertUpdatedContactsAndNumberPrefix(db, updatedPhoneCursor, currentMillis); - if (DEBUG) { - stopWatch.lap("Finished building the smart dial table"); - } + removeUpdatedContacts(db, updatedContactCursor); } finally { - updatedPhoneCursor.close(); + updatedContactCursor.close(); } - - /** - * Gets a list of distinct contacts which have been updated, and adds the name prefixes of - * these contacts to the prefix table. - */ - final Cursor nameCursor = - db.rawQuery( - "SELECT DISTINCT " - + SmartDialDbColumns.DISPLAY_NAME_PRIMARY - + ", " - + SmartDialDbColumns.CONTACT_ID - + " FROM " - + Tables.SMARTDIAL_TABLE - + " WHERE " - + SmartDialDbColumns.LAST_SMARTDIAL_UPDATE_TIME - + " = " - + Long.toString(currentMillis), - new String[] {}); - if (nameCursor != null) { - try { - if (DEBUG) { - stopWatch.lap("Queried the smart dial table for contact names"); - } - - /** Inserts prefixes of names into the prefix table. */ - insertNamePrefixes(db, nameCursor); - if (DEBUG) { - stopWatch.lap("Finished building the name prefix table"); - } - } finally { - nameCursor.close(); - } + if (DEBUG) { + stopWatch.lap("Finished deleting entries belonging to updated contacts"); } + } - /** Creates index on contact_id for fast JOIN operation. */ - db.execSQL( - "CREATE INDEX IF NOT EXISTS smartdial_contact_id_index ON " - + Tables.SMARTDIAL_TABLE - + " (" - + SmartDialDbColumns.CONTACT_ID - + ");"); - /** Creates index on last_smartdial_update_time for fast SELECT operation. */ - db.execSQL( - "CREATE INDEX IF NOT EXISTS smartdial_last_update_index ON " - + Tables.SMARTDIAL_TABLE - + " (" - + SmartDialDbColumns.LAST_SMARTDIAL_UPDATE_TIME - + ");"); - /** Creates index on sorting fields for fast sort operation. */ - db.execSQL( - "CREATE INDEX IF NOT EXISTS smartdial_sort_index ON " - + Tables.SMARTDIAL_TABLE - + " (" - + SmartDialDbColumns.STARRED - + ", " - + SmartDialDbColumns.IS_SUPER_PRIMARY - + ", " - + SmartDialDbColumns.LAST_TIME_USED - + ", " - + SmartDialDbColumns.TIMES_USED - + ", " - + SmartDialDbColumns.IN_VISIBLE_GROUP - + ", " - + SmartDialDbColumns.DISPLAY_NAME_PRIMARY - + ", " - + SmartDialDbColumns.CONTACT_ID - + ", " - + SmartDialDbColumns.IS_PRIMARY - + ");"); - /** Creates index on prefix for fast SELECT operation. */ - db.execSQL( - "CREATE INDEX IF NOT EXISTS nameprefix_index ON " - + Tables.PREFIX_TABLE - + " (" - + PrefixColumns.PREFIX - + ");"); - /** Creates index on contact_id for fast JOIN operation. */ - db.execSQL( - "CREATE INDEX IF NOT EXISTS nameprefix_contact_id_index ON " - + Tables.PREFIX_TABLE - + " (" - + PrefixColumns.CONTACT_ID - + ");"); + /** + * Queries the contact database to get all phone numbers that have been updated since the last + * update time. + */ + final Cursor updatedPhoneCursor = + mContext + .getContentResolver() + .query( + PhoneQuery.URI, + PhoneQuery.PROJECTION, + PhoneQuery.SELECTION, + new String[] {lastUpdateMillis}, + null); + if (updatedPhoneCursor == null) { + LogUtil.e( + "DialerDatabaseHelper.updateSmartDialDatabase", + "smartDial query received null for cursor"); + return; + } + try { + /** Inserts recently updated phone numbers to the smartdial database. */ + insertUpdatedContactsAndNumberPrefix(db, updatedPhoneCursor, currentMillis); if (DEBUG) { - stopWatch.lap(TAG + "Finished recreating index"); + stopWatch.lap("Finished building the smart dial table"); } + } finally { + updatedPhoneCursor.close(); + } - /** Updates the database index statistics. */ - db.execSQL("ANALYZE " + Tables.SMARTDIAL_TABLE); - db.execSQL("ANALYZE " + Tables.PREFIX_TABLE); - db.execSQL("ANALYZE smartdial_contact_id_index"); - db.execSQL("ANALYZE smartdial_last_update_index"); - db.execSQL("ANALYZE nameprefix_index"); - db.execSQL("ANALYZE nameprefix_contact_id_index"); - if (DEBUG) { - stopWatch.stopAndLog(TAG + "Finished updating index stats", 0); - } + /** + * Gets a list of distinct contacts which have been updated, and adds the name prefixes of these + * contacts to the prefix table. + */ + final Cursor nameCursor = + db.rawQuery( + "SELECT DISTINCT " + + SmartDialDbColumns.DISPLAY_NAME_PRIMARY + + ", " + + SmartDialDbColumns.CONTACT_ID + + " FROM " + + Tables.SMARTDIAL_TABLE + + " WHERE " + + SmartDialDbColumns.LAST_SMARTDIAL_UPDATE_TIME + + " = " + + currentMillis, + new String[] {}); + if (nameCursor != null) { + try { + if (DEBUG) { + stopWatch.lap("Queried the smart dial table for contact names"); + } - mInUpdate.getAndSet(false); + /** Inserts prefixes of names into the prefix table. */ + insertNamePrefixes(db, nameCursor); + if (DEBUG) { + stopWatch.lap("Finished building the name prefix table"); + } + } finally { + nameCursor.close(); + } + } - final SharedPreferences.Editor editor = databaseLastUpdateSharedPref.edit(); - editor.putLong(LAST_UPDATED_MILLIS, currentMillis); - editor.apply(); + /** Creates index on contact_id for fast JOIN operation. */ + db.execSQL( + "CREATE INDEX IF NOT EXISTS smartdial_contact_id_index ON " + + Tables.SMARTDIAL_TABLE + + " (" + + SmartDialDbColumns.CONTACT_ID + + ");"); + /** Creates index on last_smartdial_update_time for fast SELECT operation. */ + db.execSQL( + "CREATE INDEX IF NOT EXISTS smartdial_last_update_index ON " + + Tables.SMARTDIAL_TABLE + + " (" + + SmartDialDbColumns.LAST_SMARTDIAL_UPDATE_TIME + + ");"); + /** Creates index on sorting fields for fast sort operation. */ + db.execSQL( + "CREATE INDEX IF NOT EXISTS smartdial_sort_index ON " + + Tables.SMARTDIAL_TABLE + + " (" + + SmartDialDbColumns.STARRED + + ", " + + SmartDialDbColumns.IS_SUPER_PRIMARY + + ", " + + SmartDialDbColumns.LAST_TIME_USED + + ", " + + SmartDialDbColumns.TIMES_USED + + ", " + + SmartDialDbColumns.IN_VISIBLE_GROUP + + ", " + + SmartDialDbColumns.DISPLAY_NAME_PRIMARY + + ", " + + SmartDialDbColumns.CONTACT_ID + + ", " + + SmartDialDbColumns.IS_PRIMARY + + ");"); + /** Creates index on prefix for fast SELECT operation. */ + db.execSQL( + "CREATE INDEX IF NOT EXISTS nameprefix_index ON " + + Tables.PREFIX_TABLE + + " (" + + PrefixColumns.PREFIX + + ");"); + /** Creates index on contact_id for fast JOIN operation. */ + db.execSQL( + "CREATE INDEX IF NOT EXISTS nameprefix_contact_id_index ON " + + Tables.PREFIX_TABLE + + " (" + + PrefixColumns.CONTACT_ID + + ");"); - LogUtil.i("DialerDatabaseHelper.updateSmartDialDatabase", "broadcasting smart dial update"); + if (DEBUG) { + stopWatch.lap(TAG + "Finished recreating index"); + } - // Notify content observers that smart dial database has been updated. - Intent intent = new Intent(ACTION_SMART_DIAL_UPDATED); - intent.setPackage(mContext.getPackageName()); - mContext.sendBroadcast(intent); + /** Updates the database index statistics. */ + db.execSQL("ANALYZE " + Tables.SMARTDIAL_TABLE); + db.execSQL("ANALYZE " + Tables.PREFIX_TABLE); + db.execSQL("ANALYZE smartdial_contact_id_index"); + db.execSQL("ANALYZE smartdial_last_update_index"); + db.execSQL("ANALYZE nameprefix_index"); + db.execSQL("ANALYZE nameprefix_contact_id_index"); + if (DEBUG) { + stopWatch.stopAndLog(TAG + "Finished updating index stats", 0); } + + final SharedPreferences.Editor editor = databaseLastUpdateSharedPref.edit(); + editor.putLong(LAST_UPDATED_MILLIS, currentMillis); + editor.apply(); + + LogUtil.i("DialerDatabaseHelper.updateSmartDialDatabase", "broadcasting smart dial update"); + + // Notify content observers that smart dial database has been updated. + Intent intent = new Intent(ACTION_SMART_DIAL_UPDATED); + intent.setPackage(mContext.getPackageName()); + mContext.sendBroadcast(intent); } /** @@ -817,12 +809,9 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper { * @param query The prefix of a contact's dialpad index. * @return A list of top candidate contacts that will be suggested to user to match their input. */ - public ArrayList<ContactNumber> getLooseMatches(String query, SmartDialNameMatcher nameMatcher) { - final boolean inUpdate = mInUpdate.get(); - if (inUpdate) { - return new ArrayList<>(); - } - + @WorkerThread + public synchronized ArrayList<ContactNumber> getLooseMatches( + String query, SmartDialNameMatcher nameMatcher) { final SQLiteDatabase db = getReadableDatabase(); /** Uses SQL query wildcard '%' to represent prefix matching. */ diff --git a/java/com/android/dialer/callcomposer/proto/call_composer_contact.proto b/java/com/android/dialer/dialercontact/dialer_contact.proto index 99766aac5..ee364c6e0 100644 --- a/java/com/android/dialer/callcomposer/proto/call_composer_contact.proto +++ b/java/com/android/dialer/dialercontact/dialer_contact.proto @@ -1,12 +1,12 @@ syntax = "proto2"; -option java_package = "com.android.dialer.callcomposer"; +option java_package = "com.android.dialer.dialercontact"; option java_multiple_files = true; option optimize_for = LITE_RUNTIME; package com.android.dialer.callcomposer; -message CallComposerContact { +message DialerContact { optional fixed64 photo_id = 1; optional string photo_uri = 2; optional string contact_uri = 3; diff --git a/java/com/android/dialer/dialpadview/res/values/dimens.xml b/java/com/android/dialer/dialpadview/res/values/dimens.xml index 210c81697..727736497 100644 --- a/java/com/android/dialer/dialpadview/res/values/dimens.xml +++ b/java/com/android/dialer/dialpadview/res/values/dimens.xml @@ -16,7 +16,7 @@ <resources> <!-- Text dimensions for dialpad keys --> - <dimen name="dialpad_key_numbers_default_size">36sp</dimen> + <dimen name="dialpad_key_numbers_default_size">36dp</dimen> <dimen name="dialpad_key_letters_size">12sp</dimen> <dimen name="dialpad_key_pound_size">23sp</dimen> <dimen name="dialpad_key_star_size">36sp</dimen> diff --git a/java/com/android/dialer/interactions/PhoneNumberInteraction.java b/java/com/android/dialer/interactions/PhoneNumberInteraction.java index 52f9d208f..ef468a9f3 100644 --- a/java/com/android/dialer/interactions/PhoneNumberInteraction.java +++ b/java/com/android/dialer/interactions/PhoneNumberInteraction.java @@ -54,11 +54,14 @@ import com.android.contacts.common.Collapser; import com.android.contacts.common.Collapser.Collapsible; import com.android.contacts.common.MoreContactUtils; import com.android.contacts.common.util.ContactDisplayUtils; +import com.android.dialer.callintent.CallInitiationType; import com.android.dialer.callintent.CallIntentBuilder; import com.android.dialer.callintent.CallIntentParser; import com.android.dialer.callintent.CallSpecificAppData; import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; +import com.android.dialer.logging.InteractionEvent; +import com.android.dialer.logging.Logger; import com.android.dialer.util.DialerUtils; import com.android.dialer.util.TransactionSafeActivity; import java.lang.annotation.Retention; @@ -543,6 +546,12 @@ public class PhoneNumberInteraction implements OnLoadCompleteListener<Cursor> { final PhoneItem phoneItem = mPhoneList.get(which); final CheckBox checkBox = (CheckBox) alertDialog.findViewById(R.id.setPrimary); if (checkBox.isChecked()) { + if (mCallSpecificAppData.getCallInitiationType() == CallInitiationType.Type.SPEED_DIAL) { + Logger.get(getContext()) + .logInteraction( + InteractionEvent.Type.SPEED_DIAL_SET_DEFAULT_NUMBER_FOR_AMBIGUOUS_CONTACT); + } + // Request to mark the data as primary in the background. final Intent serviceIntent = ContactUpdateService.createSetSuperPrimaryIntent(activity, phoneItem.id); diff --git a/java/com/android/dialer/location/CountryDetector.java b/java/com/android/dialer/location/CountryDetector.java index a90febf2b..c4bed14d0 100644 --- a/java/com/android/dialer/location/CountryDetector.java +++ b/java/com/android/dialer/location/CountryDetector.java @@ -33,8 +33,8 @@ import android.telephony.TelephonyManager; import android.text.TextUtils; import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; -import com.android.dialer.common.concurrent.DialerExecutors; import com.android.dialer.common.concurrent.DialerExecutor.Worker; +import com.android.dialer.common.concurrent.DialerExecutorComponent; import com.android.dialer.util.PermissionsUtil; import java.util.List; import java.util.Locale; @@ -216,7 +216,9 @@ public class CountryDetector { private static void processLocationUpdate( Context appContext, Geocoder geocoder, Location location) { - DialerExecutors.createNonUiTaskBuilder(new GeocodeCountryWorker(geocoder)) + DialerExecutorComponent.get(appContext) + .dialerExecutorFactory() + .createNonUiTaskBuilder(new GeocodeCountryWorker(geocoder)) .onSuccess( country -> { if (country == null) { diff --git a/java/com/android/dialer/logging/LoggingBindings.java b/java/com/android/dialer/logging/LoggingBindings.java index 526cb2088..4a98d9e7d 100644 --- a/java/com/android/dialer/logging/LoggingBindings.java +++ b/java/com/android/dialer/logging/LoggingBindings.java @@ -14,8 +14,8 @@ package com.android.dialer.logging; - import android.app.Activity; +import android.widget.QuickContactBadge; /** Allows the container application to gather analytics. */ public interface LoggingBindings { @@ -62,6 +62,22 @@ public interface LoggingBindings { */ void logScreenView(com.android.dialer.logging.ScreenEvent.Type screenEvent, Activity activity); + /** Logs the composition of contact tiles in the speed dial tab. */ + void logSpeedDialContactComposition( + int counter, + int starredContactsCount, + int pinnedContactsCount, + int multipleNumbersContactsCount, + int contactsWithPhotoCount, + int contactsWithNameCount, + int duoReachableContactCount); + /** Logs a hit event to the analytics server. */ void sendHitEventAnalytics(String category, String action, String label, long value); + + /** Logs where a quick contact badge is clicked */ + void logQuickContactOnTouch( + QuickContactBadge quickContact, + InteractionEvent.Type interactionEvent, + boolean shouldPerformClick); } diff --git a/java/com/android/dialer/logging/LoggingBindingsStub.java b/java/com/android/dialer/logging/LoggingBindingsStub.java index f7ca6ecb0..dd3b8ac61 100644 --- a/java/com/android/dialer/logging/LoggingBindingsStub.java +++ b/java/com/android/dialer/logging/LoggingBindingsStub.java @@ -15,6 +15,7 @@ package com.android.dialer.logging; import android.app.Activity; +import android.widget.QuickContactBadge; /** Default implementation for logging bindings. */ public class LoggingBindingsStub implements LoggingBindings { @@ -36,5 +37,21 @@ public class LoggingBindingsStub implements LoggingBindings { public void logScreenView(ScreenEvent.Type screenEvent, Activity activity) {} @Override + public void logSpeedDialContactComposition( + int counter, + int starredContactsCount, + int pinnedContactsCount, + int multipleNumbersContactsCount, + int contactsWithPhotoCount, + int contactsWithNameCount, + int duoReachableContactsCount) {} + + @Override public void sendHitEventAnalytics(String category, String action, String label, long value) {} + + @Override + public void logQuickContactOnTouch( + QuickContactBadge quickContact, + InteractionEvent.Type interactionEvent, + boolean shouldPerformClick) {} } diff --git a/java/com/android/dialer/logging/contact_lookup_result.proto b/java/com/android/dialer/logging/contact_lookup_result.proto index 835d7d7dc..c9624aff1 100644 --- a/java/com/android/dialer/logging/contact_lookup_result.proto +++ b/java/com/android/dialer/logging/contact_lookup_result.proto @@ -5,6 +5,7 @@ option java_package = "com.android.dialer.logging"; option java_multiple_files = true; option optimize_for = LITE_RUNTIME; + message ContactLookupResult { // The different results of a contact lookup done using a phone number. enum Type { diff --git a/java/com/android/dialer/logging/contact_source.proto b/java/com/android/dialer/logging/contact_source.proto index 470cf8bd7..ffd32de0e 100644 --- a/java/com/android/dialer/logging/contact_source.proto +++ b/java/com/android/dialer/logging/contact_source.proto @@ -5,6 +5,7 @@ option java_package = "com.android.dialer.logging"; option java_multiple_files = true; option optimize_for = LITE_RUNTIME; + message ContactSource { // Applies only to reports made from call history. If we have contact // information for the phone number, this field indicates its source. diff --git a/java/com/android/dialer/logging/dialer_impression.proto b/java/com/android/dialer/logging/dialer_impression.proto index 541614623..1d8c828ff 100644 --- a/java/com/android/dialer/logging/dialer_impression.proto +++ b/java/com/android/dialer/logging/dialer_impression.proto @@ -5,11 +5,12 @@ option java_package = "com.android.dialer.logging"; option java_multiple_files = true; option optimize_for = LITE_RUNTIME; + message DialerImpression { // Event enums to be used for Impression Logging in Dialer. // It's perfectly acceptable for this enum to be large // Values should be from 1000 to 100000. - // Next Tag:1191 + // Next Tag:1196 enum Type { UNKNOWN_AOSP_EVENT_TYPE = 1000; @@ -386,5 +387,21 @@ message DialerImpression { VVM_STATUS_CHECK_REACTIVATION = 1189; VVM_ARCHIVE_AUTO_DELETE_FAILED_DUE_TO_FAILED_QUOTA_CHECK = 1190; + + // User pressed the speaker phone button on the return-to-call bubble + BUBBLE_TURN_ON_SPEAKERPHONE = 1191; + // User pressed the speaker phone button again on the return-to-call bubble + BUBBLE_TURN_ON_WIRED_OR_EARPIECE = 1192; + // User muted the call from the return-to-call bubble + BUBBLE_MUTE_CALL = 1193; + // User unmuted the call from the return-to-call bubble + BUBBLE_UNMUTE_CALL = 1194; + // User ended the call from the return-to-call bubble + BUBBLE_END_CALL = 1195; + + LIGHTBRINGER_VIDEO_REQUESTED_FROM_SEARCH = 1196; + LIGHTBRINGER_VIDEO_REQUESTED_FROM_CALL_LOG = 1197; + IMS_VIDEO_REQUESTED_FROM_SEARCH = 1198; + IMS_VIDEO_REQUESTED_FROM_CALL_LOG = 1199; } } diff --git a/java/com/android/dialer/logging/interaction_event.proto b/java/com/android/dialer/logging/interaction_event.proto index b9af1b763..89cf46fc9 100644 --- a/java/com/android/dialer/logging/interaction_event.proto +++ b/java/com/android/dialer/logging/interaction_event.proto @@ -5,7 +5,9 @@ option java_package = "com.android.dialer.logging"; option java_multiple_files = true; option optimize_for = LITE_RUNTIME; + message InteractionEvent { + // Next Tag: 38 enum Type { UNKNOWN = 0; @@ -41,5 +43,23 @@ message InteractionEvent { // The user unblocked a number then undid the unblock UNDO_UNBLOCK_NUMBER = 24; + + // Actions in speed dial + SPEED_DIAL_PIN_CONTACT = 25; + SPEED_DIAL_REMOVE_CONTACT = 26; + SPEED_DIAL_OPEN_CONTACT_CARD = 27; + SPEED_DIAL_CLICK_CONTACT_WITH_AMBIGUOUS_NUMBER = 28; + + SPEED_DIAL_SET_DEFAULT_NUMBER_FOR_AMBIGUOUS_CONTACT = 29; + + // Open quick contact from where + OPEN_QUICK_CONTACT_FROM_CALL_LOG = 30; + OPEN_QUICK_CONTACT_FROM_CALL_DETAILS = 31; + OPEN_QUICK_CONTACT_FROM_ALL_CONTACTS_GENERAL = 32; + OPEN_QUICK_CONTACT_FROM_CONTACTS_FRAGMENT_BADGE = 33; + OPEN_QUICK_CONTACT_FROM_CONTACTS_FRAGMENT_ITEM = 34; + OPEN_QUICK_CONTACT_FROM_SEARCH = 35; + OPEN_QUICK_CONTACT_FROM_VOICEMAIL = 36; + OPEN_QUICK_CONTACT_FROM_CALL_HISTORY = 37; } } diff --git a/java/com/android/dialer/logging/reporting_location.proto b/java/com/android/dialer/logging/reporting_location.proto index 72869489c..d436564df 100644 --- a/java/com/android/dialer/logging/reporting_location.proto +++ b/java/com/android/dialer/logging/reporting_location.proto @@ -5,6 +5,7 @@ option java_package = "com.android.dialer.logging"; option java_multiple_files = true; option optimize_for = LITE_RUNTIME; + message ReportingLocation { // Spam reporting location enum Type { diff --git a/java/com/android/dialer/logging/screen_event.proto b/java/com/android/dialer/logging/screen_event.proto index 2430bfd5a..ca624774d 100644 --- a/java/com/android/dialer/logging/screen_event.proto +++ b/java/com/android/dialer/logging/screen_event.proto @@ -5,6 +5,7 @@ option java_package = "com.android.dialer.logging"; option java_multiple_files = true; option optimize_for = LITE_RUNTIME; + message ScreenEvent { enum Type { diff --git a/java/com/android/dialer/multimedia/MultimediaData.java b/java/com/android/dialer/multimedia/MultimediaData.java index 22bb7641c..dee0cff0b 100644 --- a/java/com/android/dialer/multimedia/MultimediaData.java +++ b/java/com/android/dialer/multimedia/MultimediaData.java @@ -20,6 +20,7 @@ import android.location.Location; import android.net.Uri; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.text.TextUtils; import com.android.dialer.common.LogUtil; import com.google.auto.value.AutoValue; @@ -63,6 +64,11 @@ public abstract class MultimediaData { /** Returns {@code true} if this data is marked as important. */ public abstract boolean isImportant(); + /** Returns true if this has image, text or location data. */ + public boolean hasData() { + return hasImageData() || !TextUtils.isEmpty(getText()) || getLocation() != null; + } + /** Returns the string form of this MultimediaData with no PII. */ @Override public String toString() { diff --git a/java/com/android/dialer/oem/CequintCallerIdManager.java b/java/com/android/dialer/oem/CequintCallerIdManager.java index 095ee4e66..806d553eb 100644 --- a/java/com/android/dialer/oem/CequintCallerIdManager.java +++ b/java/com/android/dialer/oem/CequintCallerIdManager.java @@ -18,7 +18,6 @@ package com.android.dialer.oem; import android.annotation.TargetApi; import android.content.Context; import android.content.pm.PackageManager; -import android.database.ContentObserver; import android.database.Cursor; import android.net.Uri; import android.os.Build.VERSION_CODES; @@ -31,7 +30,6 @@ import android.text.TextUtils; import com.android.dialer.common.Assert; import com.android.dialer.common.ConfigProviderBindings; import com.android.dialer.common.LogUtil; -import com.android.dialer.util.PermissionsUtil; import java.util.concurrent.ConcurrentHashMap; /** @@ -73,17 +71,12 @@ public class CequintCallerIdManager { private static final String IMAGE = "cid_pLogo"; private static final String DISPLAY_NAME = "cid_pDisplayName"; - // TODO: Revisit it and maybe remove it if it's not necessary. - private static final ConcurrentHashMap<String, CequintCallerIdContact> callLogCache = - new ConcurrentHashMap<>(); - private static final ConcurrentHashMap<String, CequintCallerIdContact> incallIncomingCallCache = - new ConcurrentHashMap<>(); - private static final ConcurrentHashMap<String, CequintCallerIdContact> incallOutgoingCallCache = - new ConcurrentHashMap<>(); - private static boolean hasRegisteredContentObserver; private static boolean hasAlreadyCheckedCequintCallerIdPackage; private static boolean isCequintCallerIdEnabled; + // TODO: Revisit it and maybe remove it if it's not necessary. + private final ConcurrentHashMap<String, CequintCallerIdContact> callLogCache; + /** Cequint caller id contact information. */ public static class CequintCallerIdContact { public final String name; @@ -117,27 +110,8 @@ public class CequintCallerIdManager { return isCequintCallerIdEnabled; } - @WorkerThread - @Nullable - public static CequintCallerIdContact getCequintCallerIdContact(Context context, String number) { - Assert.isWorkerThread(); - LogUtil.d( - "CequintCallerIdManager.getCequintCallerIdContact", - "number: %s", - LogUtil.sanitizePhoneNumber(number)); - if (callLogCache.containsKey(number)) { - return callLogCache.get(number); - } - CequintCallerIdContact cequintCallerIdContact = - lookup( - context, - CONTENT_URI, - PhoneNumberUtils.stripSeparators(number), - new String[] {"system"}); - if (cequintCallerIdContact != null) { - callLogCache.put(number, cequintCallerIdContact); - } - return cequintCallerIdContact; + public static CequintCallerIdManager createInstanceForCallLog() { + return new CequintCallerIdManager(); } @WorkerThread @@ -151,12 +125,6 @@ public class CequintCallerIdManager { LogUtil.sanitizePhoneNumber(number), LogUtil.sanitizePii(cnapName), isIncoming); - registerContentObserver(context); - if (isIncoming && incallIncomingCallCache.containsKey(number)) { - return incallIncomingCallCache.get(number); - } else if (!isIncoming && incallOutgoingCallCache.containsKey(number)) { - return incallOutgoingCallCache.get(number); - } int flag = 0; if (isIncoming) { flag |= CALLER_ID_LOOKUP_INCOMING_CALL; @@ -165,14 +133,28 @@ public class CequintCallerIdManager { flag |= CALLER_ID_LOOKUP_USER_PROVIDED_CID; } String[] flags = {cnapName, String.valueOf(flag)}; + return lookup(context, CONTENT_URI_FOR_INCALL, number, flags); + } + + @WorkerThread + @Nullable + public CequintCallerIdContact getCequintCallerIdContact(Context context, String number) { + Assert.isWorkerThread(); + LogUtil.d( + "CequintCallerIdManager.getCequintCallerIdContact", + "number: %s", + LogUtil.sanitizePhoneNumber(number)); + if (callLogCache.containsKey(number)) { + return callLogCache.get(number); + } CequintCallerIdContact cequintCallerIdContact = - lookup(context, CONTENT_URI_FOR_INCALL, number, flags); + lookup( + context, + CONTENT_URI, + PhoneNumberUtils.stripSeparators(number), + new String[] {"system"}); if (cequintCallerIdContact != null) { - if (isIncoming) { - incallIncomingCallCache.put(number, cequintCallerIdContact); - } else { - incallOutgoingCallCache.put(number, cequintCallerIdContact); - } + callLogCache.put(number, cequintCallerIdContact); } return cequintCallerIdContact; } @@ -285,33 +267,7 @@ public class CequintCallerIdManager { return geoDescription; } - private static synchronized void registerContentObserver(Context context) { - if (!PermissionsUtil.hasCequintPermissions(context)) { - LogUtil.i("CequintCallerIdManager.registerContentObserver", "no cequint permissions"); - return; - } - - if (hasRegisteredContentObserver) { - return; - } - ContentObserver contentObserver = - new ContentObserver(null) { - @Override - public void onChange(boolean selfChange) { - invalidateCache(); - } - }; - - context - .getContentResolver() - .registerContentObserver(CONTENT_URI_FOR_INCALL, true, contentObserver); - hasRegisteredContentObserver = true; - } - - private static void invalidateCache() { - incallIncomingCallCache.clear(); - incallOutgoingCallCache.clear(); + private CequintCallerIdManager() { + callLogCache = new ConcurrentHashMap<>(); } - - private CequintCallerIdManager() {} } diff --git a/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java b/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java index 9cf145b7a..79abff08e 100644 --- a/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java +++ b/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java @@ -67,9 +67,7 @@ public class MotorolaHiddenMenuKeySequence { } private MotorolaHiddenMenuKeySequence(Context context) { - featureHiddenMenuEnabled = - MotorolaUtils.isSpnMatched(context) - && context.getResources().getBoolean(R.bool.motorola_feature_hidden_menu); + featureHiddenMenuEnabled = MotorolaUtils.isSupportingHiddenMenu(context); // In case we do have a SPN from resource we need to match from service; otherwise we are // free to go if (featureHiddenMenuEnabled) { diff --git a/java/com/android/dialer/oem/MotorolaUtils.java b/java/com/android/dialer/oem/MotorolaUtils.java index db2b8909a..2c91e60ab 100644 --- a/java/com/android/dialer/oem/MotorolaUtils.java +++ b/java/com/android/dialer/oem/MotorolaUtils.java @@ -19,7 +19,10 @@ import android.content.Context; import android.content.res.Resources; import android.telephony.TelephonyManager; import com.android.dialer.common.ConfigProviderBindings; +import com.android.dialer.common.LogUtil; import com.android.dialer.common.PackageUtils; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; /** Util class for Motorola OEM devices. */ public class MotorolaUtils { @@ -39,6 +42,8 @@ public class MotorolaUtils { // This is used to check if a Motorola device supports WiFi call feature, by checking if a certain // package is enabled. private static final String WIFI_CALL_PACKAGE_NAME = "com.motorola.sprintwfc"; + // Thi is used to check if a Motorola device supports hidden menu feature. + private static final String HIDDEN_MENU_FEATURE = "com.motorola.software.sprint.hidden_menu"; // Feature flag indicates it's a HD call, currently this is only used by Motorola system build. // TODO(b/35359461): Use reference to android.provider.CallLog once it's in new SDK. @@ -64,6 +69,10 @@ public class MotorolaUtils { } } + static boolean isSupportingHiddenMenu(Context context) { + return context.getPackageManager().hasSystemFeature(HIDDEN_MENU_FEATURE); + } + public static boolean shouldBlinkHdIconWhenConnectingCall(Context context) { return ConfigProviderBindings.get(context) .getBoolean(CONFIG_HD_CODEC_BLINKING_ICON_WHEN_CONNECTING_CALL_ENABLED, true) @@ -102,6 +111,22 @@ public class MotorolaUtils { return MotorolaHiddenMenuKeySequence.handleCharSequence(context, input); } + public static boolean isWifiCallingAvailable(Context context) { + if (!isSupportingSprintWifiCall(context)) { + return false; + } + TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class); + try { + Method method = TelephonyManager.class.getMethod("isWifiCallingAvailable"); + boolean isWifiCallingAvailable = (boolean) method.invoke(telephonyManager); + LogUtil.d("MotorolaUtils.isWifiCallingAvailable", "%b", isWifiCallingAvailable); + return isWifiCallingAvailable; + } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { + LogUtil.e("MotorolaUtils.isWifiCallingAvailable", "", e); + } + return false; + } + private static boolean isSupportingSprintHdCodec(Context context) { return isSpnMatched(context) && context.getResources().getBoolean(R.bool.motorola_sprint_hd_codec) diff --git a/java/com/android/dialer/oem/res/values-mcc310-mnc000/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc310-mnc000/motorola_config.xml index 7f63bee75..ac3397520 100644 --- a/java/com/android/dialer/oem/res/values-mcc310-mnc000/motorola_config.xml +++ b/java/com/android/dialer/oem/res/values-mcc310-mnc000/motorola_config.xml @@ -1,6 +1,21 @@ <?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources> <bool name="motorola_sprint_hd_codec">true</bool> - <bool name="motorola_feature_hidden_menu">true</bool> <string name="motorola_enabled_spn">Sprint</string> </resources>
\ No newline at end of file diff --git a/java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml index 39b72cdd1..c5cb0d1f7 100644 --- a/java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml +++ b/java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml @@ -1,5 +1,20 @@ <?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources> <bool name="motorola_sprint_hd_codec">true</bool> - <bool name="motorola_feature_hidden_menu">true</bool> </resources>
\ No newline at end of file diff --git a/java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml index 39b72cdd1..c5cb0d1f7 100644 --- a/java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml +++ b/java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml @@ -1,5 +1,20 @@ <?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources> <bool name="motorola_sprint_hd_codec">true</bool> - <bool name="motorola_feature_hidden_menu">true</bool> </resources>
\ No newline at end of file diff --git a/java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml index 39b72cdd1..c5cb0d1f7 100644 --- a/java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml +++ b/java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml @@ -1,5 +1,20 @@ <?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources> <bool name="motorola_sprint_hd_codec">true</bool> - <bool name="motorola_feature_hidden_menu">true</bool> </resources>
\ No newline at end of file diff --git a/java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml index 39b72cdd1..c5cb0d1f7 100644 --- a/java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml +++ b/java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml @@ -1,5 +1,20 @@ <?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources> <bool name="motorola_sprint_hd_codec">true</bool> - <bool name="motorola_feature_hidden_menu">true</bool> </resources>
\ No newline at end of file diff --git a/java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml index 39b72cdd1..c5cb0d1f7 100644 --- a/java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml +++ b/java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml @@ -1,5 +1,20 @@ <?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources> <bool name="motorola_sprint_hd_codec">true</bool> - <bool name="motorola_feature_hidden_menu">true</bool> </resources>
\ No newline at end of file diff --git a/java/com/android/dialer/oem/res/values/motorola_config.xml b/java/com/android/dialer/oem/res/values/motorola_config.xml index f875d573d..46e7a16b6 100644 --- a/java/com/android/dialer/oem/res/values/motorola_config.xml +++ b/java/com/android/dialer/oem/res/values/motorola_config.xml @@ -1,12 +1,25 @@ <?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources> <!-- Flag to control if HD codec is supported by Sprint. --> <bool name="motorola_sprint_hd_codec">false</bool> <!-- Hidden menu configuration for Motorola. --> - <!-- Flag to control if the Hidden Menu sequence will be supported by Sprint. --> - <bool name="motorola_feature_hidden_menu">false</bool> - <!-- This defines the specific key seuquence that will be catched in the SpecialCharSequenceMgr such as, ##OMADM# --> <string-array name="motorola_hidden_menu_key_sequence"> diff --git a/java/com/android/dialer/phonenumbercache/ContactInfo.java b/java/com/android/dialer/phonenumbercache/ContactInfo.java index 5546553f9..aef7374e4 100644 --- a/java/com/android/dialer/phonenumbercache/ContactInfo.java +++ b/java/com/android/dialer/phonenumbercache/ContactInfo.java @@ -17,7 +17,7 @@ package com.android.dialer.phonenumbercache; import android.net.Uri; -import android.support.annotation.Nullable; +import android.support.annotation.NonNull; import android.text.TextUtils; import com.android.contacts.common.ContactsUtils.UserType; import com.android.contacts.common.util.UriUtils; @@ -59,7 +59,7 @@ public class ContactInfo { public boolean isBadData; public String objectId; public @UserType long userType; - public @Nullable ContactSource.Type sourceType = ContactSource.Type.UNKNOWN_SOURCE_TYPE; + public @NonNull ContactSource.Type sourceType = ContactSource.Type.UNKNOWN_SOURCE_TYPE; /** * True if local contact exists. This is only used for Cequint Caller ID so it won't overwrite * photo if local contact exists. diff --git a/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java b/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java index bd4ba9764..c9e940ef4 100644 --- a/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java +++ b/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java @@ -601,13 +601,17 @@ public class ContactInfoHelper { * will be updated if available. */ @WorkerThread - public void updateFromCequintCallerId(ContactInfo info, String number) { + public void updateFromCequintCallerId( + @Nullable CequintCallerIdManager cequintCallerIdManager, ContactInfo info, String number) { Assert.isWorkerThread(); if (!CequintCallerIdManager.isCequintCallerIdEnabled(mContext)) { return; } + if (cequintCallerIdManager == null) { + return; + } CequintCallerIdContact cequintCallerIdContact = - CequintCallerIdManager.getCequintCallerIdContact(mContext, number); + cequintCallerIdManager.getCequintCallerIdContact(mContext, number); if (cequintCallerIdContact == null) { return; } diff --git a/java/com/android/dialer/postcall/AndroidManifest.xml b/java/com/android/dialer/postcall/AndroidManifest.xml index 79ca5d5eb..22c77dd93 100644 --- a/java/com/android/dialer/postcall/AndroidManifest.xml +++ b/java/com/android/dialer/postcall/AndroidManifest.xml @@ -21,7 +21,7 @@ <activity android:name="com.android.dialer.postcall.PostCallActivity" android:exported="false" - android:theme="@style/Theme.AppCompat.NoActionBar" + android:theme="@style/DialerThemeBase.NoActionBar" android:windowSoftInputMode="adjustResize" android:screenOrientation="portrait"/> </application> diff --git a/java/com/android/dialer/postcall/PostCall.java b/java/com/android/dialer/postcall/PostCall.java index 586b47395..7eb83b133 100644 --- a/java/com/android/dialer/postcall/PostCall.java +++ b/java/com/android/dialer/postcall/PostCall.java @@ -26,8 +26,6 @@ import android.support.design.widget.Snackbar; import android.telephony.TelephonyManager; import android.view.View; import android.view.View.OnClickListener; -import com.android.dialer.buildtype.BuildType; -import com.android.dialer.common.Assert; import com.android.dialer.common.ConfigProvider; import com.android.dialer.common.ConfigProviderBindings; import com.android.dialer.common.LogUtil; @@ -203,19 +201,7 @@ public class PostCall { } private static boolean isEnabled(Context context) { - @BuildType.Type int type = BuildType.get(); - switch (type) { - case BuildType.BUGFOOD: - case BuildType.DOGFOOD: - case BuildType.FISHFOOD: - case BuildType.TEST: - return ConfigProviderBindings.get(context).getBoolean("enable_post_call", true); - case BuildType.RELEASE: - return ConfigProviderBindings.get(context).getBoolean("enable_post_call_prod", true); - default: - Assert.fail(); - return false; - } + return ConfigProviderBindings.get(context).getBoolean("enable_post_call_prod", true); } private static boolean isSimReady(Context context) { diff --git a/java/com/android/dialer/protos/ProtoParsers.java b/java/com/android/dialer/protos/ProtoParsers.java index b77c0699b..5a60799bc 100644 --- a/java/com/android/dialer/protos/ProtoParsers.java +++ b/java/com/android/dialer/protos/ProtoParsers.java @@ -18,13 +18,10 @@ package com.android.dialer.protos; import android.content.Intent; import android.os.Bundle; -import android.os.Parcel; -import android.os.Parcelable; +import android.support.annotation.NonNull; import com.android.dialer.common.Assert; -import com.google.protobuf.CodedOutputStream; import com.google.protobuf.InvalidProtocolBufferException; import com.google.protobuf.MessageLite; -import java.io.IOException; /** Useful methods for using Protocol Buffers with Android. */ public final class ProtoParsers { @@ -35,11 +32,8 @@ public final class ProtoParsers { @SuppressWarnings("unchecked") // We want to eventually optimize away parser classes, so cast public static <T extends MessageLite> T get(Bundle bundle, String key, T defaultInstance) throws InvalidProtocolBufferException { - // Class loaders are unique to each Class instance, so we need to specify how to decode - // the information again, even though we set the class loaders when serializing the data. - bundle.setClassLoader(ProtoParsers.class.getClassLoader()); - InternalDontUse parcelable = bundle.getParcelable(key); - return (T) parcelable.getMessageUnsafe(defaultInstance.getDefaultInstanceForType()); + byte[] bytes = bundle.getByteArray(key); + return (T) mergeFrom(bytes, defaultInstance.getDefaultInstanceForType()); } /** @@ -51,7 +45,7 @@ public final class ProtoParsers { try { return get(bundle, key, defaultInstance); } catch (InvalidProtocolBufferException e) { - throw new RuntimeException(e); + throw Assert.createIllegalStateFailException(e.toString()); } } @@ -68,121 +62,28 @@ public final class ProtoParsers { * Stores a proto in a Bundle, for later retrieval by {@link #get(Bundle, String, MessageLite)} or * {@link #getFromInstanceState(Bundle, String, MessageLite)}. */ - public static void put(Bundle bundle, String key, MessageLite message) { - bundle.putParcelable(key, new InternalDontUse<>(null, message)); + public static void put( + @NonNull Bundle bundle, @NonNull String key, @NonNull MessageLite message) { + Assert.checkState(message != null); + bundle.putByteArray(key, message.toByteArray()); } /** * Stores a proto in an Intent, for later retrieval by {@link #get(Bundle, String, MessageLite)}. * Needs separate method because Intent has similar to but different API than Bundle. */ - public static void put(Intent intent, String key, MessageLite message) { - intent.putExtra(key, new InternalDontUse<>(null, message)); - } - - /** Returns a {@linkplain Parcelable} representation of this protobuf message. */ - public static <T extends MessageLite> ParcelableProto<T> asParcelable(T message) { - return new InternalDontUse<>(null, message); - } - - /** - * A protobuf message that can be stored in a {@link Parcel}. - * - * <p><b>Note:</b> This <code>Parcelable</code> can only be used in single app. Attempting to send - * it to another app through an <code>Intent</code> will result in an exception due to Proguard - * obfusation when the target application attempts to load the <code>ParcelableProto</code> class. - */ - public interface ParcelableProto<T extends MessageLite> extends Parcelable { - /** - * @throws IllegalStateException if the parceled data does not correspond to the defaultInstance - * type. - */ - T getMessage(T defaultInstance); - } - - /** Public because of Parcelable requirements. Do not use. */ - public static final class InternalDontUse<T extends MessageLite> implements ParcelableProto<T> { - /* One of these two fields is always populated - since the bytes field never escapes this - * object, there is no risk of concurrent modification by multiple threads, and volatile - * is sufficient to be thread-safe. */ - private volatile byte[] bytes; - private volatile T message; - - /** - * Ideally, we would have type safety here. However, a static field {@link Creator} is required - * by {@link Parcelable}. Static fields are inherently not type safe, since only 1 exists per - * class (rather than 1 per type). - */ - public static final Parcelable.Creator<InternalDontUse<?>> CREATOR = - new Creator<InternalDontUse<?>>() { - @Override - public InternalDontUse<?> createFromParcel(Parcel parcel) { - int serializedSize = parcel.readInt(); - byte[] array = new byte[serializedSize]; - parcel.readByteArray(array); - return new InternalDontUse<>(array, null); - } - - @Override - public InternalDontUse<?>[] newArray(int i) { - return new InternalDontUse[i]; - } - }; - - private InternalDontUse(byte[] bytes, T message) { - Assert.checkArgument(bytes != null || message != null, "Must have a message or bytes"); - this.bytes = bytes; - this.message = message; - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel parcel, int i) { - if (bytes == null) { - final byte[] flatArray = new byte[message.getSerializedSize()]; - try { - message.writeTo(CodedOutputStream.newInstance(flatArray)); - bytes = flatArray; - } catch (IOException impossible) { - throw new AssertionError(impossible); - } - } - parcel.writeInt(bytes.length); - parcel.writeByteArray(bytes); - } - - @Override - public T getMessage(T defaultInstance) { - try { - // The proto should never be invalid if it came from our application, so if it is, throw. - return getMessageUnsafe(defaultInstance); - } catch (InvalidProtocolBufferException e) { - throw new IllegalStateException(e); - } - } - - @SuppressWarnings("unchecked") // We're being deserialized, so there's no real type safety - T getMessageUnsafe(T defaultInstance) throws InvalidProtocolBufferException { - // There's a risk that we'll double-parse the bytes, but that's OK, because it'll end up - // as the same immutable object anyway. - if (message == null) { - message = (T) defaultInstance.toBuilder().mergeFrom(bytes).build(); - } - return message; - } + public static void put(@NonNull Intent intent, @NonNull String key, MessageLite message) { + Assert.checkState(message != null); + intent.putExtra(key, message.toByteArray()); } /** Parses a proto, throwing parser errors as runtime exceptions. */ @SuppressWarnings("unchecked") // We want to eventually optimize away parser classes - public static <T extends MessageLite> T mergeFrom(byte[] bytes, T defaultInstance) { + private static <T extends MessageLite> T mergeFrom(byte[] bytes, T defaultInstance) { try { return (T) defaultInstance.toBuilder().mergeFrom(bytes).build(); } catch (InvalidProtocolBufferException e) { - throw new RuntimeException(e); + throw Assert.createIllegalStateFailException(e.toString()); } } } diff --git a/java/com/android/dialer/searchfragment/AndroidManifest.xml b/java/com/android/dialer/searchfragment/AndroidManifest.xml new file mode 100644 index 000000000..88ce67c13 --- /dev/null +++ b/java/com/android/dialer/searchfragment/AndroidManifest.xml @@ -0,0 +1,16 @@ +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> +<manifest package="com.android.dialer.searchfragment"/>
\ No newline at end of file diff --git a/java/com/android/dialer/searchfragment/NewSearchFragment.java b/java/com/android/dialer/searchfragment/NewSearchFragment.java new file mode 100644 index 000000000..e7283d0ad --- /dev/null +++ b/java/com/android/dialer/searchfragment/NewSearchFragment.java @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.dialer.searchfragment; + +import android.app.Fragment; +import android.app.LoaderManager.LoaderCallbacks; +import android.content.Loader; +import android.database.Cursor; +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +/** Fragment used for searching contacts. */ +public final class NewSearchFragment extends Fragment implements LoaderCallbacks<Cursor> { + + private RecyclerView recyclerView; + private SearchAdapter adapter; + private String query; + + @Nullable + @Override + public View onCreateView( + LayoutInflater inflater, @Nullable ViewGroup parent, @Nullable Bundle bundle) { + getLoaderManager().initLoader(0, null, this); + View view = inflater.inflate(R.layout.fragment_search, parent, false); + recyclerView = view.findViewById(R.id.recycler_view); + recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); + + getLoaderManager().initLoader(0, null, this); + return view; + } + + @Override + public Loader<Cursor> onCreateLoader(int id, Bundle bundle) { + // TODO add more loaders + return new SearchContactsCursorLoader(getContext()); + } + + @Override + public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) { + if (adapter == null) { + adapter = new SearchAdapter(getContext()); + } + if (loader instanceof SearchContactsCursorLoader) { + adapter.setContactsCursor(new SearchContactCursor(cursor, query)); + } + recyclerView.setAdapter(adapter); + } + + @Override + public void onLoaderReset(Loader<Cursor> loader) { + if (adapter != null) { + adapter.clear(); + adapter = null; + } + recyclerView.setAdapter(null); + } + + public void setQuery(String query) { + this.query = query; + if (adapter != null) { + adapter.setQuery(query); + } + } +} diff --git a/java/com/android/dialer/searchfragment/QueryUtil.java b/java/com/android/dialer/searchfragment/QueryUtil.java new file mode 100644 index 000000000..a3f44ab83 --- /dev/null +++ b/java/com/android/dialer/searchfragment/QueryUtil.java @@ -0,0 +1,269 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.dialer.searchfragment; + +import android.graphics.Typeface; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.telephony.PhoneNumberUtils; +import android.text.SpannableString; +import android.text.Spanned; +import android.text.TextUtils; +import android.text.style.StyleSpan; +import java.util.regex.Pattern; + +/** Contains utility methods for comparing and filtering strings with search queries. */ +final class QueryUtil { + + /** Matches strings with "-", "(", ")", 2-9 of at least length one. */ + static final Pattern T9_PATTERN = Pattern.compile("[\\-()2-9]+"); + + /** + * Compares a name and query and returns a {@link CharSequence} with bolded characters. + * + * <p>Some example: + * + * <ul> + * <li>"query" would bold "John [query] Smith" + * <li>"222" would bold "[AAA] Mom" + * <li>"222" would bold "[A]llen [A]lex [A]aron" + * </ul> + * + * @param query containing any characters + * @param name of a contact/string that query will compare to + * @return name with query bolded if query can be found in the name. + */ + static CharSequence getNameWithQueryBolded(@Nullable String query, @NonNull String name) { + if (TextUtils.isEmpty(query)) { + return name; + } + + int index = -1; + int numberOfBoldedCharacters = 0; + + if (nameMatchesT9Query(query, name)) { + // Bold the characters that match the t9 query + index = indexOfQueryNonDigitsIgnored(query, getT9Representation(name)); + if (index == -1) { + return getNameWithInitialsBolded(query, name); + } + numberOfBoldedCharacters = query.length(); + + for (int i = 0; i < query.length(); i++) { + char c = query.charAt(i); + if (!Character.isDigit(c)) { + numberOfBoldedCharacters--; + } + } + + for (int i = 0; i < index + numberOfBoldedCharacters; i++) { + if (!Character.isLetterOrDigit(name.charAt(i))) { + if (i < index) { + index++; + } else { + numberOfBoldedCharacters++; + } + } + } + } + + if (index == -1) { + // Bold the query as an exact match in the name + index = name.toLowerCase().indexOf(query); + numberOfBoldedCharacters = query.length(); + } + + return index == -1 ? name : getBoldedString(name, index, numberOfBoldedCharacters); + } + + private static CharSequence getNameWithInitialsBolded(String query, String name) { + SpannableString boldedInitials = new SpannableString(name); + name = name.toLowerCase(); + int initialsBolded = 0; + int nameIndex = -1; + + while (++nameIndex < name.length() && initialsBolded < query.length()) { + if ((nameIndex == 0 || name.charAt(nameIndex - 1) == ' ') + && getDigit(name.charAt(nameIndex)) == query.charAt(initialsBolded)) { + boldedInitials.setSpan( + new StyleSpan(Typeface.BOLD), + nameIndex, + nameIndex + 1, + Spanned.SPAN_INCLUSIVE_INCLUSIVE); + initialsBolded++; + } + } + return boldedInitials; + } + + /** + * Compares a number and a query and returns a {@link CharSequence} with bolded characters. + * + * <ul> + * <li>"123" would bold "(650)34[1-23]24" + * <li>"123" would bold "+1([123])111-2222 + * </ul> + * + * @param query containing only numbers and phone number related characters "(", ")", "-", "+" + * @param number phone number of a contact that the query will compare to. + * @return number with query bolded if query can be found in the number. + */ + static CharSequence getNumberWithQueryBolded(@Nullable String query, @NonNull String number) { + if (TextUtils.isEmpty(query) || !numberMatchesNumberQuery(query, number)) { + return number; + } + + int index = indexOfQueryNonDigitsIgnored(query, number); + int boldedCharacters = query.length(); + + for (char c : query.toCharArray()) { + if (!Character.isDigit(c)) { + boldedCharacters--; + } + } + + for (int i = 0; i < index + boldedCharacters; i++) { + if (!Character.isDigit(number.charAt(i))) { + if (i <= index) { + index++; + } else { + boldedCharacters++; + } + } + } + return getBoldedString(number, index, boldedCharacters); + } + + private static SpannableString getBoldedString(String s, int index, int numBolded) { + SpannableString span = new SpannableString(s); + span.setSpan( + new StyleSpan(Typeface.BOLD), index, index + numBolded, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + return span; + } + + /** + * @return true if the query is of T9 format and the name's T9 representation belongs to the + * query; false otherwise. + */ + static boolean nameMatchesT9Query(String query, String name) { + if (!T9_PATTERN.matcher(query).matches()) { + return false; + } + + // Substring + if (indexOfQueryNonDigitsIgnored(query, getT9Representation(name)) != -1) { + return true; + } + + // Check matches initials + // TODO investigate faster implementation + query = digitsOnly(query); + int queryIndex = 0; + + String[] names = name.toLowerCase().split("\\s"); + for (int i = 0; i < names.length && queryIndex < query.length(); i++) { + if (TextUtils.isEmpty(names[i])) { + continue; + } + + if (getDigit(names[i].charAt(0)) == query.charAt(queryIndex)) { + queryIndex++; + } + } + + return queryIndex == query.length(); + } + + /** @return true if the number belongs to the query. */ + static boolean numberMatchesNumberQuery(String query, String number) { + return PhoneNumberUtils.isGlobalPhoneNumber(query) + && indexOfQueryNonDigitsIgnored(query, number) != -1; + } + + /** + * Checks if query is contained in number while ignoring all characters in both that are not + * digits (i.e. {@link Character#isDigit(char)} returns false). + * + * @return index where query is found with all non-digits removed, -1 if it's not found. + */ + private static int indexOfQueryNonDigitsIgnored(@NonNull String query, @NonNull String number) { + return digitsOnly(number).indexOf(digitsOnly(query)); + } + + // Returns string with letters replaced with their T9 representation. + private static String getT9Representation(String s) { + StringBuilder builder = new StringBuilder(s.length()); + for (char c : s.toLowerCase().toCharArray()) { + builder.append(getDigit(c)); + } + return builder.toString(); + } + + /** @return String s with only digits recognized by Character#isDigit() remaining */ + static String digitsOnly(String s) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < s.length(); i++) { + char c = s.charAt(i); + if (Character.isDigit(c)) { + sb.append(c); + } + } + return sb.toString(); + } + + // Returns the T9 representation of a lower case character, otherwise returns the character. + private static char getDigit(char c) { + switch (c) { + case 'a': + case 'b': + case 'c': + return '2'; + case 'd': + case 'e': + case 'f': + return '3'; + case 'g': + case 'h': + case 'i': + return '4'; + case 'j': + case 'k': + case 'l': + return '5'; + case 'm': + case 'n': + case 'o': + return '6'; + case 'p': + case 'q': + case 'r': + case 's': + return '7'; + case 't': + case 'u': + case 'v': + return '8'; + case 'w': + case 'x': + case 'y': + case 'z': + return '9'; + default: + return c; + } + } +} diff --git a/java/com/android/dialer/searchfragment/README.md b/java/com/android/dialer/searchfragment/README.md new file mode 100644 index 000000000..b3b9135e5 --- /dev/null +++ b/java/com/android/dialer/searchfragment/README.md @@ -0,0 +1,62 @@ +# Dialer Search Ui + +searchfragment/ contains all code relevant to loading, rendering and filtering +search results in both dialpad search and regular search. + +## Loading + +### On Device Contacts + +On device contacts loading happens in SearchContactsCursorLoader. It is used in +conjunction with NewSearchFragment and Loader Callbacks to return a cursor from +cp2 containing all of the relevant info needed to rendering. + +### Business Search + +// TODO(calderwoodra) + +### Google Directory Search + +// TODO(calderwoodra) + +## Rendering + +NewSearchFragment, SearchAdapter, SearchContactViewHolder and +SearchCursorManager are used to render contact information. The fragment's +recyclerview, adapter and viewholder work as expected like a normal recyclerview +paradigm. + +The are three things to note about rendering: + +* There are three data sources rendered: On device contacts, business search + results and google directory results. +* SearchContactsCursorLoader returns its cursor from cp2 and we filter/wrap it + with SearchContactCursor to render useful results (see below). +* SearchCursorManager is used to coalesce all three data sources to help with + determining row count, row type and returning the correct data source for + each position. + +## Filtering + +On device contacts are filtered using SearchContactCursor. We wrap the cursor +returned from SearchContactsCursorLoader in NewSearchFragment#onLoadFinished in +order to abstract away the filtering logic from the recyclerview adapter and +viewholders. + +SearchContactCursor applies filtering in SearchContactCursor#filter to remove +duplicate phone numbers returned from cp2 and phone numbers that do not match +the given search query. + +Filtering methods used are: + +* T9/dialpad search methods + * Initial match (957 matches [W]illiam [J]ohn [S]mith) + * Number + name match (1800946 matches [1800-Win]-A-Prize) +* Numeric/dialpad search methods + * Simple number match (510333 matches [510-333]-7596) + * Country-code agnostic matching for E164 normalized numbers (9177 matches + +65[9177]6930) + * Country-code agnostic matching (510333 matches 1-[510-333]-7596) + * Area-code agnostic matching (333 matches 510-[333]-7596) +* Name/keyboard search methods: + * Simple name match (564 matches [Joh]n) diff --git a/java/com/android/dialer/searchfragment/SearchAdapter.java b/java/com/android/dialer/searchfragment/SearchAdapter.java new file mode 100644 index 000000000..8f5241557 --- /dev/null +++ b/java/com/android/dialer/searchfragment/SearchAdapter.java @@ -0,0 +1,84 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.dialer.searchfragment; + +import android.content.Context; +import android.database.Cursor; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.RecyclerView.ViewHolder; +import android.view.LayoutInflater; +import android.view.ViewGroup; +import com.android.dialer.common.Assert; +import com.android.dialer.searchfragment.SearchCursorManager.RowType; + +/** RecyclerView adapter for {@link NewSearchFragment}. */ +class SearchAdapter extends RecyclerView.Adapter<ViewHolder> { + + private final SearchCursorManager searchCursorManager; + private final Context context; + + private String query; + + SearchAdapter(Context context) { + searchCursorManager = new SearchCursorManager(); + this.context = context; + } + + // TODO: fill in the rest of the view holders. + @Override + public ViewHolder onCreateViewHolder(ViewGroup root, int position) { + @RowType int rowType = searchCursorManager.getRowType(position); + switch (rowType) { + case RowType.CONTACT_ROW: + return new SearchContactViewHolder( + LayoutInflater.from(context).inflate(R.layout.search_contact_row, root, false)); + case RowType.DIRECTORY_HEADER: + case RowType.DIRECTORY_ROW: + case RowType.INVALID: + case RowType.NEARBY_PLACES_HEADER: + case RowType.NEARBY_PLACES_ROW: + return null; + default: + throw Assert.createIllegalStateFailException("Invalid RowType: " + rowType); + } + } + + @Override + public void onBindViewHolder(ViewHolder holder, int position) { + Cursor cursor = searchCursorManager.getCursor(position); + ((SearchContactViewHolder) holder).bind(cursor, query); + } + + void setContactsCursor(Cursor cursor) { + searchCursorManager.setContactsCursor(cursor); + } + + void clear() { + searchCursorManager.clear(); + } + + @Override + public int getItemCount() { + return searchCursorManager.getCount(); + } + + public void setQuery(String query) { + this.query = query; + searchCursorManager.setQuery(query); + notifyDataSetChanged(); + } +} diff --git a/java/com/android/dialer/searchfragment/SearchContactCursor.java b/java/com/android/dialer/searchfragment/SearchContactCursor.java new file mode 100644 index 000000000..5006e1a60 --- /dev/null +++ b/java/com/android/dialer/searchfragment/SearchContactCursor.java @@ -0,0 +1,390 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.dialer.searchfragment; + +import android.content.ContentResolver; +import android.database.CharArrayBuffer; +import android.database.ContentObserver; +import android.database.Cursor; +import android.database.DataSetObserver; +import android.net.Uri; +import android.os.Bundle; +import android.support.annotation.IntDef; +import android.support.annotation.Nullable; +import android.text.TextUtils; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.util.ArrayList; +import java.util.List; + +/** + * Wrapper for a cursor returned by {@link SearchContactsCursorLoader}. + * + * <p>This cursor removes duplicate phone numbers associated with the same contact and can filter + * contacts based on a query by calling {@link #filter(String)}. + */ +final class SearchContactCursor implements Cursor { + + private final Cursor cursor; + // List of cursor ids that are valid for displaying after filtering. + private final List<Integer> queryFilteredPositions = new ArrayList<>(); + + private int currentPosition = 0; + + @Retention(RetentionPolicy.SOURCE) + @IntDef({ + Qualification.NUMBERS_ARE_NOT_DUPLICATES, + Qualification.NEW_NUMBER_IS_MORE_QUALIFIED, + Qualification.CURRENT_MORE_QUALIFIED + }) + private @interface Qualification { + /** Numbers are not duplicates (i.e. neither is more qualified than the other). */ + int NUMBERS_ARE_NOT_DUPLICATES = 0; + /** Number are duplicates and new number is more qualified than the existing number. */ + int NEW_NUMBER_IS_MORE_QUALIFIED = 1; + /** Numbers are duplicates but current/existing number is more qualified than new number. */ + int CURRENT_MORE_QUALIFIED = 2; + } + + /** + * @param cursor with projection {@link SearchContactsCursorLoader#PHONE_PROJECTION}. + * @param query to filter cursor results. + */ + SearchContactCursor(Cursor cursor, @Nullable String query) { + // TODO investigate copying this into a MatrixCursor and holding in memory + this.cursor = cursor; + filter(query); + } + + /** + * Filters out contacts that do not match the query. + * + * <p>The query can have at least 1 of 3 forms: + * + * <ul> + * <li>A phone number + * <li>A T9 representation of a name (matches {@link QueryUtil#T9_PATTERN}). + * <li>A name + * </ul> + * + * <p>A contact is considered a match if: + * + * <ul> + * <li>Its phone number contains the phone number query + * <li>Its name represented in T9 contains the T9 query + * <li>Its name contains the query + * </ul> + */ + void filter(@Nullable String query) { + if (query == null) { + query = ""; + } + queryFilteredPositions.clear(); + + // On some devices, contacts have multiple rows with identical phone numbers. These numbers are + // considered duplicates. Since the order might not be guaranteed, we compare all of the numbers + // and hold onto the most qualified one as the one we want to display to the user. + // See #getQualification for details on how qualification is determined. + int previousMostQualifiedPosition = 0; + String previousName = ""; + String previousMostQualifiedNumber = ""; + + query = query.toLowerCase(); + cursor.moveToPosition(-1); + + while (cursor.moveToNext()) { + int position = cursor.getPosition(); + String currentNumber = cursor.getString(SearchContactsCursorLoader.PHONE_NUMBER); + String currentName = cursor.getString(SearchContactsCursorLoader.PHONE_DISPLAY_NAME); + + if (!previousName.equals(currentName)) { + previousName = currentName; + previousMostQualifiedNumber = currentNumber; + previousMostQualifiedPosition = position; + } else { + // Since the contact name is the same, check if this number is a duplicate + switch (getQualification(currentNumber, previousMostQualifiedNumber)) { + case Qualification.CURRENT_MORE_QUALIFIED: + // Number is a less qualified duplicate, ignore it. + continue; + case Qualification.NEW_NUMBER_IS_MORE_QUALIFIED: + // If number wasn't filtered out before, remove it and add it's more qualified version. + if (queryFilteredPositions.contains(previousMostQualifiedPosition)) { + queryFilteredPositions.remove(previousMostQualifiedPosition); + queryFilteredPositions.add(position); + } + previousMostQualifiedNumber = currentNumber; + previousMostQualifiedPosition = position; + continue; + case Qualification.NUMBERS_ARE_NOT_DUPLICATES: + default: + previousMostQualifiedNumber = currentNumber; + previousMostQualifiedPosition = position; + } + } + + if (TextUtils.isEmpty(query) + || QueryUtil.nameMatchesT9Query(query, previousName) + || QueryUtil.numberMatchesNumberQuery(query, previousMostQualifiedNumber) + || previousName.contains(query)) { + queryFilteredPositions.add(previousMostQualifiedPosition); + } + } + currentPosition = 0; + cursor.moveToFirst(); + } + + /** + * @param number that may or may not be more qualified than the existing most qualified number + * @param mostQualifiedNumber currently most qualified number associated with same contact + * @return {@link Qualification} where the more qualified number is the number with the most + * digits. If the digits are the same, the number with the most formatting is more qualified. + */ + private @Qualification int getQualification(String number, String mostQualifiedNumber) { + // Ignore formatting + String numberDigits = QueryUtil.digitsOnly(number); + String qualifiedNumberDigits = QueryUtil.digitsOnly(mostQualifiedNumber); + + // If the numbers are identical, return version with more formatting + if (qualifiedNumberDigits.equals(numberDigits)) { + if (mostQualifiedNumber.length() >= number.length()) { + return Qualification.CURRENT_MORE_QUALIFIED; + } else { + return Qualification.NEW_NUMBER_IS_MORE_QUALIFIED; + } + } + + // If one number is a suffix of another, then return the longer one. + // If they are equal, then return the current most qualified number. + if (qualifiedNumberDigits.endsWith(numberDigits)) { + return Qualification.CURRENT_MORE_QUALIFIED; + } + if (numberDigits.endsWith(qualifiedNumberDigits)) { + return Qualification.NEW_NUMBER_IS_MORE_QUALIFIED; + } + return Qualification.NUMBERS_ARE_NOT_DUPLICATES; + } + + @Override + public boolean moveToPosition(int position) { + currentPosition = position; + return currentPosition < getCount() + && cursor.moveToPosition(queryFilteredPositions.get(currentPosition)); + } + + @Override + public boolean move(int offset) { + currentPosition += offset; + return moveToPosition(currentPosition); + } + + @Override + public int getCount() { + return queryFilteredPositions.size(); + } + + @Override + public boolean isFirst() { + return currentPosition == 0; + } + + @Override + public boolean isLast() { + return currentPosition == getCount() - 1; + } + + @Override + public int getPosition() { + return currentPosition; + } + + @Override + public boolean moveToFirst() { + return moveToPosition(0); + } + + @Override + public boolean moveToLast() { + return moveToPosition(getCount() - 1); + } + + @Override + public boolean moveToNext() { + return moveToPosition(++currentPosition); + } + + @Override + public boolean moveToPrevious() { + return moveToPosition(--currentPosition); + } + + // Methods below simply call the corresponding method in cursor. + @Override + public boolean isBeforeFirst() { + return cursor.isBeforeFirst(); + } + + @Override + public boolean isAfterLast() { + return cursor.isAfterLast(); + } + + @Override + public int getColumnIndex(String columnName) { + return cursor.getColumnIndex(columnName); + } + + @Override + public int getColumnIndexOrThrow(String columnName) { + return cursor.getColumnIndexOrThrow(columnName); + } + + @Override + public String getColumnName(int columnIndex) { + return cursor.getColumnName(columnIndex); + } + + @Override + public String[] getColumnNames() { + return cursor.getColumnNames(); + } + + @Override + public int getColumnCount() { + return cursor.getColumnCount(); + } + + @Override + public byte[] getBlob(int columnIndex) { + return cursor.getBlob(columnIndex); + } + + @Override + public String getString(int columnIndex) { + return cursor.getString(columnIndex); + } + + @Override + public void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer) { + cursor.copyStringToBuffer(columnIndex, buffer); + } + + @Override + public short getShort(int columnIndex) { + return cursor.getShort(columnIndex); + } + + @Override + public int getInt(int columnIndex) { + return cursor.getInt(columnIndex); + } + + @Override + public long getLong(int columnIndex) { + return cursor.getLong(columnIndex); + } + + @Override + public float getFloat(int columnIndex) { + return cursor.getFloat(columnIndex); + } + + @Override + public double getDouble(int columnIndex) { + return cursor.getDouble(columnIndex); + } + + @Override + public int getType(int columnIndex) { + return cursor.getType(columnIndex); + } + + @Override + public boolean isNull(int columnIndex) { + return cursor.isNull(columnIndex); + } + + @Override + public void deactivate() { + cursor.deactivate(); + } + + @Override + public boolean requery() { + return cursor.requery(); + } + + @Override + public void close() { + cursor.close(); + } + + @Override + public boolean isClosed() { + return cursor.isClosed(); + } + + @Override + public void registerContentObserver(ContentObserver observer) { + cursor.registerContentObserver(observer); + } + + @Override + public void unregisterContentObserver(ContentObserver observer) { + cursor.unregisterContentObserver(observer); + } + + @Override + public void registerDataSetObserver(DataSetObserver observer) { + cursor.registerDataSetObserver(observer); + } + + @Override + public void unregisterDataSetObserver(DataSetObserver observer) { + cursor.unregisterDataSetObserver(observer); + } + + @Override + public void setNotificationUri(ContentResolver cr, Uri uri) { + cursor.setNotificationUri(cr, uri); + } + + @Override + public Uri getNotificationUri() { + return cursor.getNotificationUri(); + } + + @Override + public boolean getWantsAllOnMoveCalls() { + return cursor.getWantsAllOnMoveCalls(); + } + + @Override + public void setExtras(Bundle extras) { + cursor.setExtras(extras); + } + + @Override + public Bundle getExtras() { + return cursor.getExtras(); + } + + @Override + public Bundle respond(Bundle extras) { + return cursor.respond(extras); + } +} diff --git a/java/com/android/dialer/searchfragment/SearchContactViewHolder.java b/java/com/android/dialer/searchfragment/SearchContactViewHolder.java new file mode 100644 index 000000000..4ac6af33e --- /dev/null +++ b/java/com/android/dialer/searchfragment/SearchContactViewHolder.java @@ -0,0 +1,203 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.dialer.searchfragment; + +import android.content.Context; +import android.content.res.Resources; +import android.database.Cursor; +import android.net.Uri; +import android.provider.ContactsContract.CommonDataKinds.Phone; +import android.provider.ContactsContract.Contacts; +import android.support.annotation.IntDef; +import android.support.v7.widget.RecyclerView.ViewHolder; +import android.text.TextUtils; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.ImageView; +import android.widget.QuickContactBadge; +import android.widget.TextView; +import com.android.contacts.common.ContactPhotoManager; +import com.android.contacts.common.lettertiles.LetterTileDrawable; +import com.android.dialer.callintent.CallInitiationType.Type; +import com.android.dialer.callintent.CallIntentBuilder; +import com.android.dialer.common.Assert; +import com.android.dialer.telecom.TelecomUtil; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** ViewHolder for a contact row in {@link NewSearchFragment}. */ +final class SearchContactViewHolder extends ViewHolder implements OnClickListener { + + /** IntDef for the different types of actions that can be shown. */ + @Retention(RetentionPolicy.SOURCE) + @IntDef({ + SearchContactViewHolder.CallToAction.NONE, + SearchContactViewHolder.CallToAction.VIDEO_CALL, + SearchContactViewHolder.CallToAction.SHARE_AND_CALL + }) + @interface CallToAction { + int NONE = 0; + int VIDEO_CALL = 1; + int SHARE_AND_CALL = 2; + } + + private final QuickContactBadge photo; + private final TextView nameOrNumberView; + private final TextView numberView; + private final ImageView callToActionView; + private final Context context; + + private String number; + private @CallToAction int currentAction; + + SearchContactViewHolder(View view) { + super(view); + view.setOnClickListener(this); + photo = view.findViewById(R.id.photo); + nameOrNumberView = view.findViewById(R.id.primary); + numberView = view.findViewById(R.id.secondary); + callToActionView = view.findViewById(R.id.call_to_action); + context = view.getContext(); + } + + /** + * Binds the ViewHolder with a cursor from {@link SearchContactsCursorLoader} with the data found + * at the cursors set position. + */ + void bind(Cursor cursor, String query) { + number = cursor.getString(SearchContactsCursorLoader.PHONE_NUMBER); + String name = cursor.getString(SearchContactsCursorLoader.PHONE_DISPLAY_NAME); + String label = getLabel(context.getResources(), cursor); + String secondaryInfo = + TextUtils.isEmpty(label) + ? number + : context.getString(R.string.call_subject_type_and_number, label, number); + + nameOrNumberView.setText(QueryUtil.getNameWithQueryBolded(query, name)); + numberView.setText(QueryUtil.getNumberWithQueryBolded(query, secondaryInfo)); + setCallToAction(cursor); + + if (shouldShowPhoto(cursor, name)) { + nameOrNumberView.setVisibility(View.VISIBLE); + photo.setVisibility(View.VISIBLE); + photo.setContentDescription(context.getString(R.string.description_quick_contact_for, name)); + String photoUri = cursor.getString(SearchContactsCursorLoader.PHONE_PHOTO_URI); + ContactPhotoManager.getInstance(context) + .loadDialerThumbnailOrPhoto( + photo, + getContactUri(cursor), + cursor.getLong(SearchContactsCursorLoader.PHONE_PHOTO_ID), + photoUri == null ? null : Uri.parse(photoUri), + name, + LetterTileDrawable.TYPE_DEFAULT); + } else { + nameOrNumberView.setVisibility(View.GONE); + photo.setVisibility(View.INVISIBLE); + } + } + + private boolean shouldShowPhoto(Cursor cursor, String currentName) { + int currentPosition = cursor.getPosition(); + if (currentPosition == 0) { + return true; + } else { + cursor.moveToPosition(currentPosition - 1); + String previousName = cursor.getString(SearchContactsCursorLoader.PHONE_DISPLAY_NAME); + cursor.moveToPosition(currentPosition); + return !currentName.equals(previousName); + } + } + + private static Uri getContactUri(Cursor cursor) { + long contactId = cursor.getLong(SearchContactsCursorLoader.PHONE_ID); + String lookupKey = cursor.getString(SearchContactsCursorLoader.PHONE_LOOKUP_KEY); + return Contacts.getLookupUri(contactId, lookupKey); + } + + // TODO: handle CNAP and cequint types. + // TODO: unify this into a utility method with CallLogAdapter#getNumberType + private static String getLabel(Resources resources, Cursor cursor) { + int numberType = cursor.getInt(SearchContactsCursorLoader.PHONE_TYPE); + String numberLabel = cursor.getString(SearchContactsCursorLoader.PHONE_LABEL); + + // Returns empty label instead of "custom" if the custom label is empty. + if (numberType == Phone.TYPE_CUSTOM && TextUtils.isEmpty(numberLabel)) { + return ""; + } + return (String) Phone.getTypeLabel(resources, numberType, numberLabel); + } + + private void setCallToAction(Cursor cursor) { + currentAction = getCallToAction(cursor); + switch (currentAction) { + case CallToAction.NONE: + callToActionView.setVisibility(View.GONE); + callToActionView.setOnClickListener(null); + break; + case CallToAction.SHARE_AND_CALL: + callToActionView.setVisibility(View.VISIBLE); + callToActionView.setImageDrawable(context.getDrawable(R.drawable.ic_phone_attach)); + callToActionView.setOnClickListener(this); + break; + case CallToAction.VIDEO_CALL: + callToActionView.setVisibility(View.VISIBLE); + callToActionView.setImageDrawable( + context.getDrawable(R.drawable.quantum_ic_videocam_white_24)); + callToActionView.setOnClickListener(this); + break; + default: + throw Assert.createIllegalStateFailException( + "Invalid Call to action type: " + currentAction); + } + } + + private static @CallToAction int getCallToAction(Cursor cursor) { + int carrierPresence = cursor.getInt(SearchContactsCursorLoader.PHONE_CARRIER_PRESENCE); + if ((carrierPresence & Phone.CARRIER_PRESENCE_VT_CAPABLE) == 1) { + return CallToAction.VIDEO_CALL; + } + + // TODO: enriched calling + return CallToAction.NONE; + } + + @Override + public void onClick(View view) { + if (view == callToActionView) { + switch (currentAction) { + case CallToAction.SHARE_AND_CALL: + callToActionView.setVisibility(View.VISIBLE); + callToActionView.setImageDrawable(context.getDrawable(R.drawable.ic_phone_attach)); + // TODO: open call composer. + break; + case CallToAction.VIDEO_CALL: + callToActionView.setVisibility(View.VISIBLE); + callToActionView.setImageDrawable( + context.getDrawable(R.drawable.quantum_ic_videocam_white_24)); + // TODO: place a video call + break; + case CallToAction.NONE: + default: + throw Assert.createIllegalStateFailException( + "Invalid Call to action type: " + currentAction); + } + } else { + // TODO: set the correct call initiation type. + TelecomUtil.placeCall(context, new CallIntentBuilder(number, Type.REGULAR_SEARCH).build()); + } + } +} diff --git a/java/com/android/dialer/searchfragment/SearchContactsCursorLoader.java b/java/com/android/dialer/searchfragment/SearchContactsCursorLoader.java new file mode 100644 index 000000000..309dfffd9 --- /dev/null +++ b/java/com/android/dialer/searchfragment/SearchContactsCursorLoader.java @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.dialer.searchfragment; + +import android.content.Context; +import android.content.CursorLoader; +import android.provider.ContactsContract.CommonDataKinds.Phone; + +/** Cursor Loader for {@link NewSearchFragment}. */ +final class SearchContactsCursorLoader extends CursorLoader { + + public static final int PHONE_ID = 0; + public static final int PHONE_TYPE = 1; + public static final int PHONE_LABEL = 2; + public static final int PHONE_NUMBER = 3; + public static final int PHONE_DISPLAY_NAME = 4; + public static final int PHONE_PHOTO_ID = 5; + public static final int PHONE_PHOTO_URI = 6; + public static final int PHONE_LOOKUP_KEY = 7; + public static final int PHONE_CARRIER_PRESENCE = 8; + + @SuppressWarnings("unused") + public static final int PHONE_SOFT_KEY = 9; + + static final String[] PHONE_PROJECTION = + new String[] { + Phone._ID, // 0 + Phone.TYPE, // 1 + Phone.LABEL, // 2 + Phone.NUMBER, // 3 + Phone.DISPLAY_NAME_PRIMARY, // 4 + Phone.PHOTO_ID, // 5 + Phone.PHOTO_THUMBNAIL_URI, // 6 + Phone.LOOKUP_KEY, // 7 + Phone.CARRIER_PRESENCE, // 8 + Phone.SORT_KEY_PRIMARY // 9 + }; + + SearchContactsCursorLoader(Context context) { + super( + context, Phone.CONTENT_URI, PHONE_PROJECTION, null, null, Phone.SORT_KEY_PRIMARY + " ASC"); + } +} diff --git a/java/com/android/dialer/searchfragment/SearchCursorManager.java b/java/com/android/dialer/searchfragment/SearchCursorManager.java new file mode 100644 index 000000000..64c4fc170 --- /dev/null +++ b/java/com/android/dialer/searchfragment/SearchCursorManager.java @@ -0,0 +1,229 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.dialer.searchfragment; + +import android.database.Cursor; +import android.support.annotation.IntDef; +import com.android.dialer.common.Assert; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * Manages all of the cursors needed for {@link SearchAdapter}. + * + * <p>This class accepts three cursors: + * + * <ul> + * <li>A contacts cursor {@link #setContactsCursor(Cursor)} + * <li>A google search results cursor {@link #setNearbyPlacesCursor(Cursor)} + * <li>A work directory cursor {@link #setCorpDirectoryCursor(Cursor)} + * </ul> + * + * <p>The key purpose of this class is to compose three aforementioned cursors together to function + * as one cursor. The key methods needed to utilize this class as a cursor are: + * + * <ul> + * <li>{@link #getCursor(int)} + * <li>{@link #getCount()} + * <li>{@link #getRowType(int)} + * </ul> + */ +final class SearchCursorManager { + + /** IntDef for the different types of rows that can be shown when searching. */ + @Retention(RetentionPolicy.SOURCE) + @IntDef({ + SearchCursorManager.RowType.INVALID, + SearchCursorManager.RowType.CONTACT_ROW, + SearchCursorManager.RowType.NEARBY_PLACES_HEADER, + SearchCursorManager.RowType.NEARBY_PLACES_ROW, + SearchCursorManager.RowType.DIRECTORY_HEADER, + SearchCursorManager.RowType.DIRECTORY_ROW + }) + @interface RowType { + int INVALID = 0; + /** A row containing contact information for contacts stored locally on device. */ + int CONTACT_ROW = 1; + /** Header to mark the end of contact rows and start of nearby places rows. */ + int NEARBY_PLACES_HEADER = 2; + /** A row containing nearby places information/search results. */ + int NEARBY_PLACES_ROW = 3; + /** Header to mark the end of the previous row set and start of directory rows. */ + int DIRECTORY_HEADER = 4; + /** A row containing contact information for contacts stored externally in corp directories. */ + int DIRECTORY_ROW = 5; + } + + private Cursor contactsCursor = null; + private Cursor nearbyPlacesCursor = null; + private Cursor corpDirectoryCursor = null; + + void setContactsCursor(Cursor cursor) { + if (cursor != null && cursor.getCount() > 0) { + contactsCursor = cursor; + } else { + contactsCursor = null; + } + } + + void setNearbyPlacesCursor(Cursor cursor) { + if (cursor != null && cursor.getCount() > 0) { + nearbyPlacesCursor = cursor; + } else { + nearbyPlacesCursor = null; + } + } + + void setCorpDirectoryCursor(Cursor cursor) { + if (cursor != null && cursor.getCount() > 0) { + corpDirectoryCursor = cursor; + } else { + corpDirectoryCursor = null; + } + } + + void setQuery(String query) { + if (contactsCursor != null) { + ((SearchContactCursor) contactsCursor).filter(query); + } + } + + /** @return the sum of counts of all cursors, including headers. */ + int getCount() { + int count = 0; + if (contactsCursor != null) { + count += contactsCursor.getCount(); + } + + if (nearbyPlacesCursor != null) { + count++; // header + count += nearbyPlacesCursor.getCount(); + } + + if (corpDirectoryCursor != null) { + count++; // header + count += corpDirectoryCursor.getCount(); + } + + return count; + } + + @RowType + int getRowType(int position) { + if (contactsCursor != null) { + position -= contactsCursor.getCount(); + + if (position < 0) { + return SearchCursorManager.RowType.CONTACT_ROW; + } + } + + if (nearbyPlacesCursor != null) { + if (position == 0) { + return SearchCursorManager.RowType.NEARBY_PLACES_HEADER; + } else { + position--; // header + } + + position -= nearbyPlacesCursor.getCount(); + + if (position < 0) { + return SearchCursorManager.RowType.NEARBY_PLACES_ROW; + } + } + + if (corpDirectoryCursor != null) { + if (position == 0) { + return SearchCursorManager.RowType.DIRECTORY_HEADER; + } else { + position--; // header + } + + position -= corpDirectoryCursor.getCount(); + + if (position < 0) { + return SearchCursorManager.RowType.DIRECTORY_ROW; + } + } + + throw Assert.createIllegalStateFailException("No valid row type."); + } + + /** + * Gets cursor corresponding to position in coelesced list of search cursors. Callers should + * ensure that {@link #getRowType(int)} doesn't correspond to header position, otherwise an + * exception will be thrown. + * + * @param position in coalecsed list of search cursors + * @return Cursor moved to position specific to passed in position. + */ + Cursor getCursor(int position) { + if (contactsCursor != null) { + int count = contactsCursor.getCount(); + + if (position - count < 0) { + contactsCursor.moveToPosition(position); + return contactsCursor; + } + position -= count; + } + + if (nearbyPlacesCursor != null) { + Assert.checkArgument(position != 0, "No valid cursor, position is nearby places header."); + position--; // header + int count = nearbyPlacesCursor.getCount(); + + if (position - count < 0) { + nearbyPlacesCursor.moveToPosition(position); + return nearbyPlacesCursor; + } + position -= count; + } + + if (corpDirectoryCursor != null) { + Assert.checkArgument(position != 0, "No valid cursor, position is directory search header."); + position--; // header + int count = corpDirectoryCursor.getCount(); + + if (position - count < 0) { + corpDirectoryCursor.moveToPosition(position); + return corpDirectoryCursor; + } + position -= count; + } + + throw Assert.createIllegalStateFailException("No valid cursor."); + } + + /** removes all cursors. */ + void clear() { + if (contactsCursor != null) { + contactsCursor.close(); + contactsCursor = null; + } + + if (nearbyPlacesCursor != null) { + nearbyPlacesCursor.close(); + nearbyPlacesCursor = null; + } + + if (corpDirectoryCursor != null) { + corpDirectoryCursor.close(); + corpDirectoryCursor = null; + } + } +} diff --git a/java/com/android/dialer/searchfragment/res/layout/fragment_search.xml b/java/com/android/dialer/searchfragment/res/layout/fragment_search.xml new file mode 100644 index 000000000..06f234889 --- /dev/null +++ b/java/com/android/dialer/searchfragment/res/layout/fragment_search.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> +<android.support.v7.widget.RecyclerView + xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/recycler_view" + android:layout_width="match_parent" + android:layout_height="match_parent"/> diff --git a/java/com/android/dialer/searchfragment/res/layout/search_contact_row.xml b/java/com/android/dialer/searchfragment/res/layout/search_contact_row.xml new file mode 100644 index 000000000..efeca0e9d --- /dev/null +++ b/java/com/android/dialer/searchfragment/res/layout/search_contact_row.xml @@ -0,0 +1,75 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> +<RelativeLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:orientation="horizontal" + android:layout_width="match_parent" + android:layout_height="@dimen/search_row_height" + android:paddingStart="16dp" + android:paddingEnd="16dp" + android:background="?android:attr/selectableItemBackground"> + + <QuickContactBadge + android:id="@+id/photo" + android:layout_width="@dimen/search_row_height" + android:layout_height="@dimen/search_row_height" + android:padding="@dimen/search_photo_padding" + android:clickable="false"/> + + <LinearLayout + android:orientation="vertical" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_toEndOf="@+id/photo" + android:layout_toStartOf="@+id/call_to_action" + android:layout_centerVertical="true"> + + <TextView + android:id="@+id/primary" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:paddingStart="@dimen/search_text_padding_start" + android:gravity="center_vertical|start" + android:textSize="@dimen/new_search_text_size" + android:textColor="@color/dialer_primary_text_color" + android:maxLines="1" + android:ellipsize="end" + android:fontFamily="sans-serif"/> + + <TextView + android:id="@+id/secondary" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:paddingStart="@dimen/search_text_padding_start" + android:gravity="center_vertical|start" + android:textSize="@dimen/new_search_text_size" + android:textColor="@color/dialer_primary_text_color" + android:maxLines="1" + android:ellipsize="end" + android:fontFamily="sans-serif"/> + </LinearLayout> + + <ImageView + android:id="@+id/call_to_action" + android:layout_width="@dimen/search_row_height" + android:layout_height="@dimen/search_row_height" + android:layout_alignParentEnd="true" + android:padding="@dimen/call_to_action_padding" + android:tint="@color/secondary_text_color" + android:visibility="gone" + android:scaleType="center"/> +</RelativeLayout>
\ No newline at end of file diff --git a/java/com/android/dialer/searchfragment/res/values/dimens.xml b/java/com/android/dialer/searchfragment/res/values/dimens.xml new file mode 100644 index 000000000..d5459ddb3 --- /dev/null +++ b/java/com/android/dialer/searchfragment/res/values/dimens.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> +<resources> + <dimen name="search_row_height">56dp</dimen> + <dimen name="search_photo_padding">8dp</dimen> + <dimen name="call_to_action_padding">8dp</dimen> + <dimen name="search_text_padding_start">16dp</dimen> + <dimen name="new_search_text_size">16sp</dimen> +</resources>
\ No newline at end of file diff --git a/java/com/android/dialer/shortcuts/AndroidManifest.xml b/java/com/android/dialer/shortcuts/AndroidManifest.xml index 71320517d..15f77944e 100644 --- a/java/com/android/dialer/shortcuts/AndroidManifest.xml +++ b/java/com/android/dialer/shortcuts/AndroidManifest.xml @@ -20,7 +20,7 @@ android:minSdkVersion="23" android:targetSdkVersion="26"/> - <application> + <application android:theme="@style/Theme.AppCompat"> <service android:exported="false" diff --git a/java/com/android/dialer/telecom/TelecomUtil.java b/java/com/android/dialer/telecom/TelecomUtil.java index 87ddda58b..82b43835f 100644 --- a/java/com/android/dialer/telecom/TelecomUtil.java +++ b/java/com/android/dialer/telecom/TelecomUtil.java @@ -38,12 +38,17 @@ import java.util.List; * perform the required check and return the fallback default if the permission is missing, * otherwise return the value from TelecomManager. */ -public class TelecomUtil { +public abstract class TelecomUtil { private static final String TAG = "TelecomUtil"; private static boolean sWarningLogged = false; - private static Boolean isDefaultDialerForTesting; - private static Boolean hasPermissionForTesting; + + private static TelecomUtilImpl instance = new TelecomUtilImpl(); + + @VisibleForTesting(otherwise = VisibleForTesting.NONE) + public static void setInstanceForTesting(TelecomUtilImpl instanceForTesting) { + instance = instanceForTesting; + } public static void showInCallScreen(Context context, boolean showDialpad) { if (hasReadPhoneStatePermission(context)) { @@ -125,10 +130,7 @@ public class TelecomUtil { } public static boolean isInCall(Context context) { - if (hasReadPhoneStatePermission(context)) { - return getTelecomManager(context).isInCall(); - } - return false; + return instance.isInCall(context); } public static boolean isVoicemailNumber( @@ -189,43 +191,47 @@ public class TelecomUtil { } private static boolean hasPermission(Context context, String permission) { - if (hasPermissionForTesting != null) { - return hasPermissionForTesting; - } - return ContextCompat.checkSelfPermission(context, permission) - == PackageManager.PERMISSION_GRANTED; - } - - public static boolean isDefaultDialer(Context context) { - if (isDefaultDialerForTesting != null) { - return isDefaultDialerForTesting; - } - final boolean result = - TextUtils.equals( - context.getPackageName(), getTelecomManager(context).getDefaultDialerPackage()); - if (result) { - sWarningLogged = false; - } else { - if (!sWarningLogged) { - // Log only once to prevent spam. - LogUtil.w(TAG, "Dialer is not currently set to be default dialer"); - sWarningLogged = true; - } - } - return result; + return instance.hasPermission(context, permission); } private static TelecomManager getTelecomManager(Context context) { return (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE); } - @VisibleForTesting(otherwise = VisibleForTesting.NONE) - public static void setIsDefaultDialerForTesting(Boolean defaultDialer) { - isDefaultDialerForTesting = defaultDialer; + public static boolean isDefaultDialer(Context context) { + return instance.isDefaultDialer(context); } - @VisibleForTesting(otherwise = VisibleForTesting.NONE) - public static void setHasPermissionForTesting(Boolean hasPermission) { - hasPermissionForTesting = hasPermission; + /** Contains an implementation for {@link TelecomUtil} methods */ + @VisibleForTesting() + public static class TelecomUtilImpl { + + public boolean isInCall(Context context) { + if (hasReadPhoneStatePermission(context)) { + return getTelecomManager(context).isInCall(); + } + return false; + } + + public boolean hasPermission(Context context, String permission) { + return ContextCompat.checkSelfPermission(context, permission) + == PackageManager.PERMISSION_GRANTED; + } + + public boolean isDefaultDialer(Context context) { + final boolean result = + TextUtils.equals( + context.getPackageName(), getTelecomManager(context).getDefaultDialerPackage()); + if (result) { + sWarningLogged = false; + } else { + if (!sWarningLogged) { + // Log only once to prevent spam. + LogUtil.w(TAG, "Dialer is not currently set to be default dialer"); + sWarningLogged = true; + } + } + return result; + } } } diff --git a/java/com/android/dialer/theme/res/values-af/strings.xml b/java/com/android/dialer/theme/res/values-af/strings.xml index f263a8186..17e6ceac4 100644 --- a/java/com/android/dialer/theme/res/values-af/strings.xml +++ b/java/com/android/dialer/theme/res/values-af/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Telefoonhokkie"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Foon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Kameratoestemming is geaktiveer"</string> + <string name="video_call" msgid="8914878391104612532">"Video-oproep"</string> <string name="call" msgid="3699617769606114168">"Bel"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-am/strings.xml b/java/com/android/dialer/theme/res/values-am/strings.xml index 4f3624428..5b0b2fd1f 100644 --- a/java/com/android/dialer/theme/res/values-am/strings.xml +++ b/java/com/android/dialer/theme/res/values-am/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"የሕዝብ ስልክ"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"ስልክ"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"የካሜራ ፈቃድ ነቅቷል"</string> + <string name="video_call" msgid="8914878391104612532">"የቪዲዮ ጥሪ"</string> <string name="call" msgid="3699617769606114168">"ደውል"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-ar/strings.xml b/java/com/android/dialer/theme/res/values-ar/strings.xml index 951bde2c0..ea3468e61 100644 --- a/java/com/android/dialer/theme/res/values-ar/strings.xml +++ b/java/com/android/dialer/theme/res/values-ar/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"هاتف يعمل بالعملة"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"الهاتف"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"تم تمكين إذن الكاميرا"</string> + <string name="video_call" msgid="8914878391104612532">"مكالمة فيديو"</string> <string name="call" msgid="3699617769606114168">"اتصال"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-az/strings.xml b/java/com/android/dialer/theme/res/values-az/strings.xml index 08eaf337b..91ead1b68 100644 --- a/java/com/android/dialer/theme/res/values-az/strings.xml +++ b/java/com/android/dialer/theme/res/values-az/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Taksofon"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Kamera icazəsi aktiv edildi"</string> + <string name="video_call" msgid="8914878391104612532">"Video zəng"</string> <string name="call" msgid="3699617769606114168">"Zəng edin"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml index 01cdb4722..a1e59654f 100644 --- a/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml +++ b/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Telefonska govornica"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Omogućena je dozvola za kameru"</string> + <string name="video_call" msgid="8914878391104612532">"Uputi video poziv"</string> <string name="call" msgid="3699617769606114168">"Pozovi"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-be/strings.xml b/java/com/android/dialer/theme/res/values-be/strings.xml index 49be019bf..881aa7f20 100644 --- a/java/com/android/dialer/theme/res/values-be/strings.xml +++ b/java/com/android/dialer/theme/res/values-be/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Таксафон"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Тэлефон"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Уключаны дазвол на выкарыстанне камеры"</string> + <string name="video_call" msgid="8914878391104612532">"Відэавыклік"</string> <string name="call" msgid="3699617769606114168">"Выклікаць"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-bg/strings.xml b/java/com/android/dialer/theme/res/values-bg/strings.xml index 87af9f0fd..debc23803 100644 --- a/java/com/android/dialer/theme/res/values-bg/strings.xml +++ b/java/com/android/dialer/theme/res/values-bg/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Обществен телефон"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Активирано бе разрешението за камерата"</string> + <string name="video_call" msgid="8914878391104612532">"Видеообаждане"</string> <string name="call" msgid="3699617769606114168">"Обаждане"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-bn/strings.xml b/java/com/android/dialer/theme/res/values-bn/strings.xml index ab1c65b5d..806ee8e02 100644 --- a/java/com/android/dialer/theme/res/values-bn/strings.xml +++ b/java/com/android/dialer/theme/res/values-bn/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"পে ফোন"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"ফোন"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"ক্যামেরার অনুমতি সক্ষম করা হয়েছে"</string> + <string name="video_call" msgid="8914878391104612532">"ভিডিও কল"</string> <string name="call" msgid="3699617769606114168">"কল করুন"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-bs/strings.xml b/java/com/android/dialer/theme/res/values-bs/strings.xml index 01cdb4722..bed71a230 100644 --- a/java/com/android/dialer/theme/res/values-bs/strings.xml +++ b/java/com/android/dialer/theme/res/values-bs/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Telefonska govornica"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Dozvola za kameru je omogućena"</string> + <string name="video_call" msgid="8914878391104612532">"Videopoziv"</string> <string name="call" msgid="3699617769606114168">"Pozovi"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-ca/strings.xml b/java/com/android/dialer/theme/res/values-ca/strings.xml index 1e21a1f76..5140ca574 100644 --- a/java/com/android/dialer/theme/res/values-ca/strings.xml +++ b/java/com/android/dialer/theme/res/values-ca/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Telèfon públic"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telèfon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"S\'ha activat el permís d\'accés a la càmera"</string> + <string name="video_call" msgid="8914878391104612532">"Videotrucada"</string> <string name="call" msgid="3699617769606114168">"Truca"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-cs/strings.xml b/java/com/android/dialer/theme/res/values-cs/strings.xml index ca7bad9bb..a951fe7a8 100644 --- a/java/com/android/dialer/theme/res/values-cs/strings.xml +++ b/java/com/android/dialer/theme/res/values-cs/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Telefonní automat"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Byl povolen přístup k fotoaparátu"</string> + <string name="video_call" msgid="8914878391104612532">"Zahájit videohovor"</string> <string name="call" msgid="3699617769606114168">"Volat"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-da/strings.xml b/java/com/android/dialer/theme/res/values-da/strings.xml index c606b281e..54f185041 100644 --- a/java/com/android/dialer/theme/res/values-da/strings.xml +++ b/java/com/android/dialer/theme/res/values-da/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Mønttelefon"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Opkald"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Kameratilladelse er aktiveret"</string> + <string name="video_call" msgid="8914878391104612532">"Videoopkald"</string> <string name="call" msgid="3699617769606114168">"Ring op"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-de/strings.xml b/java/com/android/dialer/theme/res/values-de/strings.xml index d214287c2..0c97581cb 100644 --- a/java/com/android/dialer/theme/res/values-de/strings.xml +++ b/java/com/android/dialer/theme/res/values-de/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Münztelefon"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Berechtigung für Kamera aktiviert"</string> + <string name="video_call" msgid="8914878391104612532">"Videoanruf"</string> <string name="call" msgid="3699617769606114168">"Anrufen"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-el/strings.xml b/java/com/android/dialer/theme/res/values-el/strings.xml index abe1d3f18..1c34a69c7 100644 --- a/java/com/android/dialer/theme/res/values-el/strings.xml +++ b/java/com/android/dialer/theme/res/values-el/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Τηλέφωνο με χρέωση"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Τηλέφωνο"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Το δικαίωμα χρήσης της κάμερας έχει ενεργοποιηθεί"</string> + <string name="video_call" msgid="8914878391104612532">"Βιντεοκλήση"</string> <string name="call" msgid="3699617769606114168">"Κλήση"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-en-rAU/strings.xml b/java/com/android/dialer/theme/res/values-en-rAU/strings.xml index b086b4ca5..136d7df33 100644 --- a/java/com/android/dialer/theme/res/values-en-rAU/strings.xml +++ b/java/com/android/dialer/theme/res/values-en-rAU/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Payphone"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Phone"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Camera permission enabled"</string> + <string name="video_call" msgid="8914878391104612532">"Video call"</string> <string name="call" msgid="3699617769606114168">"Call"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-en-rGB/strings.xml b/java/com/android/dialer/theme/res/values-en-rGB/strings.xml index b086b4ca5..136d7df33 100644 --- a/java/com/android/dialer/theme/res/values-en-rGB/strings.xml +++ b/java/com/android/dialer/theme/res/values-en-rGB/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Payphone"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Phone"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Camera permission enabled"</string> + <string name="video_call" msgid="8914878391104612532">"Video call"</string> <string name="call" msgid="3699617769606114168">"Call"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-en-rIN/strings.xml b/java/com/android/dialer/theme/res/values-en-rIN/strings.xml index b086b4ca5..136d7df33 100644 --- a/java/com/android/dialer/theme/res/values-en-rIN/strings.xml +++ b/java/com/android/dialer/theme/res/values-en-rIN/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Payphone"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Phone"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Camera permission enabled"</string> + <string name="video_call" msgid="8914878391104612532">"Video call"</string> <string name="call" msgid="3699617769606114168">"Call"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-es-rUS/strings.xml b/java/com/android/dialer/theme/res/values-es-rUS/strings.xml index aee2d0a9d..90837b76a 100644 --- a/java/com/android/dialer/theme/res/values-es-rUS/strings.xml +++ b/java/com/android/dialer/theme/res/values-es-rUS/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Teléfono público"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Teléfono"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Se activó el permiso de la cámara"</string> + <string name="video_call" msgid="8914878391104612532">"Videollamada"</string> <string name="call" msgid="3699617769606114168">"Llamar"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-es/strings.xml b/java/com/android/dialer/theme/res/values-es/strings.xml index 343ac2158..c2d3ee3d4 100644 --- a/java/com/android/dialer/theme/res/values-es/strings.xml +++ b/java/com/android/dialer/theme/res/values-es/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Teléfono público"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Teléfono"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Se ha habilitado el acceso a la cámara"</string> + <string name="video_call" msgid="8914878391104612532">"Videollamada"</string> <string name="call" msgid="3699617769606114168">"Llamar"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-et/strings.xml b/java/com/android/dialer/theme/res/values-et/strings.xml index 5b1e6c044..269fa6403 100644 --- a/java/com/android/dialer/theme/res/values-et/strings.xml +++ b/java/com/android/dialer/theme/res/values-et/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Telefoniautomaat"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Kaameraluba on antud"</string> + <string name="video_call" msgid="8914878391104612532">"Videokõne"</string> <string name="call" msgid="3699617769606114168">"Helista"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-eu/strings.xml b/java/com/android/dialer/theme/res/values-eu/strings.xml index dbb4f703c..14345f05f 100644 --- a/java/com/android/dialer/theme/res/values-eu/strings.xml +++ b/java/com/android/dialer/theme/res/values-eu/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Telefono publikoa"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefonoa"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Kamera atzitzeko baimena eman da"</string> + <string name="video_call" msgid="8914878391104612532">"Bideo-deia"</string> <string name="call" msgid="3699617769606114168">"Deitu"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-fa/strings.xml b/java/com/android/dialer/theme/res/values-fa/strings.xml index 99bed5f22..f751f3404 100644 --- a/java/com/android/dialer/theme/res/values-fa/strings.xml +++ b/java/com/android/dialer/theme/res/values-fa/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="ID">%d</xliff:g> <xliff:g id="UNKNOWN">%s</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"تلفن عمومی"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"تلفن"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"مجوز دوربین فعال شد"</string> + <string name="video_call" msgid="8914878391104612532">"تماس ویدیویی"</string> <string name="call" msgid="3699617769606114168">"تماس"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-fi/strings.xml b/java/com/android/dialer/theme/res/values-fi/strings.xml index a180be565..0c09d7f43 100644 --- a/java/com/android/dialer/theme/res/values-fi/strings.xml +++ b/java/com/android/dialer/theme/res/values-fi/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Maksupuhelin"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Puhelin"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Kameran käyttöoikeus myönnettiin"</string> + <string name="video_call" msgid="8914878391104612532">"Videopuhelu"</string> <string name="call" msgid="3699617769606114168">"Soita"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml b/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml index 18a70bbe8..7d901ca39 100644 --- a/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml +++ b/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Cabine téléphonique"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Téléphone"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Autorisation d\'accès à l\'appareil photo activée"</string> + <string name="video_call" msgid="8914878391104612532">"Appel vidéo"</string> <string name="call" msgid="3699617769606114168">"Appeler"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-fr/strings.xml b/java/com/android/dialer/theme/res/values-fr/strings.xml index 18a70bbe8..1c30ef1e7 100644 --- a/java/com/android/dialer/theme/res/values-fr/strings.xml +++ b/java/com/android/dialer/theme/res/values-fr/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Cabine téléphonique"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Téléphone"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Autorisation d\'accès à l\'appareil photo accordée"</string> + <string name="video_call" msgid="8914878391104612532">"Appel vidéo"</string> <string name="call" msgid="3699617769606114168">"Appeler"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-gl/strings.xml b/java/com/android/dialer/theme/res/values-gl/strings.xml index fbbad6c07..083d395ad 100644 --- a/java/com/android/dialer/theme/res/values-gl/strings.xml +++ b/java/com/android/dialer/theme/res/values-gl/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Teléfono público"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Teléfono"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Activouse o permiso de acceso á cámara"</string> + <string name="video_call" msgid="8914878391104612532">"Videochamada"</string> <string name="call" msgid="3699617769606114168">"Chamar"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-gu/strings.xml b/java/com/android/dialer/theme/res/values-gu/strings.xml index 9b38dcd3f..4baba6971 100644 --- a/java/com/android/dialer/theme/res/values-gu/strings.xml +++ b/java/com/android/dialer/theme/res/values-gu/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"પેફોન"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"ફોન"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"કૅમેરાની પરવાનગી સક્ષમ કરી"</string> + <string name="video_call" msgid="8914878391104612532">"વિડિઓ કૉલ"</string> <string name="call" msgid="3699617769606114168">"કૉલ કરો"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-hi/strings.xml b/java/com/android/dialer/theme/res/values-hi/strings.xml index ee360b404..758be5d22 100644 --- a/java/com/android/dialer/theme/res/values-hi/strings.xml +++ b/java/com/android/dialer/theme/res/values-hi/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"पे-फ़ोन"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"फ़ोन"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"कैमरे की अनुमति सक्षम की गई"</string> + <string name="video_call" msgid="8914878391104612532">"वीडियो कॉल"</string> <string name="call" msgid="3699617769606114168">"कॉल करें"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-hr/strings.xml b/java/com/android/dialer/theme/res/values-hr/strings.xml index 92e19567d..89a5aeec2 100644 --- a/java/com/android/dialer/theme/res/values-hr/strings.xml +++ b/java/com/android/dialer/theme/res/values-hr/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Javna telefonska govornica"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Omogućen je pristup kameri"</string> + <string name="video_call" msgid="8914878391104612532">"Videopoziv"</string> <string name="call" msgid="3699617769606114168">"Pozovi"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-hu/strings.xml b/java/com/android/dialer/theme/res/values-hu/strings.xml index dfcc876e4..30051d430 100644 --- a/java/com/android/dialer/theme/res/values-hu/strings.xml +++ b/java/com/android/dialer/theme/res/values-hu/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Nyilvános telefon"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Kameraengedély megadva"</string> + <string name="video_call" msgid="8914878391104612532">"Videohívás"</string> <string name="call" msgid="3699617769606114168">"Hívás"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-hy/strings.xml b/java/com/android/dialer/theme/res/values-hy/strings.xml index 3b4e862b3..6577dab16 100644 --- a/java/com/android/dialer/theme/res/values-hy/strings.xml +++ b/java/com/android/dialer/theme/res/values-hy/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Բջջային տերմինալ"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Հեռախոս"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Տեսախցիկից օգտվելու թույլտվությունը տրամադրված է"</string> + <string name="video_call" msgid="8914878391104612532">"Տեսազանգ"</string> <string name="call" msgid="3699617769606114168">"Զանգել"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-in/strings.xml b/java/com/android/dialer/theme/res/values-in/strings.xml index eda15a299..d2d72b832 100644 --- a/java/com/android/dialer/theme/res/values-in/strings.xml +++ b/java/com/android/dialer/theme/res/values-in/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Telepon Umum"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telepon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Izin kamera diaktifkan"</string> + <string name="video_call" msgid="8914878391104612532">"Video call"</string> <string name="call" msgid="3699617769606114168">"Telepon"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-is/strings.xml b/java/com/android/dialer/theme/res/values-is/strings.xml index cda7fc8fe..ff3faf836 100644 --- a/java/com/android/dialer/theme/res/values-is/strings.xml +++ b/java/com/android/dialer/theme/res/values-is/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Símasjálfsali"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Sími"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Myndavélarheimild virk"</string> + <string name="video_call" msgid="8914878391104612532">"Hringja myndsímtal"</string> <string name="call" msgid="3699617769606114168">"Hringja"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-it/strings.xml b/java/com/android/dialer/theme/res/values-it/strings.xml index fa2caa6bb..4b26288ac 100644 --- a/java/com/android/dialer/theme/res/values-it/strings.xml +++ b/java/com/android/dialer/theme/res/values-it/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Cabina telefonica"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefono"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Autorizzazioni della fotocamera attivate"</string> + <string name="video_call" msgid="8914878391104612532">"Videochiamata"</string> <string name="call" msgid="3699617769606114168">"Chiama"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-iw/strings.xml b/java/com/android/dialer/theme/res/values-iw/strings.xml index 18d87eaf7..09abf2ed1 100644 --- a/java/com/android/dialer/theme/res/values-iw/strings.xml +++ b/java/com/android/dialer/theme/res/values-iw/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"טלפון ציבורי"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"טלפון"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"הרשאת הגישה למצלמה הופעלה"</string> + <string name="video_call" msgid="8914878391104612532">"שיחת וידאו"</string> <string name="call" msgid="3699617769606114168">"התקשר"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-ja/strings.xml b/java/com/android/dialer/theme/res/values-ja/strings.xml index 39215598c..551d67983 100644 --- a/java/com/android/dialer/theme/res/values-ja/strings.xml +++ b/java/com/android/dialer/theme/res/values-ja/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g>(<xliff:g id="ID">%d</xliff:g>)"</string> <string name="payphone" msgid="7106361320283710387">"公衆電話"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"電話"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"カメラへのアクセスを自動で許可しました"</string> + <string name="video_call" msgid="8914878391104612532">"ビデオハングアウト"</string> <string name="call" msgid="3699617769606114168">"発信"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-ka/strings.xml b/java/com/android/dialer/theme/res/values-ka/strings.xml index 18e7cb34d..ab225954e 100644 --- a/java/com/android/dialer/theme/res/values-ka/strings.xml +++ b/java/com/android/dialer/theme/res/values-ka/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"გადახდის ტელეფონი"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"ტელეფონი"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"კამერაზე წვდომის ნებართვა ჩართულია"</string> + <string name="video_call" msgid="8914878391104612532">"ვიდეოზარი"</string> <string name="call" msgid="3699617769606114168">"დარეკვა"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-kk/strings.xml b/java/com/android/dialer/theme/res/values-kk/strings.xml index f9c62d32e..d3a1b7bb9 100644 --- a/java/com/android/dialer/theme/res/values-kk/strings.xml +++ b/java/com/android/dialer/theme/res/values-kk/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Автомат-телефон"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Камера рұқсаты қосылды"</string> + <string name="video_call" msgid="8914878391104612532">"Бейне қоңырау"</string> <string name="call" msgid="3699617769606114168">"Қоңырау шалу"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-km/strings.xml b/java/com/android/dialer/theme/res/values-km/strings.xml index 7e375cf99..900f1d690 100644 --- a/java/com/android/dialer/theme/res/values-km/strings.xml +++ b/java/com/android/dialer/theme/res/values-km/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"ទូរស័ព្ទសាធារណៈ"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"ទូរស័ព្ទ"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"បានបើកការអនុញ្ញាតកាមេរ៉ា"</string> + <string name="video_call" msgid="8914878391104612532">"ការហៅវីដេអូ"</string> <string name="call" msgid="3699617769606114168">"ហៅទូរសព្ទ"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-kn/strings.xml b/java/com/android/dialer/theme/res/values-kn/strings.xml index 718fea0d4..ab9f816db 100644 --- a/java/com/android/dialer/theme/res/values-kn/strings.xml +++ b/java/com/android/dialer/theme/res/values-kn/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"ಪೇಫೋನ್"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"ಫೋನ್"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"ಕ್ಯಾಮರಾ ಅನುಮತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string> + <string name="video_call" msgid="8914878391104612532">"ವೀಡಿಯೊ ಕರೆ"</string> <string name="call" msgid="3699617769606114168">"ಕರೆಮಾಡಿ"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-ko/strings.xml b/java/com/android/dialer/theme/res/values-ko/strings.xml index 29f608c6e..b5ac55695 100644 --- a/java/com/android/dialer/theme/res/values-ko/strings.xml +++ b/java/com/android/dialer/theme/res/values-ko/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"공중전화"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"휴대전화"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"카메라 권한 사용 가능"</string> + <string name="video_call" msgid="8914878391104612532">"화상 통화"</string> <string name="call" msgid="3699617769606114168">"전화"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-ky/strings.xml b/java/com/android/dialer/theme/res/values-ky/strings.xml index 905b8c5ff..0a9bec294 100644 --- a/java/com/android/dialer/theme/res/values-ky/strings.xml +++ b/java/com/android/dialer/theme/res/values-ky/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Таксофон"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Камеранын уруксаты иштетилди"</string> + <string name="video_call" msgid="8914878391104612532">"Видео чалуу"</string> <string name="call" msgid="3699617769606114168">"Чалуу"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-lo/strings.xml b/java/com/android/dialer/theme/res/values-lo/strings.xml index 6826a753f..d33d43e5b 100644 --- a/java/com/android/dialer/theme/res/values-lo/strings.xml +++ b/java/com/android/dialer/theme/res/values-lo/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"ຕູ້ໂທລະສັບສາທາລະນະ"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"ໂທລະສັບ"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"ເປີດໃຊ້ສິດອະນຸຍາດກ້ອງຖ່າຍຮູບແລ້ວ"</string> + <string name="video_call" msgid="8914878391104612532">"ໂທວິດີໂອ"</string> <string name="call" msgid="3699617769606114168">"ໂທ"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-lt/strings.xml b/java/com/android/dialer/theme/res/values-lt/strings.xml index 43469a1fd..fdf31e227 100644 --- a/java/com/android/dialer/theme/res/values-lt/strings.xml +++ b/java/com/android/dialer/theme/res/values-lt/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="ID">%d</xliff:g> <xliff:g id="UNKNOWN">%s</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Taksofonas"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefonas"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Fotoaparato leidimas įgalintas"</string> + <string name="video_call" msgid="8914878391104612532">"Vaizdo skambutis"</string> <string name="call" msgid="3699617769606114168">"Skambinti"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-lv/strings.xml b/java/com/android/dialer/theme/res/values-lv/strings.xml index f9a6deca8..031c5bdea 100644 --- a/java/com/android/dialer/theme/res/values-lv/strings.xml +++ b/java/com/android/dialer/theme/res/values-lv/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Maksas tālrunis"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Tālrunis"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Kameras atļauja iespējota"</string> + <string name="video_call" msgid="8914878391104612532">"Videozvans"</string> <string name="call" msgid="3699617769606114168">"Zvanīt"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-mk/strings.xml b/java/com/android/dialer/theme/res/values-mk/strings.xml index 1328edbb2..d89d12e90 100644 --- a/java/com/android/dialer/theme/res/values-mk/strings.xml +++ b/java/com/android/dialer/theme/res/values-mk/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Говорница"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Дозволата за камера е овозможена"</string> + <string name="video_call" msgid="8914878391104612532">"Воспоставете видеоповик"</string> <string name="call" msgid="3699617769606114168">"Повикајте"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-ml/strings.xml b/java/com/android/dialer/theme/res/values-ml/strings.xml index 03f9533ff..f02ceeb06 100644 --- a/java/com/android/dialer/theme/res/values-ml/strings.xml +++ b/java/com/android/dialer/theme/res/values-ml/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"പണം നൽകി ഉപയോഗിക്കുന്ന ഫോൺ"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"ഫോണ്"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"ക്യാമറ അനുമതി നൽകി"</string> + <string name="video_call" msgid="8914878391104612532">"വീഡിയോ കോള്"</string> <string name="call" msgid="3699617769606114168">"വിളിക്കുക"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-mn/strings.xml b/java/com/android/dialer/theme/res/values-mn/strings.xml index c47f08324..7a07e5d4d 100644 --- a/java/com/android/dialer/theme/res/values-mn/strings.xml +++ b/java/com/android/dialer/theme/res/values-mn/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Payphone"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Утас"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Камерын зөвшөөрөл идэвхжсэн"</string> + <string name="video_call" msgid="8914878391104612532">"Видео дуудлага"</string> <string name="call" msgid="3699617769606114168">"Залгах"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-mr/strings.xml b/java/com/android/dialer/theme/res/values-mr/strings.xml index 41a9c96e0..eeb9afa1e 100644 --- a/java/com/android/dialer/theme/res/values-mr/strings.xml +++ b/java/com/android/dialer/theme/res/values-mr/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"सार्वजनिक फोन"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"फोन"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"कॅमेरा परवानगी सक्षम केली"</string> + <string name="video_call" msgid="8914878391104612532">"व्हिडिओ कॉल"</string> <string name="call" msgid="3699617769606114168">"कॉल करा"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-ms/strings.xml b/java/com/android/dialer/theme/res/values-ms/strings.xml index b28fe26ac..2e424fdf7 100644 --- a/java/com/android/dialer/theme/res/values-ms/strings.xml +++ b/java/com/android/dialer/theme/res/values-ms/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Telefon Awam"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Kebenaran kamera didayakan"</string> + <string name="video_call" msgid="8914878391104612532">"Panggilan video"</string> <string name="call" msgid="3699617769606114168">"Panggil"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-my/strings.xml b/java/com/android/dialer/theme/res/values-my/strings.xml index eb21b6ef2..97b871b30 100644 --- a/java/com/android/dialer/theme/res/values-my/strings.xml +++ b/java/com/android/dialer/theme/res/values-my/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"ငွေပေးရသည့်ဖုန်း"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"ဖုန်း"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"ကင်မရာအသုံးပြုခွင့် ဖွင့်ထားပါသည်"</string> + <string name="video_call" msgid="8914878391104612532">"ဗီဒီယိုခေါ်ဆိုမှု"</string> <string name="call" msgid="3699617769606114168">"ခေါ်ဆိုရန်"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-nb/strings.xml b/java/com/android/dialer/theme/res/values-nb/strings.xml index dcd9b17ad..7587b7e30 100644 --- a/java/com/android/dialer/theme/res/values-nb/strings.xml +++ b/java/com/android/dialer/theme/res/values-nb/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Telefonkiosk"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Kameratillatelsen er aktivert"</string> + <string name="video_call" msgid="8914878391104612532">"Videosamtale"</string> <string name="call" msgid="3699617769606114168">"Ring"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-ne/strings.xml b/java/com/android/dialer/theme/res/values-ne/strings.xml index 383ac2c8d..af1ad5e24 100644 --- a/java/com/android/dialer/theme/res/values-ne/strings.xml +++ b/java/com/android/dialer/theme/res/values-ne/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"पेफोन"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"फोन"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"क्यामेरा सम्बन्धी अनुमतिहरूलाई सक्षम पारियो"</string> + <string name="video_call" msgid="8914878391104612532">"भिडियो कल"</string> <string name="call" msgid="3699617769606114168">"कल गर्नुहोस्"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-nl/strings.xml b/java/com/android/dialer/theme/res/values-nl/strings.xml index 96357081d..ab51c97ae 100644 --- a/java/com/android/dialer/theme/res/values-nl/strings.xml +++ b/java/com/android/dialer/theme/res/values-nl/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Telefooncel"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefoon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Camerarechten ingeschakeld"</string> + <string name="video_call" msgid="8914878391104612532">"Videogesprek"</string> <string name="call" msgid="3699617769606114168">"Bellen"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-no/strings.xml b/java/com/android/dialer/theme/res/values-no/strings.xml index dcd9b17ad..7587b7e30 100644 --- a/java/com/android/dialer/theme/res/values-no/strings.xml +++ b/java/com/android/dialer/theme/res/values-no/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Telefonkiosk"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Kameratillatelsen er aktivert"</string> + <string name="video_call" msgid="8914878391104612532">"Videosamtale"</string> <string name="call" msgid="3699617769606114168">"Ring"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-pa/strings.xml b/java/com/android/dialer/theme/res/values-pa/strings.xml index dc23b7a69..8784bcae1 100644 --- a/java/com/android/dialer/theme/res/values-pa/strings.xml +++ b/java/com/android/dialer/theme/res/values-pa/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"ਪੇਫੋਨ"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"ਫੋਨ"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"ਕੈਮਰਾ ਇਜਾਜ਼ਤ ਨੂੰ ਯੋਗ ਬਣਾਇਆ ਗਿਆ ਹੈ"</string> + <string name="video_call" msgid="8914878391104612532">"ਵੀਡੀਓ ਕਾਲ"</string> <string name="call" msgid="3699617769606114168">"ਕਾਲ ਕਰੋ"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-pl/strings.xml b/java/com/android/dialer/theme/res/values-pl/strings.xml index 1ebaad2cc..246261e97 100644 --- a/java/com/android/dialer/theme/res/values-pl/strings.xml +++ b/java/com/android/dialer/theme/res/values-pl/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Automat telefoniczny"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Uprawnienia do korzystania z aparatu zostały włączone"</string> + <string name="video_call" msgid="8914878391104612532">"Rozmowa wideo"</string> <string name="call" msgid="3699617769606114168">"Zadzwoń"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml b/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml index 6caf87cb8..c1356d9b3 100644 --- a/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml +++ b/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Telefone público"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefone"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Permissão de câmera ativada"</string> + <string name="video_call" msgid="8914878391104612532">"Videochamada"</string> <string name="call" msgid="3699617769606114168">"Ligar"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml b/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml index ef7c7d6c6..2b46e44a1 100644 --- a/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml +++ b/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Telefone público"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefone"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Autorização da câmara ativada"</string> + <string name="video_call" msgid="8914878391104612532">"Videochamada"</string> <string name="call" msgid="3699617769606114168">"Telefonar"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-pt/strings.xml b/java/com/android/dialer/theme/res/values-pt/strings.xml index 6caf87cb8..c1356d9b3 100644 --- a/java/com/android/dialer/theme/res/values-pt/strings.xml +++ b/java/com/android/dialer/theme/res/values-pt/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Telefone público"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefone"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Permissão de câmera ativada"</string> + <string name="video_call" msgid="8914878391104612532">"Videochamada"</string> <string name="call" msgid="3699617769606114168">"Ligar"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-ro/strings.xml b/java/com/android/dialer/theme/res/values-ro/strings.xml index 4d0c09baf..8978e9240 100644 --- a/java/com/android/dialer/theme/res/values-ro/strings.xml +++ b/java/com/android/dialer/theme/res/values-ro/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Telefon public"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Permisiunea pentru cameră a fost activată."</string> + <string name="video_call" msgid="8914878391104612532">"Apel video"</string> <string name="call" msgid="3699617769606114168">"Apelați"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-ru/strings.xml b/java/com/android/dialer/theme/res/values-ru/strings.xml index aeab13624..a155052be 100644 --- a/java/com/android/dialer/theme/res/values-ru/strings.xml +++ b/java/com/android/dialer/theme/res/values-ru/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Телефон-автомат"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Доступ к камере разрешен"</string> + <string name="video_call" msgid="8914878391104612532">"Видеовызов"</string> <string name="call" msgid="3699617769606114168">"Позвонить"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-si/strings.xml b/java/com/android/dialer/theme/res/values-si/strings.xml index ba3bb0577..424a11255 100644 --- a/java/com/android/dialer/theme/res/values-si/strings.xml +++ b/java/com/android/dialer/theme/res/values-si/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"පේෆෝනය"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"දුරකථනය"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"කැමරා අවසර සබල කර ඇත"</string> + <string name="video_call" msgid="8914878391104612532">"වීඩියෝ ඇමතුම"</string> <string name="call" msgid="3699617769606114168">"ඇමතුම"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-sk/strings.xml b/java/com/android/dialer/theme/res/values-sk/strings.xml index 6863463ae..411b85edc 100644 --- a/java/com/android/dialer/theme/res/values-sk/strings.xml +++ b/java/com/android/dialer/theme/res/values-sk/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Telefónny automat"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefón"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Povolenie pre fotoaparát je aktivované"</string> + <string name="video_call" msgid="8914878391104612532">"Videohovor"</string> <string name="call" msgid="3699617769606114168">"Volať"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-sl/strings.xml b/java/com/android/dialer/theme/res/values-sl/strings.xml index 1b1776abc..85a3e2b8e 100644 --- a/java/com/android/dialer/theme/res/values-sl/strings.xml +++ b/java/com/android/dialer/theme/res/values-sl/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Telefonska govorilnica"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Dovoljenje za dostop do fotoaparata je omogočeno"</string> + <string name="video_call" msgid="8914878391104612532">"Videoklic"</string> <string name="call" msgid="3699617769606114168">"Pokliči"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-sq/strings.xml b/java/com/android/dialer/theme/res/values-sq/strings.xml index 0d7084af6..5cbd587d3 100644 --- a/java/com/android/dialer/theme/res/values-sq/strings.xml +++ b/java/com/android/dialer/theme/res/values-sq/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Telefon me pagesë"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefoni"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Leja e kamerës është aktivizuar"</string> + <string name="video_call" msgid="8914878391104612532">"Telefonatë me video"</string> <string name="call" msgid="3699617769606114168">"Telefono"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-sr/strings.xml b/java/com/android/dialer/theme/res/values-sr/strings.xml index a744e9530..310da735d 100644 --- a/java/com/android/dialer/theme/res/values-sr/strings.xml +++ b/java/com/android/dialer/theme/res/values-sr/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Телефонска говорница"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Омогућена је дозвола за камеру"</string> + <string name="video_call" msgid="8914878391104612532">"Упути видео позив"</string> <string name="call" msgid="3699617769606114168">"Позови"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-sv/strings.xml b/java/com/android/dialer/theme/res/values-sv/strings.xml index f409807ef..af8e5f7b1 100644 --- a/java/com/android/dialer/theme/res/values-sv/strings.xml +++ b/java/com/android/dialer/theme/res/values-sv/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Telefonautomat"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Kamerabehörighet har aktiverats"</string> + <string name="video_call" msgid="8914878391104612532">"Videosamtal"</string> <string name="call" msgid="3699617769606114168">"Ring"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-sw/strings.xml b/java/com/android/dialer/theme/res/values-sw/strings.xml index a2f98888d..31615febb 100644 --- a/java/com/android/dialer/theme/res/values-sw/strings.xml +++ b/java/com/android/dialer/theme/res/values-sw/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Simu ya kulipia"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Simu"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Imewasha ruhusa ya kamera"</string> + <string name="video_call" msgid="8914878391104612532">"Simu ya video"</string> <string name="call" msgid="3699617769606114168">"Piga simu"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-ta/strings.xml b/java/com/android/dialer/theme/res/values-ta/strings.xml index a4f55f5c7..ab15f0b0c 100644 --- a/java/com/android/dialer/theme/res/values-ta/strings.xml +++ b/java/com/android/dialer/theme/res/values-ta/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"கட்டணத் தொலைபேசி"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"மொபைல்"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"கேமராவிற்கான அனுமதி இயக்கப்பட்டது"</string> + <string name="video_call" msgid="8914878391104612532">"வீடியோ அழைப்பு"</string> <string name="call" msgid="3699617769606114168">"அழை"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-te/strings.xml b/java/com/android/dialer/theme/res/values-te/strings.xml index 59f00ca1f..4a6fca1fb 100644 --- a/java/com/android/dialer/theme/res/values-te/strings.xml +++ b/java/com/android/dialer/theme/res/values-te/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"పే ఫోన్"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"ఫోన్"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"కెమెరా అనుమతిని ప్రారంభించాము"</string> + <string name="video_call" msgid="8914878391104612532">"వీడియో కాల్"</string> <string name="call" msgid="3699617769606114168">"కాల్ చేయి"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-th/strings.xml b/java/com/android/dialer/theme/res/values-th/strings.xml index 3870b4da6..51db053fa 100644 --- a/java/com/android/dialer/theme/res/values-th/strings.xml +++ b/java/com/android/dialer/theme/res/values-th/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"โทรศัพท์สาธารณะ"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"โทรศัพท์"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"ให้สิทธิ์เข้าถึงกล้องถ่ายรูปแล้ว"</string> + <string name="video_call" msgid="8914878391104612532">"แฮงเอาท์วิดีโอ"</string> <string name="call" msgid="3699617769606114168">"โทร"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-tl/strings.xml b/java/com/android/dialer/theme/res/values-tl/strings.xml index 81692789f..97f69ec1c 100644 --- a/java/com/android/dialer/theme/res/values-tl/strings.xml +++ b/java/com/android/dialer/theme/res/values-tl/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Payphone"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telepono"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Na-enable ang pahintulot sa camera"</string> + <string name="video_call" msgid="8914878391104612532">"Mag-video call"</string> <string name="call" msgid="3699617769606114168">"Tawag"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-tr/strings.xml b/java/com/android/dialer/theme/res/values-tr/strings.xml index c11cd1375..b38f0674d 100644 --- a/java/com/android/dialer/theme/res/values-tr/strings.xml +++ b/java/com/android/dialer/theme/res/values-tr/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Ankesörlü telefon"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Kamera izni etkinleştirildi"</string> + <string name="video_call" msgid="8914878391104612532">"Görüntülü görüşme"</string> <string name="call" msgid="3699617769606114168">"Telefon et"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-uk/strings.xml b/java/com/android/dialer/theme/res/values-uk/strings.xml index c87fe89b7..f0702770a 100644 --- a/java/com/android/dialer/theme/res/values-uk/strings.xml +++ b/java/com/android/dialer/theme/res/values-uk/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Таксофон"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Камері надано дозвіл"</string> + <string name="video_call" msgid="8914878391104612532">"Відеодзвінок"</string> <string name="call" msgid="3699617769606114168">"Виклик"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-ur/strings.xml b/java/com/android/dialer/theme/res/values-ur/strings.xml index abc0d6d6b..e9a4b44bb 100644 --- a/java/com/android/dialer/theme/res/values-ur/strings.xml +++ b/java/com/android/dialer/theme/res/values-ur/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"پے فون"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"فون"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"کیمرا کی اجازت فعال ہے"</string> + <string name="video_call" msgid="8914878391104612532">"ویڈیو کال"</string> <string name="call" msgid="3699617769606114168">"کال کریں"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-uz/strings.xml b/java/com/android/dialer/theme/res/values-uz/strings.xml index 2889f3f12..2bbaf2080 100644 --- a/java/com/android/dialer/theme/res/values-uz/strings.xml +++ b/java/com/android/dialer/theme/res/values-uz/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Taksofon"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Kameraga kirishga ruxsat berildi"</string> + <string name="video_call" msgid="8914878391104612532">"Video suhbat"</string> <string name="call" msgid="3699617769606114168">"Chaqirish"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-vi/strings.xml b/java/com/android/dialer/theme/res/values-vi/strings.xml index b014516be..fae318091 100644 --- a/java/com/android/dialer/theme/res/values-vi/strings.xml +++ b/java/com/android/dialer/theme/res/values-vi/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Điện thoại công cộng"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Điện thoại"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Đã bật quyền sử dụng máy ảnh"</string> + <string name="video_call" msgid="8914878391104612532">"Gọi điện video"</string> <string name="call" msgid="3699617769606114168">"Gọi"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml b/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml index baff75258..2e6096296 100644 --- a/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml +++ b/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"公用电话"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"电话"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"已启用相机使用权限"</string> + <string name="video_call" msgid="8914878391104612532">"视频通话"</string> <string name="call" msgid="3699617769606114168">"拨打电话"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml b/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml index 8b26663d1..7b08024ac 100644 --- a/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml +++ b/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"公共電話"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"電話"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"已啟用相機權限"</string> + <string name="video_call" msgid="8914878391104612532">"視像通話"</string> <string name="call" msgid="3699617769606114168">"通話"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml b/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml index 24a5c10d1..57d7fe2b1 100644 --- a/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml +++ b/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"公用電話"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"電話"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"已啟用相機權限"</string> + <string name="video_call" msgid="8914878391104612532">"視訊通話"</string> <string name="call" msgid="3699617769606114168">"撥號"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values-zu/strings.xml b/java/com/android/dialer/theme/res/values-zu/strings.xml index 96cd79873..d0dd7288b 100644 --- a/java/com/android/dialer/theme/res/values-zu/strings.xml +++ b/java/com/android/dialer/theme/res/values-zu/strings.xml @@ -21,5 +21,7 @@ <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string> <string name="payphone" msgid="7106361320283710387">"Ucingo olufakwa imali"</string> <string name="launcherActivityLabel" msgid="9034868428899993166">"Ifoni"</string> + <string name="camera_privacy_text" msgid="1318954032109938588">"Imvume yekhamera inikwe amandla"</string> + <string name="video_call" msgid="8914878391104612532">"Ikholi yevidiyo"</string> <string name="call" msgid="3699617769606114168">"Shaya"</string> </resources> diff --git a/java/com/android/dialer/theme/res/values/strings.xml b/java/com/android/dialer/theme/res/values/strings.xml index a14693f51..af61d3596 100644 --- a/java/com/android/dialer/theme/res/values/strings.xml +++ b/java/com/android/dialer/theme/res/values/strings.xml @@ -30,6 +30,12 @@ used in the Launcher icon. --> <string name="launcherActivityLabel">Phone</string> + <!-- Text presented to the user explaining that we have enabled the camera permission automatically --> + <string name="camera_privacy_text">Camera permission enabled</string> + + <!-- text on a button, Video call, as in to place a video call. --> + <string name="video_call">Video call</string> + <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed --> <string name="call">Call</string> </resources> diff --git a/java/com/android/dialer/theme/res/values/themes.xml b/java/com/android/dialer/theme/res/values/themes.xml index 0d0c45f90..124682692 100644 --- a/java/com/android/dialer/theme/res/values/themes.xml +++ b/java/com/android/dialer/theme/res/values/themes.xml @@ -1,4 +1,19 @@ <?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> <resources> <style name="DialerThemeBase" parent="@style/Theme.AppCompat.Light.DarkActionBar"> @@ -19,6 +34,20 @@ <item name="actionBarSize">@dimen/action_bar_height</item> </style> + <!-- Should be kept in sync with the theme above (minus anything related to actionbars --> + <style name="DialerThemeBase.NoActionBar" parent="@style/Theme.AppCompat.Light.NoActionBar"> + <item name="android:textColorPrimary">@color/dialer_primary_text_color</item> + <item name="android:textColorSecondary">@color/dialer_secondary_text_color</item> + <!-- This is used for title bar color in recents --> + <item name="android:colorPrimary">@color/titlebar_in_recents_background_color</item> + <item name="android:colorPrimaryDark">@color/dialer_theme_color_dark</item> + <item name="android:colorControlActivated">@color/dialer_theme_color</item> + <item name="android:colorButtonNormal">@color/dialer_theme_color</item> + <item name="android:colorAccent">@color/dialtacts_theme_color</item> + <item name="android:alertDialogTheme">@style/AlertDialogTheme</item> + <item name="android:textAppearanceButton">@style/DialerButtonTextStyle</item> + </style> + <style name="Theme.AppCompat.Translucent" parent="Theme.AppCompat.NoActionBar"> <item name="android:windowNoTitle">true</item> <item name="android:windowBackground">@android:color/transparent</item> @@ -26,4 +55,18 @@ <item name="android:windowIsTranslucent">true</item> <item name="android:windowAnimationStyle">@android:style/Animation</item> </style> + + <style name="PrimaryText"> + <item name="android:textColor">#DE000000</item> + <item name="android:textSize">16sp</item> + <item name="android:ellipsize">end</item> + <item name="android:maxLines">1</item> + </style> + + <style name="SecondaryText"> + <item name="android:textColor">#8A000000</item> + <item name="android:textSize">14sp</item> + <item name="android:ellipsize">end</item> + <item name="android:maxLines">1</item> + </style> </resources> diff --git a/java/com/android/dialer/util/CallUtil.java b/java/com/android/dialer/util/CallUtil.java index 81a4bb21e..b6ab3b30e 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 466e86204..72a59eaef 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 9e1058383..fe0e86110 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 index cfc8665a2..a76ab98d6 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 b136f47eb..615ad3b77 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 Binary files differindex d3c0378f5..d3c0378f5 100644 --- a/java/com/android/dialer/app/res/drawable-hdpi/empty_contacts.png +++ b/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 Binary files differindex 2ce7eae37..2ce7eae37 100644 --- a/java/com/android/dialer/app/res/drawable-mdpi/empty_contacts.png +++ b/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 Binary files differindex 65b1de333..65b1de333 100644 --- a/java/com/android/dialer/app/res/drawable-xhdpi/empty_contacts.png +++ b/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 Binary files differindex 407d78c9c..407d78c9c 100644 --- a/java/com/android/dialer/app/res/drawable-xxhdpi/empty_contacts.png +++ b/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 Binary files differindex 5893965e9..5893965e9 100644 --- a/java/com/android/dialer/app/res/drawable-xxxhdpi/empty_contacts.png +++ b/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 c4aac65fb..023b0ffe2 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"/> <TextView android:id="@+id/subtitle" @@ -37,6 +39,8 @@ android:layout_height="wrap_content" android:textSize="@dimen/toolbar_subtitle_text_size" android:textColor="@color/background_dialer_white" - android:visibility="gone"/> + android:visibility="gone" + android:maxLines="1" + android:ellipsize="end"/> </LinearLayout> </merge>
\ 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 index 96a6a0262..177744385 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 @@ <merge xmlns:android="http://schemas.android.com/apk/res/android"> <ImageView - android:id="@+id/emptyListViewImage" + android:id="@+id/empty_list_view_image" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal"/> <TextView - android:id="@+id/emptyListViewMessage" + android:id="@+id/empty_list_view_message" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingTop="8dp" @@ -34,7 +34,7 @@ android:textSize="@dimen/empty_list_message_text_size"/> <TextView - android:id="@+id/emptyListViewAction" + android:id="@+id/empty_list_view_action" style="@style/TextActionStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/java/com/android/dialer/widget/res/layout/fragment_message.xml b/java/com/android/dialer/widget/res/layout/fragment_message.xml index e39e03aee..5b0bab536 100644 --- a/java/com/android/dialer/widget/res/layout/fragment_message.xml +++ b/java/com/android/dialer/widget/res/layout/fragment_message.xml @@ -48,7 +48,9 @@ android:textColorHint="@color/dialer_edit_text_hint_color" android:background="@color/background_dialer_white" android:textCursorDrawable="@drawable/searchedittext_custom_cursor" - android:layout_toStartOf="@+id/count_and_send_container"/> + android:layout_toStartOf="@+id/count_and_send_container" + android:inputType="textShortMessage|textCapSentences" + android:imeOptions="actionSend"/> <LinearLayout android:id="@+id/count_and_send_container" diff --git a/java/com/android/dialer/widget/res/values-af/strings.xml b/java/com/android/dialer/widget/res/values-af/strings.xml index 7c5e83a93..122c84328 100644 --- a/java/com/android/dialer/widget/res/values-af/strings.xml +++ b/java/com/android/dialer/widget/res/values-af/strings.xml @@ -3,4 +3,9 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="custom_message_hint" msgid="2179012696339457461">"Skryf \'n gepasmaakte boodskap"</string> <string name="toolbar_close" msgid="1081308076149879833">"Maak toe"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Jy het nog nie enige kontakte nie"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Voeg \'n kontak by"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Skakel aan"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Skakel die kontaktetoestemming aan om jou kontakte te sien."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Geen kontakte-program beskikbaar nie"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-am/strings.xml b/java/com/android/dialer/widget/res/values-am/strings.xml index f11b46835..8a5353e18 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"> <string name="custom_message_hint" msgid="2179012696339457461">"ብጁ መልዕክት ይጻፉ"</string> <string name="toolbar_close" msgid="1081308076149879833">"ዝጋ"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"ገና ምንም እውቂያዎች የሉዎትም"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"እውቂያ ያክሉ"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"አብራ"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"የእርስዎን እውቂያዎች ለማየት፣ የእውቂያዎች ፍቃዱን ያብሩ።"</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"ምንም የእውቂያዎች መተግበሪያ አይገኝም"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-ar/strings.xml b/java/com/android/dialer/widget/res/values-ar/strings.xml index cb2e73378..7947903ce 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"> <string name="custom_message_hint" msgid="2179012696339457461">"كتابة رسالة مخصصة"</string> <string name="toolbar_close" msgid="1081308076149879833">"إغلاق"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"ليست لديك أية جهات اتصال حتى الآن"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"إضافة جهة اتصال"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"تشغيل"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"للاطلاع على جهات الاتصال، شغِّل إذن جهات الاتصال."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"لا يتوفر تطبيق لجهات الاتصال"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-az/strings.xml b/java/com/android/dialer/widget/res/values-az/strings.xml index 3860a5846..7a1389a1a 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Fərdi mesaj yazın"</string> <string name="toolbar_close" msgid="1081308076149879833">"Bağlayın"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Hələ heç bir kontakt yoxdur"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Kontakt əlavə edin"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktiv edin"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Kontaktları görmək üçün Kontakt icazəsini aktiv edin."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Kontakt tətbiqi əlçatan deyil"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml index daefd9020..46b29d27c 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Napišite prilagođenu poruku"</string> <string name="toolbar_close" msgid="1081308076149879833">"Zatvorite"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Još uvek nemate nijedan kontakt"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Dodaj kontakt"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Uključi"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Da biste videli kontakte, uključite dozvolu za Kontakte."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Nema dostupne aplikacije za kontakte"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-be/strings.xml b/java/com/android/dialer/widget/res/values-be/strings.xml index 87861321f..38c8a80ca 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Напісаць карыстальніцкае паведамленне"</string> <string name="toolbar_close" msgid="1081308076149879833">"Закрыць"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"У вас пакуль няма ніякіх кантактаў"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Дадаць кантакт"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Уключыць"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Каб бачыць свае кантакты, уключыце дазвол для Кантактаў."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Праграмы для аперацый з кантактамі няма"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-bg/strings.xml b/java/com/android/dialer/widget/res/values-bg/strings.xml index 35e980c5f..00ce56454 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Напишете свое съобщение"</string> <string name="toolbar_close" msgid="1081308076149879833">"Затваряне"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Още нямате контакти"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Добавяне на контакт"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Включване"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"За да видите контактите си, включете разрешението за Контакти."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Няма налично приложение за контакти"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-bn/strings.xml b/java/com/android/dialer/widget/res/values-bn/strings.xml index 9e1707114..96b75db59 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"> <string name="custom_message_hint" msgid="2179012696339457461">"একটি কাস্টম বার্তা লিখুন"</string> <string name="toolbar_close" msgid="1081308076149879833">"বন্ধ করুন"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"আপনার এখনও পর্যন্ত কোনো পরিচিতি নেই"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"একটি পরিচিতি যোগ করুন"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"চালু করুন"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"আপনার পরিচিতিগুলি দেখতে, পরিচিতিগুলির অনুমতি চালু করুন।"</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"কোনো পরিচিতি অ্যাপ্লিকেশান উপলব্ধ নয়"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-bs/strings.xml b/java/com/android/dialer/widget/res/values-bs/strings.xml index 0bc1a9c15..df24ee16b 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Napišite prilagođenu poruku"</string> <string name="toolbar_close" msgid="1081308076149879833">"Zatvori"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Još nemate nijedan kontakt"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Dodajte kontakt"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Uključi"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Da vidite kontakte, uključite dozvolu za Kontakte."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Nije dostupna nijedna aplikacija za kontakte"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-ca/strings.xml b/java/com/android/dialer/widget/res/values-ca/strings.xml index 863930039..f7bbaa746 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Escriu un miss. personalitzat"</string> <string name="toolbar_close" msgid="1081308076149879833">"Tanca"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Encara no tens cap contacte"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Afegeix un contacte"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Activa"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Activa el permís Contactes per veure els teus contactes."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"No hi ha cap contacte disponible"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-cs/strings.xml b/java/com/android/dialer/widget/res/values-cs/strings.xml index 829aab8dd..19e5d17da 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Napište vlastní zprávu"</string> <string name="toolbar_close" msgid="1081308076149879833">"Zavřít"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Zatím nemáte žádné kontakty"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Přidat kontakt"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Povolit"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Pokud chcete zobrazit kontakty, povolte aplikaci přístup ke Kontaktům."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Není k dispozici žádná aplikace pro práci s kontakty"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-da/strings.xml b/java/com/android/dialer/widget/res/values-da/strings.xml index 9381f36f5..67fb244c4 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Skriv en tilpasset besked"</string> <string name="toolbar_close" msgid="1081308076149879833">"Luk"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Du har endnu ikke nogen kontaktpersoner"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Tilføj en kontaktperson"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Slå til"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Slå tilladelsen Kontaktpersoner til for at se dine kontaktpersoner."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Der er ingen tilgængelig app til kontaktpersoner"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-de/strings.xml b/java/com/android/dialer/widget/res/values-de/strings.xml index 949fe9e49..14146d65f 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Eigene Nachricht schreiben"</string> <string name="toolbar_close" msgid="1081308076149879833">"Schließen"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Du hast noch keine Kontakte"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Kontakt hinzufügen"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktivieren"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Aktiviere die Berechtigung \"Kontakte\", um deine Kontakte abzurufen."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Keine Kontakte-App verfügbar"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-el/strings.xml b/java/com/android/dialer/widget/res/values-el/strings.xml index 21e049bf7..0db6b2694 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Γράψτε ένα προσαρμ. μήνυμα"</string> <string name="toolbar_close" msgid="1081308076149879833">"Κλείσιμο"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Δεν έχετε επαφές ακόμη"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Προσθήκη επαφής"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Ενεργοποίηση"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Για να δείτε τις επαφές σας, ενεργοποιήστε την άδεια πρόσβασης στις Επαφές."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Δεν υπάρχει διαθέσιμη εφαρμογή επαφών"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-en-rAU/strings.xml b/java/com/android/dialer/widget/res/values-en-rAU/strings.xml index 7f22b46da..a87cd28ff 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Write a custom message"</string> <string name="toolbar_close" msgid="1081308076149879833">"Close"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"You don\'t have any contacts yet"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Add a contact"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Turn on"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"To see your contacts, turn on the Contacts permission."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"No contacts app available"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-en-rGB/strings.xml b/java/com/android/dialer/widget/res/values-en-rGB/strings.xml index 7f22b46da..a87cd28ff 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Write a custom message"</string> <string name="toolbar_close" msgid="1081308076149879833">"Close"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"You don\'t have any contacts yet"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Add a contact"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Turn on"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"To see your contacts, turn on the Contacts permission."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"No contacts app available"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-en-rIN/strings.xml b/java/com/android/dialer/widget/res/values-en-rIN/strings.xml index 7f22b46da..a87cd28ff 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Write a custom message"</string> <string name="toolbar_close" msgid="1081308076149879833">"Close"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"You don\'t have any contacts yet"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Add a contact"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Turn on"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"To see your contacts, turn on the Contacts permission."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"No contacts app available"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-es-rUS/strings.xml b/java/com/android/dialer/widget/res/values-es-rUS/strings.xml index c7fbdaa58..5ecc22b3d 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Escribe tu propio mensaje"</string> <string name="toolbar_close" msgid="1081308076149879833">"Cerrar"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Aún no tienes contactos"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Agregar un contacto"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Activar"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver los contactos, activa el permiso Contactos."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"No hay ninguna app de contactos disponible"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-es/strings.xml b/java/com/android/dialer/widget/res/values-es/strings.xml index 507e8af0d..e561d06f7 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Mensaje personalizado"</string> <string name="toolbar_close" msgid="1081308076149879833">"Cerrar"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Aún no tienes contactos"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Añadir un contacto"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Activar"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver tus contactos, activa el permiso de Contactos."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"No hay aplicaciones de contactos disponibles"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-et/strings.xml b/java/com/android/dialer/widget/res/values-et/strings.xml index 71dab4276..054b42281 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Kirjutage kohandatud sõnum"</string> <string name="toolbar_close" msgid="1081308076149879833">"Sule"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Teil pole veel kontakte"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Kontakti lisamine"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Lülita sisse"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Kontaktide vaatamiseks lülitage sisse kontaktide luba."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Kontaktide rakendus pole saadaval"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-eu/strings.xml b/java/com/android/dialer/widget/res/values-eu/strings.xml index b8e4085a0..7d191925e 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Idatzi mezu bat"</string> <string name="toolbar_close" msgid="1081308076149879833">"Itxi"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Oraindik ez duzu kontakturik"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Gehitu kontaktu bat"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktibatu"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Kontaktuak ikusteko, aktibatu Kontaktuak atzitzeko baimena."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Ez dago kontaktu-aplikaziorik erabilgarri"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-fa/strings.xml b/java/com/android/dialer/widget/res/values-fa/strings.xml index 0c3b1d4f5..5ed23131a 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"> <string name="custom_message_hint" msgid="2179012696339457461">"پیام سفارشی بنویسید"</string> <string name="toolbar_close" msgid="1081308076149879833">"بستن"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"هنوز هیچ مخاطبی ندارید"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"افزودن مخاطب"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"فعالسازی"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"برای دیدن مخاطبینتان، مجوز «مخاطبین» را روشن کنید."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"هیچ برنامه مخاطبی در دسترس نیست"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-fi/strings.xml b/java/com/android/dialer/widget/res/values-fi/strings.xml index e0e971cd8..1a153072c 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Kirjoita oma viesti"</string> <string name="toolbar_close" msgid="1081308076149879833">"Sulje"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Sinulla ei ole vielä yhteystietoja."</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Lisää yhteystieto."</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Ota käyttöön"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Jos haluat katsella yhteystietojasi, ota Yhteystiedot-käyttöoikeus käyttöön."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Yhteystietosovellusta ei ole käytettävissä."</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-fr-rCA/strings.xml b/java/com/android/dialer/widget/res/values-fr-rCA/strings.xml index 9776385b4..62e1f37fb 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Rédiger message personnalisé"</string> <string name="toolbar_close" msgid="1081308076149879833">"Fermer"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Vous n\'avez pas encore de contacts"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Ajouter un contact"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Activer"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Pour consulter vos contacts, activez l\'autorisation Contacts."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Aucune application Contacts n\'est disponible"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-fr/strings.xml b/java/com/android/dialer/widget/res/values-fr/strings.xml index fececd84a..85a32b875 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Écrire mon propre message"</string> <string name="toolbar_close" msgid="1081308076149879833">"Fermer"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Vous n\'avez pas encore de contacts."</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Ajouter un contact"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Activer"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Pour consulter vos contacts, activez l\'autorisation Contacts."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Aucune application de gestion des contacts n\'est disponible"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-gl/strings.xml b/java/com/android/dialer/widget/res/values-gl/strings.xml index 6a756810b..8a9089fdb 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Escribe unha mensaxe personalizada"</string> <string name="toolbar_close" msgid="1081308076149879833">"Pechar"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Aínda non tes ningún contacto"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Engadir un contacto"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Activar"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver os teus contactos, activa o permiso de Contactos."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Non hai ningunha aplicación de contactos dispoñible"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-gu/strings.xml b/java/com/android/dialer/widget/res/values-gu/strings.xml index c2f8cf0e1..794245d3d 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"> <string name="custom_message_hint" msgid="2179012696339457461">"એક કસ્ટમ સંદેશ લખો"</string> <string name="toolbar_close" msgid="1081308076149879833">"બંધ કરો"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"તમે હજી સુધી કોઇપણ સંપર્કો ધરાવતાં નથી"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"સંપર્ક ઉમેરો"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"ચાલુ કરો"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"તમારા સંપર્કો જોવા માટે, સંપર્કોની પરવાનગી ચાલુ કરો."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"કોઈ સંપર્કો ઍપ્લિકેશન ઉપલબ્ધ નથી"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-hi/strings.xml b/java/com/android/dialer/widget/res/values-hi/strings.xml index 63c94e7f6..5cdb8bbfc 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"> <string name="custom_message_hint" msgid="2179012696339457461">"कोई कस्टम संदेश लिखें"</string> <string name="toolbar_close" msgid="1081308076149879833">"बंद करें"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"आपके पास अभी कोई भी संपर्क नहीं है"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"कोई संपर्क जोड़ें"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"चालू करें"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"अपने संपर्क देखने के लिए, संपर्क अनुमति चालू करें."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"कोई भी संपर्क ऐप उपलब्ध नहीं है"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-hr/strings.xml b/java/com/android/dialer/widget/res/values-hr/strings.xml index 28a58d453..9ded4d4a7 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Napišite prilagođenu poruku"</string> <string name="toolbar_close" msgid="1081308076149879833">"Zatvaranje"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Još nemate nijedan kontakt"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Dodavanje kontakta"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Uključi"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Da biste vidjeli svoje kontakte, uključite dopuštenje za kontakte."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Nije dostupna nijedna aplikacija za kontakte"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-hu/strings.xml b/java/com/android/dialer/widget/res/values-hu/strings.xml index dcd2b36ea..92ae71de8 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Egyéni üzenet írása"</string> <string name="toolbar_close" msgid="1081308076149879833">"Bezárás"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Még nem rendelkezik egyetlen névjeggyel sem"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Névjegy hozzáadása"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Bekapcsolás"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"A névjegyek megtekintéséhez kapcsolja be a Névjegyek engedélyt."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Nincs elérhető névjegykezelő alkalmazás"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-hy/strings.xml b/java/com/android/dialer/widget/res/values-hy/strings.xml index 7b78bb23e..ffa7132c5 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Գրել տեքստն ինքնուրույն"</string> <string name="toolbar_close" msgid="1081308076149879833">"Փակել"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Դեռ կոնտակտներ չունեք"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Ավելացնել կոնտակտ"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Միացնել"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Ձեր կոնտակտները տեսնելու համար միացրեք Կոնտակտների թույլտվությունը:"</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Կոնտակտների հավելված չկա"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-in/strings.xml b/java/com/android/dialer/widget/res/values-in/strings.xml index b4b65504b..69849ae02 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Tulis pesan khusus"</string> <string name="toolbar_close" msgid="1081308076149879833">"Tutup"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Anda belum memiliki kontak"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Tambahkan kontak"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktifkan"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Untuk melihat kontak, aktifkan izin Kontak."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Aplikasi kontak tidak tersedia"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-is/strings.xml b/java/com/android/dialer/widget/res/values-is/strings.xml index fd844197e..98a172904 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Skrifa sérsniðin skilaboð"</string> <string name="toolbar_close" msgid="1081308076149879833">"Loka"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Þú ert ekki með neina tengiliði enn sem komið er"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Bæta tengilið við"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Kveikja"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Kveiktu á tengiliðaheimildinni til að sjá tengiliðina þína."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Ekkert tengiliðaforrit í boði"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-it/strings.xml b/java/com/android/dialer/widget/res/values-it/strings.xml index 0af3fd2eb..1a6e6c135 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Scrivi un messaggio personalizzato"</string> <string name="toolbar_close" msgid="1081308076149879833">"Chiudi"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Nessun contatto disponibile"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Aggiungi un contatto"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Attiva"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Per accedere ai tuoi contatti, attiva l\'autorizzazione Contatti."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Nessuna app di contatti disponibile"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-iw/strings.xml b/java/com/android/dialer/widget/res/values-iw/strings.xml index a485888ae..f2a732a67 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"> <string name="custom_message_hint" msgid="2179012696339457461">"כתוב הודעה מותאמת אישית"</string> <string name="toolbar_close" msgid="1081308076149879833">"סגירה"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"עדיין אין לך אנשי קשר"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"הוספה של איש קשר"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"הפעלה"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"עליך להפעיל את ההרשאה \'אנשי קשר\' כדי להציג את אנשי הקשר שלך."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"אין אף אפליקציה לניהול אנשי קשר"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-ja/strings.xml b/java/com/android/dialer/widget/res/values-ja/strings.xml index 9fd65a806..7994c6262 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"> <string name="custom_message_hint" msgid="2179012696339457461">"カスタム メッセージを入力"</string> <string name="toolbar_close" msgid="1081308076149879833">"閉じる"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"連絡先はまだありません"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"連絡先を追加"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"ON にする"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"連絡先を表示するには、連絡先へのアクセスを許可する設定を ON にしてください。"</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"利用できる連絡先アプリがありません"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-ka/strings.xml b/java/com/android/dialer/widget/res/values-ka/strings.xml index 6dde04430..865a66b45 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"> <string name="custom_message_hint" msgid="2179012696339457461">"დაწერეთ მორგებ. შეტყობინება"</string> <string name="toolbar_close" msgid="1081308076149879833">"დახურვა"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"კონტაქტები ჯერ არ გაქვთ"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"კონტაქტის დამატება"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"ჩართვა"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"კონტაქტების სანახავად ჩართეთ კონტაქტების ნებართვა."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"კონტაქტების აპი მიუწვდომელია"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-kk/strings.xml b/java/com/android/dialer/widget/res/values-kk/strings.xml index 334d915e2..08856aaec 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Арнаулы хабар жазу"</string> <string name="toolbar_close" msgid="1081308076149879833">"Жабу"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Әлі ешқандай контактілер жоқ"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Контакт қосу"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Қосу"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Контактілерді көру үшін \"Контактілер\" рұқсатын қосыңыз."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Контактілер қолданбасы қолжетімді емес"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-km/strings.xml b/java/com/android/dialer/widget/res/values-km/strings.xml index d0f5633e4..c09233253 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"> <string name="custom_message_hint" msgid="2179012696339457461">"សរសេរសារផ្ទាល់ខ្លួន"</string> <string name="toolbar_close" msgid="1081308076149879833">"បិទ"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"អ្នកមិនទាន់មានទំនាក់ទំនងនៅឡើយទេ"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"បញ្ចូលទំនាក់ទំនង"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"បើក"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"ដើម្បីមើលទំនាក់ទំនងរបស់អ្នក សូមបើកការអនុញ្ញាតកម្មវិធីទំនាក់ទំនង។"</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"មិនមានកម្មវិធីទំនាក់ទំនងទេ"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-kn/strings.xml b/java/com/android/dialer/widget/res/values-kn/strings.xml index 3535bfcb7..a502d087e 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"> <string name="custom_message_hint" msgid="2179012696339457461">"ಕಸ್ಟಮ್ ಸಂದೇಶವನ್ನು ಬರೆಯಿರಿ"</string> <string name="toolbar_close" msgid="1081308076149879833">"ಮುಚ್ಚಿ"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"ನಿಮ್ಮ ಬಳಿ ಇನ್ನೂ ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಲ್ಲ"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"ಸಂಪರ್ಕ ಸೇರಿಸಿ"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"ಆನ್ ಮಾಡಿ"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ವೀಕ್ಷಿಸಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"ಯಾವುದೇ ಸಂಪರ್ಕಗಳ ಅಪ್ಲಿಕೇಶನ್ ಲಭ್ಯವಿಲ್ಲ"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-ko/strings.xml b/java/com/android/dialer/widget/res/values-ko/strings.xml index 8c00cea8b..045dc54dc 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"> <string name="custom_message_hint" msgid="2179012696339457461">"맞춤 메시지를 작성하세요."</string> <string name="toolbar_close" msgid="1081308076149879833">"닫기"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"아직 연락처가 없습니다."</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"연락처 추가"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"사용"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"연락처를 보려면 연락처에 액세스할 권한을 부여하세요."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"사용할 수 있는 연락처 앱이 없습니다."</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-ky/strings.xml b/java/com/android/dialer/widget/res/values-ky/strings.xml index 46ea8514c..7ef10e707 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Башка билдирүүнү жазыңыз"</string> <string name="toolbar_close" msgid="1081308076149879833">"Жабуу"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Азырынча эч байланышыңыз жок"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Байланыш кошуу"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Күйгүзүү"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Байланыштарыңызды көрүү үчүн, \"Байланыштар\" уруксатын күйгүзүңүз."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Жеткиликтүү байланыштар колдонмосу жок"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-lo/strings.xml b/java/com/android/dialer/widget/res/values-lo/strings.xml index 0db64a78a..dc7ba44c1 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"> <string name="custom_message_hint" msgid="2179012696339457461">"ຂຽນຂໍ້ຄວາມດ້ວຍຕົນເອງ"</string> <string name="toolbar_close" msgid="1081308076149879833">"ປິດ"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"ທ່ານຍັງບໍ່ມີລາຍຊື່ຜູ້ຕິດຕໍ່ເທື່ອ"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"ເພີ່ມລາຍຊື່"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"ເປີດໃຊ້"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"ເພື່ອເບິ່ງລາຍຊື່ຜູ້ຕິດຕໍ່ຂອງທ່ານ, ໃຫ້ເປີດການອະນຸຍາດລາຍຊື່ຜູ້ຕິດຕໍ່ກ່ອນ"</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"ບໍ່ມີແອັບລາຍຊື່ຜູ້ຕິດຕໍ່ທີ່ສາມາດໃຊ້ໄດ້"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-lt/strings.xml b/java/com/android/dialer/widget/res/values-lt/strings.xml index a10b91ef6..be12520f8 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Parašykite tinkintą praneš."</string> <string name="toolbar_close" msgid="1081308076149879833">"Uždaryti"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Dar neturite jokių kontaktų"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Pridėkite kontaktą"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Įjungti"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Jei norite peržiūrėti kontaktus, įjunkite Kontaktų leidimą."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Nepasiekiama jokia kontaktų programa"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-lv/strings.xml b/java/com/android/dialer/widget/res/values-lv/strings.xml index 8ff079390..acefbaea4 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Rakstīt pielāgotu ziņojumu"</string> <string name="toolbar_close" msgid="1081308076149879833">"Aizvērt"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Jums vēl nav nevienas kontaktpersonas."</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Pievienot kontaktpersonu"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Ieslēgt"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Lai skatītu savas kontaktpersonas, ieslēdziet atļauju Kontaktpersonas."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Nav pieejama neviena kontaktpersonu lietotne."</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-mk/strings.xml b/java/com/android/dialer/widget/res/values-mk/strings.xml index aa9be3055..20b18e8d9 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Напиши приспособена порака"</string> <string name="toolbar_close" msgid="1081308076149879833">"Затвори"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Сè уште немате контакти"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Додајте контакт"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Вклучи"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"За да ги видите контактите, вклучете ја дозволата за контакти."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Нема достапна апликација за контакти"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-ml/strings.xml b/java/com/android/dialer/widget/res/values-ml/strings.xml index b52ee401c..a97a7d862 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"> <string name="custom_message_hint" msgid="2179012696339457461">"ഒരു ഇഷ്ടാനുസൃത സന്ദേശം രചിക്കൂ"</string> <string name="toolbar_close" msgid="1081308076149879833">"അടയ്ക്കുക"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"നിങ്ങൾക്ക് ഇതുവരെയും കോൺടാക്റ്റുകൾ ഒന്നുമില്ല."</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"ഒരു കോണ്ടാക്റ്റ് ചേര്ക്കുക"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"ഓൺ ചെയ്യുക"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"നിങ്ങളുടെ കോൺടാക്റ്റുകൾ കാണുന്നതിന്, \'കോൺടാക്റ്റുകൾ\' അനുമതി ഓണാക്കുക."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"കോൺടാക്റ്റ് അപ്ലിക്കേഷനൊന്നും ലഭ്യമല്ല"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-mn/strings.xml b/java/com/android/dialer/widget/res/values-mn/strings.xml index 6bdad8983..bbcfc7cf6 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Тусгай зурвас бичих"</string> <string name="toolbar_close" msgid="1081308076149879833">"Хаах"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Танд одоогоор харилцагч байхгүй байна"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Харилцагч нэмэх"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Асаах"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Харилцагчдаа харахын тулд Харилцагчдын зөвшөөрлийг идэвхжүүлнэ үү."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Ямар ч харилцагчдын апликейшн байхгүй байна"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-mr/strings.xml b/java/com/android/dialer/widget/res/values-mr/strings.xml index 5661fa8b9..38d913a85 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"> <string name="custom_message_hint" msgid="2179012696339457461">"एक सानुकूल संदेश लिहा"</string> <string name="toolbar_close" msgid="1081308076149879833">"बंद करा"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"आपल्याकडे अद्याप कोणतेही संपर्क नाहीत"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"एक संपर्क जोडा"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"चालू करा"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"आपले संपर्क पाहण्यासाठी, संपर्क परवानगी चालू करा."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"कोणताही संपर्क अॅप उपलब्ध नाही"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-ms/strings.xml b/java/com/android/dialer/widget/res/values-ms/strings.xml index 8889ccc8d..bc67c6764 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Tulis mesej tersuai"</string> <string name="toolbar_close" msgid="1081308076149879833">"Tutup"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Anda belum mempunyai sebarang kenalan"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Tambahkan kenalan"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Hidupkan"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Untuk melihat kenalan anda, hidupkan kebenaran Kenalan."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Tiada apl kenalan yang tersedia"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-my/strings.xml b/java/com/android/dialer/widget/res/values-my/strings.xml index 9a69f29eb..c8e783bf4 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"> <string name="custom_message_hint" msgid="2179012696339457461">"စိတ်ကြိုက် မက်ဆေ့ဂျ်တစ်ခု ရေးပါ"</string> <string name="toolbar_close" msgid="1081308076149879833">"ပိတ်ရန်"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"သင့်တွင် မည်သည့်အဆက်အသွယ်မျှ မရှိသေးပါ"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"အဆက်အသွယ်တစ်ယောက် ထည့်မည်"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"ဖွင့်ရန်"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"အဆက်အသွယ်များကိုကြည့်ရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်ကို ဖွင့်ပါ။"</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"အဆက်အသွယ်များ app မရှိပါ"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-nb/strings.xml b/java/com/android/dialer/widget/res/values-nb/strings.xml index 100156bd1..822f07ed1 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Skriv egendefinert melding"</string> <string name="toolbar_close" msgid="1081308076149879833">"Lukk"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Du har ingen kontakter ennå"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Legg til en kontakt"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Slå på"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"For å se kontaktene dine må du slå på Kontakter-tillatelsen."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Ingen kontaktapper er tilgjengelige"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-ne/strings.xml b/java/com/android/dialer/widget/res/values-ne/strings.xml index abb8bb04b..ebb31d579 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"> <string name="custom_message_hint" msgid="2179012696339457461">"आफू अनुकूल सन्देश लेख्ने"</string> <string name="toolbar_close" msgid="1081308076149879833">"बन्द गर्नुहोस्"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"अहिलेसम्म तपाईंसँग कुनै सम्पर्कहरू छैनन्"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"कुनै सम्पर्क थप्नुहोस्"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"सक्रिय गर्नुहोस्"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"आफ्ना सम्पर्कहरू हेर्न सम्पर्क सम्बन्धी अनुमतिलाई सक्रिय गर्नुहोस्।"</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"सम्पर्क सम्बन्धी कुनै अनुप्रयोग उपलब्ध छैन"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-nl/strings.xml b/java/com/android/dialer/widget/res/values-nl/strings.xml index 556028893..cbc286ba3 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Schrijf zelf een bericht"</string> <string name="toolbar_close" msgid="1081308076149879833">"Sluiten"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Je hebt nog geen contacten"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Een contact toevoegen"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Inschakelen"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Als je je contacten wilt bekijken, schakel je de machtiging voor Contacten in."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Geen app voor contacten beschikbaar"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-no/strings.xml b/java/com/android/dialer/widget/res/values-no/strings.xml index 100156bd1..822f07ed1 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Skriv egendefinert melding"</string> <string name="toolbar_close" msgid="1081308076149879833">"Lukk"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Du har ingen kontakter ennå"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Legg til en kontakt"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Slå på"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"For å se kontaktene dine må du slå på Kontakter-tillatelsen."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Ingen kontaktapper er tilgjengelige"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-pa/strings.xml b/java/com/android/dialer/widget/res/values-pa/strings.xml index 4c69c2c6e..06f191e50 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"> <string name="custom_message_hint" msgid="2179012696339457461">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ ਸੰਦੇਸ਼ ਲਿਖੋ"</string> <string name="toolbar_close" msgid="1081308076149879833">"ਬੰਦ ਕਰੋ"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"ਤੁਹਾਡੇ ਕੋਲ ਹਾਲੇ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ ਹਨ"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"ਕੋਈ ਸੰਪਰਕ ਸ਼ਾਮਲ ਕਰੋ"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"ਚਾਲੂ ਕਰੋ"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਨੂੰ ਵੇਖਣ ਲਈ, ਸੰਪਰਕ ਇਜਾਜ਼ਤ ਚਾਲੂ ਕਰੋ।"</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"ਕੋਈ ਸੰਪਰਕ ਐਪ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-pl/strings.xml b/java/com/android/dialer/widget/res/values-pl/strings.xml index cec7a4045..5d62a07f1 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Wpisz wiadomość"</string> <string name="toolbar_close" msgid="1081308076149879833">"Zamknij"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Nie masz jeszcze żadnych kontaktów"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Dodaj kontakt"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Włącz"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Aby zobaczyć swoje kontakty, włącz uprawnienia Kontakty."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Nie jest dostępna żadna aplikacja do obsługi kontaktów"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-pt-rBR/strings.xml b/java/com/android/dialer/widget/res/values-pt-rBR/strings.xml index b15bfac8d..0afc0f1d6 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Escreva sua mensagem"</string> <string name="toolbar_close" msgid="1081308076149879833">"Fechar"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Você ainda não tem contatos"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Adicionar um contato"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Ativar"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver seus contatos, ative a permissão para o app Contatos."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Nenhum app de contatos disponível"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-pt-rPT/strings.xml b/java/com/android/dialer/widget/res/values-pt-rPT/strings.xml index ece2ef2c3..35f71a371 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Escreva uma mensagem"</string> <string name="toolbar_close" msgid="1081308076149879833">"Fechar"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Ainda não tem nenhum contacto"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Adicionar um contacto"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Ativar"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver os seus contactos, ative a autorização Contactos."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Não existe nenhuma aplicação de contactos disponível"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-pt/strings.xml b/java/com/android/dialer/widget/res/values-pt/strings.xml index b15bfac8d..0afc0f1d6 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Escreva sua mensagem"</string> <string name="toolbar_close" msgid="1081308076149879833">"Fechar"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Você ainda não tem contatos"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Adicionar um contato"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Ativar"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver seus contatos, ative a permissão para o app Contatos."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Nenhum app de contatos disponível"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-ro/strings.xml b/java/com/android/dialer/widget/res/values-ro/strings.xml index 753b920b4..6c51d23ac 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Scrieți mesaj personalizat"</string> <string name="toolbar_close" msgid="1081308076149879833">"Închideți"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Nu aveți încă persoane de contact."</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Adăugați o persoană de contact"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Activați"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Pentru a vedea persoanele de contact, activați permisiunea pentru Agendă."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Nu este disponibilă nicio aplicație pentru agendă"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-ru/strings.xml b/java/com/android/dialer/widget/res/values-ru/strings.xml index bdebd3ce4..c36874de5 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Добавьте свой текст"</string> <string name="toolbar_close" msgid="1081308076149879833">"Закрыть"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Контактов нет"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Добавить контакт"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Предоставить разрешение"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Чтобы открыть список контактов, предоставьте приложению разрешение \"Контакты\"."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Нет приложения для работы с контактами"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-si/strings.xml b/java/com/android/dialer/widget/res/values-si/strings.xml index 4988259d4..10eb7b5b5 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"> <string name="custom_message_hint" msgid="2179012696339457461">"අභිරුචි පණිවිඩයක් ලියන්න"</string> <string name="toolbar_close" msgid="1081308076149879833">"වසන්න"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"ඔබට තවම කිසිදු සම්බන්ධතාවක් නැත"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"සම්බන්ධතාවක් එක් කරන්න"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"ක්රියාත්මක කරන්න"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"ඔබේ සම්බන්ධතා බැලීමට, සම්බන්ධතා අවසරය ක්රියාත්මක කරන්න."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"සබඳතා යෙදුම ලබා ගැනීමට නොහැකිය"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-sk/strings.xml b/java/com/android/dialer/widget/res/values-sk/strings.xml index 5dc1bd505..56f7ceb97 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Napíšte vlastnú správu"</string> <string name="toolbar_close" msgid="1081308076149879833">"Zavrieť"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Zatiaľ nemáte žiadne kontakty"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Pridať kontakt"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Zapnúť"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Ak si chcete zobraziť kontakty, zapnite povolenie Kontakty."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Nie je k dispozícii žiadna aplikácia na prácu s kontaktmi"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-sl/strings.xml b/java/com/android/dialer/widget/res/values-sl/strings.xml index 0ba965b2e..52f029377 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Napišite sporočilo po meri"</string> <string name="toolbar_close" msgid="1081308076149879833">"Zapri"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Nimate še nobenega stika"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Dodaj stik"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Vklopi"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Če si želite ogledati stike, vklopite dovoljenje za stike."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Na voljo ni nobene aplikacije za stike"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-sq/strings.xml b/java/com/android/dialer/widget/res/values-sq/strings.xml index 7f5e0f285..c7943dfd3 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Shkruaj mesazh të person."</string> <string name="toolbar_close" msgid="1081308076149879833">"Mbyll"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Nuk ke ende kontakte"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Shto një kontakt"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktivizo"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Për të parë kontaktet, aktivizo lejen e Kontakteve."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Nuk ka asnjë aplikacion për kontaktet"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-sr/strings.xml b/java/com/android/dialer/widget/res/values-sr/strings.xml index 446c27363..00b9b4f6c 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Напишите прилагођену поруку"</string> <string name="toolbar_close" msgid="1081308076149879833">"Затворите"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Још увек немате ниједан контакт"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Додај контакт"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Укључи"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Да бисте видели контакте, укључите дозволу за Контакте."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Нема доступне апликације за контакте"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-sv/strings.xml b/java/com/android/dialer/widget/res/values-sv/strings.xml index 7d2f44c45..359397026 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Skriv anpassat meddelande"</string> <string name="toolbar_close" msgid="1081308076149879833">"Stäng"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Du har inga kontakter ännu"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Lägg till en kontakt"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktivera"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Du måste aktivera behörigheten Kontakter för att visa kontakterna."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Det finns inga appar för kontakter"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-sw/strings.xml b/java/com/android/dialer/widget/res/values-sw/strings.xml index d2c2a9721..b0892108b 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Andika ujumbe maalum"</string> <string name="toolbar_close" msgid="1081308076149879833">"Funga"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Bado huna anwani zozote"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Ongeza anwani"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Washa"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Ili uone anwani zako, washa ruhusa ya Anwani."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Hakuna programu ya anwani iliyopatikana"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-ta/strings.xml b/java/com/android/dialer/widget/res/values-ta/strings.xml index 4061c169f..83ca080e5 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"> <string name="custom_message_hint" msgid="2179012696339457461">"தனிப்பயன் செய்தியை எழுதவும்"</string> <string name="toolbar_close" msgid="1081308076149879833">"மூடு"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"இதுவரை தொடர்புகள் எதுவுமில்லை"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"தொடர்பைச் சேர்"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"இயக்கு"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"தொடர்புகளைப் பார்க்க, தொடர்புகள் அனுமதியை இயக்கவும்."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"தொடர்புகள் பயன்பாடு எதுவுமில்லை"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-te/strings.xml b/java/com/android/dialer/widget/res/values-te/strings.xml index c2474b7ce..418cc3d0b 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"> <string name="custom_message_hint" msgid="2179012696339457461">"అనుకూల సందేశాన్ని వ్రాయండి"</string> <string name="toolbar_close" msgid="1081308076149879833">"మూసివేయి"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"మీకు ఇప్పటికీ పరిచయాలేవీ లేవు"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"పరిచయాన్ని జోడించండి"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"ఆన్ చేయి"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"మీ పరిచయాలను చూడటానికి, పరిచయాల అనుమతిని ఆన్ చేయండి."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"పరిచయాల అనువర్తనం ఏదీ అందుబాటులో లేదు"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-th/strings.xml b/java/com/android/dialer/widget/res/values-th/strings.xml index d450b4b13..c556d1c37 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"> <string name="custom_message_hint" msgid="2179012696339457461">"เขียนข้อความที่กำหนดเอง"</string> <string name="toolbar_close" msgid="1081308076149879833">"ปิด"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"คุณยังไม่มีรายชื่อติดต่อ"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"เพิ่มรายชื่อติดต่อ"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"เปิด"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"หากต้องการดูรายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"ไม่มีแอปรายชื่อติดต่อที่พร้อมใช้งาน"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-tl/strings.xml b/java/com/android/dialer/widget/res/values-tl/strings.xml index ee7c52f7b..be02d1989 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Sumulat ng custom na mensahe"</string> <string name="toolbar_close" msgid="1081308076149879833">"Isara"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Wala ka pang sinumang contact"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Magdagdag ng contact"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"I-on"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Upang makita ang iyong mga contact, i-on ang pahintulot ng Mga Contact."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Walang available na app ng mga contact"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-tr/strings.xml b/java/com/android/dialer/widget/res/values-tr/strings.xml index 64e2ea535..90d5db649 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Özel bir mesaj yazın"</string> <string name="toolbar_close" msgid="1081308076149879833">"Kapat"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Henüz hiç kişiniz yok"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Kişi ekleyin"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Etkinleştir"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Kişilerinizi görmek için Kişiler iznini etkinleştirin."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Kullanılabilir kişi uygulaması yok"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-uk/strings.xml b/java/com/android/dialer/widget/res/values-uk/strings.xml index f8d9bb871..cf5a7d1db 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Ваше власне повідомлення"</string> <string name="toolbar_close" msgid="1081308076149879833">"Закрити"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Ще немає контактів"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Додати контакт"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Увімкнути"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Щоб переглянути контакти, увімкніть дозвіл \"Контакти\"."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Немає додатка з контактами"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-ur/strings.xml b/java/com/android/dialer/widget/res/values-ur/strings.xml index 6edeb5c95..e5199afe4 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"> <string name="custom_message_hint" msgid="2179012696339457461">"ایک حسب ضرورت پیغام لکھیں"</string> <string name="toolbar_close" msgid="1081308076149879833">"بند کریں"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"آپ کے پاس ابھی تک کوئی رابطے نہیں ہیں"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"ایک رابطہ شامل کریں"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"آن کریں"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"اپنے رابطے دیکھنے کیلئے رابطوں کی اجازت آن کریں۔"</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"رابطوں کی کوئی ایپ دستیاب نہیں ہے"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-uz/strings.xml b/java/com/android/dialer/widget/res/values-uz/strings.xml index 434464aef..eb0e0adae 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Boshqa xabar yozing"</string> <string name="toolbar_close" msgid="1081308076149879833">"Yopish"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Kontaktlar yo‘q"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Kontakt qo‘shish"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Ruxsat berish"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Kontaktlar ro‘yxatini ko‘rish uchun ilovaga Kontaktlarga kirishga ruxsat bering."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Kontaktlarni ochadigan ilova yo‘q"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-vi/strings.xml b/java/com/android/dialer/widget/res/values-vi/strings.xml index 1a30f7c96..62e94b82e 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Viết tin nhắn tùy chỉnh"</string> <string name="toolbar_close" msgid="1081308076149879833">"Đóng"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Bạn chưa có bất kỳ liên hệ nào"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Thêm liên hệ"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Bật"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Để xem danh bạ của bạn, bật quyền đối với Danh bạ."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Không có ứng dụng danh bạ"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-zh-rCN/strings.xml b/java/com/android/dialer/widget/res/values-zh-rCN/strings.xml index 799972393..063301ae0 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"> <string name="custom_message_hint" msgid="2179012696339457461">"自行撰写信息"</string> <string name="toolbar_close" msgid="1081308076149879833">"关闭"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"您还没有任何联系人"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"添加联系人"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"开启"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"要查看您的联系人,请开启“通讯录”权限。"</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"没有可用的通讯录应用"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-zh-rHK/strings.xml b/java/com/android/dialer/widget/res/values-zh-rHK/strings.xml index b0bfcc8d9..e2e69b75b 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"> <string name="custom_message_hint" msgid="2179012696339457461">"撰寫自訂訊息"</string> <string name="toolbar_close" msgid="1081308076149879833">"關閉"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"您尚無任何聯絡人"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"新增聯絡人"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"開放"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"如要查看聯絡人,請開放「通訊錄」權限。"</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"沒有可用的聯絡人應用程式"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-zh-rTW/strings.xml b/java/com/android/dialer/widget/res/values-zh-rTW/strings.xml index b0bfcc8d9..85768af8f 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"> <string name="custom_message_hint" msgid="2179012696339457461">"撰寫自訂訊息"</string> <string name="toolbar_close" msgid="1081308076149879833">"關閉"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"你還沒有任何聯絡人"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"新增聯絡人"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"開啟"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"如要查看你的聯絡人,請開啟「聯絡人」存取權限。"</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"沒有可用的聯絡人應用程式"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values-zu/strings.xml b/java/com/android/dialer/widget/res/values-zu/strings.xml index 074aa5822..a3ba84a9a 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"> <string name="custom_message_hint" msgid="2179012696339457461">"Bhala umlayezo wangokwezifiso"</string> <string name="toolbar_close" msgid="1081308076149879833">"Vala"</string> + <string name="all_contacts_empty" msgid="4260556610403994011">"Awunabo oxhumana nabo okwamanje"</string> + <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Engeza oxhumana naye"</string> + <string name="permission_single_turn_on" msgid="1306416016676232584">"Vula"</string> + <string name="permission_no_contacts" msgid="2388204904477299207">"Ukuze ubone oxhumana nabo, vula imvume yoxhumana nabo."</string> + <string name="add_contact_not_available" msgid="3083256438899321502">"Alukho uhlelo lokusebenza loxhumana nabo olutholakalayo"</string> </resources> diff --git a/java/com/android/dialer/widget/res/values/colors.xml b/java/com/android/dialer/widget/res/values/colors.xml new file mode 100644 index 000000000..c974609ef --- /dev/null +++ b/java/com/android/dialer/widget/res/values/colors.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <color name="empty_list_text_color">#b2b2b2</color> +</resources>
\ No newline at end of file diff --git a/java/com/android/dialer/widget/res/values/dimens.xml b/java/com/android/dialer/widget/res/values/dimens.xml index 20393a842..537ad7bd7 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 @@ <dimen name="toolbar_title_small_text_size">14sp</dimen> <dimen name="toolbar_subtitle_text_size">12sp</dimen> <dimen name="toolbar_elevation">4dp</dimen> + <dimen name="toolbar_end_padding">4dp</dimen> + + <!-- Empty List --> + <dimen name="empty_list_message_top_padding">20dp</dimen> + <dimen name="empty_list_message_text_size">16sp</dimen> </resources>
\ No newline at end of file diff --git a/java/com/android/dialer/widget/res/values/strings.xml b/java/com/android/dialer/widget/res/values/strings.xml index a5829bb0b..d6ea2e7cd 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 @@ <!-- Accessibility string for close/navigation icon in DialerToolbar --> <string name="toolbar_close">Close</string> + + <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. --> + <string name="all_contacts_empty">You don\'t have any contacts yet</string> + + <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty --> + <string name="all_contacts_empty_add_contact_action">Add a contact</string> + + <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]--> + <string name="permission_single_turn_on">Turn on</string> + + <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]--> + <string name="permission_no_contacts">To see your contacts, turn on the Contacts permission.</string> + + <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] --> + <string name="add_contact_not_available">No contacts app available</string> </resources>
\ No newline at end of file diff --git a/java/com/android/dialershared/bubble/AndroidManifest.xml b/java/com/android/dialershared/bubble/AndroidManifest.xml new file mode 100644 index 000000000..1a94aafc1 --- /dev/null +++ b/java/com/android/dialershared/bubble/AndroidManifest.xml @@ -0,0 +1,22 @@ +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.android.dialershared.bubble"> + + <uses-sdk android:minSdkVersion="21"/> + <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> +</manifest> diff --git a/java/com/android/dialershared/bubble/Bubble.java b/java/com/android/dialershared/bubble/Bubble.java new file mode 100644 index 000000000..3eb88aa22 --- /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<Action> actions) { + currentInfo = BubbleInfo.from(currentInfo).setActions(actions).build(); + updateButtonStates(); + } + + /** Returns the currently displayed BubbleInfo */ + public BubbleInfo getBubbleInfo() { + return currentInfo; + } + + /** + * Display text in the main bubble. The bubble's drawer is not expandable while text is showing, + * and the drawer will be closed if already open. + * + * @param text the text to display to the user + */ + public void showText(@NonNull CharSequence text) { + textShowing = true; + if (expanded) { + startCollapse(CollapseEnd.NOTHING); + doShowText(text); + } else { + // Need to transition from old bounds to new bounds manually + ChangeOnScreenBounds transition = new ChangeOnScreenBounds(); + // Prepare and capture start values + TransitionValues startValues = new TransitionValues(); + startValues.view = viewHolder.getPrimaryButton(); + transition.addTarget(startValues.view); + transition.captureStartValues(startValues); + + doResize( + () -> { + doShowText(text); + // Hide the text so we can animate it in + viewHolder.getPrimaryText().setAlpha(0); + + ViewAnimator primaryButton = viewHolder.getPrimaryButton(); + // Cancel the automatic transition scheduled in doShowText + TransitionManager.endTransitions((ViewGroup) primaryButton.getParent()); + primaryButton + .getViewTreeObserver() + .addOnPreDrawListener( + new OnPreDrawListener() { + @Override + public boolean onPreDraw() { + primaryButton.getViewTreeObserver().removeOnPreDrawListener(this); + + // Prepare and capture end values + TransitionValues endValues = new TransitionValues(); + endValues.view = primaryButton; + transition.addTarget(endValues.view); + transition.captureEndValues(endValues); + + // animate the primary button bounds change + Animator bounds = + transition.createAnimator(primaryButton, startValues, endValues); + + // Animate the text in + Animator alpha = + ObjectAnimator.ofFloat(viewHolder.getPrimaryText(), View.ALPHA, 1f); + + AnimatorSet set = new AnimatorSet(); + set.play(bounds).before(alpha); + set.start(); + return false; + } + }); + }); + } + handler.removeCallbacks(null); + handler.postDelayed( + () -> { + textShowing = false; + if (hideAfterText) { + hide(); + } else { + doResize( + () -> viewHolder.getPrimaryButton().setDisplayedChild(ViewHolder.CHILD_INDEX_ICON)); + } + }, + SHOW_TEXT_DURATION_MILLIS); + } + + void onMoveStart() { + startCollapse(CollapseEnd.NOTHING); + viewHolder + .getPrimaryButton() + .animate() + .translationZ( + context.getResources().getDimensionPixelOffset(R.dimen.bubble_move_elevation_change)); + } + + void onMoveFinish() { + viewHolder.getPrimaryButton().animate().translationZ(0); + } + + void primaryButtonClick() { + if (expanded || textShowing || currentInfo.getActions().isEmpty()) { + try { + currentInfo.getPrimaryAction().send(); + } catch (CanceledException e) { + throw new RuntimeException(e); + } + return; + } + + boolean onRight = (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT; + doResize( + () -> { + onLeftRightSwitch(onRight); + viewHolder.getExpandedView().setVisibility(View.VISIBLE); + }); + View expandedView = viewHolder.getExpandedView(); + expandedView + .getViewTreeObserver() + .addOnPreDrawListener( + new OnPreDrawListener() { + @Override + public boolean onPreDraw() { + expandedView.getViewTreeObserver().removeOnPreDrawListener(this); + expandedView.setTranslationX( + onRight ? expandedView.getWidth() : -expandedView.getWidth()); + expandedView + .animate() + .setInterpolator(new LinearOutSlowInInterpolator()) + .translationX(0); + return false; + } + }); + setFocused(true); + expanded = true; + } + + void onLeftRightSwitch(boolean onRight) { + viewHolder + .getRoot() + .setLayoutDirection(onRight ? View.LAYOUT_DIRECTION_RTL : View.LAYOUT_DIRECTION_LTR); + View primaryContainer = viewHolder.getRoot().findViewById(R.id.bubble_primary_container); + ViewGroup.LayoutParams layoutParams = primaryContainer.getLayoutParams(); + ((FrameLayout.LayoutParams) layoutParams).gravity = onRight ? Gravity.RIGHT : Gravity.LEFT; + primaryContainer.setLayoutParams(layoutParams); + + viewHolder + .getExpandedView() + .setBackgroundResource( + onRight + ? R.drawable.bubble_background_pill_rtl + : R.drawable.bubble_background_pill_ltr); + } + + LayoutParams getWindowParams() { + return windowParams; + } + + View getRootView() { + return viewHolder.getRoot(); + } + + private void update() { + RippleDrawable backgroundRipple = + (RippleDrawable) + context.getResources().getDrawable(R.drawable.bubble_ripple_circle, context.getTheme()); + int primaryTint = + ColorUtils.compositeColors( + context.getColor(R.color.bubble_primary_background_darken), + currentInfo.getPrimaryColor()); + backgroundRipple.getDrawable(0).setTint(primaryTint); + viewHolder.getPrimaryButton().setBackground(backgroundRipple); + + setBackgroundDrawable(viewHolder.getFirstButton(), primaryTint); + setBackgroundDrawable(viewHolder.getSecondButton(), primaryTint); + setBackgroundDrawable(viewHolder.getThirdButton(), primaryTint); + + int numButtons = currentInfo.getActions().size(); + viewHolder.getThirdButton().setVisibility(numButtons < 3 ? View.GONE : View.VISIBLE); + viewHolder.getSecondButton().setVisibility(numButtons < 2 ? View.GONE : View.VISIBLE); + + viewHolder.getPrimaryIcon().setImageIcon(currentInfo.getPrimaryIcon()); + + viewHolder + .getExpandedView() + .setBackgroundTintList(ColorStateList.valueOf(currentInfo.getPrimaryColor())); + + updateButtonStates(); + } + + private void setBackgroundDrawable(CheckableImageButton view, @ColorInt int color) { + RippleDrawable itemRipple = + (RippleDrawable) + context + .getResources() + .getDrawable(R.drawable.bubble_ripple_checkable_circle, context.getTheme()); + itemRipple.getDrawable(0).setTint(color); + view.setBackground(itemRipple); + } + + private void updateButtonStates() { + int numButtons = currentInfo.getActions().size(); + + if (numButtons >= 1) { + configureButton(currentInfo.getActions().get(0), viewHolder.getFirstButton()); + if (numButtons >= 2) { + configureButton(currentInfo.getActions().get(1), viewHolder.getSecondButton()); + if (numButtons >= 3) { + configureButton(currentInfo.getActions().get(2), viewHolder.getThirdButton()); + } + } + } + } + + private void doShowText(@NonNull CharSequence text) { + TransitionManager.beginDelayedTransition((ViewGroup) viewHolder.getPrimaryButton().getParent()); + viewHolder.getPrimaryText().setText(text); + viewHolder.getPrimaryButton().setDisplayedChild(ViewHolder.CHILD_INDEX_TEXT); + } + + private void configureButton(Action action, CheckableImageButton button) { + action + .getIcon() + .loadDrawableAsync( + context, + d -> { + button.setImageIcon(action.getIcon()); + button.setContentDescription(action.getName()); + button.setChecked(action.isChecked()); + button.setEnabled(action.isEnabled()); + }, + handler); + button.setOnClickListener(v -> doAction(action)); + } + + private void doAction(Action action) { + try { + action.getAction().send(); + } catch (CanceledException e) { + throw new RuntimeException(e); + } + } + + private void doResize(@Nullable Runnable operation) { + // If we're resizing on the right side of the screen, there is an implicit move operation + // necessary. The WindowManager does not sync the move and resize operations, so serious jank + // would occur. To fix this, instead of resizing the window, we create a new one and destroy + // the old one. There is a short delay before destroying the old view to ensure the new one has + // had time to draw. + boolean onRight = (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT; + ViewHolder oldViewHolder = viewHolder; + if (onRight) { + viewHolder = new ViewHolder(oldViewHolder.getRoot().getContext()); + update(); + viewHolder + .getPrimaryButton() + .setDisplayedChild(oldViewHolder.getPrimaryButton().getDisplayedChild()); + viewHolder.getPrimaryText().setText(oldViewHolder.getPrimaryText().getText()); + } + + if (operation != null) { + operation.run(); + } + + if (onRight) { + swapViewHolders(oldViewHolder); + } + } + + private void swapViewHolders(ViewHolder oldViewHolder) { + ViewGroup root = viewHolder.getRoot(); + windowManager.addView(root, windowParams); + root.getViewTreeObserver() + .addOnPreDrawListener( + new OnPreDrawListener() { + @Override + public boolean onPreDraw() { + root.getViewTreeObserver().removeOnPreDrawListener(this); + // Wait a bit before removing the old view; make sure the new one has drawn over it. + handler.postDelayed( + () -> windowManager.removeView(oldViewHolder.getRoot()), + WINDOW_REDRAW_DELAY_MILLIS); + return true; + } + }); + } + + private ViewPropertyAnimator startCollapse(@CollapseEnd int collapseEndAction) { + setFocused(false); + boolean onRight = (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT; + View expandedView = viewHolder.getExpandedView(); + return expandedView + .animate() + .translationX(onRight ? expandedView.getWidth() : -expandedView.getWidth()) + .setInterpolator(new FastOutLinearInInterpolator()) + .withEndAction( + () -> { + expanded = false; + if (collapseEndAction == CollapseEnd.HIDE) { + hide(); + } else if (!textShowing) { + // Don't swap the window while the user is moving it, even if we're on the right. + // The movement will help hide the jank of the resize. + boolean swapWindow = onRight && !viewHolder.isMoving(); + if (swapWindow) { + // We don't actually need to set the drawer to GONE since in the new window it + // will already be GONE. Just do the resize operation. + doResize(null); + } else { + expandedView.setVisibility(View.GONE); + } + } + }); + } + + private void setFocused(boolean focused) { + if (focused) { + windowParams.flags &= ~LayoutParams.FLAG_NOT_FOCUSABLE; + } else { + windowParams.flags |= LayoutParams.FLAG_NOT_FOCUSABLE; + } + windowManager.updateViewLayout(getRootView(), windowParams); + } + + private class ViewHolder { + + public static final int CHILD_INDEX_ICON = 0; + public static final int CHILD_INDEX_TEXT = 1; + + private final MoveHandler moveHandler; + private final WindowRoot root; + private final ViewAnimator primaryButton; + private final ImageView primaryIcon; + private final TextView primaryText; + + private final CheckableImageButton firstButton; + private final CheckableImageButton secondButton; + private final CheckableImageButton thirdButton; + private final View expandedView; + + public ViewHolder(Context context) { + // Window root is not in the layout file so that the inflater has a view to inflate into + this.root = new WindowRoot(context); + LayoutInflater inflater = LayoutInflater.from(root.getContext()); + View contentView = inflater.inflate(R.layout.bubble_base, root, true); + expandedView = contentView.findViewById(R.id.bubble_expanded_layout); + primaryButton = contentView.findViewById(R.id.bubble_button_primary); + primaryIcon = contentView.findViewById(R.id.bubble_icon_primary); + primaryText = contentView.findViewById(R.id.bubble_text); + + firstButton = contentView.findViewById(R.id.bubble_icon_first); + secondButton = contentView.findViewById(R.id.bubble_icon_second); + thirdButton = contentView.findViewById(R.id.bubble_icon_third); + + root.setOnBackPressedListener( + () -> { + if (isShowing && expanded) { + startCollapse(CollapseEnd.NOTHING); + return true; + } + return false; + }); + root.setOnTouchListener( + (v, event) -> { + if (expanded && event.getActionMasked() == MotionEvent.ACTION_OUTSIDE) { + startCollapse(CollapseEnd.NOTHING); + return true; + } + return false; + }); + moveHandler = new MoveHandler(primaryButton, Bubble.this); + } + + public ViewGroup getRoot() { + return root; + } + + public ViewAnimator getPrimaryButton() { + return primaryButton; + } + + public ImageView getPrimaryIcon() { + return primaryIcon; + } + + public TextView getPrimaryText() { + return primaryText; + } + + public CheckableImageButton getFirstButton() { + return firstButton; + } + + public CheckableImageButton getSecondButton() { + return secondButton; + } + + public CheckableImageButton getThirdButton() { + return thirdButton; + } + + public View getExpandedView() { + return expandedView; + } + + public boolean isMoving() { + return moveHandler.isMoving(); + } + } +} diff --git a/java/com/android/dialershared/bubble/BubbleInfo.java b/java/com/android/dialershared/bubble/BubbleInfo.java new file mode 100644 index 000000000..52417ae7b --- /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<Action> getActions(); + + public static Builder builder() { + return new AutoValue_BubbleInfo.Builder().setActions(Collections.emptyList()); + } + + public static Builder from(@NonNull BubbleInfo bubbleInfo) { + return builder() + .setPrimaryAction(bubbleInfo.getPrimaryAction()) + .setPrimaryColor(bubbleInfo.getPrimaryColor()) + .setPrimaryIcon(bubbleInfo.getPrimaryIcon()) + .setActions(bubbleInfo.getActions()); + } + + /** Builder for {@link BubbleInfo} */ + @AutoValue.Builder + public abstract static class Builder { + + public abstract Builder setPrimaryColor(@ColorInt int primaryColor); + + public abstract Builder setPrimaryIcon(@NonNull Icon primaryIcon); + + public abstract Builder setPrimaryAction(@NonNull PendingIntent primaryAction); + + public abstract Builder setActions(List<Action> actions); + + public abstract BubbleInfo build(); + } + + /** Represents actions to be shown in the bubble when expanded */ + @AutoValue + public abstract static class Action { + + @NonNull + public abstract Icon getIcon(); + + @NonNull + public abstract CharSequence getName(); + + @NonNull + public abstract PendingIntent getAction(); + + public abstract boolean isEnabled(); + + public abstract boolean isChecked(); + + public static Builder builder() { + return new AutoValue_BubbleInfo_Action.Builder().setEnabled(true).setChecked(false); + } + + public static Builder from(@NonNull Action action) { + return builder() + .setAction(action.getAction()) + .setChecked(action.isChecked()) + .setEnabled(action.isEnabled()) + .setName(action.getName()) + .setIcon(action.getIcon()); + } + + /** Builder for {@link Action} */ + @AutoValue.Builder + public abstract static class Builder { + + public abstract Builder setIcon(@NonNull Icon icon); + + public abstract Builder setName(@NonNull CharSequence name); + + public abstract Builder setAction(@NonNull PendingIntent action); + + public abstract Builder setEnabled(boolean enabled); + + public abstract Builder setChecked(boolean checked); + + public abstract Action build(); + } + } +} diff --git a/java/com/android/dialershared/bubble/ChangeOnScreenBounds.java b/java/com/android/dialershared/bubble/ChangeOnScreenBounds.java new file mode 100644 index 000000000..4da6a3561 --- /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<ViewBounds, PointF> TOP_LEFT_PROPERTY = + new Property<ViewBounds, PointF>(PointF.class, "topLeft") { + @Override + public void set(ViewBounds viewBounds, PointF topLeft) { + viewBounds.setTopLeft(topLeft); + } + + @Override + public PointF get(ViewBounds viewBounds) { + return null; + } + }; + + private static final Property<ViewBounds, PointF> BOTTOM_RIGHT_PROPERTY = + new Property<ViewBounds, PointF>(PointF.class, "bottomRight") { + @Override + public void set(ViewBounds viewBounds, PointF bottomRight) { + viewBounds.setBottomRight(bottomRight); + } + + @Override + public PointF get(ViewBounds viewBounds) { + return null; + } + }; + private final int[] tempLocation = new int[2]; + + @Override + public void captureStartValues(TransitionValues transitionValues) { + captureValues(transitionValues); + } + + @Override + public void captureEndValues(TransitionValues transitionValues) { + captureValues(transitionValues); + } + + private void captureValues(TransitionValues values) { + View view = values.view; + + if (view.isLaidOut() || view.getWidth() != 0 || view.getHeight() != 0) { + values.values.put( + PROPNAME_BOUNDS, + new Rect(view.getLeft(), view.getTop(), view.getRight(), view.getBottom())); + values.view.getLocationOnScreen(tempLocation); + values.values.put(PROPNAME_SCREEN_X, tempLocation[0]); + values.values.put(PROPNAME_SCREEN_Y, tempLocation[1]); + } + } + + @Override + public Animator createAnimator( + ViewGroup sceneRoot, TransitionValues startValues, TransitionValues endValues) { + Rect startBounds = (Rect) startValues.values.get(PROPNAME_BOUNDS); + + // Offset the startBounds by the difference in screen position + int startScreenX = (Integer) startValues.values.get(PROPNAME_SCREEN_X); + int startScreenY = (Integer) startValues.values.get(PROPNAME_SCREEN_Y); + int endScreenX = (Integer) endValues.values.get(PROPNAME_SCREEN_X); + int endScreenY = (Integer) endValues.values.get(PROPNAME_SCREEN_Y); + startBounds.offset(startScreenX - endScreenX, startScreenY - endScreenY); + + Rect endBounds = (Rect) endValues.values.get(PROPNAME_BOUNDS); + final int startLeft = startBounds.left; + final int endLeft = endBounds.left; + final int startTop = startBounds.top; + final int endTop = endBounds.top; + final int startRight = startBounds.right; + final int endRight = endBounds.right; + final int startBottom = startBounds.bottom; + final int endBottom = endBounds.bottom; + ViewBounds viewBounds = new ViewBounds(endValues.view); + viewBounds.setTopLeft(new PointF(startLeft, startTop)); + viewBounds.setBottomRight(new PointF(startRight, startBottom)); + + // Animate the top left and bottom right corners along a path + Path topLeftPath = getPathMotion().getPath(startLeft, startTop, endLeft, endTop); + ObjectAnimator topLeftAnimator = + ObjectAnimator.ofObject(viewBounds, TOP_LEFT_PROPERTY, null, topLeftPath); + + Path bottomRightPath = getPathMotion().getPath(startRight, startBottom, endRight, endBottom); + ObjectAnimator bottomRightAnimator = + ObjectAnimator.ofObject(viewBounds, BOTTOM_RIGHT_PROPERTY, null, bottomRightPath); + AnimatorSet set = new AnimatorSet(); + set.playTogether(topLeftAnimator, bottomRightAnimator); + return set; + } + + private static class ViewBounds { + private int left; + private int top; + private int right; + private int bottom; + private final View view; + private int topLeftCalls; + private int bottomRightCalls; + + public ViewBounds(View view) { + this.view = view; + } + + public void setTopLeft(PointF topLeft) { + left = Math.round(topLeft.x); + top = Math.round(topLeft.y); + topLeftCalls++; + if (topLeftCalls == bottomRightCalls) { + updateLeftTopRightBottom(); + } + } + + public void setBottomRight(PointF bottomRight) { + right = Math.round(bottomRight.x); + bottom = Math.round(bottomRight.y); + bottomRightCalls++; + if (topLeftCalls == bottomRightCalls) { + updateLeftTopRightBottom(); + } + } + + private void updateLeftTopRightBottom() { + view.setLeft(left); + view.setTop(top); + view.setRight(right); + view.setBottom(bottom); + topLeftCalls = 0; + bottomRightCalls = 0; + } + } +} diff --git a/java/com/android/dialershared/bubble/CheckableImageButton.java b/java/com/android/dialershared/bubble/CheckableImageButton.java new file mode 100644 index 000000000..7a5a432a6 --- /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 000000000..8a21cd7e1 --- /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<WindowManager.LayoutParams> xProperty = + new FloatPropertyCompat<LayoutParams>("xProperty") { + @Override + public float getValue(LayoutParams windowParams) { + int realX = windowParams.x; + realX = realX + bubbleSize / 2; + realX = realX + shadowPaddingSize; + if (relativeToRight(windowParams)) { + int displayWidth = context.getResources().getDisplayMetrics().widthPixels; + realX = displayWidth - realX; + } + return MathUtils.clamp(realX, minX, maxX); + } + + @Override + public void setValue(LayoutParams windowParams, float value) { + int displayWidth = context.getResources().getDisplayMetrics().widthPixels; + boolean onRight = value > displayWidth / 2; + int centeringOffset = bubbleSize / 2 + shadowPaddingSize; + windowParams.x = + (int) (onRight ? (displayWidth - value - centeringOffset) : value - centeringOffset); + windowParams.gravity = Gravity.TOP | (onRight ? Gravity.RIGHT : Gravity.LEFT); + if (bubble.isShowing()) { + windowManager.updateViewLayout(bubble.getRootView(), windowParams); + } + } + }; + + private final FloatPropertyCompat<WindowManager.LayoutParams> yProperty = + new FloatPropertyCompat<LayoutParams>("yProperty") { + @Override + public float getValue(LayoutParams object) { + return MathUtils.clamp(object.y + bubbleSize + shadowPaddingSize, minY, maxY); + } + + @Override + public void setValue(LayoutParams object, float value) { + object.y = (int) value - bubbleSize - shadowPaddingSize; + if (bubble.isShowing()) { + windowManager.updateViewLayout(bubble.getRootView(), object); + } + } + }; + + public MoveHandler(@NonNull View targetView, @NonNull Bubble bubble) { + this.bubble = bubble; + context = targetView.getContext(); + windowManager = context.getSystemService(WindowManager.class); + + bubbleSize = context.getResources().getDimensionPixelSize(R.dimen.bubble_size); + shadowPaddingSize = + context.getResources().getDimensionPixelOffset(R.dimen.bubble_shadow_padding_size); + minX = + context.getResources().getDimensionPixelOffset(R.dimen.bubble_safe_margin_x) + + bubbleSize / 2; + minY = + context.getResources().getDimensionPixelOffset(R.dimen.bubble_safe_margin_y) + + bubbleSize / 2; + maxX = context.getResources().getDisplayMetrics().widthPixels - minX; + maxY = context.getResources().getDisplayMetrics().heightPixels - minY; + + // Squared because it will be compared against the square of the touch delta. This is more + // efficient than needing to take a square root. + touchSlopSquared = (float) Math.pow(ViewConfiguration.get(context).getScaledTouchSlop(), 2); + + targetView.setOnTouchListener(this); + } + + public boolean isMoving() { + return isMoving; + } + + @Override + public boolean onTouch(View v, MotionEvent event) { + float eventX = event.getRawX(); + float eventY = event.getRawY(); + switch (event.getActionMasked()) { + case MotionEvent.ACTION_DOWN: + firstX = eventX; + firstY = eventY; + velocityTracker = VelocityTracker.obtain(); + break; + case MotionEvent.ACTION_MOVE: + if (isMoving || hasExceededTouchSlop(event)) { + if (!isMoving) { + isMoving = true; + bubble.onMoveStart(); + } + + if (moveXAnimation == null) { + moveXAnimation = new SpringAnimation(bubble.getWindowParams(), xProperty); + moveXAnimation.setSpring(new SpringForce()); + moveXAnimation.getSpring().setDampingRatio(SpringForce.DAMPING_RATIO_NO_BOUNCY); + } + if (moveYAnimation == null) { + moveYAnimation = new SpringAnimation(bubble.getWindowParams(), yProperty); + moveYAnimation.setSpring(new SpringForce()); + moveYAnimation.getSpring().setDampingRatio(SpringForce.DAMPING_RATIO_NO_BOUNCY); + } + + moveXAnimation.animateToFinalPosition(MathUtils.clamp(eventX, minX, maxX)); + moveYAnimation.animateToFinalPosition(MathUtils.clamp(eventY, minY, maxY)); + } + + velocityTracker.addMovement(event); + break; + case MotionEvent.ACTION_UP: + if (isMoving) { + ViewConfiguration viewConfiguration = ViewConfiguration.get(context); + velocityTracker.computeCurrentVelocity( + 1000, viewConfiguration.getScaledMaximumFlingVelocity()); + float xVelocity = velocityTracker.getXVelocity(); + float yVelocity = velocityTracker.getYVelocity(); + boolean isFling = isFling(xVelocity, yVelocity); + + if (isFling) { + Point target = + findTarget( + xVelocity, + yVelocity, + (int) xProperty.getValue(bubble.getWindowParams()), + (int) yProperty.getValue(bubble.getWindowParams())); + + moveXAnimation.animateToFinalPosition(target.x); + moveYAnimation.animateToFinalPosition(target.y); + } else { + snapX(); + } + + bubble.onMoveFinish(); + } else { + v.performClick(); + bubble.primaryButtonClick(); + } + isMoving = false; + break; + } + return true; + } + + private Point findTarget(float xVelocity, float yVelocity, int startX, int startY) { + if (scroller == null) { + scroller = new Scroller(context); + scroller.setFriction(ViewConfiguration.getScrollFriction() * SCROLL_FRICTION_MULTIPLIER); + } + + // Find where a fling would end vertically + scroller.fling(startX, startY, (int) xVelocity, (int) yVelocity, minX, maxX, minY, maxY); + int targetY = scroller.getFinalY(); + scroller.abortAnimation(); + + // If the x component of the velocity is above the minimum fling velocity, use velocity to + // determine edge. Otherwise use its starting position + boolean pullRight = isFling(xVelocity, 0) ? xVelocity > 0 : isOnRightHalf(startX); + return new Point(pullRight ? maxX : minX, targetY); + } + + private boolean isFling(float xVelocity, float yVelocity) { + int minFlingVelocity = + ViewConfiguration.get(context).getScaledMinimumFlingVelocity() * MIN_FLING_VELOCITY_FACTOR; + return getMagnitudeSquared(xVelocity, yVelocity) > minFlingVelocity * minFlingVelocity; + } + + private boolean isOnRightHalf(float currentX) { + return currentX > (minX + maxX) / 2; + } + + private void snapX() { + // Check if x value is closer to min or max + boolean pullRight = isOnRightHalf(xProperty.getValue(bubble.getWindowParams())); + moveXAnimation.animateToFinalPosition(pullRight ? maxX : minX); + } + + private boolean relativeToRight(LayoutParams windowParams) { + return (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT; + } + + private boolean hasExceededTouchSlop(MotionEvent event) { + return getMagnitudeSquared(event.getRawX() - firstX, event.getRawY() - firstY) + > touchSlopSquared; + } + + private float getMagnitudeSquared(float deltaX, float deltaY) { + return deltaX * deltaX + deltaY * deltaY; + } +} diff --git a/java/com/android/dialershared/bubble/WindowRoot.java b/java/com/android/dialershared/bubble/WindowRoot.java new file mode 100644 index 000000000..2c176662e --- /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 index be0cdd358..f9416ab57 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 @@ <?xml version="1.0" encoding="utf-8"?> <!-- - ~ Copyright (C) 2015 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. @@ -15,8 +15,7 @@ ~ limitations under the License --> -<bitmap xmlns:android="http://schemas.android.com/apk/res/android" - android:autoMirrored="true" - android:src="@drawable/ic_phone_attach" - android:tint="@color/search_video_call_icon_tint" - android:background="?attr/selectableItemBackgroundBorderless"/>
\ No newline at end of file +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:color="@android:color/white" android:state_checked="true"/> + <item android:color="@android:color/transparent"/> +</selector> diff --git a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml b/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml index ecf704e8e..33ca1fdc5 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 @@ <?xml version="1.0" encoding="utf-8"?> <!-- - ~ Copyright (C) 2014 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. @@ -14,7 +14,8 @@ ~ See the License for the specific language governing permissions and ~ limitations under the License --> -<bitmap xmlns:android="http://schemas.android.com/apk/res/android" - android:autoMirrored="true" - android:src="@drawable/quantum_ic_arrow_back_white_24" - android:tint="@color/actionbar_icon_color"/>
\ No newline at end of file + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:color="#80FFFFFF" android:state_enabled="false"/> + <item android:color="@android:color/white"/> +</selector> 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 000000000..77c813a75 --- /dev/null +++ b/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_ltr.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <corners + android:bottomRightRadius="@dimen/bubble_size" + android:topRightRadius="@dimen/bubble_size"/> + <solid android:color="@android:color/white"/> +</shape> diff --git a/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml new file mode 100644 index 000000000..9e2542154 --- /dev/null +++ b/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <corners + android:bottomLeftRadius="@dimen/bubble_size" + android:topLeftRadius="@dimen/bubble_size"/> + <solid android:color="@android:color/white"/> +</shape> diff --git a/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml new file mode 100644 index 000000000..85e0b24f3 --- /dev/null +++ b/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + +<ripple xmlns:android="http://schemas.android.com/apk/res/android" + android:color="?android:colorControlHighlight"> + <item> + <shape android:shape="oval"> + <solid android:color="@color/bubble_checkable_mask"/> + </shape> + </item> + <item android:id="@android:id/mask"> + <shape android:shape="oval"> + <solid android:color="@android:color/white"/> + </shape> + </item> +</ripple> diff --git a/java/com/android/contacts/common/res/drawable/ic_search_video_call.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_circle.xml index 0fe0367e1..8d5cf0bb5 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 @@ <?xml version="1.0" encoding="utf-8"?> <!-- - ~ Copyright (C) 2015 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. @@ -15,8 +15,12 @@ ~ limitations under the License --> -<bitmap xmlns:android="http://schemas.android.com/apk/res/android" - android:autoMirrored="true" - android:src="@drawable/quantum_ic_videocam_white_24" - android:tint="@color/search_video_call_icon_tint" - android:background="?attr/selectableItemBackgroundBorderless"/> +<ripple xmlns:android="http://schemas.android.com/apk/res/android" + android:color="?android:colorControlHighlight"> + <item> + <shape> + <corners android:radius="@dimen/bubble_size"/> + <solid android:color="@android:color/white"/> + </shape> + </item> +</ripple> diff --git a/java/com/android/dialershared/bubble/res/layout/bubble_base.xml b/java/com/android/dialershared/bubble/res/layout/bubble_base.xml new file mode 100644 index 000000000..3acd2af2e --- /dev/null +++ b/java/com/android/dialershared/bubble/res/layout/bubble_base.xml @@ -0,0 +1,116 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + tools:theme="@style/Theme.AppCompat"> + <FrameLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="48dp" + android:paddingTop="@dimen/bubble_shadow_padding_size" + android:paddingBottom="@dimen/bubble_shadow_padding_size" + android:paddingEnd="@dimen/bubble_shadow_padding_size" + android:background="@android:color/transparent"> + + <LinearLayout + android:id="@+id/bubble_expanded_layout" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:paddingStart="32dp" + android:paddingEnd="12dp" + android:background="@drawable/bubble_background_pill_ltr" + android:elevation="2dp" + android:layoutDirection="inherit" + android:orientation="horizontal" + android:visibility="gone" + tools:backgroundTint="#FF0000FF" + tools:visibility="visible"> + <com.android.dialershared.bubble.CheckableImageButton + android:id="@+id/bubble_icon_first" + android:layout_width="@dimen/bubble_size" + android:layout_height="@dimen/bubble_size" + android:layout_marginStart="4dp" + android:padding="@dimen/bubble_icon_padding" + android:tint="@color/bubble_icon_tint_states" + android:tintMode="src_in" + tools:background="@drawable/bubble_ripple_checkable_circle" + tools:src="@android:drawable/ic_lock_idle_lock"/> + <com.android.dialershared.bubble.CheckableImageButton + android:id="@+id/bubble_icon_second" + android:layout_width="@dimen/bubble_size" + android:layout_height="@dimen/bubble_size" + android:layout_marginStart="4dp" + android:padding="@dimen/bubble_icon_padding" + android:tint="@color/bubble_icon_tint_states" + android:tintMode="src_in" + tools:background="@drawable/bubble_ripple_checkable_circle" + tools:src="@android:drawable/ic_input_add"/> + <com.android.dialershared.bubble.CheckableImageButton + android:id="@+id/bubble_icon_third" + android:layout_width="@dimen/bubble_size" + android:layout_height="@dimen/bubble_size" + android:layout_marginStart="4dp" + android:padding="@dimen/bubble_icon_padding" + android:tint="@color/bubble_icon_tint_states" + android:tintMode="src_in" + tools:background="@drawable/bubble_ripple_checkable_circle" + tools:src="@android:drawable/ic_menu_call"/> + </LinearLayout> + </FrameLayout> + <FrameLayout + android:id="@+id/bubble_primary_container" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="start" + android:animateLayoutChanges="true" + android:background="@android:color/transparent" + android:clipChildren="false" + android:clipToPadding="false"> + <ViewAnimator + android:id="@+id/bubble_button_primary" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_margin="@dimen/bubble_shadow_padding_size" + android:background="@drawable/bubble_ripple_circle" + android:elevation="6dp" + android:measureAllChildren="false" + tools:backgroundTint="#FF0000AA"> + <ImageView + android:id="@+id/bubble_icon_primary" + android:layout_width="@dimen/bubble_size" + android:layout_height="@dimen/bubble_size" + android:padding="@dimen/bubble_icon_padding" + android:tint="@android:color/white" + android:tintMode="src_in" + tools:src="@android:drawable/ic_btn_speak_now"/> + <TextView + android:id="@+id/bubble_text" + android:layout_width="wrap_content" + android:layout_height="@dimen/bubble_size" + android:paddingStart="@dimen/bubble_icon_padding" + android:paddingEnd="@dimen/bubble_icon_padding" + android:gravity="center" + android:minWidth="@dimen/bubble_size" + android:textAppearance="@style/TextAppearance.AppCompat" + tools:text="Call ended"/> + </ViewAnimator> + </FrameLayout> + +</FrameLayout> diff --git a/java/com/android/incallui/res/drawable/img_conference_automirrored.xml b/java/com/android/dialershared/bubble/res/values/colors.xml index 78b2876bc..97545faf3 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 @@ <?xml version="1.0" encoding="utf-8"?> - <!-- - ~ Copyright (C) 2014 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. @@ -16,6 +15,6 @@ ~ limitations under the License --> -<bitmap xmlns:android="http://schemas.android.com/apk/res/android" - android:autoMirrored="true" - android:src="@drawable/img_conference"/>
\ No newline at end of file +<resources> + <color name="bubble_primary_background_darken">#33000000</color> +</resources> diff --git a/java/com/android/dialershared/bubble/res/values/values.xml b/java/com/android/dialershared/bubble/res/values/values.xml new file mode 100644 index 000000000..5b85e0d23 --- /dev/null +++ b/java/com/android/dialershared/bubble/res/values/values.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + +<resources> + <dimen name="bubble_safe_margin_x">0dp</dimen> + <dimen name="bubble_safe_margin_y">0dp</dimen> + <dimen name="bubble_initial_offset_x">0dp</dimen> + <dimen name="bubble_initial_offset_y">120dp</dimen> + <dimen name="bubble_size">64dp</dimen> + <dimen name="bubble_icon_padding">20dp</dimen> + <dimen name="bubble_move_elevation_change">4dp</dimen> + <dimen name="bubble_shadow_padding_size">16dp</dimen> +</resources> diff --git a/java/com/android/incallui/AndroidManifest.xml b/java/com/android/incallui/AndroidManifest.xml index 8539bd0cf..703e5b509 100644 --- a/java/com/android/incallui/AndroidManifest.xml +++ b/java/com/android/incallui/AndroidManifest.xml @@ -15,11 +15,11 @@ --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="com.android.incallui"> + package="com.android.incallui"> <uses-sdk - android:minSdkVersion="23" - android:targetSdkVersion="26"/> + android:minSdkVersion="23" + android:targetSdkVersion="26"/> <uses-permission android:name="android.permission.CONTROL_INCALL_EXPERIENCE"/> <!-- We use this to disable the status bar buttons of home, back and recent @@ -31,8 +31,8 @@ <!-- Warning: setting the required boolean to true would prevent installation of Dialer on devices which do not support a camera. --> <uses-feature - android:name="android.hardware.camera.any" - android:required="false"/> + android:name="android.hardware.camera.any" + android:required="false"/> <!-- Testing location --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> @@ -43,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. --> <application> - <meta-data android:name="android.telephony.hide_voicemail_settings_menu" - android:value="true"/> + <meta-data + android:name="android.telephony.hide_voicemail_settings_menu" + android:value="true"/> + <activity - android:directBootAware="true" - android:excludeFromRecents="true" - android:exported="false" - android:label="@string/phoneAppLabel" - android:taskAffinity="com.android.incallui" - android:launchMode="singleInstance" - android:name="com.android.incallui.InCallActivity" - android:resizeableActivity="true" - android:screenOrientation="nosensor" - android:theme="@style/Theme.InCallScreen"> + 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"> </activity> <activity - android:directBootAware="true" - android:excludeFromRecents="true" - android:noHistory="true" - android:exported="false" - android:label="@string/manageConferenceLabel" - android:taskAffinity="com.android.incallui" - android:launchMode="singleTask" - android:name="com.android.incallui.ManageConferenceActivity" - android:resizeableActivity="true" - android:theme="@style/Theme.InCallScreen.ManageConference"/> + 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"/> <service - android:directBootAware="true" - android:exported="true" - android:name="com.android.incallui.InCallServiceImpl" - android:permission="android.permission.BIND_INCALL_SERVICE"> + android:directBootAware="true" + android:exported="true" + android:name="com.android.incallui.InCallServiceImpl" + android:permission="android.permission.BIND_INCALL_SERVICE"> <meta-data - android:name="android.telecom.IN_CALL_SERVICE_UI" - android:value="true"/> + android:name="android.telecom.IN_CALL_SERVICE_UI" + android:value="true"/> <meta-data - android:name="android.telecom.IN_CALL_SERVICE_RINGING" - android:value="false"/> + android:name="android.telecom.IN_CALL_SERVICE_RINGING" + android:value="false"/> <meta-data - android:name="android.telecom.INCLUDE_EXTERNAL_CALLS" - android:value="true"/> + android:name="android.telecom.INCLUDE_EXTERNAL_CALLS" + android:value="true"/> <intent-filter> <action android:name="android.telecom.InCallService"/> @@ -97,23 +99,35 @@ excludeFromRecents="true" -> Don't show in "recent apps" screen --> <activity - android:excludeFromRecents="true" - android:exported="false" - android:name="com.android.incallui.spam.SpamNotificationActivity" - android:noHistory="true" - android:taskAffinity="" - android:theme="@style/AfterCallNotificationTheme"> + android:excludeFromRecents="true" + android:exported="false" + android:name="com.android.incallui.spam.SpamNotificationActivity" + android:noHistory="true" + android:taskAffinity="" + android:theme="@style/AfterCallNotificationTheme"> </activity> + <activity + android:excludeFromRecents="true" + android:exported="false" + android:name=".AudioRouteSelectorActivity" + android:noHistory="true" + android:theme="@style/Theme.Incall.DialogHolder" + /> + <service - android:exported="false" - android:name="com.android.incallui.spam.SpamNotificationService"/> + android:exported="false" + android:name="com.android.incallui.spam.SpamNotificationService"/> <!-- BroadcastReceiver for receiving Intents from Notification mechanism. --> <receiver - android:directBootAware="true" - android:exported="false" - android:name="com.android.incallui.NotificationBroadcastReceiver"/> + android:directBootAware="true" + android:exported="false" + android:name="com.android.incallui.NotificationBroadcastReceiver"/> + + <receiver + android:exported="false" + android:name=".ReturnToCallActionReceiver"/> </application> diff --git a/java/com/android/incallui/AnswerScreenPresenter.java b/java/com/android/incallui/AnswerScreenPresenter.java index ca34aa6aa..ddbe6ccef 100644 --- a/java/com/android/incallui/AnswerScreenPresenter.java +++ b/java/com/android/incallui/AnswerScreenPresenter.java @@ -124,12 +124,29 @@ 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)) { answerScreen.setTextResponses(call.getCannedSmsResponses()); @@ -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 7bff3299a..d02a181c1 100644 --- a/java/com/android/incallui/AnswerScreenPresenterStub.java +++ b/java/com/android/incallui/AnswerScreenPresenterStub.java @@ -43,5 +43,11 @@ public class AnswerScreenPresenterStub implements AnswerScreenDelegate { 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 000000000..dfd4d1abf --- /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 b0c3a99ea..f758a9655 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 c2b99c1d1..cd06793ce 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 564446647..8f2310760 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 e45eb9746..d7eea79bd 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 0c2493c60..051392e2b 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 cc9a8e438..bda003ccc 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 2d6d83c3c..7c3000144 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 4ab92a797..1653334a1 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 000000000..b645c155c --- /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 000000000..4cb6aaf89 --- /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<Action> generateActions() { + List<Action> actions = new ArrayList<>(); + SpeakerButtonInfo speakerButtonInfo = new SpeakerButtonInfo(audioState, IconSize.SIZE_24_DP); + + actions.add( + Action.builder() + .setIcon(Icon.createWithResource(context, speakerButtonInfo.icon)) + .setName(context.getText(speakerButtonInfo.label)) + .setChecked(speakerButtonInfo.isChecked) + .setAction(speakerButtonInfo.checkable ? toggleSpeaker : showSpeakerSelect) + .build()); + + actions.add( + Action.builder() + .setIcon(Icon.createWithResource(context, R.drawable.quantum_ic_mic_off_white_24)) + .setName(context.getText(R.string.incall_label_mute)) + .setChecked(audioState.isMuted()) + .setAction(toggleMute) + .build()); + actions.add( + Action.builder() + .setIcon(Icon.createWithResource(context, R.drawable.quantum_ic_call_end_white_24)) + .setName(context.getText(R.string.incall_label_end_call)) + .setAction(endCall) + .build()); + return actions; + } + + @NonNull + private PendingIntent createActionIntent(String actionToggleSpeaker) { + Intent toggleSpeaker = new Intent(context, ReturnToCallActionReceiver.class); + toggleSpeaker.setAction(actionToggleSpeaker); + return PendingIntent.getBroadcast(context, 0, toggleSpeaker, 0); + } +} diff --git a/java/com/android/incallui/StatusBarNotifier.java b/java/com/android/incallui/StatusBarNotifier.java index 165b30b52..229f08c8e 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 1f0541c4b..6be79305d 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 57d84c45f..000000000 --- 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 9a49075b8..600115e27 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 77b45ec71..9c33b5de6 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 21154cade..05358d831 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 a8737c363..3b4512c4f 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 82a87963d..b155ee874 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Swiep vanaf ikoon om met boodskap af te wys"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Antwoord en beëindig die voortgesette oproep"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is af"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swiep op met twee vingers om te antwoord. Swiep af met twee vingers om af te wys."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Dringend"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Belangrik"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-am/strings.xml b/java/com/android/incallui/answer/impl/res/values-am/strings.xml index 40869773e..c27705fd2 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"በመልዕክት ላለመቀበል ከአዶ ያንሸራቱ"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ይመልሱ እና በመካሄድ ላይ ያለ ጥሪን ይጨርሱ"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ቪዲዮ ጠፍቷል"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ለመመለስ በሁለት ጣት ወደ ላይ ያንሸራቱ። ላለመቀበል በሁለት ጣት ወደ ታች ያንሸራቱ።"</string> - <string name="call_incoming_important" msgid="4090408168895243702">"አስቸኳይ"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"አስፈላጊ"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-ar/strings.xml b/java/com/android/incallui/answer/impl/res/values-ar/strings.xml index fc29c16fa..e3f84fff5 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"تمرير سريع من الرمز للرفض مع إرسال رسالة"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"الرد وإنهاء مكالمة جارية"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"الفيديو قيد إيقاف التشغيل"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"مرر بأصبعين لأعلى للرد. مرر بأصبعين لأسفل للرفض."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"عاجل"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"مهم"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-az/strings.xml b/java/com/android/incallui/answer/impl/res/values-az/strings.xml index fff561de3..5d113b48d 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Mesaj göndərərək imtina etmək üçün ikonadan sürüşdürün"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Cavab verin və gedən zəngi bitirin"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Videoları deaktivdir"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Cavab vermək üçün iki barmaq ilə yuxarı sürüşdürün. İmtina etmək üçün iki barmaq ilə aşağı sürüşdürün."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Vacib"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Önəmli"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml index 7b29bfa66..3acc576d9 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Prevucite od ikone da biste odbili porukom"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Javite se i završite poziv koji je u toku"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Kamera je isključena"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Prevucite nagore pomoću dva prsta da biste odgovorili. Prevucite nadole pomoću dva prsta da biste odbili."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Hitno"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Važno"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-be/strings.xml b/java/com/android/incallui/answer/impl/res/values-be/strings.xml index 228a80f7f..4f34150e6 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Правядзіце ад значка, каб адхіліць, адправіўшы SMS"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Адказаць і скончыць бягучы выклік"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Відэа адключана"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Правядзіце двума пальцамі ўверх, каб адказаць; двума пальцамі ўніз – каб адхіліць."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Тэрмінова"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Важны"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-bg/strings.xml b/java/com/android/incallui/answer/impl/res/values-bg/strings.xml index 4e9422f00..54a5ab946 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Прекарайте пръст от иконата, за да отхвърлите със съобщение"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Отговор и завършване на текущото обаждане"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Видеото е изключено"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Прекарайте два пръста нагоре за отговаряне, надолу за отхвърляне."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Спешно"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Важно"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-bn/strings.xml b/java/com/android/incallui/answer/impl/res/values-bn/strings.xml index 869f7b9ae..d2aa4c3f3 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"বার্তা সহ প্রত্যাখ্যান করতে আইকন থেকে সোয়াইপ করুন"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"উত্তর দিন এবং চলছে এমন কল কেটে দিন"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ভিডিও বন্ধ আছে"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"উত্তর দিতে উপরের দিকে, প্রত্যাখ্যান করতে নিচের দিকে দুই আঙুল দিয়ে সোয়াইপ করুন৷"</string> - <string name="call_incoming_important" msgid="4090408168895243702">"জরুরি"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"গুরুত্বপূর্ণ"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-bs/strings.xml b/java/com/android/incallui/answer/impl/res/values-bs/strings.xml index b36e178f4..e17588750 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Prevucite preko ikone da odbijete porukom"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Odgovorite na poziv i završite ga"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Kamera je isključena"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Prevucite pomoću dva prsta prema gore da odgovorite. Prevucite pomoću dva prsta prema dolje da odbijete."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Hitno"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Važno"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-ca/strings.xml b/java/com/android/incallui/answer/impl/res/values-ca/strings.xml index 13b3b321a..538e0d3e0 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Llisca des de la icona per rebutjar la trucada amb un missatge"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Respon a la trucada i finalitza l\'actual"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"El vídeo està desactivat"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Llisca amb dos dits cap amunt per respondre a la trucada i cap avall per rebutjar-la."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-cs/strings.xml b/java/com/android/incallui/answer/impl/res/values-cs/strings.xml index 6c6903041..626409ead 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Přejetím prstem od ikony hovor odmítnete a pošlete zprávu"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Přijmout hovor a ukončit probíhající hovor"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video je vypnuté"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Přejetím dvěma prsty nahoru hovor přijmete. Přejetím dvěma prsty dolů jej odmítnete."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Naléhavé"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Důležité"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-da/strings.xml b/java/com/android/incallui/answer/impl/res/values-da/strings.xml index 3a87d44fe..387089116 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Stryg fra ikonet for at afvise med en besked"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Besvar, og afslut det igangværende opkald"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video er deaktiveret"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Stryg op med to fingre for at besvare. Stryg ned med to fingre for at afvise."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Haster"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Vigtigt"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-de/strings.xml b/java/com/android/incallui/answer/impl/res/values-de/strings.xml index f4356d29f..ab3c33cc5 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Zum Ablehnen mit Nachricht vom Symbol wegwischen"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Nimm den Anruf an und beende den aktuellen Anruf"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video deaktiviert"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Zum Annehmen mit zwei Fingern nach oben wischen. Zum Ablehnen mit zwei Fingern nach unten wischen."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Dringend"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Wichtig"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-el/strings.xml b/java/com/android/incallui/answer/impl/res/values-el/strings.xml index 9c9a0f35f..d847aac54 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Σύρετε από το εικονίδιο προς τα έξω για απόρριψη του μηνύματος"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Απάντηση και τερματισμός κλήσης σε εξέλιξη"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Το βίντεο είναι ανενεργό"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Σύρετε με δύο δάχτυλα, προς τα επάνω για απάντηση και προς τα κάτω για απόρριψη."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Επείγον"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Σημαντικό"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml b/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml index fb8d15682..fe6aa4607 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Swipe from icon to decline with a message"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Answer and end ongoing call"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is off"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swipe up with two fingers to answer. Swipe down with two fingers to decline."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml b/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml index fb8d15682..fe6aa4607 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Swipe from icon to decline with a message"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Answer and end ongoing call"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is off"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swipe up with two fingers to answer. Swipe down with two fingers to decline."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml b/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml index fb8d15682..fe6aa4607 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Swipe from icon to decline with a message"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Answer and end ongoing call"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is off"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swipe up with two fingers to answer. Swipe down with two fingers to decline."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml b/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml index 14928eeb6..60fcd014e 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Desliza desde el ícono para rechazar la llamada con un mensaje"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Responder y finalizar la llamada en curso"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"El video está desactivado"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Desliza dos dedos hacia arriba para responder la llamada o hacia abajo para rechazarla."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-es/strings.xml b/java/com/android/incallui/answer/impl/res/values-es/strings.xml index 972bbc503..7b2f19a81 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Desliza desde el icono para rechazar con mensaje"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Responder a una llamada y finalizar otra en curso"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"El vídeo está desconectado"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Desliza dos dedos hacia arriba para responder o hacia abajo para rechazar la llamada."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-et/strings.xml b/java/com/android/incallui/answer/impl/res/values-et/strings.xml index 9e303bb16..b4632d184 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Sõnumiga keeldumiseks pühkige ikoonilt eemale"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Vastake ja lõpetage käimasolev kõne"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video on välja lülitatud"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Vastamiseks pühkige kahe sõrmega üles. Keeldumiseks pühkige kahe sõrmega alla."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Kiireloomuline"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Tähtis"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-eu/strings.xml b/java/com/android/incallui/answer/impl/res/values-eu/strings.xml index a1f6d717d..118a2c74d 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Pasatu hatza ikonotik baztertzeko eta mezu bat bidaltzeko"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Erantzun eta amaitu uneko deia"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Desaktibatuta dago kamera"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Pasatu bi hatz gora erantzuteko; eta behera, baztertzeko."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Premiazkoa"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Garrantzitsua"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-fa/strings.xml b/java/com/android/incallui/answer/impl/res/values-fa/strings.xml index 28cf82619..971b172ef 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"برای رد کردن با ارسال پیام، انگشتتان را تند از روی نماد بکشید"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"پاسخ دادن به تماس درحال انجام و پایان دادن به آن"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ویدیو خاموش است"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"برای پاسخگویی، دو انگشتتان را تند به بالا بکشید و برای رد کردن به پایین بکشید."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"فوری"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"مهم"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-fi/strings.xml b/java/com/android/incallui/answer/impl/res/values-fi/strings.xml index 8b8eac942..7ae9a1f87 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Hylkää ja kirjoita viesti pyyhkäisemällä kuvaketta."</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Vastaa puheluun ja lopeta nykyinen puhelu"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Videokuva ei ole käytössä."</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Vastaa pyyhkäisemällä ylös kahdella sormella. Hylkää pyyhkäisemällä alas kahdella sormella."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Kiireellinen"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Tärkeä"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml b/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml index 9ea27b89c..ce454b5ce 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Balayez à partir de l\'icône pour refuser avec un message"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Répondre et mettre fin à l\'appel en cours"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"La vidéo est désactivée"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Balayez vers le haut avec deux doigts pour répondre. Balayez vers le bas avec deux doigts pour refuser."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-fr/strings.xml b/java/com/android/incallui/answer/impl/res/values-fr/strings.xml index 3aa3c12c9..7f77ed0c8 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Appuyer sur l\'icône, puis balayer l\'écran pour refuser l\'appel en envoyant un message"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Répondre ou mettre fin à l\'appel en cours"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"La vidéo est désactivée."</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Balayez l\'écran avec deux doigts vers le haut pour répondre, ou vers le bas pour refuser l\'appel."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Importants"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-gl/strings.xml b/java/com/android/incallui/answer/impl/res/values-gl/strings.xml index 16c0f6969..07e0c516d 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Pasar o dedo desde a icona para rexeitar cunha mensaxe"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Responde á chamada entrante e finaliza a chamada en curso"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"O vídeo está desactivado"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Pasa dous dedos cara arriba para responder a chamada ou cara abaixo para rexeitala."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Urxente"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-gu/strings.xml b/java/com/android/incallui/answer/impl/res/values-gu/strings.xml index 3f99c7108..845e9def8 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"સંદેશ સાથે નકારવા માટે આઇકનથી સ્વાઇપ કરો"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"જવાબ આપો અને ચાલુ કૉલ સમાપ્ત કરો"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"વિડિઓ બંધ છે"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"જવાબ આપવા માટે બે આંગળી ઉપર સ્વાઇપ કરો. નકારવા માટે બે આંગળી નીચે સ્વાઇપ કરો."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"તાત્કાલિક"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"મહત્વપૂર્ણ"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-hi/strings.xml b/java/com/android/incallui/answer/impl/res/values-hi/strings.xml index f28505f7c..e8e3c75c4 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"संदेश के साथ अस्वीकार करने के लिए आइकन से स्वाइप करें"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"कॉल का जवाब दें और जारी कॉल समाप्त करें"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"वीडियो बंद है"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"जवाब देने के लिए दो अंगुलियों से ऊपर स्वाइप करें. अस्वीकार करने के लिए दो अंगुलियों से नीचे स्वाइप करें."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"बहुत ज़रूरी"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"महत्वपूर्ण"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-hr/strings.xml b/java/com/android/incallui/answer/impl/res/values-hr/strings.xml index 280743976..ffd0c9b8c 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Prijeđite prstom od ikone da biste odbili poruku"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Odgovorite na poziv i prekinite poziv u tijeku"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Videokamera je isključena"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Prijeđite dvama prstima prema gore za odgovor, a dvama prstima prema dolje za odbijanje."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Hitno"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Važno"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-hu/strings.xml b/java/com/android/incallui/answer/impl/res/values-hu/strings.xml index d7dacbfe0..13ec7da17 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Csúsztassa el az ujját az ikonról az üzenettel való elutasításhoz"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Hívásfogadás és a folyamatban lévő hívás befejezése"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"A videokép ki van kapcsolva"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Csúsztassa felfelé két ujját a hívás fogadásához. Csúsztassa lefelé két ujját a hívás elutasításához."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Sürgős"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Fontos"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-hy/strings.xml b/java/com/android/incallui/answer/impl/res/values-hy/strings.xml index 4492833d9..7fb7ef45f 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Զանգը մերժելու և հաղորդագրություն ուղարկելու համար պատկերակից մատով մի կողմ սահեցրեք"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Պատասխանել և ավարտել ընթացիկ զանգը"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Տեսախցիկն անջատած է"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Պատասխանելու համար երկու մատով սահեցրեք վերև, մերժելու համար՝ ներքև:"</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Շտապ"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Կարևոր"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-in/strings.xml b/java/com/android/incallui/answer/impl/res/values-in/strings.xml index a1fd19f6e..48d71af9a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Gesek dari ikon untuk menolak dengan pesan"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Menjawab dan mengakhiri panggilan yang sedang berlangsung"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video nonaktif"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Geser ke atas dengan dua jari untuk menjawab. Geser ke bawah dengan dua jari untuk menolak."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Penting"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Penting"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-is/strings.xml b/java/com/android/incallui/answer/impl/res/values-is/strings.xml index c4f9eb40c..a92a411ee 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Strjúktu frá tákninu til að hafna með skilaboðum"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Svara og ljúka yfirstandandi símtali"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Slökkt á myndavél"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Strjúktu upp með tveimur fingrum til að svara. Strjúktu niður með tveimur fingrum til að hafna."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Áríðandi"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Mikilvægt"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-it/strings.xml b/java/com/android/incallui/answer/impl/res/values-it/strings.xml index 70e972212..b29bca7c8 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Fai scorrere dall\'icona per rifiutare e inviare un messaggio"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Rispondi e termina la chiamata in corso"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Il video è disattivato"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Fai scorrere con due dita verso l\'alto per rispondere e verso il basso per rifiutare."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-iw/strings.xml b/java/com/android/incallui/answer/impl/res/values-iw/strings.xml index 08c02e389..6544e8f3c 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"החלק מהסמל כדי לדחות עם הודעה"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"מענה וסיום שיחה"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"הווידאו מושבת"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"החלק עם שתי אצבעות למעלה כדי לענות או למטה כדי לדחות."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"דחופה"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"חשוב"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-ja/strings.xml b/java/com/android/incallui/answer/impl/res/values-ja/strings.xml index b7bd65bc4..83f8f094a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"アイコンをスワイプして着信を拒否し、メッセージを送信"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"通話に応答し、進行中の通話を終了"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ビデオ: OFF"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"応答するには 2 本の指で上にスワイプ、拒否するには 2 本の指で下にスワイプします。"</string> - <string name="call_incoming_important" msgid="4090408168895243702">"緊急"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"重要"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-ka/strings.xml b/java/com/android/incallui/answer/impl/res/values-ka/strings.xml index 681306776..4a1120c69 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"გადაუსვით ხატულადან შეტყობინებით უარყოფისთვის"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"პასუხი და მიმდინარე ზარის დასრულება"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ვიდეო გამორთულია"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"საპასუხოდ გადაფურცლეთ ზემოთ ორი თითით. უარყოფისთვის გადაფურცლეთ ქვემოთ ორი თითით."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"სასწრაფო"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"მნიშვნელოვანი"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-kk/strings.xml b/java/com/android/incallui/answer/impl/res/values-kk/strings.xml index 3d1863323..69cf9497d 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Қабылдамай, жай хабар жіберу үшін, белгішеден әрі қарай сырғытыңыз"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Қоңырауға жауап беру және ағымдағы қоңырауды аяқтау"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Бейне өшірулі"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Жауап беру үшін екі саусақпен жоғары сырғытылады. Қабылдамау үшін екі саусақпен төмен сырғытылады."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Шұғыл"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Маңызды"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-km/strings.xml b/java/com/android/incallui/answer/impl/res/values-km/strings.xml index 89f9031e9..db65a97f5 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"អូសចេញពីរូបតំណាងដើម្បីបដិសេធដោយមានសារ"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ឆ្លើយ និងបញ្ចប់ការហៅទូរសព្ទដែលកំពុងដំណើរការ"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"វីដេអូត្រូវបានបិទ"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"អូសម្រាមដៃពីរឡើងលើ ដើម្បីឆ្លើយ។ អូសម្រាមដៃពីរចុះក្រោម ដើម្បីបដិសេធ។"</string> - <string name="call_incoming_important" msgid="4090408168895243702">"បន្ទាន់"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"សំខាន់"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-kn/strings.xml b/java/com/android/incallui/answer/impl/res/values-kn/strings.xml index f02a6b8a3..8426aef46 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"ಸಂದೇಶದ ಜೊತೆಗೆ ನಿರಾಕರಿಸಲು ಐಕಾನ್ನಿಂದ ಸ್ವೈಪ್ ಮಾಡಿ"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ಚಾಲ್ತಿಯಲ್ಲಿರುವ ಕರೆಗೆ ಉತ್ತರಿಸಿ ಮತ್ತು ಅಂತ್ಯಗೊಳಿಸಿ"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ವೀಡಿಯೊ ಆಫ್ ಆಗಿದೆ"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ಉತ್ತರಿಸಲು ಎರಡು ಬೆರಳಿನಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ. ನಿರಾಕರಿಸಲು ಎರಡು ಬೆರಳಿನಿಂದ ಕೆಳಗೆ ಸ್ವೈಪ್ ಮಾಡಿ."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"ತುರ್ತು"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"ಪ್ರಮುಖ"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-ko/strings.xml b/java/com/android/incallui/answer/impl/res/values-ko/strings.xml index 850b44007..6b6beff85 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"메시지를 거부하려면 아이콘에서 스와이프하세요."</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"현재 통화를 종료하고 전화 받기"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"동영상이 꺼져 있습니다."</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"받으려면 두 손가락을 위로 스와이프하고 거부하려면 두 손가락을 아래로 스와이프하세요."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"긴급"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"중요"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-ky/strings.xml b/java/com/android/incallui/answer/impl/res/values-ky/strings.xml index dc08e8449..6dd5a2dd7 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Чалууну билдирүү менен четке кагуу үчүн сүрөтчөнү сүрүңүз"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Чалууга жооп бериңиз же учурдагы чалууну аяктаңыз"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Видео өчүк"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Жооп берүү үчүн экранды өйдө сүрүп, четке кагуу үчүн ылдый сүрүп коюңуз."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Шашылыш"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Маанилүү"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-lo/strings.xml b/java/com/android/incallui/answer/impl/res/values-lo/strings.xml index 06ad00c88..776c027b5 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"ປັດຈາກໄອຄອນເພື່ອປະຕິເສດຂໍ້ຄວາມ"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ຮັບສາຍ ແລະ ວາງສາຍທີ່ກຳລັງໂທອອກ"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ວິດີໂອປິດຢູ່"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ປັດສອງນິ້ວຂຶ້ນເພື່ອຮັບສາຍ. ປັດສອງນິ້ວລົງເພື່ອປະຕິເສດ."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"ດ່ວນ"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"ສຳຄັນ"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-lt/strings.xml b/java/com/android/incallui/answer/impl/res/values-lt/strings.xml index 3366e337b..2ef70eaff 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Perbraukite iš piktogramos, kad atmestumėte išsiųsdami pranešimą"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atsakykite ir užbaikite vykstantį skambutį"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Vaizdas išjungtas"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Perbraukite dviem pirštais aukštyn, kad atsakytumėte. Perbraukite dviem pirštais žemyn, kad atmestumėte."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Skubus"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Svarbu"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-lv/strings.xml b/java/com/android/incallui/answer/impl/res/values-lv/strings.xml index 49d1dc9f4..3fc754db4 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Lai noraidītu, izmantojot ziņojumu, velciet no ikonas"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atbildiet un beidziet notiekošo zvanu"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video ir izslēgts"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Ar diviem pirkstiem velciet augšup, lai atbildētu. Ar diviem pirkstiem velciet lejup, lai noraidītu."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Steidzams"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Svarīgs"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-mk/strings.xml b/java/com/android/incallui/answer/impl/res/values-mk/strings.xml index c068f665b..deeba45e6 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Повлечете од иконата за да одбиете со порака"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Одговорете и завршете го тековниот повик"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Видеото е исклучено"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Повлечете нагоре со два прста за да одговорите. Повлечете надолу со два прста за да одбиете."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Итно"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Важно"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-ml/strings.xml b/java/com/android/incallui/answer/impl/res/values-ml/strings.xml index 8e1d492e7..d8ce90dab 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"സന്ദേശമയച്ചുകൊണ്ട് നിരസിക്കാൻ ഐക്കണിൽ നിന്ന് സ്വൈപ്പുചെയ്യുക"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"മറുപടി നൽകുകയും നിലവിലുള്ള കോൾ അവസാനിപ്പിക്കുകയും ചെയ്യൂ"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"വീഡിയോ ഓഫാണ്"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"മറുപടി നൽകാൻ രണ്ടുവിരലുകൾ ഉപയോഗിച്ച് മുകളിലേക്ക് സ്വൈപ്പുചെയ്യുക. നിരസിക്കാൻ രണ്ടുവിരലുകൾ ഉപയോഗിച്ച് താഴേക്ക് സ്വൈപ്പുചെയ്യുക."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"അടിയന്തിര പ്രാധാന്യം"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"പ്രധാനപ്പെട്ടവ"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-mn/strings.xml b/java/com/android/incallui/answer/impl/res/values-mn/strings.xml index 4bdd912ad..aaa16213a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Зурвас явуулангаа татгалзах бол дүрснээс шударна уу"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Ирсэн дуудлагыг авч, одоогийн дуудлагыг таслах"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Видео идэвхгүй байна"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Хариулах бол хоёр хуруугаар дээш шударна уу. Таслах бол хоёр хуруугаар доош шударна уу."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Яаралтай"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Чухал"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-mr/strings.xml b/java/com/android/incallui/answer/impl/res/values-mr/strings.xml index 11c826896..eea662fa1 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"संदेशासह नाकारण्यासाठी आयकॉनपासून स्वाइप करा"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"उत्तर द्या आणि सुरु असलेला कॉल बंद करा"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"व्हिडिओ बंद आहे"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"उत्तर देण्यासाठी दोन बोटांनी वर स्वाइप करा. नकार देण्यासाठी दोन बोटांनी खाली स्वाइप करा."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"त्वरित"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"महत्त्वाचे"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-ms/strings.xml b/java/com/android/incallui/answer/impl/res/values-ms/strings.xml index 36ede7568..04b054e4e 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Leret dari ikon untuk menolak dengan mesej"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Jawab dan tamatkan panggilan yang sedang berlangsung"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video dimatikan"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Leret dua jari ke atas untuk menjawab. Leret dua jari ke bawah untuk menolak."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Segera"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Penting"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-my/strings.xml b/java/com/android/incallui/answer/impl/res/values-my/strings.xml index 5ad7a8284..f3d6a2e38 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"မက်ဆေ့ဂျ်ဖြင့်ငြင်းပယ်ရန် သင်္ကေတမှ ပွတ်ဆွဲပါ"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ဖြေကြားပြီး လက်ရှိခေါ်ဆိုမှုကို အပြီးသတ်ပါ"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ဗီဒီယို ပိတ်ထားပါသည်"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ဖြေကြားရန် လက်နှစ်ချောင်းဖြင့် အပေါ်သို့ ပွတ်ဆွဲပါ။ ငြင်းပယ်ရန် လက်နှစ်ချောင်းဖြင့် အောက်သို့ ပွတ်ဆွဲပါ။"</string> - <string name="call_incoming_important" msgid="4090408168895243702">"အရေးတကြီး"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"အရေးကြီး"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-nb/strings.xml b/java/com/android/incallui/answer/impl/res/values-nb/strings.xml index b1c32bea4..42ff3d0af 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Sveip fra ikonet for å avslå med en melding"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Svar, og avslutt samtalen som er i gang"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video er av"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Sveip oppover med to fingre for å svare. Sveip nedover med to fingre for å avvise."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Haster"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Viktig"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-ne/strings.xml b/java/com/android/incallui/answer/impl/res/values-ne/strings.xml index 40ef7b6e3..f0b8641af 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"सन्देश सहित अस्वीकार गर्न आइकनबाट स्वाइप गर्नुहोस्"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"जवाफ फर्काउनुहोस् र जारी कललाई अन्त्य गर्नुहोस्"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"भिडियो निष्क्रिय छ"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"जवाफ दिन दुई औंलाले माथितिर स्वाइप गर्नुहोस्। अस्वीकार गर्न दुई औंलाले तलतिर स्वाइप गर्नुहोस्।"</string> - <string name="call_incoming_important" msgid="4090408168895243702">"जरुरी"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"महत्त्वपूर्ण"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-nl/strings.xml b/java/com/android/incallui/answer/impl/res/values-nl/strings.xml index b2f619fa3..89c956a9f 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Veeg vanaf pictogram om te weigeren met bericht"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Opnemen en actieve oproep beëindigen"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is uit"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Veeg met twee vingers omhoog om te beantwoorden. Veeg met twee vingers omlaag om te weigeren."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Belangrijk"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-no/strings.xml b/java/com/android/incallui/answer/impl/res/values-no/strings.xml index b1c32bea4..42ff3d0af 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Sveip fra ikonet for å avslå med en melding"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Svar, og avslutt samtalen som er i gang"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video er av"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Sveip oppover med to fingre for å svare. Sveip nedover med to fingre for å avvise."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Haster"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Viktig"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-pa/strings.xml b/java/com/android/incallui/answer/impl/res/values-pa/strings.xml index d2b14523c..3772f291f 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"ਸੁਨੇਹੇ ਦੇ ਨਾਲ ਅਸਵੀਕਾਰ ਕਰਨ ਲਈ ਚਿੰਨ੍ਹ ਤੋਂ ਸਵਾਈਪ ਕਰੋ"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ਜਵਾਬ ਦਿਓ ਅਤੇ ਜਾਰੀ ਕਾਲ ਨੂੰ ਸਮਾਪਤ ਕਰੋ"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ਵੀਡੀਓ ਬੰਦ ਹੈ"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ਜਵਾਬ ਦੇਣ ਲਈ ਦੋ ਉਂਗਲਾਂ ਨਾਲ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ। ਅਸਵੀਕਾਰ ਕਰਨ ਲਈ ਦੋ ਉਂਗਲਾਂ ਨਾਲ ਹੇਠਾਂ ਵੱਲ ਸਵਾਈਪ ਕਰੋ।"</string> - <string name="call_incoming_important" msgid="4090408168895243702">"ਜ਼ਰੂਰੀ"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"ਮਹੱਤਵਪੂਰਨ"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-pl/strings.xml b/java/com/android/incallui/answer/impl/res/values-pl/strings.xml index b0c44e72a..f6e1f1ba4 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Przesuń palcem od ikony, aby odrzucić połączenie i wysłać wiadomość"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Odbierz połączenie i zakończ trwającą rozmowę"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Wideo jest wyłączone"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Przesuń dwoma palcami w górę, aby odebrać. Przesuń dwoma palcami w dół, aby odrzucić."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Pilne"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Ważne"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml b/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml index fe1c89de4..1ed245140 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Deslize a partir do ícone para recusar com uma mensagem"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atender e encerrar a chamada em andamento"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"O vídeo está desativado"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Deslize com dois dedos para cima para atender. Deslize com dois dedos para baixo para recusar."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml b/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml index 1a23a4a9d..f1e17a1d9 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Deslize rapidamente a partir do ícone para recusar com uma mensagem"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atender e terminar uma chamada em curso"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"O vídeo está desativado"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Deslize rapidamente com dois dedos para cima para responder. Deslize rapidamente com dois dedos para baixo para recusar."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-pt/strings.xml b/java/com/android/incallui/answer/impl/res/values-pt/strings.xml index fe1c89de4..1ed245140 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Deslize a partir do ícone para recusar com uma mensagem"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atender e encerrar a chamada em andamento"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"O vídeo está desativado"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Deslize com dois dedos para cima para atender. Deslize com dois dedos para baixo para recusar."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-ro/strings.xml b/java/com/android/incallui/answer/impl/res/values-ro/strings.xml index 6c8bafa28..0b1f4f481 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Glisați de pe pictogramă pentru a respinge cu un mesaj"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Răspundeți și încheiați apelul în curs"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Camera video este dezactivată."</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Glisați cu două degete în sus pentru a răspunde și în jos pentru a respinge."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-ru/strings.xml b/java/com/android/incallui/answer/impl/res/values-ru/strings.xml index 67ff06a34..d1fdcf73e 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Чтобы отклонить вызов и отправить SMS, проведите пальцем от значка"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Ответить и завершить текущий вызов"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Камера выключена"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Проведите двумя пальцами по экрану вверх, чтобы ответить, или вниз, чтобы отклонить вызов."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Срочно"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Важный звонок"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-si/strings.xml b/java/com/android/incallui/answer/impl/res/values-si/strings.xml index ae3c08008..99f4989aa 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"පණිවිඩය සහිතව ප්රතික්ෂේප කිරීමට නිරූපකයේ සිට ස්වයිප් කරන්න"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"යන අැමතුමට පිළිතරු දී අවසන් කරන්න"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"වීඩියෝව ක්රියාවිරහිතයි"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"පිළිතුරු දීමට ඇඟිලි දෙකකින් ඉහළට ස්වයිප් කරන්න, ප්රතික්ෂේප කිරීමට ඇඟිලි දෙකකින් පහළට ස්වයිප් කරන්න."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"හදිසි"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"වැදගත්"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-sk/strings.xml b/java/com/android/incallui/answer/impl/res/values-sk/strings.xml index 179be7b08..fa00ac4c6 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Prejdením prstom od ikony odmietnuť so správou"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Prijať hovor a ukončiť prebiehajúci hovor"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video je vypnuté"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Ak chcete hovor prijať, prejdite dvomi prstami nahor. Ak ho chcete odmietnuť, prejdite dvomi prstami nadol."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Naliehavé"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Dôležité"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-sl/strings.xml b/java/com/android/incallui/answer/impl/res/values-sl/strings.xml index 5f658be9d..147a09835 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Povlecite z ikone, da klic zavrnete s sporočilom"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Sprejmi klic in končaj aktivni klic"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video je izklopljen"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Z dvema prstoma povlecite navzgor, da sprejmete klic. Z dvema prstoma povlecite navzdol, da zavrnete klic."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Nujno"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Pomembno"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-sq/strings.xml b/java/com/android/incallui/answer/impl/res/values-sq/strings.xml index 1de60c9c9..e71691af8 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Rrëshqit nga ikona për të refuzuar me mesazh"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Përgjigju dhe mbyll telefonatën në vazhdim"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Videoja është joaktive"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Rrëshqit dy gishta lart për t\'u përgjigjur. Rrëshqit dy gishta poshtë për të refuzuar."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Urgjente"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"E rëndësishme"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-sr/strings.xml b/java/com/android/incallui/answer/impl/res/values-sr/strings.xml index 4d6ef5636..c802b0e97 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Превуците од иконе да бисте одбили поруком"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Јавите се и завршите позив који је у току"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Камера је искључена"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Превуците нагоре помоћу два прста да бисте одговорили. Превуците надоле помоћу два прста да бисте одбили."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Хитно"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Важно"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-sv/strings.xml b/java/com/android/incallui/answer/impl/res/values-sv/strings.xml index e47b4e0a3..2265dc4c2 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Svep från ikonen för att avvisa med meddelande"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Svara och avsluta pågående samtal"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video avstängd"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Dra två fingrar uppåt för att svara och två nedåt för att avvisa."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Brådskande"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Viktigt"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-sw/strings.xml b/java/com/android/incallui/answer/impl/res/values-sw/strings.xml index 1e5896662..26e1b7ab5 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Telezesha kidole ukianzia kwenye aikoni ili utume ujumbe wa kukataa"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Jibu na ukate simu inayoendelea"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video imezimwa"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Telezesha juu kwa vidole viwili ili uijibu. Telezesha chini kwa vidole viwili ili uikate."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Dharura"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Muhimu"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-ta/strings.xml b/java/com/android/incallui/answer/impl/res/values-ta/strings.xml index 847936f5b..453781dae 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"செய்தியுடன் நிராகரிக்க, ஐகானிலிருந்து ஸ்வைப் செய்யவும்"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"உள்வரும் அழைப்பிற்குப் பதிலளித்து, செயலில் உள்ள அழைப்பை முடிக்கும்"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"வீடியோ முடக்கப்பட்டுள்ளது"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"பதிலளிக்க, இரு விரல்களால் மேலே ஸ்வைப் செய்யவும். நிராகரிக்க, இரு விரல்களால் கீழே ஸ்வைப் செய்யவும்."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"அவசரம்"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"முக்கிய அழைப்பு"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-te/strings.xml b/java/com/android/incallui/answer/impl/res/values-te/strings.xml index abc390294..e0e508768 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"సందేశంతో తిరస్కరించడానికి చిహ్నం నుండి స్వైప్ చేయండి"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"సమాధానం ఇస్తుంది మరియు కొనసాగుతున్న కాల్ను ముగిస్తుంది"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"వీడియో ఆఫ్లో ఉంది"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"సమాధానం ఇవ్వడానికి రెండు వేళ్లతో పైకి స్వైప్ చేయండి. తిరస్కరించడానికి రెండు వేళ్లతో క్రిందికి స్వైప్ చేయండి."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"అత్యవసరం"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"ముఖ్యమైనది"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-th/strings.xml b/java/com/android/incallui/answer/impl/res/values-th/strings.xml index 54069b3d8..695da74f7 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"เลื่อนไอคอนเพื่อปฏิเสธสายด้วยข้อความ"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"รับและวางสาย"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"วิดีโอปิดอยู่"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ใช้สองนิ้วเลื่อนขึ้นเพื่อรับสายและเลื่อนลงเพื่อตัดสาย"</string> - <string name="call_incoming_important" msgid="4090408168895243702">"ด่วน"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"สำคัญ"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-tl/strings.xml b/java/com/android/incallui/answer/impl/res/values-tl/strings.xml index 8f87b5605..6128d6fad 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"I-swipe mula sa icon upang tanggihan gamit ang mensahe"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Sagutin at tapusin ang kasalukuyang tawag"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Naka-off ang video"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"I-swipe nang pataas gamit ang dalawang daliri upang sagutin. I-swipe nang pababa gamit ang dalawang daliri upang tanggihan."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Apurahan"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Mahalaga"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-tr/strings.xml b/java/com/android/incallui/answer/impl/res/values-tr/strings.xml index 53f5eb9a9..87583c03d 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Mesajla reddetmek için, simgeden hızlıca kaydırın"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Bir çağrı cevaplanır ve devam eden çağrı sona erdirilir"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video kapalı"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Cevaplamak için iki parmağınızla hızlıca yukarı kaydırın. Reddetmek içinse iki parmağınızla hızlıca aşağı kaydırın."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Acil"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Önemli"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-uk/strings.xml b/java/com/android/incallui/answer/impl/res/values-uk/strings.xml index a0332d377..76eb2b0a2 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Проведіть пальцем убік від значка, щоб відхилити з повідомленням"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Відповісти на виклик, завершивши поточний"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Відео вимкнено"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Проведіть двома пальцями вгору, щоб відповісти, або вниз, щоб відхилити дзвінок."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Терміново"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Важливо"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-ur/strings.xml b/java/com/android/incallui/answer/impl/res/values-ur/strings.xml index e1813cbf7..2a44e9083 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"پیغام کے ساتھ رد کرنے کیلئے آئیکن سے سوائپ کریں"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"جواب دیں اور جاری کال ختم کریں"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ویڈیو آف ہے"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"جواب دینے کیلئے دوانگلیوں کے ساتھ اوپر سوائپ کریں۔ مسترد کرنے کیلئے دو انگلیوں کے ساتھ نیچے سوائپ کریں۔"</string> - <string name="call_incoming_important" msgid="4090408168895243702">"ارجنٹ"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"اہم"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-uz/strings.xml b/java/com/android/incallui/answer/impl/res/values-uz/strings.xml index b83abcce0..f348a499d 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Qo‘ng‘iroqni SMS bilan rad etish uchun nishonchadan suring."</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Kiruvchi chaqiruvga javob berish va joriy qo‘ng‘iroqni tugatish"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Kamera o‘chiq"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Chaqiruvga javob berish uchun ikki barmoq bilan tepaga, rad etish uchun ikki barmoq bilan pastga suring."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Juda muhim"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Muhim qo‘ng‘iroq"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-vi/strings.xml b/java/com/android/incallui/answer/impl/res/values-vi/strings.xml index 94dd1c386..f4dfa5b1d 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Vuốt từ biểu tượng để từ chối kèm thông báo"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Trả lời và kết thúc cuộc gọi đang diễn ra"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video đã tắt"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Vuốt hai ngón tay lên để trả lời. Vuốt hai ngón tay xuống để từ chối."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Khẩn cấp"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Quan trọng"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml b/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml index fc7ce6409..9698aa06d 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"滑动图标即可拒接来电并发送信息"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"接听并结束当前通话"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"摄像头处于关闭状态"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"双指向上滑动即可接听,向下滑动则可拒接。"</string> - <string name="call_incoming_important" msgid="4090408168895243702">"紧急"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"重要"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml b/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml index 97955396f..81a88151b 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"從圖示快速滑動即可透過訊息拒絕"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"接聽及結束進行中的通話"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"視像已關閉"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"兩指向上滑動可接聽,向下滑動則可拒接。"</string> - <string name="call_incoming_important" msgid="4090408168895243702">"緊急"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"重要事項"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml b/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml index f27e5ae5b..8f04992d1 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"滑動圖示即可拒接來電並傳送簡訊"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"接聽來電及結束進行中的通話"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"已關閉攝影機"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"用雙指向上滑動可接聽,向下滑動可拒接。"</string> - <string name="call_incoming_important" msgid="4090408168895243702">"緊急"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"重要"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values-zu/strings.xml b/java/com/android/incallui/answer/impl/res/values-zu/strings.xml index 52f2400eb..23c988eaa 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Swayipha isithonjana ukuze wenqabe ngomlayezo"</string> @@ -20,5 +36,5 @@ <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Phendula uphinde uqede ikholi eqhubekayo"</string> <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Ividiyo ivaliwe"</string> <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swayiphela iminwe emibili phezulu ukuze uphendule. Swayiphela iminwe emibili phansi ukuze wenqabe."</string> - <string name="call_incoming_important" msgid="4090408168895243702">"Okuphuthumayo"</string> + <string name="call_incoming_important" msgid="3762352743365137090">"Kubalulekile"</string> </resources> diff --git a/java/com/android/incallui/answer/impl/res/values/strings.xml b/java/com/android/incallui/answer/impl/res/values/strings.xml index 235922047..de5ee6e69 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 @@ <?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> <resources> <string name="call_incoming_swipe_to_decline_with_message">Swipe from icon to decline with message</string> <string name="call_incoming_swipe_to_answer_video_as_audio">Swipe from icon to answer as an audio call</string> @@ -26,5 +41,5 @@ <!-- Voice prompt of swipe gesture when accessibility is turned on. --> <string description="The message announced to accessibility assistance on incoming call." name="a11y_incoming_call_swipe_gesture_prompt">Two finger swipe up to answer. Two finger swipe down to decline.</string> - <string name="call_incoming_important">Urgent</string> + <string name="call_incoming_important">Important</string> </resources> diff --git a/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java b/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java index 9815981ca..10a3413af 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 24fbfc428..fe4ae9f96 100644 --- a/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java +++ b/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java @@ -143,6 +143,9 @@ public class AnswerProximitySensor public void onInternationalCallOnWifi() {} @Override + public void onEnrichedCallSessionUpdate() {} + + @Override public void onDialerCallSessionModificationStateChange() {} @Override diff --git a/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java b/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java index c757477f1..c7a9d6332 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 d3d3a8b37..5c6aef4be 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 7b42fb375..3a005b0fb 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 34f0cc0d7..3876ca64d 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) { @@ -793,6 +803,9 @@ public class CallList implements DialerCallDelegate { } @Override + public void onEnrichedCallSessionUpdate() {} + + @Override public void onDialerCallSessionModificationStateChange() { for (Listener listener : mListeners) { listener.onSessionModificationStateChange(mCall); diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java index acedf41f1..12edb07e6 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 ed321be05..5d24a4d4b 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 ebf4ecf4f..4fc9f81eb 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 801b0d35c..b093a1b15 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 3a1478945..99a759bbb 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 eb5957b05..060ec0b4f 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 4b921c611..000000000 --- a/java/com/android/incallui/commontheme/res/anim/blinking.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<set xmlns:android="http://schemas.android.com/apk/res/android"> - <alpha - android:duration="800" - android:fromAlpha="0.26" - android:interpolator="@android:anim/linear_interpolator" - android:repeatCount="infinite" - android:repeatMode="reverse" - android:toAlpha="0.6"/> -</set>
\ No newline at end of file diff --git a/java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.png Binary files differdeleted file mode 100644 index 26f3fe001..000000000 --- a/java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 5b0a9d663..000000000 --- a/java/com/android/incallui/commontheme/res/drawable-mdpi/ic_phone_audio_white_36dp.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index d595b190d..000000000 --- a/java/com/android/incallui/commontheme/res/drawable-xhdpi/ic_phone_audio_white_36dp.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index fb7cf161b..000000000 --- a/java/com/android/incallui/commontheme/res/drawable-xxhdpi/ic_phone_audio_white_36dp.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 4bb58d9f5..000000000 --- a/java/com/android/incallui/commontheme/res/drawable-xxxhdpi/ic_phone_audio_white_36dp.png +++ /dev/null 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 0dfdbc7d5..0721869bb 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Beëindig oproep"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Video aan"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Video af"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Verwissel video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Luidspreker"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Klank"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-am/strings.xml b/java/com/android/incallui/commontheme/res/values-am/strings.xml index 3155c39be..9d748e380 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"ጥሪ ጨርስ"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"ቪዲዮ በርቷል"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"ቪዲዮ ጠፍቷል"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"ቪዲዮ አገላብጥ"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"የድምጽ ማጉያ"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"ድምፅ"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-ar/strings.xml b/java/com/android/incallui/commontheme/res/values-ar/strings.xml index ecb3608bd..693bfc57a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"إنهاء المكالمة"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"الفيديو قيد التشغيل"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"الفيديو ليس قيد التشغيل"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"تبديل الفيديو"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"مكبر الصوت"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"صوت"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-az/strings.xml b/java/com/android/incallui/commontheme/res/values-az/strings.xml index d935a6c93..a1d88ceef 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Zəngi sonlandırın"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Video aktivdir"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Video deaktivdir"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Videonu dəyişdirin"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Dinamik"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Səs"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml index 36430c42b..05ae59cdd 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Završi poziv"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Uključi video"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Isključi video"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Zameni video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Zvučnik"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Zvuk"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-be/strings.xml b/java/com/android/incallui/commontheme/res/values-be/strings.xml index 9609a6346..e772e2795 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Завяршыць выклік"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Відэа ўкл."</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Відэа выкл."</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Пераключыць відэа"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Вонк.дынамік"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Гук"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-bg/strings.xml b/java/com/android/incallui/commontheme/res/values-bg/strings.xml index 1a0f3e312..63364f8e6 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Край на обаждането"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Видеото е включено"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Видеото е изключено"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Размяна на видеото"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Високогов."</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Звук"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-bn/strings.xml b/java/com/android/incallui/commontheme/res/values-bn/strings.xml index ef2408f64..9871ea447 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"কল কেটে দিন"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"ভিডিও চালু আছে"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"ভিডিও বন্ধ আছে"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"ভিডিও অদল বদল করুন"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"স্পিকার"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"শব্দ"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-bs/strings.xml b/java/com/android/incallui/commontheme/res/values-bs/strings.xml index bfaff983f..76f991d64 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Prekini poziv"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Kamera je uključena"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Kamera je isključena"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Zamijeni kameru"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Zvučnik"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Zvuk"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-ca/strings.xml b/java/com/android/incallui/commontheme/res/values-ca/strings.xml index 1b6ed4492..832027d39 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Finalitza la trucada"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo activat"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desactivat"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Canvia de vídeo"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Altaveu"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"So"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-cs/strings.xml b/java/com/android/incallui/commontheme/res/values-cs/strings.xml index 1f10d85fe..7afdcba0b 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Ukončit hovor"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Zapnuté video"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Vypnuté video"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Přepnout video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Reproduktor"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Zvuk"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-da/strings.xml b/java/com/android/incallui/commontheme/res/values-da/strings.xml index 35d01e317..bd26e90e5 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Afslut opkald"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Video til"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Video fra"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Byt video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Højttaler"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Lyd"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-de/strings.xml b/java/com/android/incallui/commontheme/res/values-de/strings.xml index 57a95b7f3..3fd10f0e6 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Anruf beenden"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Video an"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Video aus"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Video wechseln"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Lautsprecher"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Tonausgabe"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-el/strings.xml b/java/com/android/incallui/commontheme/res/values-el/strings.xml index 6bb9edcd1..71c0be9a7 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Τερματισμός"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Εικόνα βίντεο ενεργοποιημένη"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Εικόνα βίντεο απενεργοποιημένη"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Εναλλαγή βίντεο"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Ηχείο"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Ήχος"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml b/java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml index 8133185b5..4869c3fa3 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"End call"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Video on"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Video off"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Swap video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Speaker"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Sound"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml b/java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml index 8133185b5..4869c3fa3 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"End call"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Video on"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Video off"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Swap video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Speaker"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Sound"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml b/java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml index 8133185b5..4869c3fa3 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"End call"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Video on"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Video off"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Swap video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Speaker"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Sound"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml b/java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml index 45f2e2f42..a9596d9e6 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Finalizar llamada"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Video activado"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Video desactivado"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Intercambiar video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Altavoz"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Sonido"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-es/strings.xml b/java/com/android/incallui/commontheme/res/values-es/strings.xml index 56c8b2852..aa84c625b 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Finalizar llamada"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo activado"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desactivado"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Cambiar de vídeo"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Altavoz"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Sonido"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-et/strings.xml b/java/com/android/incallui/commontheme/res/values-et/strings.xml index 069f3b5fd..ae2e1ba53 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Kõne lõpetamine"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Video on sees"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Video on väljas"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Video vahetamine"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Kõlar"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Heli"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-eu/strings.xml b/java/com/android/incallui/commontheme/res/values-eu/strings.xml index bbcf5dc6e..0dd126c5a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Amaitu deia"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Aktibatuta dago bideoa"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Desaktibatuta dago bideoa"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Aldatu bideoa"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Bozgorailua"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Soinua"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-fa/strings.xml b/java/com/android/incallui/commontheme/res/values-fa/strings.xml index ea967bb7e..1996ad47b 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"پایان تماس"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"ویدئو فعال"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"ویدئو غیرفعال"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"جابهجایی ویدئو"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"بلندگو"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"صدا"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-fi/strings.xml b/java/com/android/incallui/commontheme/res/values-fi/strings.xml index f0da44f07..5a579816b 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Päätä puhelu"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Videokuva käytössä"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Videokuva poissa käytöstä"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Vaihda videota"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Kaiutin"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Ääni"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml b/java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml index bf74dfbef..a1db3065a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Mettre fin à l\'appel"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Vidéo activée"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Vidéo désactivée"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Permuter la vidéo"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Haut-parleur"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Son"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-fr/strings.xml b/java/com/android/incallui/commontheme/res/values-fr/strings.xml index fb674a483..e169a3d7a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Mettre fin à l\'appel"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Vidéo activée"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Vidéo désactivée"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Permuter la vidéo"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Haut-parleur"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Audio"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-gl/strings.xml b/java/com/android/incallui/commontheme/res/values-gl/strings.xml index c7e221416..ba98a98a7 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Finalizar chamada"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo activado"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desactivado"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Alternar vídeo"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Altofalante"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Son"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-gu/strings.xml b/java/com/android/incallui/commontheme/res/values-gu/strings.xml index 75584ea0d..194590cec 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"કૉલ સમાપ્ત કરો"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"વિડિઓ ચાલુ"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"વિડિઓ બંધ"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"વિડિઓ સ્વેપ કરો"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"સ્પીકર"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"ધ્વનિ"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-hi/strings.xml b/java/com/android/incallui/commontheme/res/values-hi/strings.xml index f7ea68ad8..207bbf2be 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"कॉल समाप्त करें"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"वीडियो चालू"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"वीडियो बंद"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"वीडियो स्वैप करें"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"स्पीकर"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"ध्वनि"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-hr/strings.xml b/java/com/android/incallui/commontheme/res/values-hr/strings.xml index c30f3977e..c58ab852f 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Prekid poziva"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Videopoziv uključen"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Videopoziv isključen"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Zamijeni videopoziv"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Zvučnik"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Zvuk"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-hu/strings.xml b/java/com/android/incallui/commontheme/res/values-hu/strings.xml index 9ee2300e2..ba7fec7d5 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Hívás befejezése"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Videó be"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Videó ki"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Videó cseréje"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Hangszóró"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Hang"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-hy/strings.xml b/java/com/android/incallui/commontheme/res/values-hy/strings.xml index 96a0cab6f..81262e4c6 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Ավարտել զանգը"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Տեսախցիկը միացած է"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Տեսախցիկն անջատած է"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Փոխարկել խցիկը"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Բարձրախոս"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Ձայն"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-in/strings.xml b/java/com/android/incallui/commontheme/res/values-in/strings.xml index 4536f5db0..fb3fc56ec 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Akhiri panggilan"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Video aktif"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Video nonaktif"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Tukar Video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Speaker"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Suara"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-is/strings.xml b/java/com/android/incallui/commontheme/res/values-is/strings.xml index 357f90eee..438b143e4 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Ljúka símtali"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Kveikja á mynd"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Slökkva á mynd"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Skipta um mynd"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Hátalari"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Hljóð"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-it/strings.xml b/java/com/android/incallui/commontheme/res/values-it/strings.xml index a63d3140a..b7c1d3f4e 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Termina chiamata"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Video attivo"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Video non attivo"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Scambia video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Altoparlante"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Suono"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-iw/strings.xml b/java/com/android/incallui/commontheme/res/values-iw/strings.xml index 1e2b7f2b1..cbd6d7573 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"סיים שיחה"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"הווידאו מופעל"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"הווידאו מושבת"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"החלף וידאו"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"רמקול"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"קול"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-ja/strings.xml b/java/com/android/incallui/commontheme/res/values-ja/strings.xml index 658b51349..4ea949581 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"通話を終了"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"ビデオが ON になっています"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"ビデオが OFF になっています"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"ビデオを切り替える"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"スピーカー"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"音声"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-ka/strings.xml b/java/com/android/incallui/commontheme/res/values-ka/strings.xml index ffba7cede..3163476b6 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"ზარის დასრულება"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"ვიდეო ჩართულია"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"ვიდეო გამორთულია"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"ვიდეოს შენაცვლება"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"სპიკერი"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"ხმა"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-kk/strings.xml b/java/com/android/incallui/commontheme/res/values-kk/strings.xml index ace83ecee..23b3a2ad6 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Қоңырауды аяқтау"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Бейне қосулы"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Бейне өшірулі"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Бейнені ауыстыру"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Динамик"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Дыбыс"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-km/strings.xml b/java/com/android/incallui/commontheme/res/values-km/strings.xml index e28f12029..55cfa0a16 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"បញ្ចប់ការហៅ"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"បើកវីដេអូ"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"បិទវីដេអូ"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"ប្ដូរវីដេអូ"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"ឧបករណ៍បំពងសំឡេង"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"សំឡេង"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-kn/strings.xml b/java/com/android/incallui/commontheme/res/values-kn/strings.xml index 59186e0a3..685ef642f 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"ಕರೆ ಅಂತ್ಯಗೊಳಿಸಿ"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"ವೀಡಿಯೊ ಆನ್"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"ವೀಡಿಯೊ ಆಫ್"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"ವೀಡಿಯೊ ಬದಲಾಯಿಸಿ"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"ಸ್ಪೀಕರ್"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"ಶಬ್ದ"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-ko/strings.xml b/java/com/android/incallui/commontheme/res/values-ko/strings.xml index 0a0e3c9aa..088746ddd 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"통화 종료"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"동영상 켜짐"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"동영상 꺼짐"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"동영상 전환"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"스피커"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"소리"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-ky/strings.xml b/java/com/android/incallui/commontheme/res/values-ky/strings.xml index ac697e4fe..5dd4d0c21 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Чалууну бүтүрүү"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Видео күйүк"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Видео өчүк"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Видеону иштетүү/өчүрүү"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Катуу сүйлөткүч"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Добуш"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-lo/strings.xml b/java/com/android/incallui/commontheme/res/values-lo/strings.xml index da2050ac2..2f0b94b54 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"ວາງສາຍ"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"ວິດີໂອເປີດ"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"ວິດີໂອປິດ"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"ສະຫຼັບວິດີໂອ"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"ລຳໂພງ"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"ສຽງ"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-lt/strings.xml b/java/com/android/incallui/commontheme/res/values-lt/strings.xml index bda53d6f6..d0a5e0d9c 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Baigti skambutį"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Vaizdas įjungtas"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Vaizdas išjungtas"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Sukeisti vaizdą"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Garsiakalbis"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Garsas"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-lv/strings.xml b/java/com/android/incallui/commontheme/res/values-lv/strings.xml index beaf35c58..443ac5e80 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Beigt zvanu"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Video ieslēgts"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Video izslēgts"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Mainīt video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Skaļrunis"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Skaņa"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-mk/strings.xml b/java/com/android/incallui/commontheme/res/values-mk/strings.xml index 5b4f6d0c5..d9a339eab 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Завршете го повикот"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Видеото е вклучено"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Видеото е исклучено"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Заменете го видеото"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Звучник"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Звук"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-ml/strings.xml b/java/com/android/incallui/commontheme/res/values-ml/strings.xml index 024266736..0f2d88968 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"കോള് അവസാനിപ്പിക്കൂ"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"വീഡിയോ ഓണാണ്"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"വീഡിയോ ഓഫാണ്"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"വീഡിയോ സ്വാപ്പുചെയ്യുക"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"സ്പീക്കർ"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"ശബ്ദം"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-mn/strings.xml b/java/com/android/incallui/commontheme/res/values-mn/strings.xml index cd286edb9..3665fcfa6 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Дуудлагыг таслах"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Видео идэвхтэй"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Видео идэвхгүй"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Видеог солих"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Чанга яригч"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Дуу"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-mr/strings.xml b/java/com/android/incallui/commontheme/res/values-mr/strings.xml index 2c626edbd..f7498097f 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"कॉल समाप्त करा"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"व्हिडिओ चालू"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"व्हिडिओ बंद"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"व्हिडिओ बदला"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"स्पीकर"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"ध्वनी"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-ms/strings.xml b/java/com/android/incallui/commontheme/res/values-ms/strings.xml index f6c358d79..fb38fa9d1 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Tamatkan panggilan"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Video dihidupkan"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Video dimatikan"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Silih video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Pmbsr suara"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Bunyi"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-my/strings.xml b/java/com/android/incallui/commontheme/res/values-my/strings.xml index 6b6614c36..5b396be59 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"ခေါ်ဆိုမှုအပြီးသတ်ရန်"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"ဗီဒီယိုဖွင့်ထားသည်"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"ဗီဒီယိုပိတ်ထားသည်"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"ဗီဒီယိုဖလှယ်ရန်"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"စပီကာ"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"အသံ"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-nb/strings.xml b/java/com/android/incallui/commontheme/res/values-nb/strings.xml index 4974411bc..506b15e31 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Avslutt samtalen"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Video på"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Video av"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Bytt video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Høyttaler"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Lyd"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-ne/strings.xml b/java/com/android/incallui/commontheme/res/values-ne/strings.xml index 5cd91b336..fa9d87fb7 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"कल अन्त्य गर्नुहोस्"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"सक्रिय भिडियो"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"निष्क्रिय भिडियो"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"भिडियो साट्नुहोस्"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"स्पिकर"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"आवाज"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-nl/strings.xml b/java/com/android/incallui/commontheme/res/values-nl/strings.xml index d33d60075..192c47b97 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Oproep beëindigen"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Video aan"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Video uit"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Video wisselen"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Luidspreker"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Geluid"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-no/strings.xml b/java/com/android/incallui/commontheme/res/values-no/strings.xml index 4974411bc..506b15e31 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Avslutt samtalen"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Video på"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Video av"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Bytt video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Høyttaler"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Lyd"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-pa/strings.xml b/java/com/android/incallui/commontheme/res/values-pa/strings.xml index 7e59e6114..77ceb252a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"ਕਾਲ ਸਮਾਪਤ ਕਰੋ"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"ਵੀਡੀਓ ਚਾਲੂ"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"ਵੀਡੀਓ ਬੰਦ"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"ਵੀਡੀਓ ਦੀ ਅਦਲਾ ਬਦਲੀ ਕਰੋ"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"ਸਪੀਕਰ"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"ਧੁਨੀ"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-pl/strings.xml b/java/com/android/incallui/commontheme/res/values-pl/strings.xml index 4ab1d244d..d9b037e8d 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Zakończ połączenie"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Wideo włączone"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Wideo wyłączone"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Przełącz wideo"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Głośnik"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Dźwięk"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml b/java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml index 67f367466..2c1834e0f 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Encerrar chamada"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo ativado"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desativado"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Trocar vídeo"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Alto-falante"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Som"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml b/java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml index 27c564928..f0c14d027 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Terminar chamada"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo ativado"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desativado"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Alternar vídeo"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Altifalante"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Som"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-pt/strings.xml b/java/com/android/incallui/commontheme/res/values-pt/strings.xml index 67f367466..2c1834e0f 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Encerrar chamada"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo ativado"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desativado"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Trocar vídeo"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Alto-falante"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Som"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-ro/strings.xml b/java/com/android/incallui/commontheme/res/values-ro/strings.xml index b7fec9a58..f7c8f7257 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Încheiați apelul"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Imaginea video este activată"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Imaginea video este dezactivată"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Schimbați imaginea video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Difuzor"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Sunet"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-ru/strings.xml b/java/com/android/incallui/commontheme/res/values-ru/strings.xml index 5d1807f7a..1853ad23f 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Завершить вызов"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Камера включена"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Камера выключена"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Включить/выключить камеру"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Динамик"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Звук"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-si/strings.xml b/java/com/android/incallui/commontheme/res/values-si/strings.xml index 0a0f35c47..ae13cc424 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"ඇමතුම අවසන් කරන්න"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"වීඩියෝව ක්රියාත්මකයි"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"වීඩියෝව ක්රියාවිරහිතයි"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"වීඩියෝව මාරු කරන්න"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"ස්පීකරය"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"හඬ"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-sk/strings.xml b/java/com/android/incallui/commontheme/res/values-sk/strings.xml index 97eabebb4..cd9aa9912 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Ukončiť hovor"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Video je zapnuté"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Video je vypnuté"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Zameniť video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Reproduktor"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Zvuk"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-sl/strings.xml b/java/com/android/incallui/commontheme/res/values-sl/strings.xml index 46cf2e8ee..0aa6e699a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Končaj klic"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Vklopi video"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Izklopi video"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Zamenjaj video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Zvočnik"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Zvok"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-sq/strings.xml b/java/com/android/incallui/commontheme/res/values-sq/strings.xml index 17ec08167..b9c97d1dd 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Mbylle telefonatën"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Videoja aktive"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Videoja joaktive"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Shkëmbe video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Altoparlanti"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Tingulli"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-sr/strings.xml b/java/com/android/incallui/commontheme/res/values-sr/strings.xml index 2928bc992..67586b72e 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Заврши позив"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Укључи видео"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Искључи видео"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Замени видео"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Звучник"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Звук"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-sv/strings.xml b/java/com/android/incallui/commontheme/res/values-sv/strings.xml index 17b5d3745..957a2f85a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Avsluta samtal"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Video på"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Video av"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Byt video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Högtalare"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Ljud"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-sw/strings.xml b/java/com/android/incallui/commontheme/res/values-sw/strings.xml index 165d57622..8752c2d37 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Kata simu"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Washa video"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Zima video"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Badilisha video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Spika"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Sauti"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-ta/strings.xml b/java/com/android/incallui/commontheme/res/values-ta/strings.xml index fa2dfb280..69258d2e6 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"அழைப்பைத் துண்டிக்கும்"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"வீடியோ இயக்கப்பட்டது"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"வீடியோ முடக்கப்பட்டது"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"வீடியோவிற்கு மாற்றும்"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"ஸ்பீக்கர்"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"ஒலி"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-te/strings.xml b/java/com/android/incallui/commontheme/res/values-te/strings.xml index 3ce431cd1..9454e15b7 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"కాల్ను ముగిస్తుంది"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"వీడియో ఆన్లో ఉంది"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"వీడియో ఆఫ్లో ఉంది"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"వీడియోను మారుస్తుంది"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"స్పీకర్"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"ధ్వని"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-th/strings.xml b/java/com/android/incallui/commontheme/res/values-th/strings.xml index 1fa145c02..823531000 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"วางสาย"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"เปิดวิดีโอ"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"ปิดวิดีโอ"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"สลับวิดีโอ"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"ลำโพง"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"เสียง"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-tl/strings.xml b/java/com/android/incallui/commontheme/res/values-tl/strings.xml index a53e11c7d..f368e3a68 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Tapusin ang tawag"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Naka-on ang video"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Naka-off ang video"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Pagpalitin ang video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Speaker"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Tunog"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-tr/strings.xml b/java/com/android/incallui/commontheme/res/values-tr/strings.xml index 09552730a..cbf550211 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Çağrıyı sonlandırın"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Video açık"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Video kapalı"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Videoyu değiştirin"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Hoparlör"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Ses"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-uk/strings.xml b/java/com/android/incallui/commontheme/res/values-uk/strings.xml index e17e781b3..2bcd04c0e 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Завершити виклик"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Відео ввімкнено"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Відео вимкнено"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Поміняти відео"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Динамік"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Звук"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-ur/strings.xml b/java/com/android/incallui/commontheme/res/values-ur/strings.xml index 5082e9d11..bd8cf6807 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"کال ختم کریں"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"ویڈیو آن ہے"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"ویڈیو آف ہے"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"ویڈیو کا تبادلہ کریں"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"اسپیکر"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"آواز"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-uz/strings.xml b/java/com/android/incallui/commontheme/res/values-uz/strings.xml index d349d3f9a..9bc995de2 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Qo‘ng‘iroqni tugatish"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Video yoniq"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Video o‘chiq"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Videoni yoqish/ochirish"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Karnay"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Tovush"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-vi/strings.xml b/java/com/android/incallui/commontheme/res/values-vi/strings.xml index 3bd39ae4d..caf8f3434 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Kết thúc cuộc gọi"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Bật video"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Tắt video"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Hoán đổi video"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Loa"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Âm báo"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml b/java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml index 0f57120e2..4d8bda6bc 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"结束通话"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"视频已开启"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"视频已关闭"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"切换视频"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"免提"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"音频路径"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml b/java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml index a3809ebca..175b3e657 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"結束通話"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"視像已開啟"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"視像已關閉"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"切換視像"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"喇叭"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"音效"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml b/java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml index 983dddda7..dee1b9c95 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"結束通話"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"開啟視訊畫面"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"關閉視訊畫面"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"切換視訊畫面"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"擴音"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"音訊"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values-zu/strings.xml b/java/com/android/incallui/commontheme/res/values-zu/strings.xml index 2dd2c897e..953596231 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_content_description_end_call" msgid="8232796487777787200">"Qeda ikholi"</string> @@ -15,4 +31,6 @@ <string name="incall_content_description_video_on" msgid="899266487647420613">"Ividiyo ivuliwe"</string> <string name="incall_content_description_video_off" msgid="762985912616707076">"Ividiyo ivaliwe"</string> <string name="incall_content_description_swap_video" msgid="297943299827908998">"Shintsha ividiyo"</string> + <string name="incall_label_speaker" msgid="1814254833253409394">"Isipikha"</string> + <string name="incall_label_audio" msgid="5923781170533336820">"Umsindo"</string> </resources> diff --git a/java/com/android/incallui/commontheme/res/values/strings.xml b/java/com/android/incallui/commontheme/res/values/strings.xml index 6f346a34d..94a8c901b 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 @@ <?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> <resources> <string name="incall_content_description_end_call">End call</string> @@ -32,4 +47,11 @@ <string name="incall_content_description_swap_video">Swap video</string> + <!-- Button shown during a phone to route audio from earpiece to speaker phone. + [CHAR LIMIT=12] --> + <string name="incall_label_speaker">Speaker</string> + <!-- Button shown during a phone to switch the audio route. + [CHAR LIMIT=12] --> + <string name="incall_label_audio">Sound</string> + </resources> diff --git a/java/com/android/incallui/contactgrid/BottomRow.java b/java/com/android/incallui/contactgrid/BottomRow.java index 228c786a0..d0ff1926a 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 1322d58ea..502cc52b8 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 { * </ul> */ 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); @@ -233,26 +233,6 @@ public class ContactGridManager { } /** - * Returns the appropriate LetterTileDrawable.TYPE_ based on a given call state. - * - * <p>If no special state is detected, yields TYPE_DEFAULT. - */ - private static @LetterTileDrawable.ContactType int getContactTypeForPrimaryCallState( - @NonNull PrimaryCallState callState, @NonNull PrimaryInfo primaryInfo) { - if (callState.isVoiceMailNumber) { - return LetterTileDrawable.TYPE_VOICEMAIL; - } else if (callState.isBusinessNumber) { - return LetterTileDrawable.TYPE_BUSINESS; - } else if (primaryInfo.numberPresentation == TelecomManager.PRESENTATION_RESTRICTED) { - return LetterTileDrawable.TYPE_GENERIC_AVATAR; - } else if (callState.isConference) { - return LetterTileDrawable.TYPE_CONFERENCE; - } else { - return LetterTileDrawable.TYPE_DEFAULT; - } - } - - /** * Updates row 1. For example: * * <ul> @@ -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 8c3d6b004..ab003570f 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 95ec39bc3..75a8bf37f 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Bel via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Hou aan"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video-oproep vanaf"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-video-oproep vanaf"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Versoekvorm vir video-opgradering"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Versoekvorm vir Wi-Fi-video-opgradering"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Oproep vanaf"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Werkoproep vanaf"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Inkomend via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-am/strings.xml b/java/com/android/incallui/contactgrid/res/values-am/strings.xml index d8060c9c5..3d11f73c2 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"በ<xliff:g id="PROVIDER_NAME">%s</xliff:g> በኩል በመደወል ላይ"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"ያዝና ቆይ"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ቪዲዮ ጥሪ ከ"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi ቪዲዮ ጥሪ ከ"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"የቪዲዮ ማሻሻል ጥያቄ ከ"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"የWi-Fi ቪዲዮ ማሻሻል ጥያቄ ከ"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ጥሪ ከ"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"የሥራ ጥሪ ከ"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"በ<xliff:g id="PROVIDER_NAME">%s</xliff:g> በኩል የገባ"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-ar/strings.xml b/java/com/android/incallui/contactgrid/res/values-ar/strings.xml index 30fd32cfa..cddd1eca9 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"الاتصال عبر <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"معلقة"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"مكالمة فيديو من"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"مكالمة فيديو عبر Wi-Fi من"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"طلب ترقية الفيديو من"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"طلب ترقية فيديو Wi-Fi من"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"اتصال من"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"مكالمة عمل من"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"واردة عبر <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-az/strings.xml b/java/com/android/incallui/contactgrid/res/values-az/strings.xml index 4fe79eeaa..8c1993dc0 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> vasitəsilə zəng edilir"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Gözləmədə"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video zəng edən"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video zəng edən"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video təkmilləşdirilməsi üçün təklif"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi video təkmilləşdirilməsi üçün təklif"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Zəng edən"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"İş zəngi edən"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> vasitəsilə gələn"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml index f1a938ea9..caa61bdac 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Pozivamo preko <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Na čekanju"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video poziv od"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video poziv od"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Zahtev za prelazak na video poziv od"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Zahtev za prelazak na video poziv preko Wi-Fi-ja od"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Poziv od"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Poslovni poziv od"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Dolazni poziv preko <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-be/strings.xml b/java/com/android/incallui/contactgrid/res/values-be/strings.xml index aec3a3106..51f7ea97a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Званкі праз <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"На ўтрыманні"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Відэавыклік ад"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Відэавыклік праз Wi-Fi ад"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Запыт на абнаўленне да відэавыкліка ад"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Запыт на абнаўленне да відэавыкліка па Wi-Fi ад"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Выклік ад"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Рабочы выклік ад"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Уваходны выклік праз <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-bg/strings.xml b/java/com/android/incallui/contactgrid/res/values-bg/strings.xml index f162e4cd0..4e313d408 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Обаждане чрез <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Задържано"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видеообаждане от"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Видеообаждане по Wi-Fi от"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Заявка за преминаване към видеообаждане от"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Заявка за преминаване към видеообаждане през Wi-Fi от"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Обаждане от"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Служебно обаждане от"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Входящо обаждане чрез <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-bn/strings.xml b/java/com/android/incallui/contactgrid/res/values-bn/strings.xml index 6d3a50c61..8fce2e460 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> এর মাধ্যমে কল করা হচ্ছে"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"হোল্ডে রয়েছে"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"এর থেকে আগত ভিডিও কল"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"এর থেকে আগত Wi-Fi ভিডিও কল"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"এর থেকে ভিডিও আপগ্রেড করার অনুরোধ"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"এর থেকে ওয়াই-ফাই ভিডিও আপগ্রেড করার অনুরোধ"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"এর থেকে আগত কল"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"এর থেকে আগত কর্মক্ষেত্রের কল"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> এর মাধ্যমে আগত কল"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-bs/strings.xml b/java/com/android/incallui/contactgrid/res/values-bs/strings.xml index 258799215..0d4dfb3d8 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Pozivanje putem mreže <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Na čekanju"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videopoziv od"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi videopoziv od"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Zahtjev za nadogradnju na videozapis od pozivaoca"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Zahtjev za nadogradnju na Wi-Fi videozapis od pozivaoca"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Poziv od"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Poslovni poziv od"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Dolazni poziv putem <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-ca/strings.xml b/java/com/android/incallui/contactgrid/res/values-ca/strings.xml index 07598a217..b4aa2ddc0 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"S\'està trucant amb <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"En espera"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videotrucada de"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videotrucada per Wi-Fi de"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Sol·licitud d\'actualització a videotrucada procedent de:"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Sol·licitud d\'actualització a videotrucada per Wi-Fi procedent de:"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Trucada de"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Trucada de feina de"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Entrant via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-cs/strings.xml b/java/com/android/incallui/contactgrid/res/values-cs/strings.xml index d27a0283b..b8698f071 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Volání přes poskytovatele <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Podrženo"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Příchozí videohovor:"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Příchozí videohovor přes Wi-Fi:"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Žádost o upgrade na videohovor od uživatele"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Žádost o upgrade na videohovor přes Wi-Fi od uživatele"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Příchozí hovor:"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Příchozí pracovní hovor:"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Příchozí hovor přes poskytovatele <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-da/strings.xml b/java/com/android/incallui/contactgrid/res/values-da/strings.xml index 555a2ac5f..71a651f18 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Ringer via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"I venteposition"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videoopkald fra"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videoopkald fra"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Anmodning om opgradering til et videoopkald fra"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Anmodning om opgradering til et Wi-Fi-videoopkald fra"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Opkald fra"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Arbejdsopkald fra"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Indgående opkald via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-de/strings.xml b/java/com/android/incallui/contactgrid/res/values-de/strings.xml index 3d3838ca2..d69e0f6bb 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Anruf über <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Anruf wird gehalten"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videoanruf von"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"WLAN-Videoanruf von"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Anfrage für Upgrade auf Videoanruf von"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Anfrage für Upgrade auf Videoanruf über WLAN von"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Anruf von"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Geschäftlicher Anruf von"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Eingehender Anruf über <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-el/strings.xml b/java/com/android/incallui/contactgrid/res/values-el/strings.xml index 337da7b03..954e7b75d 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Κλήση μέσω <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Σε αναμονή"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Βιντεοκλήση από"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Βιντεοκλήση μέσω Wi-Fi από"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Αίτημα αναβάθμισης βίντεο από"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Αίτημα αναβάθμισης βίντεο Wi-Fi από"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Κλήση από"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Κλήση από το γραφείο από"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Εισερχόμενη κλήση μέσω <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml b/java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml index 3748db2f4..a1402ff5c 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Calling via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"On hold"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video call from"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video call from"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video upgrade request from"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi video upgrade request from"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Call from"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Work call from"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Incoming via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml b/java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml index 3748db2f4..a1402ff5c 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Calling via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"On hold"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video call from"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video call from"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video upgrade request from"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi video upgrade request from"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Call from"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Work call from"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Incoming via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml b/java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml index 3748db2f4..a1402ff5c 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Calling via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"On hold"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video call from"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video call from"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video upgrade request from"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi video upgrade request from"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Call from"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Work call from"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Incoming via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml b/java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml index fa5684927..abb2b01d9 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Llamada por medio de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"En espera"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videollamada de"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videollamada con Wi-Fi de"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Actualización a video solicitada por"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Actualización a video con Wi-Fi solicitada por"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Llamada de"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Llamada laboral de"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Entrante por medio de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-es/strings.xml b/java/com/android/incallui/contactgrid/res/values-es/strings.xml index 1d57f9c6f..ef7c45774 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Llamada a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"En espera"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videollamada de"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videollamada por Wi-Fi de"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Solicitud de actualización de videollamada de"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Solicitud de actualización de videollamada por Wi-Fi de"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Llamada de"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Llamada de trabajo de"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Recibida a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-et/strings.xml b/java/com/android/incallui/contactgrid/res/values-et/strings.xml index 2d81062f4..b91f073d0 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Kõne edastab <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Ootel"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videokõne kontaktilt"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"WiFi-videokõne kontaktilt"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video täiendamise taotlus:"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"WiFi kaudu video täiendamise taotlus:"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Kõne kontaktilt"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Töökõne kontaktilt"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Sissetulev kõne teenusepakkuja <xliff:g id="PROVIDER_NAME">%s</xliff:g> kaudu"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-eu/strings.xml b/java/com/android/incallui/contactgrid/res/values-eu/strings.xml index f08347bf0..ba7995ad9 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> bidez deitzen"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Zain"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Bideo-deia:"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi bidezko bideo-deia:"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Bideo-dei bat egiteko eskaera bidali dizu erabiltzaile honek:"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi bidezko bideo-dei bat egiteko eskaera bidali dizu erabiltzaile honek:"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Deia:"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Laneko deia:"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> bidez jasotzen"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-fa/strings.xml b/java/com/android/incallui/contactgrid/res/values-fa/strings.xml index 0dfc0f41f..40873ca15 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"تماس از طریق <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"درانتظار"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"تماس ویدئویی از"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"تماس ویدئویی Wi-Fi از"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"درخواست ارتقای تماس ویدیویی از"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"در خواست ارتقای تماس ویدیویی Wi-Fi از"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"تماس از"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"تماس کاری از"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"تماسهای ورودی ازطریق <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-fi/strings.xml b/java/com/android/incallui/contactgrid/res/values-fi/strings.xml index 00503bf2f..241fef5a1 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Käytetään operaattoria <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Pidossa"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videopuhelu henkilöltä"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videopuhelu henkilöltä"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Videoon siirtymispyyntö, jonka lähettäjä on"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi-videopuheluun siirtymispyyntö, jonka lähettäjän on"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Puhelu henkilöltä"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Työpuhelu henkilöltä"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Saapuva puhelu (<xliff:g id="PROVIDER_NAME">%s</xliff:g>)"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml b/java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml index ee0196d98..3ffc1e918 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Appel par <xliff:g id="PROVIDER_NAME">%s</xliff:g> en cours…"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"En attente"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Appel vidéo de"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Appel vidéo Wi-Fi de"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Demande de mise à niveau vidéo de"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Demande de mise à niveau vidéo Wi-Fi de"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Appel de"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Appel professionnel de"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Appel entrant par <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-fr/strings.xml b/java/com/android/incallui/contactgrid/res/values-fr/strings.xml index 9849ad623..0db6ae089 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Appel via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"En attente"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Appel vidéo de"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Appel vidéo Wi-Fi de"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Demande de passage en mode vidéo par"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Demande de passage en mode vidéo Wi-Fi par"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Appel de"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Appel professionnel de"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Appel entrant via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-gl/strings.xml b/java/com/android/incallui/contactgrid/res/values-gl/strings.xml index c85f336b8..297001454 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Chamando a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"En espera"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videochamada de"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videochamada por wifi de"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Solicitude de actualización a videochamada de"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Solicitude de actualización a videochamada por wifi de"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Chamada de"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Chamada de traballo de"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Chamada entrante a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-gu/strings.xml b/java/com/android/incallui/contactgrid/res/values-gu/strings.xml index 5179cc0cb..220bebe39 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> મારફતે કૉલ કરી રહ્યાં છે"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"હોલ્ડ પર"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"આમના તરફથી વિડિઓ કૉલ"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"આમના તરફથી Wi-Fi વિડિઓ કૉલ"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"આમના તરફથી વિડિઓ અપગ્રેડની વિનંતી"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"આમના તરફથી Wi-Fi વિડિઓ અપગ્રેડની વિનંતી"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"આમના તરફથી કૉલ"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"આમના તરફથી કાર્ય કૉલ"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> મારફતે ઇનકમિંગ"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-hi/strings.xml b/java/com/android/incallui/contactgrid/res/values-hi/strings.xml index dec7b629d..da128b644 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> के माध्यम से कॉल किया जा रहा है"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"होल्ड पर"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"इससे वीडियो कॉल"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"इससे वाई-फ़ाई वीडियो कॉल"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"इसकी ओर से वीडियो में अपग्रेड करने का अनुरोध"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"इसकी ओर से वाई-फ़ाई वीडियो में अपग्रेड करने का अनुरोध"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"इससे कॉल"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"इससे कार्य संबंधी कॉल"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> की ओर से इनकमिंग"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-hr/strings.xml b/java/com/android/incallui/contactgrid/res/values-hr/strings.xml index d7023ac24..24429a248 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Pozivanje putem operatera <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Na čekanju"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videopoziv s broja"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videopoziv putem Wi-Fi veze s broja"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video upgrade request from"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi video upgrade request from"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Poziv s broja"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Poslovni poziv s broja"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Dolazni pozivi putem davatelja <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-hu/strings.xml b/java/com/android/incallui/contactgrid/res/values-hu/strings.xml index f7da92322..600b69f6d 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Hívás a(z) <xliff:g id="PROVIDER_NAME">%s</xliff:g> szolgáltatón keresztül"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Várakoztatva"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videohívás a következőtől:"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videohívás a következőtől:"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Videófrissítési kérelem a következőtől"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi-videófrissítési kérelem a következőtől"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Hívás a következőtől:"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Munkahelyi hívás a következőről:"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Bejövő hívás a következőn keresztül: <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-hy/strings.xml b/java/com/android/incallui/contactgrid/res/values-hy/strings.xml index 6384fa924..88a49eb48 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Զանգում է <xliff:g id="PROVIDER_NAME">%s</xliff:g>-ի միջոցով"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Սպասում"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Տեսազանգ հետևյալ բաժանորդից՝"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi տեսազանգ հետևյալ բաժանորդից՝"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Տեսազանգին անցնելու խնդրանք հետևյալ օգտատիրոջից՝"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi-ի միջոցով տեսազանգին անցնելու խնդրանք հետևյալ օգտատիրոջից՝"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Զանգ հետևյալ բաժանորդից՝"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Գործնական զանգ հետևյալ բաժանորդից՝"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Մուտքային զանգ <xliff:g id="PROVIDER_NAME">%s</xliff:g> ցանցից"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-in/strings.xml b/java/com/android/incallui/contactgrid/res/values-in/strings.xml index 75568387b..f6735832a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Menelepon melalui <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Ditangguhkan"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video call dari"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Video call Wi-Fi dari"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Permintaan upgrade video dari"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Permintaan upgrade video Wi-Fi dari"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Telepon dari"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Panggilan telepon kerja dari"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Masuk melalui <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-is/strings.xml b/java/com/android/incallui/contactgrid/res/values-is/strings.xml index 86d577c64..9e830312d 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Hringt í gegnum <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Í bið"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Myndsímtal berst frá"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi myndsímtal berst frá"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Beiðni um að uppfæra í myndsímtal frá"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Beiðni um að uppfæra í Wi-Fi myndsímtal frá"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Símtal berst frá"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Vinnusímtal berst frá"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Berst í gegnum <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-it/strings.xml b/java/com/android/incallui/contactgrid/res/values-it/strings.xml index 9576a6d95..76958cf72 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Chiamate tramite <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"In attesa"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videochiamata da"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videochiamata Wi-Fi da"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Upgrade della videochiamata richiesto da"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Upgrade della videochiamata Wi-Fi richiesto da"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Chiamata da"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Chiamata di lavoro da"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"In arrivo tramite <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-iw/strings.xml b/java/com/android/incallui/contactgrid/res/values-iw/strings.xml index 62771d18f..b06c3212c 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"שיחה באמצעות <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"בהמתנה"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"שיחת וידאו מאת"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"שיחת וידאו ב-Wi-Fi מאת"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"בקשה לשדרוג לשיחת וידאו מאת"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"בקשת לשדרוג לשיחת וידאו ברשת Wi-Fi מאת"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"שיחה מאת"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"שיחת עבודה מאת"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"שיחה נכנסת באמצעות <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-ja/strings.xml b/java/com/android/incallui/contactgrid/res/values-ja/strings.xml index a5d958c60..a2fce09cf 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> で発信中"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"保留中"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ビデオハングアウトの着信"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi ビデオハングアウトの着信"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ビデオハングアウトへの変更リクエスト"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi ビデオハングアウトへの変更リクエスト"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"着信"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"仕事の通話の着信"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> から着信"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-ka/strings.xml b/java/com/android/incallui/contactgrid/res/values-ka/strings.xml index 7848f595e..cb0094d37 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"მიმდინარეობს დარეკვა <xliff:g id="PROVIDER_NAME">%s</xliff:g>-ის მეშვეობით"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"მოცდის რეჟიმში"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ვიდეოზარი აბონენტისგან"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi ვიდეოზარი აბონენტისგან"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ვიდეოზარზე გადასვლის მოთხოვნა კონტაქტისგან:"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi ვიდეოზარზე გადასვლის მოთხოვნა კონტაქტისგან:"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ზარი აბონენტისგან"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"სამსახურებრივი ზარი აბონენტისგან"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"შემომავალი, <xliff:g id="PROVIDER_NAME">%s</xliff:g>-იდან"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-kk/strings.xml b/java/com/android/incallui/contactgrid/res/values-kk/strings.xml index aaf260b9a..3fc68c2db 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> арқылы қоңырау шалу"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Күтуде"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Бейне қоңырау шалушы:"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi бейне қоңырау шалушы:"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Бейне қоңырауға ауысу өтініші:"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi арқылы бейне қоңырауға ауысу өтініші:"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Қоңырау шалушы:"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Жұмыстан қоңырау шалушы:"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> арқылы кіріс"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-km/strings.xml b/java/com/android/incallui/contactgrid/res/values-km/strings.xml index b2bfc9628..7ee21ba70 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"កំពុងហៅតាម <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"កំពុងរង់ចាំ"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ការហៅជាវីដេអូពី"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"ការហៅជាវីដេអូតាម Wi-Fi ពី"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ស្នើដំឡើងកំណែវីដេអូពី"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"ស្នើដំឡើងកំណែវីដេអូតាម Wi-Fi ពី"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ការហៅពី"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"ការហៅការងារពី"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"ការហៅចូលតាម <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-kn/strings.xml b/java/com/android/incallui/contactgrid/res/values-kn/strings.xml index 0ee73bacc..e90bd6b54 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ಮೂಲಕ ಕರೆ ಮಾಡಲಾಗುತ್ತಿದೆ"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"ಹೋಲ್ಡ್ ಮಾಡಲಾಗಿದೆ"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ಇವರಿಂದ ವೀಡಿಯೊ ಕರೆ"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"ಇವರಿಂದ ವೈ-ಫೈ ವೀಡಿಯೊ ಕರೆ"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ಇದರಿಂದ ವೀಡಿಯೊ ಅಪ್ಗ್ರೇಡ್ ವಿನಂತಿ"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"ಇದರಿಂದ ವೈಫೈ ವೀಡಿಯೊ ಅಪ್ಗ್ರೇಡ್ ವಿನಂತಿ"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ಇವರಿಂದ ಕರೆ"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"ಇವರಿಂದ ಕೆಲಸದ ಕರೆ"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ಮೂಲಕ ಒಳಬರುತ್ತಿರುವ ಕರೆ"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-ko/strings.xml b/java/com/android/incallui/contactgrid/res/values-ko/strings.xml index a5a34e3d7..85dd613bb 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>을(를) 통해 거는 전화"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"대기 중"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"화상 통화 발신:"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi 화상 통화 발신:"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"화상 통화로의 업그레이드를 요청한 사용자:"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi 화상 통화로의 업그레이드를 요청한 사용자:"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"통화 발신:"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"업무 통화 발신:"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>을(를) 통해 걸려온 전화"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-ky/strings.xml b/java/com/android/incallui/contactgrid/res/values-ky/strings.xml index a020e70d1..6028022e1 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> аркылуу чалуу"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Күтүү режиминде"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видео чалуу"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi аркылуу видео чалуу:"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Видеону кийинки версияга көтөрүү сурамы:"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi аркылуу видеомаектешүү сурамы:"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Чалып жатат:"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Иш боюнча чалып жатат:"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> аркылуу чалып жатат"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-lo/strings.xml b/java/com/android/incallui/contactgrid/res/values-lo/strings.xml index 96c1dcf11..6ad117818 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"ກຳລັງໂທຜ່ານ <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"ຖືສາຍລໍຖ້າ"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ການໂທວິດີໂອຈາກ"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video call from"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ຄຳຮ້ອງອັບເກຣດວິດີໂອຈາກ"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"ຄຳຮ້ອງອັບເກຣດວິດີໂອ Wi-Fi ຈາກ"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ການໂທຈາກ"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Work call from"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"ສາຍໂທເຂົ້າຈາກ <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-lt/strings.xml b/java/com/android/incallui/contactgrid/res/values-lt/strings.xml index e8e42fc9b..3cca55c46 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Skambinama naudojantis „<xliff:g id="PROVIDER_NAME">%s</xliff:g>“ paslaugomis"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Sulaikytas"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Vaizdo skambutis nuo"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"„Wi-Fi“ vaizdo skambutis nuo"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Vaizdo skambučio naujovinimo užklausa nuo"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"„Wi-Fi“ vaizdo skambučio naujovinimo užklausa nuo"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Skambutis nuo"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Darbo skambutis nuo"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Gaunama per „<xliff:g id="PROVIDER_NAME">%s</xliff:g>“"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-lv/strings.xml b/java/com/android/incallui/contactgrid/res/values-lv/strings.xml index 1b3823f1e..87e5c9049 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Zvanu nodrošina <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Aizturēts"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videozvans no:"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi videozvans no:"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Videozvana jaunināšanas pieprasījums no:"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi videozvana jaunināšanas pieprasījums no:"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Zvans no:"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Darba zvans no:"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Ienākošie zvani, ko nodrošina <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-mk/strings.xml b/java/com/android/incallui/contactgrid/res/values-mk/strings.xml index 104468359..fcab8f452 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Повикување преку <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"На чекање"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видеоповик од"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Видеоповик преку Wi-Fi од"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Барање за надградба на видеоповик од"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Барање за надградба на видеоповик преку Wi-Fi од"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Повик од"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Работен повик од"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Дојдовни повици преку <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-ml/strings.xml b/java/com/android/incallui/contactgrid/res/values-ml/strings.xml index 519e9f478..1dfb46a93 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> മുഖേന വിളിക്കുന്നു"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"ഹോള്ഡിലാണ്"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ഈ വ്യക്തിയിൽ നിന്നുള്ള വീഡിയോ കോൾ"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"ഈ വ്യക്തിയിൽ നിന്നുള്ള Wi-Fi വീഡിയോ കോൾ"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ഇനിപ്പറയുന്നതിൽ നിന്നുള്ള വീഡിയോ അപ്ഗ്രേഡ് അഭ്യർത്ഥന"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"ഇനിപ്പറയുന്നതിൽ നിന്നുള്ള Wi-Fi വീഡിയോ അപ്ഗ്രേഡ് അഭ്യർത്ഥന"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ഈ വ്യക്തിയിൽ നിന്നുള്ള കോൾ"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"ഈ വ്യക്തിയിൽ നിന്നുള്ള ഔദ്യോഗിക കോൾ"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> മുഖേനയുള്ള ഇൻകമിംഗ്"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-mn/strings.xml b/java/com/android/incallui/contactgrid/res/values-mn/strings.xml index c87e07179..c93bd468a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>-р залгаж байна"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Хүлээлгэнд байгаа"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видео дуудлага"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi видео дуудлага"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Видеог сайжруулах хүсэлт"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi видеог сайжруулах хүсэлт"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Дуудлага"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Ажлын дуудлага"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>-р ирж байна"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-mr/strings.xml b/java/com/android/incallui/contactgrid/res/values-mr/strings.xml index 6a0181774..81d76dd70 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> द्वारे कॉल करीत आहे"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"होल्ड वर"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"यावरून व्हिडिओ कॉल"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi व्हिडिओ कॉल"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"याकडून व्हिडिओ श्रेणीसुधारणेची विनंती"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"याकडून Wi-Fi व्हिडिओ श्रेणीसुधारणेची विनंती"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"यावरील कॉल"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"कडून कार्य कॉल"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> द्वारे येणारे"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-ms/strings.xml b/java/com/android/incallui/contactgrid/res/values-ms/strings.xml index 17ca75369..815df7947 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Memanggil melalui <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Panggilan ditahan"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Panggilan video daripada"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Panggilan video Wi-Fi daripada"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Permintaan peningkatan video daripada"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Permintaan peningkatan video Wi-Fi daripada"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Panggilan daripada"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Panggilan kerja daripada"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Panggilan masuk melalui <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-my/strings.xml b/java/com/android/incallui/contactgrid/res/values-my/strings.xml index 14770cfaf..3c8a88e41 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> မှတစ်ဆင့် ခေါ်ဆိုနေသည်"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"ဖုန်းကိုင်ထားသည်"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"အောက်ပါထံမှ ဗီဒီယိုခေါ်ဆိုမှု"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"အောက်ပါထံမှ Wi-Fi ဗီဒီယိုခေါ်ဆိုမှု"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"အောက်ပါထံမှ ဗီဒီယိုအဆင့်မြှင့်ခြင်းတောင်းဆိုချက်"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"အောက်ပါထံမှ Wi-Fi ဗီဒီယိုအဆင့်မြှင့်ခြင်းတောင်းဆိုချက်"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"အောက်ပါထံမှ ခေါ်ဆိုမှု"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"အောက်ပါထံမှ အလုပ်ခေါ်ဆိုမှု"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> မှတစ်ဆင့် အဝင်ခေါ်ဆိုမှု"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-nb/strings.xml b/java/com/android/incallui/contactgrid/res/values-nb/strings.xml index fbf98954c..9ad8d0d6a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Ringer via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"På vent"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videoanrop fra"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videoanrop fra"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Forespørsel om videooppdatering fra"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Forespørsel om Wi-Fi-videooppdatering fra"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Anrop fra"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Jobbrelatert anrop fra"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Innkommende via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-ne/strings.xml b/java/com/android/incallui/contactgrid/res/values-ne/strings.xml index d618af43f..e6e65c5fb 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> मार्फत कल गर्दै"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"होल्डमा छ"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"निम्नबाट भिडियो कल आएको छ"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"निम्नबाट Wi-Fi मार्फत गरिएको भिडियो कल आएको छ"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"निम्नबाट आएको भिडियो अपग्रेडसम्बन्धी अनुरोध"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"निम्नबाट आएको Wi-Fi मार्फत भिडियो अपग्रेडसम्बन्धी अनुरोध"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"निम्नबाट कल आएको छ"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"निम्नबाट कार्य सम्बन्धी कल आएको छ"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> मार्फत गरिएको आगमन कल"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-nl/strings.xml b/java/com/android/incallui/contactgrid/res/values-nl/strings.xml index 10dcd13f0..828a7a228 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Bellen via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"In de wacht"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videogesprek van"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wifi-videogesprek van"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Upgradeverzoek voor videogesprek van"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Upgradeverzoek voor wifi-videogesprek van"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Oproep van"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Zakelijke oproep van"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Inkomend via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-no/strings.xml b/java/com/android/incallui/contactgrid/res/values-no/strings.xml index fbf98954c..9ad8d0d6a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Ringer via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"På vent"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videoanrop fra"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videoanrop fra"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Forespørsel om videooppdatering fra"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Forespørsel om Wi-Fi-videooppdatering fra"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Anrop fra"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Jobbrelatert anrop fra"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Innkommende via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-pa/strings.xml b/java/com/android/incallui/contactgrid/res/values-pa/strings.xml index fb261d649..1d4801c43 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ਰਾਹੀਂ ਕਾਲ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"ਰੋਕ ਕੇ ਰੱਖੀ ਗਈ"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ਇਸ ਤੋਂ ਵੀਡੀਓ ਕਾਲ"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"ਇਸ ਤੋਂ Wi-Fi ਵੀਡੀਓ ਕਾਲ"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ਇਸ ਤੋਂ ਵੀਡੀਓ ਅੱਪਗ੍ਰੇਡ ਬੇਨਤੀ"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"ਇਸ ਤੋਂ Wi-Fi ਵੀਡੀਓ ਅੱਪਗ੍ਰੇਡ ਬੇਨਤੀ"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ਇਸ ਤੋਂ ਕਾਲ"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"ਇਸ ਤੋਂ ਕੰਮ ਸਬੰਧੀ ਕਾਲ"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ਰਾਹੀਂ ਇਨਕਮਿੰਗ"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-pl/strings.xml b/java/com/android/incallui/contactgrid/res/values-pl/strings.xml index 998e49e3e..586f39e65 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Dzwonię przez <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Oczekujące"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Rozmowa wideo z:"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Rozmowa wideo przez Wi-Fi z:"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Prośba o przejście na rozmowę wideo wysłana przez:"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Prośba o przejście na rozmowę wideo przez Wi-Fi wysłana przez:"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Połączenie z:"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Połączenie służbowe z:"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Przychodzące z sieci <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml b/java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml index 4365cba59..a445cdf60 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Ligando via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Em espera"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videochamada de"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videochamada via Wi-Fi de"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Solicitação de upgrade de vídeo de"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Solicitação de upgrade de vídeo por Wi-Fi de"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Chamada de"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Chamada de trabalho de"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Chamada de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml b/java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml index 55d3c2695..ca07b3fc9 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"A telefonar através de <xliff:g id="PROVIDER_NAME">%s</xliff:g>…"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Em espera"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videochamada de"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videochamada a partir de rede Wi-Fi de"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Pedido de atualização para videochamada de"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Pedido de atualização para videochamada por Wi-Fi de"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Chamada de"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Chamada de trabalho de"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Chamada recebida através de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-pt/strings.xml b/java/com/android/incallui/contactgrid/res/values-pt/strings.xml index 4365cba59..a445cdf60 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Ligando via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Em espera"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videochamada de"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videochamada via Wi-Fi de"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Solicitação de upgrade de vídeo de"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Solicitação de upgrade de vídeo por Wi-Fi de"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Chamada de"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Chamada de trabalho de"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Chamada de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-ro/strings.xml b/java/com/android/incallui/contactgrid/res/values-ro/strings.xml index f8d1c9b54..180a01f4c 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Se apelează prin <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"În așteptare"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Apel video de la"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Apel video prin Wi-Fi de la"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Solicitare de upgrade la apel video de la"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Solicitare de upgrade la apel video prin Wi-Fi de la"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Apel primit de la"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Apel de serviciu de la"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Primite prin <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-ru/strings.xml b/java/com/android/incallui/contactgrid/res/values-ru/strings.xml index dfbc08828..e0a63518f 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Вызов через <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"На удержании"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видеовызов от"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Видеовызов по Wi-Fi от"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Запрос на переход к видеовстрече от:"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Запрос на переход к видеовстрече через Wi-Fi от:"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Вызов от"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Рабочий вызов от"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Входящий вызов (оператор: <xliff:g id="PROVIDER_NAME">%s</xliff:g>)"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-si/strings.xml b/java/com/android/incallui/contactgrid/res/values-si/strings.xml index 00ca2aa90..451dc396c 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> හරහා අමතමින්"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"රඳවා ගත්"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"වෙතින් වීඩියෝ ඇමතුම"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"වෙතින් Wi-Fi වීඩියෝ ඇමතුම"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"වෙතින් වීඩියෝ උත්ශ්රේණි කිරීමේ ඉල්ලීම"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"වෙතින් Wi-Fi වීඩියෝ උත්ශ්රේණි කිරීමේ ඉල්ලීම"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"වෙතින් ඇමතුම"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"වෙතින් කාර්යාල ඇමතුම"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> හරහා එන"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-sk/strings.xml b/java/com/android/incallui/contactgrid/res/values-sk/strings.xml index 40039ee9a..ae21ec855 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Voláte prostredníctvom poskytovateľa <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Podržané"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videohovor od:"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videohovor cez Wi-Fi od:"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Žiadosť o inováciu na videohovor od používateľa"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Žiadosť o inováciu na videohovor cez Wi-Fi od používateľa"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Hovor od:"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Pracovný hovor od:"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Prichádzajúci hovor prostredníctvom poskytovateľa <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-sl/strings.xml b/java/com/android/incallui/contactgrid/res/values-sl/strings.xml index f76b5cdac..1d93d21a4 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Klicanje prek ponudnika <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Zadržano"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videoklic osebe"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videoklic prek omrežja Wi-Fi osebe"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Zahteva za nadgradnjo v video – zahteva osebe"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Zahteva za nadgradnjo v video prek omrežja Wi-Fi – zahteva osebe"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Klic osebe"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Delovni klic osebe"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Dohodni klic prek storitve <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-sq/strings.xml b/java/com/android/incallui/contactgrid/res/values-sq/strings.xml index 34ec2d1f6..8c28eb7ea 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Telefonatë nëpërmjet <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Në pritje"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Telefonatë me video nga"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Telefonatë me video në Wi-Fi nga"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Kërkesë për përmirësimin me video nga"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Kërkesë për përmirësimin me video me Wi-Fi nga"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Telefonatë nga"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Telefonatë pune nga"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Telefonatë hyrëse nëpërmjet <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-sr/strings.xml b/java/com/android/incallui/contactgrid/res/values-sr/strings.xml index 9ad149905..66ea45d6e 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Позивамо преко <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"На чекању"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видео позив од"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi видео позив од"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Захтев за прелазак на видео позив од"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Захтев за прелазак на видео позив преко Wi-Fi-ја од"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Позив од"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Пословни позив од"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Долазни позив преко <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-sv/strings.xml b/java/com/android/incallui/contactgrid/res/values-sv/strings.xml index d5dd15953..931d9c98d 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Ringer med <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Parkerat"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videosamtal från"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videosamtal från"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Begäran om videouppgradering från"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Begäran om uppgradering av Wi-Fi-video från"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Samtal från"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Jobbsamtal från"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Inkommande via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-sw/strings.xml b/java/com/android/incallui/contactgrid/res/values-sw/strings.xml index 72bc26f58..581d7970a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Inapiga simu kupitia <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Imesitishwa"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Simu ya video kutoka kwa"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Simu ya video kupitia Wi-Fi kutoka kwa"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Umetumiwa ombi ili ubadilishe utumie simu ya video na"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Umetumiwa ombi ili ubadilishe utumie simu ya video kwenye Wi-Fi na"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Simu kutoka kwa"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Simu ya kazi kutoka kwa"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Simu zinazoingia kupitia <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-ta/strings.xml b/java/com/android/incallui/contactgrid/res/values-ta/strings.xml index 2f5b1b81d..37ff87681 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> வழியாக அழைக்கிறது"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"ஹோல்டில் உள்ளது"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"வீடியோ அழைப்பு:"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"வைஃபை வீடியோ அழைப்பு:"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"வீடியோவை மேம்படுத்துவதற்கான கோரிக்கை:"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"வைஃபையில் வீடியோவை மேம்படுத்துவதற்கான கோரிக்கை:"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"அழைப்பு:"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"அழைப்பு (பணி) :"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> மூலம் உள்வரும் அழைப்பு"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-te/strings.xml b/java/com/android/incallui/contactgrid/res/values-te/strings.xml index 52038dbf8..913c9448a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ద్వారా కాల్ చేస్తోంది"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"హోల్డ్లో ఉంది"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"వీరి నుండి వీడియో కాల్:"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"వీరి నుండి Wi-Fi వీడియో కాల్:"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"వీరి నుండి వీడియో అప్గ్రేడ్ అభ్యర్థన"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"వీరి నుండి Wi-Fi వీడియో అప్గ్రేడ్ అభ్యర్థన"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"వీరి నుండి కాల్:"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"వీరి నుండి కార్యాలయ కాల్:"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ద్వారా ఇన్కమింగ్ కాల్"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-th/strings.xml b/java/com/android/incallui/contactgrid/res/values-th/strings.xml index 419db19cc..6503959e4 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"โทรผ่าน <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"พักสาย"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"แฮงเอาท์วิดีโอจาก"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"แฮงเอาท์วิดีโอผ่าน Wi-Fi จาก"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"คำขออัปเกรดวิดีโอจาก"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"คำขออัปเกรดวิดีโอผ่าน Wi-Fi จาก"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"โทรจาก"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"โทรเรื่องงานจาก"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"สายเรียกเข้าผ่าน <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-tl/strings.xml b/java/com/android/incallui/contactgrid/res/values-tl/strings.xml index 282ec106f..7fa063b61 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Tumatawag sa pamamagitan ng <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Naka-hold"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video call mula kay"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi na video call mula kay"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Kahilingan upang i-upgrade ang video mula kay"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Kahilingan upang i-upgrade ang video gamit ang Wi-Fi mula kay"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Tawag mula kay"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Tawag sa trabaho mula kay"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Papasok sa pamamagitan ng <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-tr/strings.xml b/java/com/android/incallui/contactgrid/res/values-tr/strings.xml index 5ecbf3543..1ce565dca 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> üzerinden çağrı yapılıyor"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Beklemede"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Gelen video görüşmesi isteği:"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Gelen kablosuz video görüşmesi isteği:"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Görüntülü görüşmeye geçme isteği alındı:"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Kablosuz görüntülü görüşmeye geçme isteği alındı:"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Gelen çağrı:"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Gelen iş çağrısı:"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> adlı sağlayıcı üzerinden gelen çağrı"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-uk/strings.xml b/java/com/android/incallui/contactgrid/res/values-uk/strings.xml index 7b84fb650..0d4a595ca 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Виклик здійснюється через оператора <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Утримується"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Відеодзвінок від:"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Відеодзвінок через Wi-Fi від:"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Запит на відеодзвінок від користувача"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Запит на відеодзвінок через Wi-Fi від користувача"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Виклик від:"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Виклик на робочий телефон від:"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Вхідні виклики через оператора <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-ur/strings.xml b/java/com/android/incallui/contactgrid/res/values-ur/strings.xml index 6584181fb..793e4879d 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"کالنگ بذریعہ <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"ہولڈ پر ہے"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ویڈیو کال منجانب"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi ویڈیو کال منجانب"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ویڈیو اپ گریڈ کی درخواست منجانب"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi ویڈیو اپ گریڈ کی درخواست منجانب"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"کال منجانب"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"دفتری کال منجانب"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> کے ذریعے آنے والی کال"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-uz/strings.xml b/java/com/android/incallui/contactgrid/res/values-uz/strings.xml index db11a1822..a5ce1caea 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> orqali qo‘ng‘rioq qilinmoqda"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Kutish rejimida"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Kimdan video qo‘ng‘iroq:"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi orqali kimdan video qo‘ng‘iroq:"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Bu foydalanuvchi video suhbatga o‘tishni so‘ramoqda:"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Bu foydalanuvchi Wi-Fi orqali video suhbatga o‘tishni so‘ramoqda:"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Kimdan qo‘ng‘iroq:"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Ish telefoniga kimdan qo‘ng‘iroq:"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Kiruvchi qo‘ng‘iroq (operator: <xliff:g id="PROVIDER_NAME">%s</xliff:g>)"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-vi/strings.xml b/java/com/android/incallui/contactgrid/res/values-vi/strings.xml index 340a11577..9ce0f1838 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Đang gọi điện qua <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Đang chờ"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Cuộc gọi điện video từ"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Cuộc gọi điện video qua Wi-Fi từ"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Yêu cầu nâng cấp video từ"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Yêu cầu nâng cấp video Wi-Fi từ"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Cuộc gọi từ"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Cuộc gọi về công việc từ"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Cuộc gọi đến qua <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml b/java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml index 16031b811..af5008af0 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"正在通过<xliff:g id="PROVIDER_NAME">%s</xliff:g>进行通话"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"保持"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"视频通话来自:"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"WLAN 视频通话来自:"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"视频通话升级请求来自:"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"WLAN 视频通话升级请求来自:"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"通话来自:"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"工作通话来自:"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"有人通过 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 来电"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml b/java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml index 14a444124..9f4748175 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"正在透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 撥號"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"保留"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"視像通話來自"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi 視像通話來自"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"視像升級要求來自"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi 視像升級要求來自"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"通話來自"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"工作通話來自"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 的來電"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml b/java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml index bdee41e67..563bb2832 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"正在透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 撥號"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"保留中"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"視訊通話來電:"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi 視訊通話來電:"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"視訊升級要求,來自:"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi 視訊升級要求,來自:"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"語音來電:"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"公司來電:"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"有人透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 來電"</string> diff --git a/java/com/android/incallui/contactgrid/res/values-zu/strings.xml b/java/com/android/incallui/contactgrid/res/values-zu/strings.xml index 150d5cc98..19951ccf7 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_calling_via_template" msgid="3416867359475780924">"Ishaya ucingo nge-<xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> @@ -14,6 +30,8 @@ <string name="incall_remotely_held" msgid="8561379039177396615">"Ibambile"</string> <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Ikholi yevidiyo kusukela ku-"</string> <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Ikholi yevidiyo ye-Wi-Fi kusukela ku-"</string> + <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Isicelo sokuthuthukiswa kwevidiyo kusukela"</string> + <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Isicelo sokuthuthukiswa kwevidiyo ye-Wi-Fi kusukela"</string> <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Ikholi esuka ku-"</string> <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Ikholi yomsebenzi kusukela ku-"</string> <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Ingena nge-<xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string> diff --git a/java/com/android/incallui/contactgrid/res/values/strings.xml b/java/com/android/incallui/contactgrid/res/values/strings.xml index 385f843b1..5a9272ca3 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 @@ <?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <!-- Title displayed in the overlay for outgoing calls which include the name of the provider. @@ -50,6 +65,12 @@ <!-- Displayed in the answer call screen for incoming video calls over Wi-F. --> <string name="contact_grid_incoming_wifi_video_call">Wi-Fi video call from</string> + <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. --> + <string name="contact_grid_incoming_video_request">Video upgrade request from</string> + + <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. --> + <string name="contact_grid_incoming_wifi_video_request">Wi-Fi video upgrade request from</string> + <!-- Displayed in the answer call screen for incoming voice calls. --> <string name="contact_grid_incoming_voice_call">Call from</string> diff --git a/java/com/android/incallui/incall/impl/ButtonChooserFactory.java b/java/com/android/incallui/incall/impl/ButtonChooserFactory.java index 0dcfdb5fe..99364e22c 100644 --- a/java/com/android/incallui/incall/impl/ButtonChooserFactory.java +++ b/java/com/android/incallui/incall/impl/ButtonChooserFactory.java @@ -83,11 +83,18 @@ class ButtonChooserFactory { 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 8c113649d..b7a47f08e 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 c5d75329f..d329dc903 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 0b1088d2d..bc0c61607 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 fd632fb9a..64529a51f 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Video-oproep"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Hou aan"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Voeg oproep by"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Demp"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Beëindig oproep"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Sleutelblok"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Luidspreker"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", is aan"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", is af"</string> <string name="incall_label_merge" msgid="720076442985913175">"Voeg saam"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Bestuur"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Bestuur bellers"</string> <string name="incall_label_swap" msgid="10458642864243507">"Verwissel"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Klank"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Nota is gestuur"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-am/strings.xml b/java/com/android/incallui/incall/impl/res/values-am/strings.xml index 9dfd0e61d..66a38680e 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"የቪዲዮ ጥሪ"</string> <string name="incall_label_hold" msgid="4223472584896867896">"ይዘህ ቆይ"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"ጥሪ ያክሉ"</string> <string name="incall_label_mute" msgid="2180667027331706737">"ድምፀ-ከል አድርግ"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"ጥሪ ጨርስ"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"ቁልፍ ሰሌዳ"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"የድምጽ ማጉያ"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"፣ በርቷል"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"፣ ጠፍቷል"</string> <string name="incall_label_merge" msgid="720076442985913175">"አዋህድ"</string> <string name="incall_label_manage" msgid="2175471192903568159">"አስተዳድር"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ደዋዮችን ያስተዳድሩ"</string> <string name="incall_label_swap" msgid="10458642864243507">"አገላብጥ"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"ድምፅ"</string> <string name="incall_note_sent" msgid="4524130323127388367">"ማስታወሻ ተልኳል"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-ar/strings.xml b/java/com/android/incallui/incall/impl/res/values-ar/strings.xml index a5f448a31..e4dbfe4b6 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"مكالمة فيديو"</string> <string name="incall_label_hold" msgid="4223472584896867896">"انتظار"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"إضافة مكالمة"</string> <string name="incall_label_mute" msgid="2180667027331706737">"كتم"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"إنهاء المكالمة"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"لوحة مفاتيح"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"مكبر الصوت"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"، مشغل"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"، غير مشغل"</string> <string name="incall_label_merge" msgid="720076442985913175">"دمج"</string> <string name="incall_label_manage" msgid="2175471192903568159">"إدارة"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"إدارة المتصلين"</string> <string name="incall_label_swap" msgid="10458642864243507">"تبديل"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"الصوت"</string> <string name="incall_note_sent" msgid="4524130323127388367">"تم إرسال الملاحظة"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-az/strings.xml b/java/com/android/incallui/incall/impl/res/values-az/strings.xml index 5f1f8cb98..9a1f7f8fe 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Video zəng"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Xətdə axlayın"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Zəng əlavə edin"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Susdurun"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Zəngi bitirin"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Klaviatura"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Dinamik"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", aktivdir"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", deaktivdir"</string> <string name="incall_label_merge" msgid="720076442985913175">"Birləşdir"</string> <string name="incall_label_manage" msgid="2175471192903568159">"İdarə edin"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Zəng edənləri idarə edin"</string> <string name="incall_label_swap" msgid="10458642864243507">"Dəyişdirin"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Səs"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Qeyd göndərildi"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml index bff7ed079..02d6b7c96 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Video poziv"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Na čekanje"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Dodaj poziv"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Isključi zvuk"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Završi poziv"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Tastatura"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Zvučnik"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", uključen"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", isključen"</string> <string name="incall_label_merge" msgid="720076442985913175">"Objedini"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Upravljaj"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Upravljajte pozivaocima"</string> <string name="incall_label_swap" msgid="10458642864243507">"Zameni"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Zvuk"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Beleška je poslata"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-be/strings.xml b/java/com/android/incallui/incall/impl/res/values-be/strings.xml index 394c7c82e..45e1e1010 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Відэавыклік"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Утрымліваць"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Дадаць выклік"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Адключыць мікрафон"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Сконч. выкл."</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Клавіятура"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Вонк.дынамік"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", уключана"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", выключана"</string> <string name="incall_label_merge" msgid="720076442985913175">"Аб\'яднаць"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Кіраваць"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Кіраваць выклікаючымі абанентамі"</string> <string name="incall_label_swap" msgid="10458642864243507">"Пераключыць"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Гук"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Нататка адпраўлена"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-bg/strings.xml b/java/com/android/incallui/incall/impl/res/values-bg/strings.xml index 4f5933be9..c339d3bca 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Видеообажд."</string> <string name="incall_label_hold" msgid="4223472584896867896">"Задържане"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Ново обажд."</string> <string name="incall_label_mute" msgid="2180667027331706737">"Без звук"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Затваряне"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Клавиатура"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Високоговорител"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"е включено"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"е изключено"</string> <string name="incall_label_merge" msgid="720076442985913175">"Обединяване"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Управление"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Управление на обаждащите се"</string> <string name="incall_label_swap" msgid="10458642864243507">"Размяна"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Звук"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Бележката е изпратена"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-bn/strings.xml b/java/com/android/incallui/incall/impl/res/values-bn/strings.xml index 9453e14bd..ca5837b0e 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"ভিডিও কল"</string> <string name="incall_label_hold" msgid="4223472584896867896">"ধরে থাকুন"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"কল যোগ করুন"</string> <string name="incall_label_mute" msgid="2180667027331706737">"নিঃশব্দ করুন"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"কল শেষ করুন"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"কীপ্যাড"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"স্পিকার"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", চালু রয়েছে"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", বন্ধ রয়েছে"</string> <string name="incall_label_merge" msgid="720076442985913175">"মার্জ করুন"</string> <string name="incall_label_manage" msgid="2175471192903568159">"পরিচালনা করুন"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"কলারদের পরিচালনা করুন"</string> <string name="incall_label_swap" msgid="10458642864243507">"অদল বদল করুন"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"শব্দ"</string> <string name="incall_note_sent" msgid="4524130323127388367">"নোট পাঠানো হয়েছে"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-bs/strings.xml b/java/com/android/incallui/incall/impl/res/values-bs/strings.xml index 4b4796457..26b44ea90 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videopoziv"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Na čekanju"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Dodaj poziv"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Isključi"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Prekini poziv"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Telefonska tastatura"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Zvučnik"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", uključen"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", isključen"</string> <string name="incall_label_merge" msgid="720076442985913175">"Spoji"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Upravljaj"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Upravljanje pozivaocima"</string> <string name="incall_label_swap" msgid="10458642864243507">"Zamijeni"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Zvuk"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Bilješka je poslana"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-ca/strings.xml b/java/com/android/incallui/incall/impl/res/values-ca/strings.xml index e10b7bd2d..9c76a3a5f 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videotrucada"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Posa en espera"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Afeg. trucada"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Silencia"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Penja"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclat"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Altaveu"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", activat"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", desactivat"</string> <string name="incall_label_merge" msgid="720076442985913175">"Combina"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Gestiona"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gestiona les persones que truquen"</string> <string name="incall_label_swap" msgid="10458642864243507">"Canvia"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"So"</string> <string name="incall_note_sent" msgid="4524130323127388367">"La nota s\'ha enviat"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-cs/strings.xml b/java/com/android/incallui/incall/impl/res/values-cs/strings.xml index a00c10547..69f3e53a0 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videohovor"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Podržet"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Přidat hovor"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Vyp. mikrof."</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Zavěsit"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Klávesnice"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Reproduktor"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"– zapnuto"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"– vypnuto"</string> <string name="incall_label_merge" msgid="720076442985913175">"Sloučit"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Spravovat"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Spravovat volající"</string> <string name="incall_label_swap" msgid="10458642864243507">"Přepnout"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Zvuk"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Poznámka byla odeslána"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-da/strings.xml b/java/com/android/incallui/incall/impl/res/values-da/strings.xml index 08b5cbb8e..d9328afe4 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videoopkald"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Parkér"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Tilføj opkald"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Slå lyden fra"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Slut opkald"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Tastatur"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Højttaler"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", er til"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", er fra"</string> <string name="incall_label_merge" msgid="720076442985913175">"Flet"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Administrer"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Administrer opkaldere"</string> <string name="incall_label_swap" msgid="10458642864243507">"Byt"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Lyd"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Noten blev sendt"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-de/strings.xml b/java/com/android/incallui/incall/impl/res/values-de/strings.xml index 5f3f8c1cb..30eae96b3 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videoanruf"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Halten"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Hinzufügen"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Stumm"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Beenden"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Wähltasten"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Lautsprecher"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ist an"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ist aus"</string> <string name="incall_label_merge" msgid="720076442985913175">"Zusammenf."</string> <string name="incall_label_manage" msgid="2175471192903568159">"Verwalten"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Anrufer verwalten"</string> <string name="incall_label_swap" msgid="10458642864243507">"Wechseln"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Audio"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Notiz gesendet"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-el/strings.xml b/java/com/android/incallui/incall/impl/res/values-el/strings.xml index 0f5a14238..b45314fa7 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Βιντεοκλήση"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Αναμονή"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Προσθ. κλήσ."</string> <string name="incall_label_mute" msgid="2180667027331706737">"Σίγαση"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Τερματισμός"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Πληκτρολόγιο"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Ηχείο"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ενεργό"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ανενεργό"</string> <string name="incall_label_merge" msgid="720076442985913175">"Συγχώνευση"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Διαχείριση"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Διαχείριση καλούντων"</string> <string name="incall_label_swap" msgid="10458642864243507">"Ανταλλαγή"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Ήχος"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Η σημείωση εστάλη"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml b/java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml index 89b72df54..34323f57a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Video call"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Hold"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Add call"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Mute"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"End call"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Keypad"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Speaker"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", is on"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", is off"</string> <string name="incall_label_merge" msgid="720076442985913175">"Merge"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Manage"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Manage callers"</string> <string name="incall_label_swap" msgid="10458642864243507">"Swap"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Sound"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Note sent"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml b/java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml index 89b72df54..34323f57a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Video call"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Hold"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Add call"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Mute"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"End call"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Keypad"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Speaker"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", is on"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", is off"</string> <string name="incall_label_merge" msgid="720076442985913175">"Merge"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Manage"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Manage callers"</string> <string name="incall_label_swap" msgid="10458642864243507">"Swap"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Sound"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Note sent"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml b/java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml index 89b72df54..34323f57a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Video call"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Hold"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Add call"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Mute"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"End call"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Keypad"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Speaker"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", is on"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", is off"</string> <string name="incall_label_merge" msgid="720076442985913175">"Merge"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Manage"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Manage callers"</string> <string name="incall_label_swap" msgid="10458642864243507">"Swap"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Sound"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Note sent"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml b/java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml index fe9374cb9..d39cf2f6f 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videollamada"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Retener"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Agregar llamada"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Silenciar"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Finalizar"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Altavoz"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", activado"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", desactivado"</string> <string name="incall_label_merge" msgid="720076442985913175">"Combinar"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Administrar"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Administrar números"</string> <string name="incall_label_swap" msgid="10458642864243507">"Cambiar"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Sonido"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Se envió la nota"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-es/strings.xml b/java/com/android/incallui/incall/impl/res/values-es/strings.xml index f2dd09bb9..db5a7e643 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videollamada"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Retener"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Añadir"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Silenciar"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Finalizar"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Altavoz"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", activado"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", desactivado"</string> <string name="incall_label_merge" msgid="720076442985913175">"Combinar"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Gestionar"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Administrar llamadas"</string> <string name="incall_label_swap" msgid="10458642864243507">"Cambiar"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Sonido"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Nota enviada"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-et/strings.xml b/java/com/android/incallui/incall/impl/res/values-et/strings.xml index 03fa7deae..f4587adaa 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videokõne"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Ootele"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Lisa kõne"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Vaigista"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Lõpeta kõne"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Klaviatuur"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Kõlar"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", on sees"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", on väljas"</string> <string name="incall_label_merge" msgid="720076442985913175">"Ühenda"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Halda"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Helistajate haldamine"</string> <string name="incall_label_swap" msgid="10458642864243507">"Vaheta"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Heli"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Märge on saadetud"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-eu/strings.xml b/java/com/android/incallui/incall/impl/res/values-eu/strings.xml index 51d300e2e..28d78a70b 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Bideo-deia"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Utzi zain"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Gehitu deia"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Des. audioa"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Amaitu deia"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Teklatua"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Bozgorailua"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", aktibatuta"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", desaktib."</string> <string name="incall_label_merge" msgid="720076442985913175">"Bateratu"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Kudeatu"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Kudeatu deitzaileak"</string> <string name="incall_label_swap" msgid="10458642864243507">"Aldatu"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Soinua"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Bidali da oharra"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-fa/strings.xml b/java/com/android/incallui/incall/impl/res/values-fa/strings.xml index a0701163e..a26ac75a2 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"تماس ویدئویی"</string> <string name="incall_label_hold" msgid="4223472584896867896">"درحال انتظار"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"افزودن تماس"</string> <string name="incall_label_mute" msgid="2180667027331706737">"بیصدا کردن"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"پایان تماس"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"صفحه کلید"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"بلندگو"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"، فعال است"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"، غیرفعال است"</string> <string name="incall_label_merge" msgid="720076442985913175">"ادغام"</string> <string name="incall_label_manage" msgid="2175471192903568159">"مدیریت"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"مدیریت تماسگیرندگان"</string> <string name="incall_label_swap" msgid="10458642864243507">"جابهجایی"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"صدا"</string> <string name="incall_note_sent" msgid="4524130323127388367">"یادداشت ارسال شد"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-fi/strings.xml b/java/com/android/incallui/incall/impl/res/values-fi/strings.xml index d81bfbf39..9ae53488a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videopuhelu"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Pitoon"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Lisää puhelu"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Mykistä"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Päätä puhelu"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Näppäimistö"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Kaiutin"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", käytössä"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ei käytössä"</string> <string name="incall_label_merge" msgid="720076442985913175">"Yhdistä"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Hallinnoi"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Hallinnoi soittajia"</string> <string name="incall_label_swap" msgid="10458642864243507">"Vaihda"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Ääni"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Muistiinpano lähetettiin."</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml b/java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml index 1278bce2d..cff6745d1 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Appel vidéo"</string> <string name="incall_label_hold" msgid="4223472584896867896">"En attente"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Autre appel"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Couper son"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Raccrocher"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Clavier"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Haut-parleur"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", activé"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", désactivé"</string> <string name="incall_label_merge" msgid="720076442985913175">"Fusionner"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Gérer"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gérer les appels"</string> <string name="incall_label_swap" msgid="10458642864243507">"Permuter"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Son"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Note envoyée"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-fr/strings.xml b/java/com/android/incallui/incall/impl/res/values-fr/strings.xml index 5532032b9..14e92beeb 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Appel vidéo"</string> <string name="incall_label_hold" msgid="4223472584896867896">"En attente"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Autre appel"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Couper micro"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Raccrocher"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Clavier"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Haut-parleur"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", activé"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", désactivé"</string> <string name="incall_label_merge" msgid="720076442985913175">"Fusionner"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Gérer"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gérer les appelants"</string> <string name="incall_label_swap" msgid="10458642864243507">"Permuter"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Son"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Note envoyée"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-gl/strings.xml b/java/com/android/incallui/incall/impl/res/values-gl/strings.xml index ec99b7c75..4b399f4ee 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videochamada"</string> <string name="incall_label_hold" msgid="4223472584896867896">"En espera"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Eng. chamada"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Ignorar"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Finalizar chamada"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Altofalante"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"activado"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"desactivado"</string> <string name="incall_label_merge" msgid="720076442985913175">"Combinar"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Xestionar"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Xestionar emisores de chamadas"</string> <string name="incall_label_swap" msgid="10458642864243507">"Cambiar"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Son"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Enviouse a nota"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-gu/strings.xml b/java/com/android/incallui/incall/impl/res/values-gu/strings.xml index fb3999c9a..438f0f351 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"વિડિઓ કૉલ"</string> <string name="incall_label_hold" msgid="4223472584896867896">"હોલ્ડ કરો"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"કૉલ ઉમેરો"</string> <string name="incall_label_mute" msgid="2180667027331706737">"મ્યૂટ કરો"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"કૉલ સમાપ્ત કરો"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"કીપેડ"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"સ્પીકર"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ચાલુ છે"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", બંધ છે"</string> <string name="incall_label_merge" msgid="720076442985913175">"મર્જ કરો"</string> <string name="incall_label_manage" msgid="2175471192903568159">"સંચાલિત કરો"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"કૉલર્સને સંચાલિત કરો"</string> <string name="incall_label_swap" msgid="10458642864243507">"સ્વેપ કરો"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"ધ્વનિ"</string> <string name="incall_note_sent" msgid="4524130323127388367">"નોંધ મોકલી"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml deleted file mode 100644 index 1f37cd504..000000000 --- a/java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<resources> - <dimen name="incall_avatar_size">88dp</dimen> -</resources> diff --git a/java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml new file mode 100644 index 000000000..904aed235 --- /dev/null +++ b/java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2016 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + +<resources> + <dimen name="incall_avatar_size">88dp</dimen> +</resources> 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 index b58ef4819..b58ef4819 100644 --- a/java/com/android/incallui/incall/impl/res/values-h580dp/styles.xml +++ b/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 6a7538dea..39e6e6b6d 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"वीडियो कॉल"</string> <string name="incall_label_hold" msgid="4223472584896867896">"होल्ड करें"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"कॉल जोड़ें"</string> <string name="incall_label_mute" msgid="2180667027331706737">"म्यूट करें"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"कॉल समाप्त करें"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"कीपैड"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"स्पीकर"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", चालू है"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", बंद है"</string> <string name="incall_label_merge" msgid="720076442985913175">"एक बनाएं"</string> <string name="incall_label_manage" msgid="2175471192903568159">"प्रबंधित करें"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"कॉलर प्रबंधित करें"</string> <string name="incall_label_swap" msgid="10458642864243507">"स्वैप करें"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"ध्वनि"</string> <string name="incall_note_sent" msgid="4524130323127388367">"नोट भेज दिया गया है"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-hr/strings.xml b/java/com/android/incallui/incall/impl/res/values-hr/strings.xml index fc431b33b..e440028d8 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videopoziv"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Pauziraj"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Dodaj poziv"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Isklj. zvuk"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Prekini poziv"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Tipkovnica"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Zvučnik"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", uključeno"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", isključeno"</string> <string name="incall_label_merge" msgid="720076442985913175">"Spoji"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Upravljanje"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Upravljaj pozivateljima"</string> <string name="incall_label_swap" msgid="10458642864243507">"Zamijeni"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Zvuk"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Bilješka je poslana"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-hu/strings.xml b/java/com/android/incallui/incall/impl/res/values-hu/strings.xml index 194c348d9..e63ce5946 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videohívás"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Várakoztatás"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Hívás felv."</string> <string name="incall_label_mute" msgid="2180667027331706737">"Némítás"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Hívás vége"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Billentyűzet"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Hangszóró"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", be"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ki"</string> <string name="incall_label_merge" msgid="720076442985913175">"Egyesítés"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Kezelés"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Hívók kezelése"</string> <string name="incall_label_swap" msgid="10458642864243507">"Csere"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Hang"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Üzenet elküldve"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-hy/strings.xml b/java/com/android/incallui/incall/impl/res/values-hy/strings.xml index 0e8054ec9..ce395e70c 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Տեսազանգ"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Պահել զանգը"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Ավելացնել զանգ"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Անջատել"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Ավարտել զանգը"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Ստեղնաշար"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Բարձրախոս"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", միացած է"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", անջատած է"</string> <string name="incall_label_merge" msgid="720076442985913175">"Միավորել"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Կառավարել"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Զանգողների կառավարում"</string> <string name="incall_label_swap" msgid="10458642864243507">"Փոխարկել"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Ձայն"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Գրառումն ուղարկվեց"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-in/strings.xml b/java/com/android/incallui/incall/impl/res/values-in/strings.xml index f429cb4b7..e9d738a36 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Video call"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Tahan"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Tambahkan panggilan"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Bisukan"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Akhiri panggilan"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Keypad"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Speaker"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", aktif"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", Nonaktif"</string> <string name="incall_label_merge" msgid="720076442985913175">"Gabungkan"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Kelola"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Kelola penelepon"</string> <string name="incall_label_swap" msgid="10458642864243507">"Tukar"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Suara"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Catatan telah dikirim"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-is/strings.xml b/java/com/android/incallui/incall/impl/res/values-is/strings.xml index 9c3bf89bf..f262e3f9f 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Myndsímtal"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Setja í bið"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Bæta við"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Hljóð af"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Ljúka"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Talnaborð"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Hátalari"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", kveikt"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", slökkt"</string> <string name="incall_label_merge" msgid="720076442985913175">"Sameina"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Stjórna"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Hafa umsjón með hringjendum"</string> <string name="incall_label_swap" msgid="10458642864243507">"Skipta milli"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Hljóð"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Glósa send"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-it/strings.xml b/java/com/android/incallui/incall/impl/res/values-it/strings.xml index 1cfb0be67..f29a70260 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videochiamata"</string> <string name="incall_label_hold" msgid="4223472584896867896">"In attesa"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Aggiungi chiamata"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Disattiva"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Termina chiamata"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Tastierino"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Altoparlante"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", attivo"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", non attivo"</string> <string name="incall_label_merge" msgid="720076442985913175">"Unisci"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Gestisci"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gestisci chiamanti"</string> <string name="incall_label_swap" msgid="10458642864243507">"Scambia"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Audio"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Nota inviata"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-iw/strings.xml b/java/com/android/incallui/incall/impl/res/values-iw/strings.xml index 2426fc868..bf08e3b06 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"שיחת וידאו"</string> <string name="incall_label_hold" msgid="4223472584896867896">"המתנה"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"הוסף שיחה"</string> <string name="incall_label_mute" msgid="2180667027331706737">"השתק"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"סיום השיחה"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"לוח חיוג"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"רמקול"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", מופעל"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", מושבת"</string> <string name="incall_label_merge" msgid="720076442985913175">"מזג"</string> <string name="incall_label_manage" msgid="2175471192903568159">"נהל"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ניהול המתקשרים"</string> <string name="incall_label_swap" msgid="10458642864243507">"החלף"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"צלילים"</string> <string name="incall_note_sent" msgid="4524130323127388367">"ההערה נשלחה"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-ja/strings.xml b/java/com/android/incallui/incall/impl/res/values-ja/strings.xml index 9e313a072..b78ee202e 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"ビデオ通話"</string> <string name="incall_label_hold" msgid="4223472584896867896">"保留"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"通話を追加"</string> <string name="incall_label_mute" msgid="2180667027331706737">"ミュート"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"通話を終了"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"キーパッド"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"スピーカー"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"がオンです"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"がオフです"</string> <string name="incall_label_merge" msgid="720076442985913175">"統合"</string> <string name="incall_label_manage" msgid="2175471192903568159">"管理"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"発信者を管理"</string> <string name="incall_label_swap" msgid="10458642864243507">"切り替え"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"音声"</string> <string name="incall_note_sent" msgid="4524130323127388367">"メモを送信しました"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-ka/strings.xml b/java/com/android/incallui/incall/impl/res/values-ka/strings.xml index d33af5a46..f6926f39c 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"ვიდეოზარი"</string> <string name="incall_label_hold" msgid="4223472584896867896">"შეყოვნება"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"ზარის დამატ."</string> <string name="incall_label_mute" msgid="2180667027331706737">"დადუმება"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"ზარის დასრ."</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"კლავიატურა"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"სპიკერი"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ჩართულია"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", გამორთულია"</string> <string name="incall_label_merge" msgid="720076442985913175">"გაერთიანება"</string> <string name="incall_label_manage" msgid="2175471192903568159">"მართვა"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"აბონენტების მართვა"</string> <string name="incall_label_swap" msgid="10458642864243507">"შენაცვლება"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"ხმა"</string> <string name="incall_note_sent" msgid="4524130323127388367">"ჩანიშვნა გაიგზავნა"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-kk/strings.xml b/java/com/android/incallui/incall/impl/res/values-kk/strings.xml index db9c4f6ca..8da9982d0 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Бейне қоңырау"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Күттіру"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Қоңырау қосу"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Дыбысын өшіру"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Қоңырауды аяқтау"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Пернетақта"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Динамик"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", қосулы"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", өшірулі"</string> <string name="incall_label_merge" msgid="720076442985913175">"Біріктіру"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Басқару"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Қоңырау шалушыларды басқару"</string> <string name="incall_label_swap" msgid="10458642864243507">"Ауыстыру"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Дыбыс"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Ескертпе жіберілді"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-km/strings.xml b/java/com/android/incallui/incall/impl/res/values-km/strings.xml index 6596bdf0c..88e356a41 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"ហៅជាវីដេអូ"</string> <string name="incall_label_hold" msgid="4223472584896867896">"រង់ចាំ"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"បន្ថែមការហៅ"</string> <string name="incall_label_mute" msgid="2180667027331706737">"បិទសំឡេង"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"បញ្ចប់ការហៅ"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"បន្ទះចុចលេខ"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"ឧបករណ៍បំពងសំឡេង"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", បានបើក"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", បានបិទ"</string> <string name="incall_label_merge" msgid="720076442985913175">"បញ្ចូលគ្នា"</string> <string name="incall_label_manage" msgid="2175471192903568159">"គ្រប់គ្រង"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"គ្រប់គ្រងអ្នកហៅ"</string> <string name="incall_label_swap" msgid="10458642864243507">"ប្ដូរ"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"សំឡេង"</string> <string name="incall_note_sent" msgid="4524130323127388367">"បានផ្ញើចំណាំ"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-kn/strings.xml b/java/com/android/incallui/incall/impl/res/values-kn/strings.xml index c03ec09fa..ad29b6d36 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"ವೀಡಿಯೊ ಕರೆ"</string> <string name="incall_label_hold" msgid="4223472584896867896">"ಹೋಲ್ಡ್ ಮಾಡು"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"ಕರೆಯನ್ನು ಸೇರಿಸಿ"</string> <string name="incall_label_mute" msgid="2180667027331706737">"ಮ್ಯೂಟ್ ಮಾಡಿ"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"ಕರೆ ಅಂತ್ಯಗೊಳಿಸಿ"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"ಕೀಪ್ಯಾಡ್"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"ಸ್ಪೀಕರ್"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ಆನ್ ಆಗಿದೆ"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ಆಫ್ ಆಗಿದೆ"</string> <string name="incall_label_merge" msgid="720076442985913175">"ವಿಲೀನಗೊಳಿಸು"</string> <string name="incall_label_manage" msgid="2175471192903568159">"ನಿರ್ವಹಿಸು"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ಕರೆದಾತರನ್ನು ನಿರ್ವಹಿಸಿ"</string> <string name="incall_label_swap" msgid="10458642864243507">"ಸ್ವ್ಯಾಪ್ ಮಾಡು"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"ಧ್ವನಿ"</string> <string name="incall_note_sent" msgid="4524130323127388367">"ಟಿಪ್ಪಣಿ ಕಳುಹಿಸಲಾಗಿದೆ"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-ko/strings.xml b/java/com/android/incallui/incall/impl/res/values-ko/strings.xml index e701e772f..f9bb20f8b 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"화상 통화"</string> <string name="incall_label_hold" msgid="4223472584896867896">"대기"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"통화 추가"</string> <string name="incall_label_mute" msgid="2180667027331706737">"음소거"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"통화 종료"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"키패드"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"스피커"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", 켜짐"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", 꺼짐"</string> <string name="incall_label_merge" msgid="720076442985913175">"병합"</string> <string name="incall_label_manage" msgid="2175471192903568159">"관리"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"발신자 관리"</string> <string name="incall_label_swap" msgid="10458642864243507">"전환"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"소리"</string> <string name="incall_note_sent" msgid="4524130323127388367">"메모가 전송되었습니다."</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-ky/strings.xml b/java/com/android/incallui/incall/impl/res/values-ky/strings.xml index e51d4c582..f00264dbe 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Видео чалуу"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Күттүрүү"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Чалууну кошуу"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Үнүн өчүрүү"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Чалууну бүтүрүү"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Ном. тергич"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Катуу сүйлөткүч"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", күйүк"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", өчүк"</string> <string name="incall_label_merge" msgid="720076442985913175">"Бириктирүү"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Башкаруу"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Чалуучуларды башкаруу"</string> <string name="incall_label_swap" msgid="10458642864243507">"Алмаштыруу"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Добуш"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Билдирүү жөнөтүлдү"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-lo/strings.xml b/java/com/android/incallui/incall/impl/res/values-lo/strings.xml index 52de3ffcc..2382f3241 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"ໂທດ້ວຍວິດີໂອ"</string> <string name="incall_label_hold" msgid="4223472584896867896">"ພັກສາຍຊົ່ວຄາວ"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"ເພີ່ມການໂທ"</string> <string name="incall_label_mute" msgid="2180667027331706737">"ປີດສຽງ"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"ວາງສາຍ"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"ແປ້ນກົດ"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"ລຳໂພງ"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ເປີດຢູ່"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ປິດຢູ່"</string> <string name="incall_label_merge" msgid="720076442985913175">"ຮວມສາຍ"</string> <string name="incall_label_manage" msgid="2175471192903568159">"ຈັດການ"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ຈັດການຜູ້ໂທ"</string> <string name="incall_label_swap" msgid="10458642864243507">"ສະຫຼັບສາຍ"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"ສຽງ"</string> <string name="incall_note_sent" msgid="4524130323127388367">"ສົ່ງບັນທຶກແລ້ວ"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-lt/strings.xml b/java/com/android/incallui/incall/impl/res/values-lt/strings.xml index 4cd0356f3..1a10884cb 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Vaizdo skambutis"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Sulaikyti"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Pr. skambutį"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Nutildyti"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Baig. skamb."</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Klaviatūra"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Garsiakalbis"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", įjungtas"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", išjungtas"</string> <string name="incall_label_merge" msgid="720076442985913175">"Sujungti"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Tvarkyti"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Tvarkyti skambintojus"</string> <string name="incall_label_swap" msgid="10458642864243507">"Sukeisti"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Garsas"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Užrašas išsiųstas"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-lv/strings.xml b/java/com/android/incallui/incall/impl/res/values-lv/strings.xml index 48f9ae032..c19e7c0ae 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videozvans"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Aizturēt"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Pievienot zvanu"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Izslēgt"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Beigt zvanu"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Cipartast."</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Skaļrunis"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ieslēgts"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", izslēgts"</string> <string name="incall_label_merge" msgid="720076442985913175">"Apvienot"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Pārvaldīt"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Pārvaldīt zvanītājus"</string> <string name="incall_label_swap" msgid="10458642864243507">"Pārslēgt"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Skaņa"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Piezīme nosūtīta"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-mk/strings.xml b/java/com/android/incallui/incall/impl/res/values-mk/strings.xml index 5a61de5d3..610a30803 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Видеоповик"</string> <string name="incall_label_hold" msgid="4223472584896867896">"На чекање"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Додај повик"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Исклучи звук"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Заврши повик"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Тастатура"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Звучник"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", е вклучен"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", е исклучен"</string> <string name="incall_label_merge" msgid="720076442985913175">"Спои"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Управувај"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Управувајте со повикувачите"</string> <string name="incall_label_swap" msgid="10458642864243507">"Замени"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Звук"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Белешката е испратена"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-ml/strings.xml b/java/com/android/incallui/incall/impl/res/values-ml/strings.xml index 00586ffa7..83c2989f0 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"വീഡിയോ കോള്"</string> <string name="incall_label_hold" msgid="4223472584896867896">"ഹോള്ഡുചെയ്യുക"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"കോൾ ചേർക്കുക"</string> <string name="incall_label_mute" msgid="2180667027331706737">"മ്യൂട്ടുചെയ്യുക"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"കോള് അവസാനിപ്പിക്കൂ"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"കീപാഡ്"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"സ്പീക്കർ"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ഓണാണ്"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ഓഫാണ്"</string> <string name="incall_label_merge" msgid="720076442985913175">"ലയിപ്പിക്കുക"</string> <string name="incall_label_manage" msgid="2175471192903568159">"മാനേജുചെയ്യുക"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"കോൾ ചെയ്യുന്നവരെ മാനേജുചെയ്യുക"</string> <string name="incall_label_swap" msgid="10458642864243507">"സ്വാപ്പുചെയ്യുക"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"ശബ്ദം"</string> <string name="incall_note_sent" msgid="4524130323127388367">"കുറിപ്പ് അയച്ചു"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-mn/strings.xml b/java/com/android/incallui/incall/impl/res/values-mn/strings.xml index 085a405b0..9427d86d2 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Видео хурал"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Саатуулах"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Дуудлага нэмэх"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Дууг хаах"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Дуудлагыг таслах"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Товчлуур"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Чанга яригч"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", асаатай"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", унтраатай"</string> <string name="incall_label_merge" msgid="720076442985913175">"Нэгтгэх"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Удирдах"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Залгагчдыг удирдах"</string> <string name="incall_label_swap" msgid="10458642864243507">"Солих"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Дуу"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Тэмдэглэлийг илгээсэн"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-mr/strings.xml b/java/com/android/incallui/incall/impl/res/values-mr/strings.xml index 841923352..194c192bd 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"व्हिडिओ कॉल"</string> <string name="incall_label_hold" msgid="4223472584896867896">"होल्ड करा"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"कॉल जोडा"</string> <string name="incall_label_mute" msgid="2180667027331706737">"नि:शब्द करा"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"कॉल समाप्त करा"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"कीपॅड"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"स्पीकर"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", सुरू आहे"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", बंद आहे"</string> <string name="incall_label_merge" msgid="720076442985913175">"विलीन करा"</string> <string name="incall_label_manage" msgid="2175471192903568159">"व्यवस्थापित करा"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"कॉलर व्यवस्थापित करा"</string> <string name="incall_label_swap" msgid="10458642864243507">"अदलाबदल करा"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"ध्वनी"</string> <string name="incall_note_sent" msgid="4524130323127388367">"टीप पाठविली"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-ms/strings.xml b/java/com/android/incallui/incall/impl/res/values-ms/strings.xml index c9db8325e..a918dedb4 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Pgln video"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Tunda"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Tambah pgln"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Redam"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Tamatkn pgln"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Pad kekunci"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Pmbsr suara"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", dihidupkan"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", Dimatikan"</string> <string name="incall_label_merge" msgid="720076442985913175">"Gabung"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Urus"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Urus pemanggil"</string> <string name="incall_label_swap" msgid="10458642864243507">"Silih"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Bunyi"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Nota dihantar"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-my/strings.xml b/java/com/android/incallui/incall/impl/res/values-my/strings.xml index e0bfb8c71..80070297b 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"ဗီဒီယိုခေါ်ဆိုမှု"</string> <string name="incall_label_hold" msgid="4223472584896867896">"ခဏရပ်ထားရန်"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"ထပ်ခေါ်ရန်"</string> <string name="incall_label_mute" msgid="2180667027331706737">"အသံပိတ်ရန်"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"ဖုန်းချရန်"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"ခလုတ်ခုံ"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"စပီကာ"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"၊ ပွင့်နေသည်"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"၊ ပိတ်နေသည်"</string> <string name="incall_label_merge" msgid="720076442985913175">"ပေါင်းရန်"</string> <string name="incall_label_manage" msgid="2175471192903568159">"စီမံရန်"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ခေါ်ဆိုသူများကို စီမံခန့်ခွဲရန်"</string> <string name="incall_label_swap" msgid="10458642864243507">"ဖလှယ်ရန်"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"အသံ"</string> <string name="incall_note_sent" msgid="4524130323127388367">"မှတ်စုပို့ပြီးပါပြီ"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-nb/strings.xml b/java/com/android/incallui/incall/impl/res/values-nb/strings.xml index 75200869c..704384ea0 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videosamtale"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Sett på vent"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Nytt anrop"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Ignorer"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Avslutt samtalen"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Tastatur"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Høyttaler"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"er på"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"er av"</string> <string name="incall_label_merge" msgid="720076442985913175">"Slå sammen"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Administrer"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Håndter innringere"</string> <string name="incall_label_swap" msgid="10458642864243507">"Bytt"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Lyd"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Notatet er sendt"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-ne/strings.xml b/java/com/android/incallui/incall/impl/res/values-ne/strings.xml index 6bcfb6dd2..beffa3e74 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"भिडियो कल"</string> <string name="incall_label_hold" msgid="4223472584896867896">"होल्ड गर्ने"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"कल थप्नुहोस्"</string> <string name="incall_label_mute" msgid="2180667027331706737">"म्यूट गर्ने"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"कल अन्त्य गर्ने"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"किप्याड"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"स्पिकर"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", खुला छ"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", बन्द छ"</string> <string name="incall_label_merge" msgid="720076442985913175">"मर्ज गर्ने"</string> <string name="incall_label_manage" msgid="2175471192903568159">"प्रबन्ध गर्ने"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"कल गर्ने व्यक्तिहरूलाई व्यवस्थित गर्नुहोस्"</string> <string name="incall_label_swap" msgid="10458642864243507">"साट्नुहोस्"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"आवाज"</string> <string name="incall_note_sent" msgid="4524130323127388367">"टिपोट पठाइयो"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-nl/strings.xml b/java/com/android/incallui/incall/impl/res/values-nl/strings.xml index 63f1ebd5d..e3c919e1a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videogespr."</string> <string name="incall_label_hold" msgid="4223472584896867896">"In wacht"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Oproep toev."</string> <string name="incall_label_mute" msgid="2180667027331706737">"Dempen"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Oproep beëindigen"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Toetsenblok"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Luidspreker"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", is aan"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", is uit"</string> <string name="incall_label_merge" msgid="720076442985913175">"Samenvoegen"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Beheren"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Bellers beheren"</string> <string name="incall_label_swap" msgid="10458642864243507">"Wisselen"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Geluid"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Notitie verzonden"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-no/strings.xml b/java/com/android/incallui/incall/impl/res/values-no/strings.xml index 75200869c..704384ea0 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videosamtale"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Sett på vent"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Nytt anrop"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Ignorer"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Avslutt samtalen"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Tastatur"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Høyttaler"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"er på"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"er av"</string> <string name="incall_label_merge" msgid="720076442985913175">"Slå sammen"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Administrer"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Håndter innringere"</string> <string name="incall_label_swap" msgid="10458642864243507">"Bytt"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Lyd"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Notatet er sendt"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-pa/strings.xml b/java/com/android/incallui/incall/impl/res/values-pa/strings.xml index 10a2865a6..d7e74ed83 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"ਵੀਡੀਓ ਕਾਲ"</string> <string name="incall_label_hold" msgid="4223472584896867896">"ਰੋਕ ਕੇ ਰੱਖੋ"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"ਕਾਲ ਸ਼ਾਮਲ ਕਰੋ"</string> <string name="incall_label_mute" msgid="2180667027331706737">"ਮਿਊਟ ਕਰੋ"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"ਕਾਲ ਖਤਮ ਕਰੋ"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"ਕੀਪੈਡ"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"ਸਪੀਕਰ"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ਚਾਲੂ ਹੈ"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ਬੰਦ ਹੈ"</string> <string name="incall_label_merge" msgid="720076442985913175">"ਰਲਗੱਡ ਕਰੋ"</string> <string name="incall_label_manage" msgid="2175471192903568159">"ਪ੍ਰਬੰਧਨ ਕਰੋ"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ਕਾਲਰਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ"</string> <string name="incall_label_swap" msgid="10458642864243507">"ਅਦਲੋ-ਬਦਲੋ"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"ਧੁਨੀ"</string> <string name="incall_note_sent" msgid="4524130323127388367">"ਨੋਟ-ਕਥਨ ਭੇਜਿਆ ਗਿਆ"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-pl/strings.xml b/java/com/android/incallui/incall/impl/res/values-pl/strings.xml index 4bf6a5833..9971d7553 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Rozmowa wid."</string> <string name="incall_label_hold" msgid="4223472584896867896">"Wstrzymaj"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Dodaj poł."</string> <string name="incall_label_mute" msgid="2180667027331706737">"Wycisz"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Zakończ"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Klawiatura"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Głośnik"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"– włączony"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"– wyłączony"</string> <string name="incall_label_merge" msgid="720076442985913175">"Scal"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Zarządzaj"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Zarządzaj rozmówcami"</string> <string name="incall_label_swap" msgid="10458642864243507">"Przełącz"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Dźwięk"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Notatka wysłana"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml b/java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml index 7ca6b6b6b..538c20c0b 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videocham."</string> <string name="incall_label_hold" msgid="4223472584896867896">"Em espera"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Adic chamada"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Desativar"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Encerrar"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Alto-falante"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"ativado"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"desativado"</string> <string name="incall_label_merge" msgid="720076442985913175">"Mesclar"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Gerenciar"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gerenciar os autores das chamadas"</string> <string name="incall_label_swap" msgid="10458642864243507">"Trocar"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Som"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Nota enviada"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml b/java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml index 750e57e37..376ee8443 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videochamada"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Em espera"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Adic. cham."</string> <string name="incall_label_mute" msgid="2180667027331706737">"Desativ. som"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Term. cham."</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Altifalante"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ativado"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", desativado"</string> <string name="incall_label_merge" msgid="720076442985913175">"Unir"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Gerir"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gerir autores das chamadas"</string> <string name="incall_label_swap" msgid="10458642864243507">"Alternar"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Som"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Nota enviada"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-pt/strings.xml b/java/com/android/incallui/incall/impl/res/values-pt/strings.xml index 7ca6b6b6b..538c20c0b 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videocham."</string> <string name="incall_label_hold" msgid="4223472584896867896">"Em espera"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Adic chamada"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Desativar"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Encerrar"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Alto-falante"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"ativado"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"desativado"</string> <string name="incall_label_merge" msgid="720076442985913175">"Mesclar"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Gerenciar"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gerenciar os autores das chamadas"</string> <string name="incall_label_swap" msgid="10458642864243507">"Trocar"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Som"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Nota enviada"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-ro/strings.xml b/java/com/android/incallui/incall/impl/res/values-ro/strings.xml index 1f93da9be..81dcdf3cc 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Apel video"</string> <string name="incall_label_hold" msgid="4223472584896867896">"În așteptare"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Încă un apel"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Dezactivați"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Încheiați"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Tastatură"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Difuzor"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", e activat"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", dezactivat"</string> <string name="incall_label_merge" msgid="720076442985913175">"Îmbinați"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Gestionați"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gestionați apelanții"</string> <string name="incall_label_swap" msgid="10458642864243507">"Schimbați"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Sunet"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Nota a fost trimisă"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-ru/strings.xml b/java/com/android/incallui/incall/impl/res/values-ru/strings.xml index 89192c3ae..274f8fff7 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Видеовызов"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Удерживать"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Добавить вызов"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Выкл. звук"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Завершить вызов"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Клавиатура"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Динамик"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", включен"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", отключен"</string> <string name="incall_label_merge" msgid="720076442985913175">"Объединить"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Управление"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Управление абонентами"</string> <string name="incall_label_swap" msgid="10458642864243507">"Переключить"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Звук"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Сообщение отправлено"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-si/strings.xml b/java/com/android/incallui/incall/impl/res/values-si/strings.xml index 209bb77b1..a600c2193 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"වීඩියෝ ඇමතුම"</string> <string name="incall_label_hold" msgid="4223472584896867896">"රඳවා ගන්න"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"ඇමතුම එක් ක."</string> <string name="incall_label_mute" msgid="2180667027331706737">"නිහඬ කරන්න"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"ඇමතුම නිම ක."</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"යතුරු පුවරුව"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"ස්පීකරය"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", සක්රියයි"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", අක්රියයි"</string> <string name="incall_label_merge" msgid="720076442985913175">"ඒකාබද්ධ කර."</string> <string name="incall_label_manage" msgid="2175471192903568159">"කළමනාකරණය ක."</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"අමතන්නන් කළමනාකරණය කරන්න"</string> <string name="incall_label_swap" msgid="10458642864243507">"මාරු කරන්න"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"හඬ"</string> <string name="incall_note_sent" msgid="4524130323127388367">"සටහන යවන ලදී"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-sk/strings.xml b/java/com/android/incallui/incall/impl/res/values-sk/strings.xml index 4e06aee32..d74d19e22 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videohovor"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Podržať"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Pridať hovor"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Vypnúť zvuk"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Ukonč. hovor"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Klávesnica"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Reproduktor"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", je zapnutý"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", je vypnutý"</string> <string name="incall_label_merge" msgid="720076442985913175">"Zlúčiť"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Spravovať"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Spravovať volajúcich"</string> <string name="incall_label_swap" msgid="10458642864243507">"Zameniť"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Zvuk"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Poznámka bola odoslaná"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-sl/strings.xml b/java/com/android/incallui/incall/impl/res/values-sl/strings.xml index 7cdb6c88c..782ce444b 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videoklic"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Zadrži"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Dodaj klic"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Izklopi zvok"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Končaj klic"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Tipkovnica"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Zvočnik"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", vklopljen"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", izklopljen"</string> <string name="incall_label_merge" msgid="720076442985913175">"Združi"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Upravljanje"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Upravljanje klicateljev"</string> <string name="incall_label_swap" msgid="10458642864243507">"Zamenjaj"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Zvok"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Opomba je poslana"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-sq/strings.xml b/java/com/android/incallui/incall/impl/res/values-sq/strings.xml index 9ba18b5f4..a0fca3668 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Video tel."</string> <string name="incall_label_hold" msgid="4223472584896867896">"Në pritje"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Shto telef."</string> <string name="incall_label_mute" msgid="2180667027331706737">"Hiqi zërin"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Mbyll tel."</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Blloku i tasteve"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Altoparlant"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", është aktiv"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", është joaktiv"</string> <string name="incall_label_merge" msgid="720076442985913175">"Shkri"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Menaxho"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Menaxho telefonuesit"</string> <string name="incall_label_swap" msgid="10458642864243507">"Shkëmbe"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Tingulli"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Shënimi u dërgua"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-sr/strings.xml b/java/com/android/incallui/incall/impl/res/values-sr/strings.xml index 56a968453..ec704511b 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Видео позив"</string> <string name="incall_label_hold" msgid="4223472584896867896">"На чекање"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Додај позив"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Искључи звук"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Заврши позив"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Тастатура"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Звучник"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", укључен"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", искључен"</string> <string name="incall_label_merge" msgid="720076442985913175">"Обједини"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Управљај"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Управљајте позиваоцима"</string> <string name="incall_label_swap" msgid="10458642864243507">"Замени"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Звук"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Белешка је послата"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-sv/strings.xml b/java/com/android/incallui/incall/impl/res/values-sv/strings.xml index 27d83b74b..ded45221c 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Videosamtal"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Parkera"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Lägg t samt."</string> <string name="incall_label_mute" msgid="2180667027331706737">"Ljud av"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Avsl. samtal"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Knappsats"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Högtalare"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", är på"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", är av"</string> <string name="incall_label_merge" msgid="720076442985913175">"Sammanfoga"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Hantera"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Hantera uppringare"</string> <string name="incall_label_swap" msgid="10458642864243507">"Växla"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Ljud"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Anteckning skickad"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-sw/strings.xml b/java/com/android/incallui/incall/impl/res/values-sw/strings.xml index 136fe1713..df634f469 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Hangout ya video"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Shikilia"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Ongeza simu"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Zima maikrofoni"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Kata simu"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Vitufe vya Simu"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Spika"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", kimewashwa"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", kimezimwa"</string> <string name="incall_label_merge" msgid="720076442985913175">"Unganisha"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Dhibiti"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Dhibiti wanaopiga simu"</string> <string name="incall_label_swap" msgid="10458642864243507">"Badili"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Sauti"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Dokezo limetumwa"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-ta/strings.xml b/java/com/android/incallui/incall/impl/res/values-ta/strings.xml index 342f8d041..5c94abff4 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"வீடியோ கால்"</string> <string name="incall_label_hold" msgid="4223472584896867896">"ஹோல்டில் வை"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"அழைப்பை சேர்"</string> <string name="incall_label_mute" msgid="2180667027331706737">"முடக்கு"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"அழைப்பை முடி"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"விசைத்தளம்"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"ஸ்பீக்கர்"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ஆன்"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ஆஃப்"</string> <string name="incall_label_merge" msgid="720076442985913175">"இணை"</string> <string name="incall_label_manage" msgid="2175471192903568159">"நிர்வகி"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"அழைப்பாளர்களை நிர்வகிக்கும்"</string> <string name="incall_label_swap" msgid="10458642864243507">"மாற்று"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"ஒலி"</string> <string name="incall_note_sent" msgid="4524130323127388367">"குறிப்பு அனுப்பப்பட்டது"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-te/strings.xml b/java/com/android/incallui/incall/impl/res/values-te/strings.xml index 004895647..0cb3fb837 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"వీడియో కాల్"</string> <string name="incall_label_hold" msgid="4223472584896867896">"హోల్డ్ చేయి"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"కాల్ జోడించు"</string> <string name="incall_label_mute" msgid="2180667027331706737">"మ్యూట్ చేయి"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"కాల్ ముగించు"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"కీప్యాడ్"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"స్పీకర్"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ఆన్లో ఉంది"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ఆఫ్లో ఉంది"</string> <string name="incall_label_merge" msgid="720076442985913175">"విలీనం చేయి"</string> <string name="incall_label_manage" msgid="2175471192903568159">"నిర్వహించు"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"కాలర్లను నిర్వహిస్తుంది"</string> <string name="incall_label_swap" msgid="10458642864243507">"మార్చు"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"శబ్దం"</string> <string name="incall_note_sent" msgid="4524130323127388367">"గమనిక పంపబడింది"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-th/strings.xml b/java/com/android/incallui/incall/impl/res/values-th/strings.xml index a74028842..0929cfc23 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"แฮงเอาท์วิดีโอ"</string> <string name="incall_label_hold" msgid="4223472584896867896">"พักสาย"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"เพิ่มการโทร"</string> <string name="incall_label_mute" msgid="2180667027331706737">"ปิดเสียง"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"วางสาย"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"ปุ่มกด"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"ลำโพง"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"เปิดอยู่"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"ปิดอยู่"</string> <string name="incall_label_merge" msgid="720076442985913175">"รวม"</string> <string name="incall_label_manage" msgid="2175471192903568159">"จัดการ"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"จัดการผู้โทร"</string> <string name="incall_label_swap" msgid="10458642864243507">"สลับ"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"เสียง"</string> <string name="incall_note_sent" msgid="4524130323127388367">"ส่งโน้ตแล้ว"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-tl/strings.xml b/java/com/android/incallui/incall/impl/res/values-tl/strings.xml index 46ff79731..1ac2ef88c 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Video call"</string> <string name="incall_label_hold" msgid="4223472584896867896">"I-hold"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Mag-add: tawag"</string> <string name="incall_label_mute" msgid="2180667027331706737">"I-mute"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Tapusin ang tawag"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Keypad"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Speaker"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">",ay On"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ay Off"</string> <string name="incall_label_merge" msgid="720076442985913175">"I-merge"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Pamahalaan"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Pamahalaan ang mga tumatawag"</string> <string name="incall_label_swap" msgid="10458642864243507">"Pagpalitin"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Tunog"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Naipadala ang tala"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-tr/strings.xml b/java/com/android/incallui/incall/impl/res/values-tr/strings.xml index 89ca3302f..241b69429 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Görü. görüş."</string> <string name="incall_label_hold" msgid="4223472584896867896">"Beklemeye al"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Çağrı ekle"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Sesi kapat"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Çğryı sonldr"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Tuş takımı"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Hoparlör"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", Açık"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", Kapalı"</string> <string name="incall_label_merge" msgid="720076442985913175">"Birleştir"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Yönet"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Arayanları yönetin"</string> <string name="incall_label_swap" msgid="10458642864243507">"Değiştir"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Ses"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Not gönderildi"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-uk/strings.xml b/java/com/android/incallui/incall/impl/res/values-uk/strings.xml index 516bcb757..1821556fa 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Відеодзвінок"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Утримувати"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Дод. виклик"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Без звуку"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Завер. викл."</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Клавіатура"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Динамік"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", увімкнено"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", вимкнено"</string> <string name="incall_label_merge" msgid="720076442985913175">"Об’єднати"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Керувати"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Керувати абонентами"</string> <string name="incall_label_swap" msgid="10458642864243507">"Поміняти"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Звук"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Нотатку надіслано"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-ur/strings.xml b/java/com/android/incallui/incall/impl/res/values-ur/strings.xml index 53ba19031..fed0af6c2 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"ویڈیو کال"</string> <string name="incall_label_hold" msgid="4223472584896867896">"ہولڈ کریں"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"کال شامل کریں"</string> <string name="incall_label_mute" msgid="2180667027331706737">"خاموش کریں"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"کال ختم کریں"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"کی پیڈ"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"اسپیکر"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"، آن ہے"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"، آف ہے"</string> <string name="incall_label_merge" msgid="720076442985913175">"ضم کریں"</string> <string name="incall_label_manage" msgid="2175471192903568159">"نظم کریں"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"کالرز کا نظم کریں"</string> <string name="incall_label_swap" msgid="10458642864243507">"تبادلہ کریں"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"آواز"</string> <string name="incall_note_sent" msgid="4524130323127388367">"نوٹ بھیج دیا گیا"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-uz/strings.xml b/java/com/android/incallui/incall/impl/res/values-uz/strings.xml index 881848965..7d6af27b2 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Video qo‘n."</string> <string name="incall_label_hold" msgid="4223472584896867896">"Pauza"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Chaqiruv"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Ovozsiz"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Tugatish"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Klaviatura"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Karnay"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", yoniq"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", o‘chiq"</string> - <string name="incall_label_merge" msgid="720076442985913175">"Birlashtir."</string> + <string name="incall_label_merge" msgid="720076442985913175">"Birlashtirish"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Boshqarish"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Qo‘ng‘iroq qiluvchilarni boshqarish"</string> <string name="incall_label_swap" msgid="10458642864243507">"Almashish"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Ovoz"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Qayd yuborildi"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-vi/strings.xml b/java/com/android/incallui/incall/impl/res/values-vi/strings.xml index 29f85efab..42e320a7a 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Gọi điện video"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Giữ"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Thêm cuộc gọi"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Tắt tiếng"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Kết thúc cuộc gọi"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Bàn phím"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Loa"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", đang bật"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", đang tắt"</string> <string name="incall_label_merge" msgid="720076442985913175">"Hợp nhất"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Quản lý"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Quản lý người gọi"</string> <string name="incall_label_swap" msgid="10458642864243507">"Hoán đổi"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Âm thanh"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Đã gửi ghi chú"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml deleted file mode 100644 index e73eb934c..000000000 --- a/java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<resources> - <dimen name="incall_button_horizontal_padding">16dp</dimen> - <dimen name="incall_button_vertical_padding">16dp</dimen> - <dimen name="incall_labeled_button_size">64dp</dimen> - <dimen name="tools_button_height">92dp</dimen> -</resources> diff --git a/java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml new file mode 100644 index 000000000..834ea2f30 --- /dev/null +++ b/java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + +<resources> + <dimen name="incall_button_horizontal_padding">16dp</dimen> + <dimen name="incall_button_vertical_padding">16dp</dimen> + <dimen name="incall_labeled_button_size">64dp</dimen> + <dimen name="tools_button_height">92dp</dimen> +</resources> diff --git a/java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml deleted file mode 100644 index 502ae72dc..000000000 --- a/java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<resources> - <dimen name="incall_button_horizontal_padding">32dp</dimen> - <dimen name="incall_button_vertical_padding">32dp</dimen> -</resources> diff --git a/java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml new file mode 100644 index 000000000..c7ac35efc --- /dev/null +++ b/java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + +<resources> + <dimen name="incall_button_horizontal_padding">32dp</dimen> + <dimen name="incall_button_vertical_padding">32dp</dimen> +</resources> diff --git a/java/com/android/incallui/incall/impl/res/values-zh-rCN/strings.xml b/java/com/android/incallui/incall/impl/res/values-zh-rCN/strings.xml index ec6404569..f0cca9060 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"视频通话"</string> <string name="incall_label_hold" msgid="4223472584896867896">"保持"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"添加通话"</string> <string name="incall_label_mute" msgid="2180667027331706737">"静音"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"结束通话"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"拨号键盘"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"免提"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">",已开启"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">",已关闭"</string> <string name="incall_label_merge" msgid="720076442985913175">"合并"</string> <string name="incall_label_manage" msgid="2175471192903568159">"管理"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"管理来电者"</string> <string name="incall_label_swap" msgid="10458642864243507">"切换"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"声音"</string> <string name="incall_note_sent" msgid="4524130323127388367">"已发送备注"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml b/java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml index 63cd6d8c8..c38ef35a0 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"視像通話"</string> <string name="incall_label_hold" msgid="4223472584896867896">"保留"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"新增通話"</string> <string name="incall_label_mute" msgid="2180667027331706737">"靜音"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"結束通話"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"小鍵盤"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"揚聲器"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">",已開啟"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">",已關閉"</string> <string name="incall_label_merge" msgid="720076442985913175">"合併"</string> <string name="incall_label_manage" msgid="2175471192903568159">"管理"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"管理來電者"</string> <string name="incall_label_swap" msgid="10458642864243507">"切換"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"音效"</string> <string name="incall_note_sent" msgid="4524130323127388367">"已傳送筆記"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml b/java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml index be3103ba6..c04b8309e 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"視訊通話"</string> <string name="incall_label_hold" msgid="4223472584896867896">"保留"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"新增通話"</string> <string name="incall_label_mute" msgid="2180667027331706737">"靜音"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"結束通話"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"撥號鍵盤"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"擴音模式"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">",已開啟"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">",已關閉"</string> <string name="incall_label_merge" msgid="720076442985913175">"合併"</string> <string name="incall_label_manage" msgid="2175471192903568159">"管理"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"管理來電者"</string> <string name="incall_label_swap" msgid="10458642864243507">"切換"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"音訊"</string> <string name="incall_note_sent" msgid="4524130323127388367">"備註已送出"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values-zu/strings.xml b/java/com/android/incallui/incall/impl/res/values-zu/strings.xml index df3f79484..a23a1d5e3 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 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="incall_label_videocall" msgid="2208755440134676113">"Ikholi yevidiyo ye-Hangout"</string> <string name="incall_label_hold" msgid="4223472584896867896">"Bamba"</string> <string name="incall_label_add_call" msgid="5641663436373994915">"Engeza ikholi"</string> <string name="incall_label_mute" msgid="2180667027331706737">"Thulisa"</string> + <string name="incall_label_end_call" msgid="5434079261446614887">"Qeda ikholi"</string> <string name="incall_label_dialpad" msgid="8609779533654156550">"Ikhiphedi"</string> - <string name="incall_label_speaker" msgid="8100402799687856933">"Isipikha"</string> <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ivuliwe"</string> <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ivaliwe"</string> <string name="incall_label_merge" msgid="720076442985913175">"Hlanganisa"</string> <string name="incall_label_manage" msgid="2175471192903568159">"Phatha"</string> <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Phatha abashayi"</string> <string name="incall_label_swap" msgid="10458642864243507">"Shintsha"</string> - <string name="incall_label_audio" msgid="8616473242030174797">"Umsindo"</string> <string name="incall_note_sent" msgid="4524130323127388367">"Inothi lithunyelwe"</string> </resources> diff --git a/java/com/android/incallui/incall/impl/res/values/strings.xml b/java/com/android/incallui/incall/impl/res/values/strings.xml index 054ca9687..2b30dfa53 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 @@ <?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> <resources> <!-- Button shown during a phone call to upgrade to video. @@ -17,13 +32,13 @@ [CHAR LIMIT=12] --> <string name="incall_label_mute">Mute</string> - <!-- Button shown during a phone call to show the dialpad. + <!-- Button shown during a phone call to end the call. [CHAR LIMIT=12] --> - <string name="incall_label_dialpad">Keypad</string> + <string name="incall_label_end_call">End call</string> - <!-- Button shown during a phone to route audio from earpiece to speaker phone. + <!-- Button shown during a phone call to show the dialpad. [CHAR LIMIT=12] --> - <string name="incall_label_speaker">Speaker</string> + <string name="incall_label_dialpad">Keypad</string> <!-- Talkback text for speaker button status. [CHAR LIMIT=12] --> <string name="incall_talkback_speaker_on">, is on</string> @@ -45,12 +60,9 @@ [CHAR LIMIT=12] --> <string name="incall_label_swap">Swap</string> - <!-- Button shown during a phone to switch the audio route. - [CHAR LIMIT=12] --> - <string name="incall_label_audio">Sound</string> <!-- Used to inform the user that the note associated with an outgoing call has been sent. [CHAR LIMIT=32] --> <string name="incall_note_sent">Note sent</string> -</resources>
\ No newline at end of file +</resources> diff --git a/java/com/android/incallui/incall/protocol/PrimaryCallState.java b/java/com/android/incallui/incall/protocol/PrimaryCallState.java index 2ae6a18e5..26dd3887a 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 Binary files differdeleted file mode 100644 index 3d9f683a5..000000000 --- a/java/com/android/incallui/res/drawable-hdpi/img_conference.png +++ /dev/null diff --git a/java/com/android/incallui/res/drawable-mdpi/img_conference.png b/java/com/android/incallui/res/drawable-mdpi/img_conference.png Binary files differdeleted file mode 100644 index 0694dbd55..000000000 --- a/java/com/android/incallui/res/drawable-mdpi/img_conference.png +++ /dev/null diff --git a/java/com/android/incallui/res/drawable-xhdpi/img_conference.png b/java/com/android/incallui/res/drawable-xhdpi/img_conference.png Binary files differdeleted file mode 100644 index b0dbcc2dc..000000000 --- a/java/com/android/incallui/res/drawable-xhdpi/img_conference.png +++ /dev/null diff --git a/java/com/android/incallui/res/drawable-xxhdpi/img_conference.png b/java/com/android/incallui/res/drawable-xxhdpi/img_conference.png Binary files differdeleted file mode 100644 index a8dba5ed0..000000000 --- a/java/com/android/incallui/res/drawable-xxhdpi/img_conference.png +++ /dev/null diff --git a/java/com/android/incallui/res/drawable-xxxhdpi/img_conference.png b/java/com/android/incallui/res/drawable-xxxhdpi/img_conference.png Binary files differdeleted file mode 100644 index eb42b5552..000000000 --- a/java/com/android/incallui/res/drawable-xxxhdpi/img_conference.png +++ /dev/null diff --git a/java/com/android/incallui/res/values-ca/strings.xml b/java/com/android/incallui/res/values-ca/strings.xml index 5148db540..ad34b00ef 100644 --- a/java/com/android/incallui/res/values-ca/strings.xml +++ b/java/com/android/incallui/res/values-ca/strings.xml @@ -136,6 +136,6 @@ <string name="generic_conference_call_name" msgid="1546941472424243894">"En una trucada"</string> <string name="video_call_wifi_to_lte_handover_toast" msgid="2495974172657183700">"S\'està continuant la trucada mitjançant dades mòbils…"</string> <string name="video_call_lte_to_wifi_failed_title" msgid="2793524281399509056">"No s\'ha pogut canviar a la xarxa Wi-Fi"</string> - <string name="video_call_lte_to_wifi_failed_message" msgid="5950700221126447109">"La videotrucada es mantindrà a la xarxa mòbil. És possible que s\'apliquin càrrecs de dades estàndard."</string> + <string name="video_call_lte_to_wifi_failed_message" msgid="5950700221126447109">"La videotrucada es mantindrà a la xarxa mòbil. És possible que s\'hi apliquin càrrecs de dades estàndard."</string> <string name="video_call_lte_to_wifi_failed_do_not_show" msgid="7609115874511223150">"No ho tornis a mostrar"</string> </resources> diff --git a/java/com/android/incallui/res/values-mcc262-mnc01/strings.xml b/java/com/android/incallui/res/values-mcc262-mnc01/strings.xml new file mode 100644 index 000000000..2679653a7 --- /dev/null +++ b/java/com/android/incallui/res/values-mcc262-mnc01/strings.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2013 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + +<resources> + <!-- This is customization of wifi call notification only for DTAG of Germany. --> + <!-- The "label" of the in-call Notification for an ongoing call, which is being made over + Wi-Fi. [CHAR LIMIT=60] --> + <string name="notification_ongoing_call_wifi">Ongoing WLAN Call</string> + <!-- The "label" of the in-call Notification for an ongoing work call, which is being made + over Wi-Fi. [CHAR LIMIT=60] --> + <string name="notification_ongoing_work_call_wifi">Ongoing WLAN work call</string> + <!-- The "label" of the in-call Notification for an incoming ringing call, + which is being made over Wi-Fi. [CHAR LIMIT=60] --> + <string name="notification_incoming_call_wifi">Incoming WLAN Call</string> + <!-- The "label" of the in-call Notification for an incoming ringing work call, + which is being made over Wi-Fi. [CHAR LIMIT=60] --> + <string name="notification_incoming_work_call_wifi">Incoming WLAN work call</string> +</resources>
\ No newline at end of file diff --git a/java/com/android/incallui/res/values-uz/strings.xml b/java/com/android/incallui/res/values-uz/strings.xml index 38285015a..b04972ffd 100644 --- a/java/com/android/incallui/res/values-uz/strings.xml +++ b/java/com/android/incallui/res/values-uz/strings.xml @@ -36,7 +36,7 @@ <string name="notification_ongoing_call_wifi" msgid="297183051021070949">"Chiquvchi Wi-Fi qo‘ng‘irog‘i"</string> <string name="notification_ongoing_work_call_wifi" msgid="6769311641293583197">"Chiquvchi Wi-Fi ishchi qo‘ng‘irog‘i"</string> <string name="notification_on_hold" msgid="7141827443379205682">"Kutmoqda"</string> - <string name="notification_incoming_call" msgid="7520580807513849283">"Kiruvchi qo‘ng‘iroq"</string> + <string name="notification_incoming_call" msgid="7520580807513849283">"Kiruvchi chaqiruv"</string> <string name="notification_incoming_call_with_photo" msgid="4360505044807517422">"Suratga ega kiruvchi chaqiruv"</string> <string name="notification_incoming_call_with_message" msgid="5608687985694956601">"Xabarga ega kiruvchi chaqiruv"</string> <string name="notification_incoming_call_with_location" msgid="4519498445081598767">"Joylashuv axborotiga ega kiruvchi chaqiruv"</string> diff --git a/java/com/android/incallui/res/values/dimens.xml b/java/com/android/incallui/res/values/dimens.xml index 18816f645..fb4934d01 100644 --- a/java/com/android/incallui/res/values/dimens.xml +++ b/java/com/android/incallui/res/values/dimens.xml @@ -38,7 +38,7 @@ <dimen name="incall_dialpad_zero_key_number_margin_bottom">0dp</dimen> <dimen name="incall_dialpad_digits_adjustable_text_size">20sp</dimen> <dimen name="incall_dialpad_digits_adjustable_height">50dp</dimen> - <dimen name="incall_dialpad_key_numbers_size">36sp</dimen> + <dimen name="incall_dialpad_key_numbers_size">36dp</dimen> <!-- Dimensions for OTA Call Card --> <dimen name="otaactivate_layout_marginTop">10dp</dimen> diff --git a/java/com/android/incallui/res/values/styles.xml b/java/com/android/incallui/res/values/styles.xml index 68a38f0b2..3c036c95f 100644 --- a/java/com/android/incallui/res/values/styles.xml +++ b/java/com/android/incallui/res/values/styles.xml @@ -78,4 +78,13 @@ <item name="android:colorAccent">@color/dialer_theme_color</item> </style> + <style name="Theme.Incall.DialogHolder" parent="Theme.AppCompat.Translucent"> + <item name="android:windowBackground">@android:color/transparent</item> + <item name="android:windowActivityTransitions">false</item> + + <item name="android:statusBarColor">@android:color/transparent</item> + <item name="android:navigationBarColor">@android:color/transparent</item> + <item name="android:windowDrawsSystemBarBackgrounds">true</item> + </style> + </resources> diff --git a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml index ed29e78c4..3b3327d4f 100644 --- a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml +++ b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml @@ -24,8 +24,8 @@ <ImageView android:id="@id/answer_message_image" - android:layout_width="match_parent" - android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:layout_height="match_parent" android:layout_marginTop="@dimen/answer_message_contents_margin_top" android:layout_marginBottom="4dp" android:layout_centerInParent="true" @@ -34,7 +34,7 @@ android:background="@drawable/answer_data_background" android:elevation="@dimen/answer_data_elevation" android:adjustViewBounds="true" - android:scaleType="fitCenter"/> + android:scaleType="centerCrop"/> <ProgressBar android:layout_width="wrap_content" diff --git a/java/com/android/incallui/speakerbuttonlogic/AndroidManifest.xml b/java/com/android/incallui/speakerbuttonlogic/AndroidManifest.xml new file mode 100644 index 000000000..9557d0362 --- /dev/null +++ b/java/com/android/incallui/speakerbuttonlogic/AndroidManifest.xml @@ -0,0 +1,18 @@ +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> +<manifest + package="com.android.incallui.speakerbuttonlogic"> +</manifest> diff --git a/java/com/android/incallui/speakerbuttonlogic/SpeakerButtonInfo.java b/java/com/android/incallui/speakerbuttonlogic/SpeakerButtonInfo.java new file mode 100644 index 000000000..5ab821be0 --- /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 e12032abf..d98545feb 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 b7a960e35..489f72b7d 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); @@ -834,6 +828,9 @@ public class SurfaceViewVideoCallFragment extends Fragment } @Override + public void onAudioRouteSelectorDismiss() {} + + @Override public void setPrimary(@NonNull PrimaryInfo primaryInfo) { LogUtil.i("SurfaceViewVideoCallFragment.setPrimary", primaryInfo.toString()); contactGridManager.setPrimary(primaryInfo); diff --git a/java/com/android/incallui/video/impl/VideoCallFragment.java b/java/com/android/incallui/video/impl/VideoCallFragment.java index 8e2f5aefd..6e45f928a 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. */ @@ -853,6 +846,9 @@ public class VideoCallFragment extends Fragment } @Override + public void onAudioRouteSelectorDismiss() {} + + @Override public void setPrimary(@NonNull PrimaryInfo primaryInfo) { LogUtil.i("VideoCallFragment.setPrimary", primaryInfo.toString()); contactGridManager.setPrimary(primaryInfo); @@ -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 c67246675..1a2bc2429 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 --> -<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" @@ -32,7 +32,7 @@ android:id="@+id/videocall_remote_video_off" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="center" + android:layout_centerInParent="true" android:accessibilityTraversalBefore="@+id/videocall_speaker_button" android:drawablePadding="8dp" android:drawableTop="@drawable/quantum_ic_videocam_off_white_36" @@ -71,20 +71,23 @@ android:visibility="gone" android:importantForAccessibility="no" tools:visibility="visible"/> - - <ImageView - android:id="@+id/videocall_video_preview_mute_overlay" - android:layout_width="32dp" - android:layout_height="32dp" - android:layout_gravity="center" - android:background="@drawable/videocall_background_circle_white" - android:contentDescription="@string/incall_content_description_muted" - android:scaleType="center" - android:src="@drawable/quantum_ic_mic_off_black_24" - android:visibility="gone" - tools:visibility="visible"/> </FrameLayout> + <ImageView + android:id="@+id/videocall_video_preview_mute_overlay" + android:layout_width="32dp" + android:layout_height="32dp" + android:layout_alignBottom="@id/videocall_preview_root" + android:layout_alignEnd="@id/videocall_preview_root" + android:layout_marginBottom="-8dp" + android:layout_marginEnd="-8dp" + android:background="@drawable/videocall_background_circle_white" + android:contentDescription="@string/incall_content_description_muted" + android:scaleType="center" + android:src="@drawable/quantum_ic_mic_off_black_24" + android:visibility="gone" + tools:visibility="visible"/> + <View android:id="@+id/videocall_green_screen_background" android:layout_width="match_parent" @@ -102,4 +105,4 @@ android:layout_height="wrap_content" android:layout_gravity="top"/> -</FrameLayout> +</RelativeLayout> 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 a53fb6404..e9e7f9e8b 100644 --- a/java/com/android/incallui/video/impl/res/values-h580dp/dimens.xml +++ b/java/com/android/incallui/video/impl/res/values-h580dp/dimens.xml @@ -19,5 +19,5 @@ <dimen name="videocall_button_size">72dp</dimen> <dimen name="videocall_preview_width">88dp</dimen> <dimen name="videocall_preview_height">88dp</dimen> - <dimen name="videocall_preview_long">104dp</dimen> + <dimen name="videocall_preview_long">116dp</dimen> </resources> diff --git a/java/com/android/incallui/video/impl/res/values-land/dimens.xml b/java/com/android/incallui/video/impl/res/values-land/dimens.xml index 6485735e2..d0a5e409a 100644 --- a/java/com/android/incallui/video/impl/res/values-land/dimens.xml +++ b/java/com/android/incallui/video/impl/res/values-land/dimens.xml @@ -15,5 +15,5 @@ ~ limitations under the License --> <resources> - <dimen name="videocall_preview_long">92dp</dimen> + <dimen name="videocall_preview_long">96dp</dimen> </resources> diff --git a/java/com/android/incallui/video/impl/res/values-land/styles.xml b/java/com/android/incallui/video/impl/res/values-land/styles.xml index a809708df..f60dbd1d6 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 @@ --> <resources> <style name="VideoPreviewHolder"> - <item name="android:layout_gravity">bottom|end</item> + <item name="android:layout_alignParentBottom">true</item> + <item name="android:layout_alignParentEnd">true</item> <item name="android:layout_width">@dimen/videocall_preview_long</item> <item name="android:layout_height">@dimen/videocall_preview_height</item> <item name="android:layout_marginBottom">@dimen/videocall_preview_margin_bottom</item> diff --git a/java/com/android/incallui/video/impl/res/values-w460dp/dimens.xml b/java/com/android/incallui/video/impl/res/values-w460dp/dimens.xml index a53fb6404..e9e7f9e8b 100644 --- a/java/com/android/incallui/video/impl/res/values-w460dp/dimens.xml +++ b/java/com/android/incallui/video/impl/res/values-w460dp/dimens.xml @@ -19,5 +19,5 @@ <dimen name="videocall_button_size">72dp</dimen> <dimen name="videocall_preview_width">88dp</dimen> <dimen name="videocall_preview_height">88dp</dimen> - <dimen name="videocall_preview_long">104dp</dimen> + <dimen name="videocall_preview_long">116dp</dimen> </resources> diff --git a/java/com/android/incallui/video/impl/res/values/dimens.xml b/java/com/android/incallui/video/impl/res/values/dimens.xml index aa08c9d6d..606b158d9 100644 --- a/java/com/android/incallui/video/impl/res/values/dimens.xml +++ b/java/com/android/incallui/video/impl/res/values/dimens.xml @@ -17,7 +17,7 @@ <resources> <dimen name="videocall_preview_width">72dp</dimen> <dimen name="videocall_preview_height">72dp</dimen> - <dimen name="videocall_preview_long">84dp</dimen> + <dimen name="videocall_preview_long">96dp</dimen> <dimen name="videocall_preview_margin_bottom">24dp</dimen> <dimen name="videocall_preview_margin_start">24dp</dimen> <dimen name="videocall_preview_margin_end">24dp</dimen> diff --git a/java/com/android/incallui/video/impl/res/values/styles.xml b/java/com/android/incallui/video/impl/res/values/styles.xml index f73075f09..010aca2d1 100644 --- a/java/com/android/incallui/video/impl/res/values/styles.xml +++ b/java/com/android/incallui/video/impl/res/values/styles.xml @@ -23,7 +23,8 @@ <item name="android:stateListAnimator">@animator/disabled_alpha</item> </style> <style name="VideoPreviewHolder"> - <item name="android:layout_gravity">bottom|start</item> + <item name="android:layout_alignParentBottom">true</item> + <item name="android:layout_alignParentStart">true</item> <item name="android:layout_width">@dimen/videocall_preview_width</item> <item name="android:layout_height">@dimen/videocall_preview_long</item> <item name="android:layout_marginBottom">@dimen/videocall_preview_margin_bottom</item> diff --git a/java/com/android/incallui/videotech/ims/ImsVideoTech.java b/java/com/android/incallui/videotech/ims/ImsVideoTech.java index 01e4bb84c..2a0b7c504 100644 --- a/java/com/android/incallui/videotech/ims/ImsVideoTech.java +++ b/java/com/android/incallui/videotech/ims/ImsVideoTech.java @@ -183,8 +183,6 @@ public class ImsVideoTech implements VideoTech { public void stopTransmission() { LogUtil.enterBlock("ImsVideoTech.stopTransmission"); - setCamera(null); - int unpausedVideoState = getUnpausedVideoState(call.getDetails().getVideoState()); call.getVideoCall() .sendSessionModifyRequest( @@ -248,7 +246,7 @@ public class ImsVideoTech implements VideoTech { private boolean canPause() { return call.getDetails().can(Details.CAPABILITY_CAN_PAUSE_VIDEO) && call.getState() == Call.STATE_ACTIVE - && isTransmitting(); + && isTransmittingOrReceiving(); } static int getUnpausedVideoState(int videoState) { diff --git a/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java b/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java index e49d0b84d..386afdc45 100644 --- a/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java +++ b/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java @@ -20,6 +20,7 @@ import android.content.Context; import android.support.annotation.NonNull; import android.telecom.Call; import com.android.dialer.common.Assert; +import com.android.dialer.common.ConfigProviderBindings; import com.android.dialer.lightbringer.Lightbringer; import com.android.dialer.lightbringer.LightbringerListener; import com.android.incallui.video.protocol.VideoCallScreen; @@ -46,7 +47,10 @@ public class LightbringerTech implements VideoTech, LightbringerListener { @Override public boolean isAvailable(Context context) { - return callState == Call.STATE_ACTIVE && lightbringer.isReachable(context, callingNumber); + return ConfigProviderBindings.get(context) + .getBoolean("enable_lightbringer_video_upgrade", false) + && callState == Call.STATE_ACTIVE + && lightbringer.isReachable(context, callingNumber); } @Override diff --git a/java/com/android/voicemail/permissions.xml b/java/com/android/voicemail/AndroidManifest.xml index bedf06898..aedfd6fbf 100644 --- a/java/com/android/voicemail/permissions.xml +++ b/java/com/android/voicemail/AndroidManifest.xml @@ -1,3 +1,18 @@ +<!-- + ~ Copyright (C) 2017 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.voicemailomtp"> diff --git a/java/com/android/voicemail/impl/AndroidManifest.xml b/java/com/android/voicemail/impl/AndroidManifest.xml index 95e6e8212..be7dac10d 100644 --- a/java/com/android/voicemail/impl/AndroidManifest.xml +++ b/java/com/android/voicemail/impl/AndroidManifest.xml @@ -97,6 +97,11 @@ android:exported="false"/> <service + android:name="com.android.voicemail.impl.transcribe.TranscriptionService" + android:permission="android.permission.BIND_JOB_SERVICE" + android:exported="false"/> + + <service android:name="com.android.voicemail.impl.OmtpService" android:permission="android.permission.BIND_VISUAL_VOICEMAIL_SERVICE" android:exported="true" diff --git a/java/com/android/voicemail/impl/OmtpReceiver.java b/java/com/android/voicemail/impl/OmtpReceiver.java deleted file mode 100644 index 9baf95415..000000000 --- a/java/com/android/voicemail/impl/OmtpReceiver.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.voicemail.impl; - -import android.annotation.TargetApi; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.os.Build.VERSION_CODES; -import android.telecom.PhoneAccountHandle; -import android.telephony.VisualVoicemailSms; -import com.android.dialer.common.Assert; -import com.android.dialer.logging.DialerImpression; -import com.android.dialer.logging.Logger; -import com.android.voicemail.VoicemailComponent; -import com.android.voicemail.impl.settings.VisualVoicemailSettingsUtil; -import com.android.voicemail.impl.sync.VvmAccountManager; - -/** Listens to com.android.phone.vvm.ACTION_TEMP_VISUAL_VOICEMAIL_SERVICE_EVENT */ -@TargetApi(VERSION_CODES.O) -public class OmtpReceiver extends BroadcastReceiver { - - private static final String TAG = "VvmOmtpReceiver"; - - public static final String ACTION_SMS_RECEIVED = "com.android.vociemailomtp.sms.sms_received"; - - public static final String EXTRA_VOICEMAIL_SMS = "extra_voicemail_sms"; - - private static final String EXTRA_WHAT = "what"; - - private static final int MSG_ON_CELL_SERVICE_CONNECTED = 1; - - private static final int MSG_ON_SMS_RECEIVED = 2; - - private static final int MSG_ON_SIM_REMOVED = 3; - - private static final int MSG_TASK_STOPPED = 5; - - private static final String DATA_PHONE_ACCOUNT_HANDLE = "data_phone_account_handle"; - - private static final String DATA_SMS = "data_sms"; - - @Override - public void onReceive(Context context, Intent intent) { - // ACTION_VISUAL_VOICEMAIL_SERVICE_EVENT is not a protected broadcast pre-O. - if (!VoicemailComponent.get(context).getVoicemailClient().isVoicemailModuleEnabled()) { - VvmLog.e(TAG, "ACTION_VISUAL_VOICEMAIL_SERVICE_EVENT received when module is disabled"); - return; - } - - int what = intent.getIntExtra(EXTRA_WHAT, -1); - PhoneAccountHandle phoneAccountHandle = intent.getParcelableExtra(DATA_PHONE_ACCOUNT_HANDLE); - OmtpVvmCarrierConfigHelper config = new OmtpVvmCarrierConfigHelper(context, phoneAccountHandle); - if (!config.isValid()) { - VvmLog.i(TAG, "VVM not supported on " + phoneAccountHandle); - return; - } - if (!VisualVoicemailSettingsUtil.isEnabled(context, phoneAccountHandle) - && !config.isLegacyModeEnabled()) { - VvmLog.i(TAG, "VVM is disabled"); - return; - } - switch (what) { - case MSG_ON_CELL_SERVICE_CONNECTED: - VvmLog.i(TAG, "onCellServiceConnected"); - Logger.get(context).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED); - ActivationTask.start(context, phoneAccountHandle, null); - break; - case MSG_ON_SMS_RECEIVED: - VvmLog.i(TAG, "onSmsReceived"); - Logger.get(context).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED); - VisualVoicemailSms sms = intent.getParcelableExtra(DATA_SMS); - Intent receivedIntent = new Intent(ACTION_SMS_RECEIVED); - receivedIntent.setPackage(context.getPackageName()); - receivedIntent.putExtra(EXTRA_VOICEMAIL_SMS, sms); - context.sendBroadcast(receivedIntent); - break; - case MSG_ON_SIM_REMOVED: - VvmLog.i(TAG, "onSimRemoved"); - Logger.get(context).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED); - VvmAccountManager.removeAccount(context, phoneAccountHandle); - break; - case MSG_TASK_STOPPED: - VvmLog.i(TAG, "onStopped"); - Logger.get(context).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED); - break; - default: - throw Assert.createIllegalStateFailException("unexpected what: " + what); - } - } -} diff --git a/java/com/android/voicemail/impl/TelephonyManagerStub.java b/java/com/android/voicemail/impl/TelephonyManagerStub.java deleted file mode 100644 index 4762e9023..000000000 --- a/java/com/android/voicemail/impl/TelephonyManagerStub.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.voicemail.impl; - -import android.annotation.TargetApi; -import android.os.Build.VERSION_CODES; - -/** - * Temporary stub for public APIs that should be added into telephony manager. - * - * <p>TODO(b/32637799) remove this. - */ -@TargetApi(VERSION_CODES.O) -public class TelephonyManagerStub { - - public static void showVoicemailNotification(int voicemailCount) {} - - /** - * Dismisses the message waiting (voicemail) indicator. - * - * @param subId the subscription id we should dismiss the notification for. - */ - public static void clearMwiIndicator(int subId) {} - - public static void setShouldCheckVisualVoicemailConfigurationForMwi(int subId, boolean enabled) {} -} diff --git a/java/com/android/voicemail/impl/VvmPackageInstallReceiver.java b/java/com/android/voicemail/impl/VvmPackageInstallReceiver.java deleted file mode 100644 index 1e2de6070..000000000 --- a/java/com/android/voicemail/impl/VvmPackageInstallReceiver.java +++ /dev/null @@ -1,80 +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.voicemail.impl; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.telecom.PhoneAccountHandle; -import android.telecom.TelecomManager; -import com.android.voicemail.VoicemailComponent; -import com.android.voicemail.impl.settings.VisualVoicemailSettingsUtil; - -/** - * When a new package is installed, check if it matches any of the vvm carrier apps of the currently - * enabled dialer VVM sources. The dialer VVM client will be disabled upon carrier VVM app - * installation, unless it was explicitly enabled by the user. - */ -public class VvmPackageInstallReceiver extends BroadcastReceiver { - - private static final String TAG = "VvmPkgInstallReceiver"; - - @Override - public void onReceive(Context context, Intent intent) { - if (!VoicemailComponent.get(context).getVoicemailClient().isVoicemailModuleEnabled()) { - return; - } - - if (intent.getData() == null) { - return; - } - - String packageName = intent.getData().getSchemeSpecificPart(); - if (packageName == null) { - return; - } - - // This get called every time an app is installed and will be noisy. Don't log until the app - // is identified as a carrier VVM app. - for (PhoneAccountHandle phoneAccount : - context.getSystemService(TelecomManager.class).getCallCapablePhoneAccounts()) { - OmtpVvmCarrierConfigHelper carrierConfigHelper = - new OmtpVvmCarrierConfigHelper(context, phoneAccount); - if (!carrierConfigHelper.isValid()) { - continue; - } - if (carrierConfigHelper.getCarrierVvmPackageNames() == null) { - continue; - } - if (!carrierConfigHelper.getCarrierVvmPackageNames().contains(packageName)) { - continue; - } - - VvmLog.i(TAG, "Carrier app installed"); - if (VisualVoicemailSettingsUtil.isEnabledUserSet(context, phoneAccount)) { - // Skip the check if this voicemail source's setting is overridden by the user. - VvmLog.i(TAG, "VVM enabled by user, not disabling"); - continue; - } - - // Force deactivate the client. The user can re-enable it in the settings. - // There is no need to update the settings for deactivation. At this point, if the - // default value is used it should be false because a carrier package is present. - VvmLog.i(TAG, "Carrier VVM package installed, disabling system VVM client"); - VisualVoicemailSettingsUtil.setEnabled(context, phoneAccount, false); - } - } -} diff --git a/java/com/android/voicemail/impl/com/google/internal/communications/voicemailtranscription/v1/VoicemailTranscriptionServiceGrpc.java b/java/com/android/voicemail/impl/com/google/internal/communications/voicemailtranscription/v1/VoicemailTranscriptionServiceGrpc.java new file mode 100644 index 000000000..448c69356 --- /dev/null +++ b/java/com/android/voicemail/impl/com/google/internal/communications/voicemailtranscription/v1/VoicemailTranscriptionServiceGrpc.java @@ -0,0 +1,254 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.google.internal.communications.voicemailtranscription.v1; + +import static io.grpc.stub.ClientCalls.asyncUnaryCall; +import static io.grpc.stub.ClientCalls.asyncServerStreamingCall; +import static io.grpc.stub.ClientCalls.asyncClientStreamingCall; +import static io.grpc.stub.ClientCalls.asyncBidiStreamingCall; +import static io.grpc.stub.ClientCalls.blockingUnaryCall; +import static io.grpc.stub.ClientCalls.blockingServerStreamingCall; +import static io.grpc.stub.ClientCalls.futureUnaryCall; +import static io.grpc.MethodDescriptor.generateFullMethodName; +import static io.grpc.stub.ServerCalls.asyncUnaryCall; +import static io.grpc.stub.ServerCalls.asyncServerStreamingCall; +import static io.grpc.stub.ServerCalls.asyncClientStreamingCall; +import static io.grpc.stub.ServerCalls.asyncBidiStreamingCall; +import static io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall; +import static io.grpc.stub.ServerCalls.asyncUnimplementedStreamingCall; + +/** + * <pre> + * RPC service for transcribing voicemails. + * </pre> + */ +@javax.annotation.Generated( + value = "by gRPC proto compiler (version 1.0.3)", + comments = "Source: voicemail_transcription.proto") +public class VoicemailTranscriptionServiceGrpc { + + private VoicemailTranscriptionServiceGrpc() {} + + public static final String SERVICE_NAME = "google.internal.communications.voicemailtranscription.v1.VoicemailTranscriptionService"; + + // Static method descriptors that strictly reflect the proto. + @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901") + public static final io.grpc.MethodDescriptor<com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest, + com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse> METHOD_TRANSCRIBE_VOICEMAIL = + io.grpc.MethodDescriptor.create( + io.grpc.MethodDescriptor.MethodType.UNARY, + generateFullMethodName( + "google.internal.communications.voicemailtranscription.v1.VoicemailTranscriptionService", "TranscribeVoicemail"), + io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest.getDefaultInstance()), + io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse.getDefaultInstance())); + + /** + * Creates a new async stub that supports all call types for the service + */ + public static VoicemailTranscriptionServiceStub newStub(io.grpc.Channel channel) { + return new VoicemailTranscriptionServiceStub(channel); + } + + /** + * Creates a new blocking-style stub that supports unary and streaming output calls on the service + */ + public static VoicemailTranscriptionServiceBlockingStub newBlockingStub( + io.grpc.Channel channel) { + return new VoicemailTranscriptionServiceBlockingStub(channel); + } + + /** + * Creates a new ListenableFuture-style stub that supports unary and streaming output calls on the service + */ + public static VoicemailTranscriptionServiceFutureStub newFutureStub( + io.grpc.Channel channel) { + return new VoicemailTranscriptionServiceFutureStub(channel); + } + + /** + * <pre> + * RPC service for transcribing voicemails. + * </pre> + */ + public static abstract class VoicemailTranscriptionServiceImplBase implements io.grpc.BindableService { + + /** + * <pre> + * Returns a transcript of the given voicemail. + * </pre> + */ + public void transcribeVoicemail(com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest request, + io.grpc.stub.StreamObserver<com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse> responseObserver) { + asyncUnimplementedUnaryCall(METHOD_TRANSCRIBE_VOICEMAIL, responseObserver); + } + + @java.lang.Override public io.grpc.ServerServiceDefinition bindService() { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + METHOD_TRANSCRIBE_VOICEMAIL, + asyncUnaryCall( + new MethodHandlers< + com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest, + com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse>( + this, METHODID_TRANSCRIBE_VOICEMAIL))) + .build(); + } + } + + /** + * <pre> + * RPC service for transcribing voicemails. + * </pre> + */ + public static final class VoicemailTranscriptionServiceStub extends io.grpc.stub.AbstractStub<VoicemailTranscriptionServiceStub> { + private VoicemailTranscriptionServiceStub(io.grpc.Channel channel) { + super(channel); + } + + private VoicemailTranscriptionServiceStub(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected VoicemailTranscriptionServiceStub build(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + return new VoicemailTranscriptionServiceStub(channel, callOptions); + } + + /** + * <pre> + * Returns a transcript of the given voicemail. + * </pre> + */ + public void transcribeVoicemail(com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest request, + io.grpc.stub.StreamObserver<com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse> responseObserver) { + asyncUnaryCall( + getChannel().newCall(METHOD_TRANSCRIBE_VOICEMAIL, getCallOptions()), request, responseObserver); + } + } + + /** + * <pre> + * RPC service for transcribing voicemails. + * </pre> + */ + public static final class VoicemailTranscriptionServiceBlockingStub extends io.grpc.stub.AbstractStub<VoicemailTranscriptionServiceBlockingStub> { + private VoicemailTranscriptionServiceBlockingStub(io.grpc.Channel channel) { + super(channel); + } + + private VoicemailTranscriptionServiceBlockingStub(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected VoicemailTranscriptionServiceBlockingStub build(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + return new VoicemailTranscriptionServiceBlockingStub(channel, callOptions); + } + + /** + * <pre> + * Returns a transcript of the given voicemail. + * </pre> + */ + public com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse transcribeVoicemail(com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest request) { + return blockingUnaryCall( + getChannel(), METHOD_TRANSCRIBE_VOICEMAIL, getCallOptions(), request); + } + } + + /** + * <pre> + * RPC service for transcribing voicemails. + * </pre> + */ + public static final class VoicemailTranscriptionServiceFutureStub extends io.grpc.stub.AbstractStub<VoicemailTranscriptionServiceFutureStub> { + private VoicemailTranscriptionServiceFutureStub(io.grpc.Channel channel) { + super(channel); + } + + private VoicemailTranscriptionServiceFutureStub(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected VoicemailTranscriptionServiceFutureStub build(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + return new VoicemailTranscriptionServiceFutureStub(channel, callOptions); + } + + /** + * <pre> + * Returns a transcript of the given voicemail. + * </pre> + */ + public com.google.common.util.concurrent.ListenableFuture<com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse> transcribeVoicemail( + com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest request) { + return futureUnaryCall( + getChannel().newCall(METHOD_TRANSCRIBE_VOICEMAIL, getCallOptions()), request); + } + } + + private static final int METHODID_TRANSCRIBE_VOICEMAIL = 0; + + private static class MethodHandlers<Req, Resp> implements + io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>, + io.grpc.stub.ServerCalls.ServerStreamingMethod<Req, Resp>, + io.grpc.stub.ServerCalls.ClientStreamingMethod<Req, Resp>, + io.grpc.stub.ServerCalls.BidiStreamingMethod<Req, Resp> { + private final VoicemailTranscriptionServiceImplBase serviceImpl; + private final int methodId; + + public MethodHandlers(VoicemailTranscriptionServiceImplBase serviceImpl, int methodId) { + this.serviceImpl = serviceImpl; + this.methodId = methodId; + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public void invoke(Req request, io.grpc.stub.StreamObserver<Resp> responseObserver) { + switch (methodId) { + case METHODID_TRANSCRIBE_VOICEMAIL: + serviceImpl.transcribeVoicemail((com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest) request, + (io.grpc.stub.StreamObserver<com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse>) responseObserver); + break; + default: + throw new AssertionError(); + } + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public io.grpc.stub.StreamObserver<Req> invoke( + io.grpc.stub.StreamObserver<Resp> responseObserver) { + switch (methodId) { + default: + throw new AssertionError(); + } + } + } + + public static io.grpc.ServiceDescriptor getServiceDescriptor() { + return new io.grpc.ServiceDescriptor(SERVICE_NAME, + METHOD_TRANSCRIBE_VOICEMAIL); + } + +} diff --git a/java/com/android/voicemail/impl/fetch/VoicemailFetchedCallback.java b/java/com/android/voicemail/impl/fetch/VoicemailFetchedCallback.java index f386fce0e..d15ce12ef 100644 --- a/java/com/android/voicemail/impl/fetch/VoicemailFetchedCallback.java +++ b/java/com/android/voicemail/impl/fetch/VoicemailFetchedCallback.java @@ -23,9 +23,12 @@ import android.provider.VoicemailContract.Voicemails; import android.support.annotation.Nullable; import android.telecom.PhoneAccountHandle; import android.telecom.TelecomManager; +import com.android.dialer.common.Assert; +import com.android.dialer.common.concurrent.ThreadUtil; import com.android.voicemail.impl.R; import com.android.voicemail.impl.VvmLog; import com.android.voicemail.impl.imap.VoicemailPayload; +import com.android.voicemail.impl.transcribe.TranscriptionService; import java.io.IOException; import java.io.OutputStream; import org.apache.commons.io.IOUtils; @@ -56,6 +59,7 @@ public class VoicemailFetchedCallback { * @param voicemailPayload The object containing the content data for the voicemail */ public void setVoicemailContent(@Nullable VoicemailPayload voicemailPayload) { + Assert.isWorkerThread(); if (voicemailPayload == null) { VvmLog.i(TAG, "Payload not found, message has unsupported format"); ContentValues values = new ContentValues(); @@ -90,13 +94,23 @@ public class VoicemailFetchedCallback { ContentValues values = new ContentValues(); values.put(Voicemails.MIME_TYPE, voicemailPayload.getMimeType()); values.put(Voicemails.HAS_CONTENT, true); - updateVoicemail(values); + if (updateVoicemail(values)) { + ThreadUtil.postOnUiThread( + () -> { + if (!TranscriptionService.transcribeVoicemail(mContext, mUri)) { + VvmLog.w(TAG, String.format("Failed to schedule transcription for %s", mUri)); + } + }); + } } - private void updateVoicemail(ContentValues values) { + private boolean updateVoicemail(ContentValues values) { int updatedCount = mContentResolver.update(mUri, values, null, null); if (updatedCount != 1) { VvmLog.e(TAG, "Updating voicemail should have updated 1 row, was: " + updatedCount); + return false; + } else { + return true; } } } diff --git a/java/com/android/voicemail/impl/mail/MailTransport.java b/java/com/android/voicemail/impl/mail/MailTransport.java index 3df36d544..00339f03d 100644 --- a/java/com/android/voicemail/impl/mail/MailTransport.java +++ b/java/com/android/voicemail/impl/mail/MailTransport.java @@ -17,7 +17,9 @@ package com.android.voicemail.impl.mail; import android.content.Context; import android.net.Network; +import android.net.TrafficStats; import android.support.annotation.VisibleForTesting; +import com.android.dialer.constants.TrafficStatsTags; import com.android.voicemail.impl.OmtpEvents; import com.android.voicemail.impl.imap.ImapHelper; import com.android.voicemail.impl.mail.store.ImapStore; @@ -188,6 +190,7 @@ public class MailTransport { try { LogUtils.v(TAG, "createSocket: network specified"); + TrafficStats.setThreadStatsTag(TrafficStatsTags.VISUAL_VOICEMAIL_TAG); return mNetwork.getSocketFactory().createSocket(); } catch (IOException ioe) { LogUtils.d(TAG, ioe.toString()); diff --git a/java/com/android/voicemail/impl/scheduling/TaskSchedulerService.java b/java/com/android/voicemail/impl/scheduling/TaskSchedulerService.java deleted file mode 100644 index 5ad2447de..000000000 --- a/java/com/android/voicemail/impl/scheduling/TaskSchedulerService.java +++ /dev/null @@ -1,400 +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.voicemail.impl.scheduling; - -import android.annotation.TargetApi; -import android.app.Service; -import android.content.Context; -import android.content.Intent; -import android.os.Binder; -import android.os.Build.VERSION_CODES; -import android.os.Bundle; -import android.os.Handler; -import android.os.HandlerThread; -import android.os.IBinder; -import android.os.Looper; -import android.os.Message; -import android.support.annotation.MainThread; -import android.support.annotation.Nullable; -import android.support.annotation.VisibleForTesting; -import android.support.annotation.WorkerThread; -import com.android.voicemail.impl.Assert; -import com.android.voicemail.impl.NeededForTesting; -import com.android.voicemail.impl.VvmLog; -import com.android.voicemail.impl.scheduling.TaskQueue.NextTask; -import java.util.List; - -/** - * A service to queue and run {@link Task} with the {@link android.app.job.JobScheduler}. A task is - * queued using {@link Context#startService(Intent)}. The intent should contain enough information - * in {@link Intent#getExtras()} to construct the task (see {@link Tasks#createIntent(Context, - * Class)}). - * - * <p>All tasks are ran in the background with a wakelock being held by the {@link - * android.app.job.JobScheduler}, which is between {@link #onStartJob(Job, List)} and {@link - * #finishJob()}. The {@link TaskSchedulerJobService} also has a {@link TaskQueue}, but the data is - * stored in the {@link android.app.job.JobScheduler} instead of the process memory, so if the - * process is killed the queued tasks will be restored. If a new task is added, a new {@link - * TaskSchedulerJobService} will be scheduled to run the task. If the job is already scheduled, the - * new task will be pushed into the queue of the scheduled job. If the job is already running, the - * job will be queued in process memory. - * - * <p>Only one task will be ran at a time, and same task cannot exist in the queue at the same time. - * Refer to {@link TaskQueue} for queuing and execution order. - * - * <p>If there are still tasks in the queue but none are executable immediately, the service will - * enter a "sleep", pushing all remaining task into a new job and end the current job. - * - * <p>The service will be started when a intent is received, and stopped when there are no more - * tasks in the queue. - * - * <p>{@link android.app.job.JobScheduler} is not used directly due to: - * - * <ul> - * <li>The {@link android.telecom.PhoneAccountHandle} used to differentiate task can not be easily - * mapped into an integer for job id - * <li>A job cannot be mutated to store information such as retry count. - * </ul> - */ -@SuppressWarnings("AndroidApiChecker") /* stream() */ -@TargetApi(VERSION_CODES.O) -public class TaskSchedulerService extends Service { - - interface Job { - void finish(); - } - - private static final String TAG = "VvmTaskScheduler"; - - private static final int READY_TOLERANCE_MILLISECONDS = 100; - - /** - * Threshold to determine whether to do a short or long sleep when a task is scheduled in the - * future. - * - * <p>A short sleep will continue the job and use {@link Handler#postDelayed(Runnable, long)} to - * wait for the next task. - * - * <p>A long sleep will finish the job and schedule a new one. The exact execution time is - * subjected to {@link android.app.job.JobScheduler} battery optimization, and is not exact. - */ - private static final int SHORT_SLEEP_THRESHOLD_MILLISECONDS = 10_000; - /** - * When there are no more tasks to be run the service should be stopped. But when all tasks has - * finished there might still be more tasks in the message queue waiting to be processed, - * especially the ones submitted in {@link Task#onCompleted()}. Wait for a while before stopping - * the service to make sure there are no pending messages. - */ - private static final int STOP_DELAY_MILLISECONDS = 5_000; - - // The thread to run tasks on - private volatile WorkerThreadHandler mWorkerThreadHandler; - - /** - * Used by tests to turn task handling into a single threaded process by calling {@link - * Handler#handleMessage(Message)} directly - */ - private MessageSender mMessageSender = new MessageSender(); - - private MainThreadHandler mMainThreadHandler; - - // Binder given to clients - private final IBinder mBinder = new LocalBinder(); - - /** Main thread only, access through {@link #getTasks()} */ - private final TaskQueue mTasks = new TaskQueue(); - - private boolean mWorkerThreadIsBusy = false; - - private Job mJob; - - private final Runnable mStopServiceWithDelay = - new Runnable() { - @MainThread - @Override - public void run() { - VvmLog.i(TAG, "Stopping service"); - finishJob(); - stopSelf(); - } - }; - - /** Should attempt to run the next task when a task has finished or been added. */ - private boolean mTaskAutoRunDisabledForTesting = false; - - @VisibleForTesting - final class WorkerThreadHandler extends Handler { - - public WorkerThreadHandler(Looper looper) { - super(looper); - } - - @Override - @WorkerThread - public void handleMessage(Message msg) { - Assert.isNotMainThread(); - Task task = (Task) msg.obj; - try { - VvmLog.i(TAG, "executing task " + task); - task.onExecuteInBackgroundThread(); - } catch (Throwable throwable) { - VvmLog.e(TAG, "Exception while executing task " + task + ":", throwable); - } - - Message schedulerMessage = mMainThreadHandler.obtainMessage(); - schedulerMessage.obj = task; - mMessageSender.send(schedulerMessage); - } - } - - @VisibleForTesting - final class MainThreadHandler extends Handler { - - public MainThreadHandler(Looper looper) { - super(looper); - } - - @Override - @MainThread - public void handleMessage(Message msg) { - Assert.isMainThread(); - Task task = (Task) msg.obj; - getTasks().remove(task); - task.onCompleted(); - mWorkerThreadIsBusy = false; - maybeRunNextTask(); - } - } - - @Override - @MainThread - public void onCreate() { - super.onCreate(); - HandlerThread thread = new HandlerThread("VvmTaskSchedulerService"); - thread.start(); - - mWorkerThreadHandler = new WorkerThreadHandler(thread.getLooper()); - mMainThreadHandler = new MainThreadHandler(Looper.getMainLooper()); - } - - @Override - public void onDestroy() { - mWorkerThreadHandler.getLooper().quit(); - } - - @Override - @MainThread - public int onStartCommand(@Nullable Intent intent, int flags, int startId) { - Assert.isMainThread(); - if (intent == null) { - VvmLog.w(TAG, "null intent received"); - return START_NOT_STICKY; - } - Task task = Tasks.createTask(this, intent.getExtras()); - Assert.isTrue(task != null); - addTask(task); - - mMainThreadHandler.removeCallbacks(mStopServiceWithDelay); - VvmLog.i(TAG, "task added"); - if (mJob == null) { - scheduleJob(0, true); - } else { - maybeRunNextTask(); - } - // STICKY means the service will be automatically restarted will the last intent if it is - // killed. - return START_NOT_STICKY; - } - - @MainThread - @VisibleForTesting - void addTask(Task task) { - Assert.isMainThread(); - getTasks().add(task); - } - - @MainThread - @VisibleForTesting - TaskQueue getTasks() { - Assert.isMainThread(); - return mTasks; - } - - @MainThread - private void maybeRunNextTask() { - Assert.isMainThread(); - if (mWorkerThreadIsBusy) { - return; - } - if (mTaskAutoRunDisabledForTesting) { - // If mTaskAutoRunDisabledForTesting is true, runNextTask() must be explicitly called - // to run the next task. - return; - } - - runNextTask(); - } - - @VisibleForTesting - @MainThread - void runNextTask() { - Assert.isMainThread(); - if (getTasks().isEmpty()) { - prepareStop(); - return; - } - NextTask nextTask = getTasks().getNextTask(READY_TOLERANCE_MILLISECONDS); - - if (nextTask.task != null) { - nextTask.task.onBeforeExecute(); - Message message = mWorkerThreadHandler.obtainMessage(); - message.obj = nextTask.task; - mWorkerThreadIsBusy = true; - mMessageSender.send(message); - return; - } - VvmLog.i(TAG, "minimal wait time:" + nextTask.minimalWaitTimeMillis); - if (!mTaskAutoRunDisabledForTesting && nextTask.minimalWaitTimeMillis != null) { - // No tasks are currently ready. Sleep until the next one should be. - // If a new task is added during the sleep the service will wake immediately. - sleep(nextTask.minimalWaitTimeMillis); - } - } - - @MainThread - private void sleep(long timeMillis) { - VvmLog.i(TAG, "sleep for " + timeMillis + " millis"); - if (timeMillis < SHORT_SLEEP_THRESHOLD_MILLISECONDS) { - mMainThreadHandler.postDelayed( - new Runnable() { - @Override - public void run() { - maybeRunNextTask(); - } - }, - timeMillis); - return; - } - finishJob(); - mMainThreadHandler.post(() -> scheduleJob(timeMillis, false)); - } - - private List<Bundle> serializePendingTasks() { - return getTasks().toBundles(); - } - - private void prepareStop() { - VvmLog.i( - TAG, - "no more tasks, stopping service if no task are added in " - + STOP_DELAY_MILLISECONDS - + " millis"); - mMainThreadHandler.postDelayed(mStopServiceWithDelay, STOP_DELAY_MILLISECONDS); - } - - @NeededForTesting - static class MessageSender { - - public void send(Message message) { - message.sendToTarget(); - } - } - - @NeededForTesting - void setTaskAutoRunDisabledForTest(boolean value) { - mTaskAutoRunDisabledForTesting = value; - } - - @NeededForTesting - void setMessageSenderForTest(MessageSender sender) { - mMessageSender = sender; - } - - /** - * The {@link TaskSchedulerJobService} has started and all queued task should be executed in the - * worker thread. - */ - @MainThread - public void onStartJob(Job job, List<Bundle> pendingTasks) { - VvmLog.i(TAG, "onStartJob"); - mJob = job; - mTasks.fromBundles(this, pendingTasks); - maybeRunNextTask(); - } - - /** - * The {@link TaskSchedulerJobService} is being terminated by the system (timeout or network - * lost). A new job will be queued to resume all pending tasks. The current unfinished job may be - * ran again. - */ - @MainThread - public void onStopJob() { - VvmLog.e(TAG, "onStopJob"); - if (isJobRunning()) { - finishJob(); - mMainThreadHandler.post(() -> scheduleJob(0, true)); - } - } - - /** - * Serializes all pending tasks and schedule a new {@link TaskSchedulerJobService}. - * - * @param delayMillis the delay before stating the job, see {@link - * android.app.job.JobInfo.Builder#setMinimumLatency(long)}. This must be 0 if {@code - * isNewJob} is true. - * @param isNewJob a new job will be requested to run immediately, bypassing all requirements. - */ - @MainThread - private void scheduleJob(long delayMillis, boolean isNewJob) { - Assert.isMainThread(); - TaskSchedulerJobService.scheduleJob(this, serializePendingTasks(), delayMillis, isNewJob); - mTasks.clear(); - } - - /** - * Signals {@link TaskSchedulerJobService} the current session of tasks has finished, and the wake - * lock can be released. Note: this only takes effect after the main thread has been returned. If - * a new job need to be scheduled, it should be posted on the main thread handler instead of - * calling directly. - */ - @MainThread - private void finishJob() { - Assert.isMainThread(); - VvmLog.i(TAG, "finishing Job"); - mJob.finish(); - mJob = null; - } - - @Override - @Nullable - public IBinder onBind(Intent intent) { - return mBinder; - } - - @NeededForTesting - class LocalBinder extends Binder { - - @NeededForTesting - public TaskSchedulerService getService() { - return TaskSchedulerService.this; - } - } - - private boolean isJobRunning() { - return mJob != null; - } -} diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java b/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java new file mode 100644 index 000000000..17c9be73b --- /dev/null +++ b/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.voicemail.impl.transcribe; + +import android.content.Context; +import com.android.dialer.common.ConfigProviderBindings; + +/** Provides configuration values needed to connect to the transcription server. */ +public class TranscriptionConfigProvider { + private final Context context; + + public TranscriptionConfigProvider(Context context) { + this.context = context; + } + + public boolean isVoicemailTranscriptionEnabled() { + return ConfigProviderBindings.get(context).getBoolean("voicemail_transcription_enabled", false); + } + + public String getServerAddress() { + // Private voicemail transcription service + return ConfigProviderBindings.get(context) + .getString( + "voicemail_transcription_server_address", "voicemailtranscription-pa.googleapis.com"); + } + + public String getApiKey() { + // Android API key restricted to com.google.android.dialer + return ConfigProviderBindings.get(context) + .getString( + "voicemail_transcription_client_api_key", "AIzaSyAXdDnif6B7sBYxU8hzw9qAp3pRPVHs060"); + } + + public String getAuthToken() { + return null; + } + + public boolean shouldUsePlaintext() { + return ConfigProviderBindings.get(context) + .getBoolean("voicemail_transcription_server_use_plaintext", false); + } + + @Override + public String toString() { + return String.format( + "{ address: %s, api key: %s, auth token: %s, plaintext: %b }", + getServerAddress(), getApiKey(), getAuthToken(), shouldUsePlaintext()); + } +} diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionDbHelper.java b/java/com/android/voicemail/impl/transcribe/TranscriptionDbHelper.java new file mode 100644 index 000000000..cbc5cb8a0 --- /dev/null +++ b/java/com/android/voicemail/impl/transcribe/TranscriptionDbHelper.java @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.voicemail.impl.transcribe; + +import android.annotation.TargetApi; +import android.content.ContentResolver; +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.net.Uri; +import android.os.Build.VERSION_CODES; +import android.provider.VoicemailContract.Voicemails; +import android.support.annotation.WorkerThread; +import android.support.v4.os.BuildCompat; +import android.util.Pair; +import com.android.dialer.common.Assert; +import com.android.dialer.common.LogUtil; + +/** Helper class for reading and writing transcription data in the database */ +@TargetApi(VERSION_CODES.O) +public class TranscriptionDbHelper { + private static final String[] PROJECTION = + new String[] { + Voicemails.TRANSCRIPTION, // 0 + VoicemailCompat.TRANSCRIPTION_STATE // 1 + }; + + public static final int TRANSCRIPTION = 0; + public static final int TRANSCRIPTION_STATE = 1; + + private final ContentResolver contentResolver; + private final Uri uri; + + TranscriptionDbHelper(Context context, Uri uri) { + Assert.isNotNull(uri); + this.contentResolver = context.getContentResolver(); + this.uri = uri; + } + + @WorkerThread + @TargetApi(VERSION_CODES.M) // used for try with resources + Pair<String, Integer> getTranscriptionAndState() { + Assert.checkArgument(BuildCompat.isAtLeastO()); + Assert.isWorkerThread(); + try (Cursor cursor = contentResolver.query(uri, PROJECTION, null, null, null)) { + if (cursor == null) { + LogUtil.e("TranscriptionDbHelper.getTranscriptionAndState", "query failed."); + return null; + } + + if (cursor.moveToFirst()) { + String transcription = cursor.getString(TRANSCRIPTION); + int transcriptionState = cursor.getInt(TRANSCRIPTION_STATE); + return new Pair<>(transcription, transcriptionState); + } + } + LogUtil.i("TranscriptionDbHelper.getTranscriptionAndState", "query returned no results"); + return null; + } + + @WorkerThread + void setTranscriptionState(int transcriptionState) { + Assert.isWorkerThread(); + LogUtil.i( + "TranscriptionDbHelper.setTranscriptionState", + "uri: " + uri + ", state: " + transcriptionState); + ContentValues values = new ContentValues(); + values.put(VoicemailCompat.TRANSCRIPTION_STATE, transcriptionState); + updateDatabase(values); + } + + @WorkerThread + void setTranscriptionAndState(String transcription, int transcriptionState) { + Assert.isWorkerThread(); + LogUtil.i( + "TranscriptionDbHelper.setTranscriptionAndState", + "uri: " + uri + ", state: " + transcriptionState); + ContentValues values = new ContentValues(); + values.put(Voicemails.TRANSCRIPTION, transcription); + values.put(VoicemailCompat.TRANSCRIPTION_STATE, transcriptionState); + updateDatabase(values); + } + + private void updateDatabase(ContentValues values) { + int updatedCount = contentResolver.update(uri, values, null, null); + if (updatedCount != 1) { + LogUtil.e( + "TranscriptionDbHelper.updateDatabase", + "Wrong row count, should have updated 1 row, was: " + updatedCount); + } + } +} diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionService.java b/java/com/android/voicemail/impl/transcribe/TranscriptionService.java new file mode 100644 index 000000000..3e80a7f59 --- /dev/null +++ b/java/com/android/voicemail/impl/transcribe/TranscriptionService.java @@ -0,0 +1,203 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.voicemail.impl.transcribe; + +import android.app.job.JobInfo; +import android.app.job.JobParameters; +import android.app.job.JobScheduler; +import android.app.job.JobService; +import android.app.job.JobWorkItem; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.os.StrictMode; +import android.support.annotation.MainThread; +import android.support.annotation.VisibleForTesting; +import android.support.v4.os.BuildCompat; +import android.text.TextUtils; +import com.android.dialer.common.Assert; +import com.android.dialer.common.LogUtil; +import com.android.dialer.constants.ScheduledJobIds; +import com.android.voicemail.impl.transcribe.grpc.TranscriptionClientFactory; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +/** + * Job scheduler callback for launching voicemail transcription tasks. The transcription tasks will + * run in the background and will typically last for approximately the length of the voicemail audio + * (since thats how long the backend transcription service takes to do the transcription). + */ +public class TranscriptionService extends JobService { + @VisibleForTesting static final String EXTRA_VOICEMAIL_URI = "extra_voicemail_uri"; + + private ExecutorService executorService; + private JobParameters jobParameters; + private TranscriptionClientFactory clientFactory; + private TranscriptionConfigProvider configProvider; + private StrictMode.VmPolicy originalPolicy; + + /** Callback used by a task to indicate it has finished processing its work item */ + interface JobCallback { + void onWorkCompleted(JobWorkItem completedWorkItem); + } + + // Schedule a task to transcribe the indicated voicemail, return true if transcription task was + // scheduled. + public static boolean transcribeVoicemail(Context context, Uri voicemailUri) { + Assert.isMainThread(); + if (BuildCompat.isAtLeastO()) { + LogUtil.i("TranscriptionService.transcribeVoicemail", "scheduling transcription"); + ComponentName componentName = new ComponentName(context, TranscriptionService.class); + JobInfo.Builder builder = + new JobInfo.Builder(ScheduledJobIds.VVM_TRANSCRIPTION_JOB, componentName) + .setMinimumLatency(0) + .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY); + JobScheduler scheduler = context.getSystemService(JobScheduler.class); + JobWorkItem workItem = makeWorkItem(voicemailUri); + return scheduler.enqueue(builder.build(), workItem) == JobScheduler.RESULT_SUCCESS; + } else { + LogUtil.i("TranscriptionService.transcribeVoicemail", "not supported"); + return false; + } + } + + // Cancel all transcription tasks + public static void cancelTranscriptions(Context context) { + Assert.isMainThread(); + LogUtil.enterBlock("TranscriptionService.cancelTranscriptions"); + JobScheduler scheduler = context.getSystemService(JobScheduler.class); + scheduler.cancel(ScheduledJobIds.VVM_TRANSCRIPTION_JOB); + } + + public TranscriptionService() { + Assert.isMainThread(); + } + + @VisibleForTesting + TranscriptionService( + ExecutorService executorService, + TranscriptionClientFactory clientFactory, + TranscriptionConfigProvider configProvider) { + this.executorService = executorService; + this.clientFactory = clientFactory; + this.configProvider = configProvider; + } + + @Override + public boolean onStartJob(JobParameters params) { + Assert.isMainThread(); + LogUtil.enterBlock("TranscriptionService.onStartJob"); + if (!getConfigProvider().isVoicemailTranscriptionEnabled()) { + LogUtil.i("TranscriptionService.onStartJob", "transcription not enabled, exiting."); + return false; + } else if (TextUtils.isEmpty(getConfigProvider().getServerAddress())) { + LogUtil.i("TranscriptionService.onStartJob", "transcription server not configured, exiting."); + return false; + } else { + LogUtil.i( + "TranscriptionService.onStartJob", + "transcription server address: " + configProvider.getServerAddress()); + originalPolicy = StrictMode.getVmPolicy(); + StrictMode.enableDefaults(); + jobParameters = params; + return checkForWork(); + } + } + + @Override + public boolean onStopJob(JobParameters params) { + Assert.isMainThread(); + LogUtil.enterBlock("TranscriptionService.onStopJob"); + cleanup(); + return true; + } + + @Override + public void onDestroy() { + Assert.isMainThread(); + LogUtil.enterBlock("TranscriptionService.onDestroy"); + cleanup(); + } + + private void cleanup() { + if (clientFactory != null) { + clientFactory.shutdown(); + clientFactory = null; + } + if (executorService != null) { + executorService.shutdownNow(); + executorService = null; + } + if (originalPolicy != null) { + StrictMode.setVmPolicy(originalPolicy); + originalPolicy = null; + } + } + + @MainThread + private boolean checkForWork() { + Assert.isMainThread(); + JobWorkItem workItem = jobParameters.dequeueWork(); + if (workItem != null) { + getExecutorService() + .execute(new TranscriptionTask(this, new Callback(), workItem, getClientFactory())); + return true; + } else { + return false; + } + } + + private ExecutorService getExecutorService() { + if (executorService == null) { + // The common use case is transcribing a single voicemail so just use a single thread executor + // The reason we're not using DialerExecutor here is because the transcription task can be + // very long running (ie. multiple minutes). + executorService = Executors.newSingleThreadExecutor(); + } + return executorService; + } + + private class Callback implements JobCallback { + @Override + public void onWorkCompleted(JobWorkItem completedWorkItem) { + Assert.isMainThread(); + LogUtil.i("TranscriptionService.Callback.onWorkCompleted", completedWorkItem.toString()); + jobParameters.completeWork(completedWorkItem); + checkForWork(); + } + } + + private static JobWorkItem makeWorkItem(Uri voicemailUri) { + Intent intent = new Intent(); + intent.putExtra(EXTRA_VOICEMAIL_URI, voicemailUri); + return new JobWorkItem(intent); + } + + private TranscriptionConfigProvider getConfigProvider() { + if (configProvider == null) { + configProvider = new TranscriptionConfigProvider(this); + } + return configProvider; + } + + private TranscriptionClientFactory getClientFactory() { + if (clientFactory == null) { + clientFactory = new TranscriptionClientFactory(this, getConfigProvider()); + } + return clientFactory; + } +} diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionTask.java b/java/com/android/voicemail/impl/transcribe/TranscriptionTask.java new file mode 100644 index 000000000..0fbc33ad5 --- /dev/null +++ b/java/com/android/voicemail/impl/transcribe/TranscriptionTask.java @@ -0,0 +1,191 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.voicemail.impl.transcribe; + +import android.annotation.TargetApi; +import android.app.job.JobWorkItem; +import android.content.Context; +import android.net.Uri; +import android.text.TextUtils; +import com.android.dialer.common.concurrent.ThreadUtil; +import com.android.voicemail.impl.VvmLog; +import com.android.voicemail.impl.transcribe.TranscriptionService.JobCallback; +import com.android.voicemail.impl.transcribe.grpc.TranscriptionClient; +import com.android.voicemail.impl.transcribe.grpc.TranscriptionClientFactory; +import com.google.internal.communications.voicemailtranscription.v1.AudioFormat; +import com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest; +import com.google.protobuf.ByteString; +import io.grpc.Status; +import java.io.IOException; +import java.io.InputStream; + +/** + * Background task to get a voicemail transcription and update the database. + * + * <pre> + * This task performs the following steps: + * 1. Update the transcription-state in the database to 'in-progress' + * 2. Create grpc client and transcription request + * 3. Make synchronous grpc transcription request to backend server + * 3a. On response + * Update the database with transcription (if successful) and new transcription-state + * 3b. On network error + * If retry-count < max then increment retry-count and retry the request + * Otherwise update the transcription-state in the database to 'transcription-failed' + * 4. Notify the callback that the work item is complete + * </pre> + */ +public class TranscriptionTask implements Runnable { + private static final String TAG = "TranscriptionTask"; + + private final Context context; + private final JobCallback callback; + private final JobWorkItem workItem; + private final TranscriptionClientFactory clientFactory; + private final Uri voicemailUri; + private final TranscriptionDbHelper databaseHelper; + private ByteString audioData; + private AudioFormat encoding; + + private static final int MAX_RETRIES = 2; + static final String AMR_PREFIX = "#!AMR\n"; + + public TranscriptionTask( + Context context, + JobCallback callback, + JobWorkItem workItem, + TranscriptionClientFactory clientFactory) { + this.context = context; + this.callback = callback; + this.workItem = workItem; + this.clientFactory = clientFactory; + this.voicemailUri = getVoicemailUri(workItem); + databaseHelper = new TranscriptionDbHelper(context, voicemailUri); + } + + @Override + public void run() { + VvmLog.i(TAG, "run"); + if (readAndValidateAudioFile()) { + updateTranscriptionState(VoicemailCompat.TRANSCRIPTION_IN_PROGRESS); + transcribeVoicemail(); + } else { + updateTranscriptionState(VoicemailCompat.TRANSCRIPTION_FAILED); + } + ThreadUtil.postOnUiThread( + () -> { + callback.onWorkCompleted(workItem); + }); + } + + private void transcribeVoicemail() { + VvmLog.i(TAG, "transcribeVoicemail"); + TranscribeVoicemailRequest request = makeRequest(); + TranscriptionClient client = clientFactory.getClient(); + String transcript = null; + for (int i = 0; transcript == null && i < MAX_RETRIES; i++) { + VvmLog.i(TAG, "transcribeVoicemail, try: " + (i + 1)); + TranscriptionClient.TranscriptionResponseWrapper responseWrapper = + client.transcribeVoicemail(request); + if (responseWrapper.status != null) { + VvmLog.i(TAG, "transcribeVoicemail, status: " + responseWrapper.status.getCode()); + if (shouldRetryRequest(responseWrapper.status)) { + backoff(i); + } else { + break; + } + } else if (responseWrapper.response != null) { + if (!TextUtils.isEmpty(responseWrapper.response.getTranscript())) { + VvmLog.i(TAG, "transcribeVoicemail, got response"); + transcript = responseWrapper.response.getTranscript(); + } else { + VvmLog.i(TAG, "transcribeVoicemail, empty transcription"); + } + } else { + VvmLog.w(TAG, "transcribeVoicemail, no response"); + } + } + + int newState = + (transcript == null) + ? VoicemailCompat.TRANSCRIPTION_FAILED + : VoicemailCompat.TRANSCRIPTION_AVAILABLE; + updateTranscriptionAndState(transcript, newState); + } + + private static boolean shouldRetryRequest(Status status) { + return status.getCode() == Status.Code.UNAVAILABLE; + } + + private static void backoff(int retryCount) { + VvmLog.i(TAG, "backoff, count: " + retryCount); + try { + long millis = (1 << retryCount) * 1000; + Thread.sleep(millis); + } catch (InterruptedException e) { + VvmLog.w(TAG, "interrupted"); + Thread.currentThread().interrupt(); + } + } + + private void updateTranscriptionAndState(String transcript, int newState) { + databaseHelper.setTranscriptionAndState(transcript, newState); + } + + private void updateTranscriptionState(int newState) { + databaseHelper.setTranscriptionState(newState); + } + + private TranscribeVoicemailRequest makeRequest() { + return TranscribeVoicemailRequest.newBuilder() + .setVoicemailData(audioData) + .setAudioFormat(encoding) + .build(); + } + + // Uses try-with-resource + @TargetApi(android.os.Build.VERSION_CODES.M) + private boolean readAndValidateAudioFile() { + if (voicemailUri == null) { + VvmLog.i(TAG, "Transcriber.readAndValidateAudioFile, file not found."); + return false; + } else { + VvmLog.i(TAG, "Transcriber.readAndValidateAudioFile, reading: " + voicemailUri); + } + + try (InputStream in = context.getContentResolver().openInputStream(voicemailUri)) { + audioData = ByteString.readFrom(in); + VvmLog.i(TAG, "Transcriber.readAndValidateAudioFile, read " + audioData.size() + " bytes"); + } catch (IOException e) { + VvmLog.e(TAG, "Transcriber.readAndValidateAudioFile", e); + return false; + } + + if (audioData.startsWith(ByteString.copyFromUtf8(AMR_PREFIX))) { + encoding = AudioFormat.AMR_NB_8KHZ; + } else { + VvmLog.i(TAG, "Transcriber.readAndValidateAudioFile, unknown encoding"); + encoding = AudioFormat.AUDIO_FORMAT_UNSPECIFIED; + return false; + } + + return true; + } + + private static Uri getVoicemailUri(JobWorkItem workItem) { + return workItem.getIntent().getParcelableExtra(TranscriptionService.EXTRA_VOICEMAIL_URI); + } +} diff --git a/java/com/android/voicemail/impl/transcribe/VoicemailCompat.java b/java/com/android/voicemail/impl/transcribe/VoicemailCompat.java new file mode 100644 index 000000000..c6e30c6de --- /dev/null +++ b/java/com/android/voicemail/impl/transcribe/VoicemailCompat.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.voicemail.impl.transcribe; + +/** + * Provide access to new API constants before they're publicly available + * + * <p>Copied from android.provider.VoicemailContract.Voicemails. These should become public in O-MR1 + * and these constants can be removed then. + */ +public class VoicemailCompat { + + /** + * The state of the voicemail transcription. + * + * <p>Possible values: {@link #TRANSCRIPTION_NOT_STARTED}, {@link #TRANSCRIPTION_IN_PROGRESS}, + * {@link #TRANSCRIPTION_FAILED}, {@link #TRANSCRIPTION_AVAILABLE}. + * + * <p>Type: INTEGER + */ + public static final String TRANSCRIPTION_STATE = "transcription_state"; + + /** + * Value of {@link #TRANSCRIPTION_STATE} when the voicemail transcription has not yet been + * attempted. + */ + public static final int TRANSCRIPTION_NOT_STARTED = 0; + + /** + * Value of {@link #TRANSCRIPTION_STATE} when the voicemail transcription has begun but is not yet + * complete. + */ + public static final int TRANSCRIPTION_IN_PROGRESS = 1; + + /** + * Value of {@link #TRANSCRIPTION_STATE} when the voicemail transcription has been attempted and + * failed. + */ + public static final int TRANSCRIPTION_FAILED = 2; + + /** + * Value of {@link #TRANSCRIPTION_STATE} when the voicemail transcription has completed and the + * result has been stored in the {@link #TRANSCRIPTION} column. + */ + public static final int TRANSCRIPTION_AVAILABLE = 3; +} diff --git a/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClient.java b/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClient.java new file mode 100644 index 000000000..27603d910 --- /dev/null +++ b/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClient.java @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.voicemail.impl.transcribe.grpc; + +import android.support.annotation.Nullable; +import android.support.annotation.WorkerThread; +import com.android.dialer.common.Assert; +import com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest; +import com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse; +import com.google.internal.communications.voicemailtranscription.v1.VoicemailTranscriptionServiceGrpc; +import io.grpc.Status; +import io.grpc.StatusRuntimeException; + +/** Wrapper around Grpc transcription server stub */ +public class TranscriptionClient { + + private final VoicemailTranscriptionServiceGrpc.VoicemailTranscriptionServiceBlockingStub stub; + + /** Wraps the server response and status objects, either of which may be null. */ + public static class TranscriptionResponseWrapper { + public final TranscribeVoicemailResponse response; + public final Status status; + + public TranscriptionResponseWrapper( + @Nullable TranscribeVoicemailResponse response, @Nullable Status status) { + Assert.checkArgument(!(response == null && status == null)); + this.response = response; + this.status = status; + } + } + + TranscriptionClient( + VoicemailTranscriptionServiceGrpc.VoicemailTranscriptionServiceBlockingStub stub) { + this.stub = stub; + } + + @WorkerThread + public TranscriptionResponseWrapper transcribeVoicemail(TranscribeVoicemailRequest request) { + TranscribeVoicemailResponse response = null; + Status status = null; + try { + response = stub.transcribeVoicemail(request); + } catch (StatusRuntimeException e) { + status = e.getStatus(); + } + return new TranscriptionClient.TranscriptionResponseWrapper(response, status); + } +} diff --git a/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClientFactory.java b/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClientFactory.java new file mode 100644 index 000000000..6101ed516 --- /dev/null +++ b/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClientFactory.java @@ -0,0 +1,194 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.voicemail.impl.transcribe.grpc; + +import android.content.Context; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.text.TextUtils; +import com.android.dialer.common.Assert; +import com.android.dialer.common.LogUtil; +import com.android.voicemail.impl.transcribe.TranscriptionConfigProvider; +import com.google.internal.communications.voicemailtranscription.v1.VoicemailTranscriptionServiceGrpc; +import io.grpc.CallOptions; +import io.grpc.Channel; +import io.grpc.ClientCall; +import io.grpc.ClientInterceptor; +import io.grpc.ClientInterceptors; +import io.grpc.ForwardingClientCall; +import io.grpc.ManagedChannel; +import io.grpc.ManagedChannelBuilder; +import io.grpc.Metadata; +import io.grpc.MethodDescriptor; +import io.grpc.okhttp.OkHttpChannelBuilder; +import java.security.MessageDigest; + +/** + * Factory for creating grpc clients that talk to the transcription server. This allows all clients + * to share the same channel, which is relatively expensive to create. + */ +public class TranscriptionClientFactory { + private static final String DIGEST_ALGORITHM_SHA1 = "SHA1"; + private static final char[] HEX_UPPERCASE = { + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' + }; + + private final TranscriptionConfigProvider configProvider; + private final ManagedChannel originalChannel; + private final String packageName; + private final String cert; + + public TranscriptionClientFactory(Context context, TranscriptionConfigProvider configProvider) { + this(context, configProvider, getManagedChannel(configProvider)); + } + + public TranscriptionClientFactory( + Context context, TranscriptionConfigProvider configProvider, ManagedChannel managedChannel) { + this.configProvider = configProvider; + this.packageName = context.getPackageName(); + this.cert = getCertificateFingerprint(context); + originalChannel = managedChannel; + } + + public TranscriptionClient getClient() { + LogUtil.enterBlock("TranscriptionClientFactory.getClient"); + Assert.checkState(!originalChannel.isShutdown()); + Channel channel = + ClientInterceptors.intercept( + originalChannel, + new Interceptor( + packageName, cert, configProvider.getApiKey(), configProvider.getAuthToken())); + return new TranscriptionClient(VoicemailTranscriptionServiceGrpc.newBlockingStub(channel)); + } + + public void shutdown() { + LogUtil.enterBlock("TranscriptionClientFactory.shutdown"); + originalChannel.shutdown(); + } + + private static ManagedChannel getManagedChannel(TranscriptionConfigProvider configProvider) { + ManagedChannelBuilder<OkHttpChannelBuilder> builder = + OkHttpChannelBuilder.forTarget(configProvider.getServerAddress()); + // Only use plaintext for debugging + if (configProvider.shouldUsePlaintext()) { + // Just passing 'false' doesnt have the same effect as not setting this field + builder.usePlaintext(true); + } + return builder.build(); + } + + private static String getCertificateFingerprint(Context context) { + try { + PackageInfo packageInfo = + context + .getPackageManager() + .getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES); + if (packageInfo != null + && packageInfo.signatures != null + && packageInfo.signatures.length > 0) { + MessageDigest messageDigest = MessageDigest.getInstance(DIGEST_ALGORITHM_SHA1); + if (messageDigest == null) { + LogUtil.w( + "TranscriptionClientFactory.getCertificateFingerprint", "error getting digest."); + return null; + } + byte[] bytes = messageDigest.digest(packageInfo.signatures[0].toByteArray()); + if (bytes == null) { + LogUtil.w( + "TranscriptionClientFactory.getCertificateFingerprint", "empty message digest."); + return null; + } + + int length = bytes.length; + StringBuilder out = new StringBuilder(length * 2); + for (int i = 0; i < length; i++) { + out.append(HEX_UPPERCASE[(bytes[i] & 0xf0) >>> 4]); + out.append(HEX_UPPERCASE[bytes[i] & 0x0f]); + } + return out.toString(); + } else { + LogUtil.w( + "TranscriptionClientFactory.getCertificateFingerprint", + "failed to get package signature."); + } + } catch (Exception e) { + LogUtil.e( + "TranscriptionClientFactory.getCertificateFingerprint", + "error getting certificate fingerprint.", + e); + } + + return null; + } + + private static final class Interceptor implements ClientInterceptor { + private final String packageName; + private final String cert; + private final String apiKey; + private final String authToken; + + private static final Metadata.Key<String> API_KEY_HEADER = + Metadata.Key.of("X-Goog-Api-Key", Metadata.ASCII_STRING_MARSHALLER); + private static final Metadata.Key<String> ANDROID_PACKAGE_HEADER = + Metadata.Key.of("X-Android-Package", Metadata.ASCII_STRING_MARSHALLER); + private static final Metadata.Key<String> ANDROID_CERT_HEADER = + Metadata.Key.of("X-Android-Cert", Metadata.ASCII_STRING_MARSHALLER); + private static final Metadata.Key<String> AUTHORIZATION_HEADER = + Metadata.Key.of("authorization", Metadata.ASCII_STRING_MARSHALLER); + + public Interceptor(String packageName, String cert, String apiKey, String authToken) { + this.packageName = packageName; + this.cert = cert; + this.apiKey = apiKey; + this.authToken = authToken; + } + + @Override + public <ReqT, RespT> ClientCall<ReqT, RespT> interceptCall( + MethodDescriptor<ReqT, RespT> method, CallOptions callOptions, Channel next) { + LogUtil.enterBlock( + "TranscriptionClientFactory.interceptCall, intercepted " + method.getFullMethodName()); + ClientCall<ReqT, RespT> call = next.newCall(method, callOptions); + + call = + new ForwardingClientCall.SimpleForwardingClientCall<ReqT, RespT>(call) { + @Override + public void start(Listener<RespT> responseListener, Metadata headers) { + if (!TextUtils.isEmpty(packageName)) { + LogUtil.i( + "TranscriptionClientFactory.interceptCall", + "attaching package name: " + packageName); + headers.put(ANDROID_PACKAGE_HEADER, packageName); + } + if (!TextUtils.isEmpty(cert)) { + LogUtil.i("TranscriptionClientFactory.interceptCall", "attaching android cert"); + headers.put(ANDROID_CERT_HEADER, cert); + } + if (!TextUtils.isEmpty(apiKey)) { + LogUtil.i("TranscriptionClientFactory.interceptCall", "attaching API Key"); + headers.put(API_KEY_HEADER, apiKey); + } + if (!TextUtils.isEmpty(authToken)) { + LogUtil.i("TranscriptionClientFactory.interceptCall", "attaching auth token"); + headers.put(AUTHORIZATION_HEADER, "Bearer " + authToken); + } + super.start(responseListener, headers); + } + }; + return call; + } + } +} diff --git a/java/com/android/voicemail/impl/transcribe/grpc/voicemail_transcription.proto b/java/com/android/voicemail/impl/transcribe/grpc/voicemail_transcription.proto new file mode 100644 index 000000000..4b1e19b8a --- /dev/null +++ b/java/com/android/voicemail/impl/transcribe/grpc/voicemail_transcription.proto @@ -0,0 +1,44 @@ +// LINT.IfChange + +syntax = "proto2"; + +package google.internal.communications.voicemailtranscription.v1; + +option java_multiple_files = true; +option java_package = "com.google.internal.communications.voicemailtranscription.v1"; +option optimize_for = LITE_RUNTIME; + +// Enum that specifies supported audio formats. +enum AudioFormat { + // Default but invalid value. + AUDIO_FORMAT_UNSPECIFIED = 0; + + // Adaptive Multi-Rate Narrowband, 8kHz sampling frequency. + // https://en.wikipedia.org/wiki/Adaptive_Multi-Rate_audio_codec + AMR_NB_8KHZ = 1; +} + +// Request for synchronous voicemail transcription. +message TranscribeVoicemailRequest { + // Voicemail audio file containing the raw bytes we receive from the carrier. + optional bytes voicemail_data = 1; + + // Audio format of the voicemail file. + optional AudioFormat audio_format = 2; +} + +// Response for synchronous voicemail transcription. +message TranscribeVoicemailResponse { + // The transcribed text of the voicemail. + optional string transcript = 1; +} + +// RPC service for transcribing voicemails. +service VoicemailTranscriptionService { + // Returns a transcript of the given voicemail. + rpc TranscribeVoicemail(TranscribeVoicemailRequest) + returns (TranscribeVoicemailResponse) {} +} + +// LINT.ThenChange(//depot/google3/google/internal/communications/voicemailtranscription/v1/\ +// voicemail_transcription.proto) |