summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--InCallUI/res/drawable-hdpi/ic_hd_18dp.pngbin207 -> 0 bytes
-rw-r--r--InCallUI/res/drawable-hdpi/ic_hd_24dp.png (renamed from InCallUI/res/drawable-xhdpi/ic_hd_18dp.png)bin236 -> 236 bytes
-rw-r--r--InCallUI/res/drawable-mdpi/ic_hd_18dp.pngbin182 -> 0 bytes
-rw-r--r--InCallUI/res/drawable-mdpi/ic_hd_24dp.pngbin0 -> 154 bytes
-rw-r--r--InCallUI/res/drawable-xhdpi/ic_hd_24dp.pngbin0 -> 201 bytes
-rw-r--r--InCallUI/res/drawable-xxhdpi/ic_hd_18dp.pngbin309 -> 0 bytes
-rw-r--r--InCallUI/res/drawable-xxhdpi/ic_hd_24dp.png (renamed from InCallUI/res/drawable-xxxhdpi/ic_hd_18dp.png)bin290 -> 290 bytes
-rw-r--r--InCallUI/res/drawable-xxxhdpi/ic_hd_24dp.pngbin0 -> 348 bytes
-rw-r--r--InCallUI/res/layout/call_button_fragment.xml21
-rw-r--r--InCallUI/res/layout/call_card_fragment.xml15
-rw-r--r--InCallUI/res/layout/primary_call_info.xml11
-rw-r--r--InCallUI/res/layout/video_call_views.xml41
-rw-r--r--InCallUI/res/values-af/strings.xml7
-rw-r--r--InCallUI/res/values-am/strings.xml7
-rw-r--r--InCallUI/res/values-ar/strings.xml4
-rw-r--r--InCallUI/res/values-bg/strings.xml7
-rw-r--r--InCallUI/res/values-bn-rBD/strings.xml7
-rw-r--r--InCallUI/res/values-ca/strings.xml7
-rw-r--r--InCallUI/res/values-cs/strings.xml7
-rw-r--r--InCallUI/res/values-da/strings.xml7
-rw-r--r--InCallUI/res/values-de/strings.xml7
-rw-r--r--InCallUI/res/values-el/strings.xml7
-rw-r--r--InCallUI/res/values-en-rAU/strings.xml4
-rw-r--r--InCallUI/res/values-en-rGB/strings.xml4
-rw-r--r--InCallUI/res/values-en-rIN/strings.xml4
-rw-r--r--InCallUI/res/values-es-rUS/strings.xml7
-rw-r--r--InCallUI/res/values-es/strings.xml7
-rw-r--r--InCallUI/res/values-et-rEE/strings.xml7
-rw-r--r--InCallUI/res/values-eu-rES/strings.xml7
-rw-r--r--InCallUI/res/values-fa/strings.xml7
-rw-r--r--InCallUI/res/values-fi/strings.xml7
-rw-r--r--InCallUI/res/values-fr-rCA/strings.xml7
-rw-r--r--InCallUI/res/values-fr/strings.xml7
-rw-r--r--InCallUI/res/values-gl-rES/strings.xml7
-rw-r--r--InCallUI/res/values-hi/strings.xml7
-rw-r--r--InCallUI/res/values-hr/strings.xml7
-rw-r--r--InCallUI/res/values-hu/strings.xml7
-rw-r--r--InCallUI/res/values-hy-rAM/strings.xml7
-rw-r--r--InCallUI/res/values-in/strings.xml4
-rw-r--r--InCallUI/res/values-is-rIS/strings.xml7
-rw-r--r--InCallUI/res/values-it/strings.xml7
-rw-r--r--InCallUI/res/values-iw/strings.xml7
-rw-r--r--InCallUI/res/values-ja/strings.xml7
-rw-r--r--InCallUI/res/values-ka-rGE/strings.xml4
-rw-r--r--InCallUI/res/values-kk-rKZ/strings.xml7
-rw-r--r--InCallUI/res/values-km-rKH/strings.xml7
-rw-r--r--InCallUI/res/values-kn-rIN/strings.xml7
-rw-r--r--InCallUI/res/values-ko/strings.xml7
-rw-r--r--InCallUI/res/values-ky-rKG/strings.xml7
-rw-r--r--InCallUI/res/values-lo-rLA/strings.xml4
-rw-r--r--InCallUI/res/values-lt/strings.xml7
-rw-r--r--InCallUI/res/values-lv/strings.xml7
-rw-r--r--InCallUI/res/values-mk-rMK/strings.xml7
-rw-r--r--InCallUI/res/values-ml-rIN/strings.xml7
-rw-r--r--InCallUI/res/values-mn-rMN/strings.xml7
-rw-r--r--InCallUI/res/values-mr-rIN/strings.xml7
-rw-r--r--InCallUI/res/values-ms-rMY/strings.xml7
-rw-r--r--InCallUI/res/values-my-rMM/strings.xml4
-rw-r--r--InCallUI/res/values-nb/strings.xml7
-rw-r--r--InCallUI/res/values-ne-rNP/strings.xml7
-rw-r--r--InCallUI/res/values-nl/strings.xml7
-rw-r--r--InCallUI/res/values-pl/strings.xml7
-rw-r--r--InCallUI/res/values-pt-rPT/strings.xml7
-rw-r--r--InCallUI/res/values-pt/strings.xml7
-rw-r--r--InCallUI/res/values-ro/strings.xml7
-rw-r--r--InCallUI/res/values-ru/strings.xml7
-rw-r--r--InCallUI/res/values-si-rLK/strings.xml4
-rw-r--r--InCallUI/res/values-sk/strings.xml7
-rw-r--r--InCallUI/res/values-sl/strings.xml7
-rw-r--r--InCallUI/res/values-sr/strings.xml7
-rw-r--r--InCallUI/res/values-sv/strings.xml7
-rw-r--r--InCallUI/res/values-sw/strings.xml7
-rw-r--r--InCallUI/res/values-sw410dp/config.xml (renamed from InCallUI/res/drawable/btn_change_to_voice.xml)22
-rw-r--r--InCallUI/res/values-ta-rIN/strings.xml7
-rw-r--r--InCallUI/res/values-te-rIN/strings.xml7
-rw-r--r--InCallUI/res/values-th/strings.xml7
-rw-r--r--InCallUI/res/values-tl/strings.xml7
-rw-r--r--InCallUI/res/values-tr/strings.xml7
-rw-r--r--InCallUI/res/values-uk/strings.xml7
-rw-r--r--InCallUI/res/values-ur-rPK/strings.xml7
-rw-r--r--InCallUI/res/values-uz-rUZ/strings.xml20
-rw-r--r--InCallUI/res/values-vi/strings.xml7
-rw-r--r--InCallUI/res/values-zh-rCN/strings.xml7
-rw-r--r--InCallUI/res/values-zh-rHK/strings.xml4
-rw-r--r--InCallUI/res/values-zh-rTW/strings.xml7
-rw-r--r--InCallUI/res/values-zu/strings.xml7
-rw-r--r--InCallUI/res/values/array.xml51
-rw-r--r--InCallUI/res/values/config.xml27
-rw-r--r--InCallUI/res/values/strings.xml30
-rw-r--r--InCallUI/src/com/android/incallui/AnswerFragment.java56
-rw-r--r--InCallUI/src/com/android/incallui/AnswerPresenter.java52
-rw-r--r--InCallUI/src/com/android/incallui/Call.java11
-rw-r--r--InCallUI/src/com/android/incallui/CallButtonFragment.java117
-rw-r--r--InCallUI/src/com/android/incallui/CallButtonPresenter.java28
-rw-r--r--InCallUI/src/com/android/incallui/CallCardFragment.java136
-rw-r--r--InCallUI/src/com/android/incallui/CallCardPresenter.java64
-rw-r--r--InCallUI/src/com/android/incallui/CallList.java31
-rw-r--r--InCallUI/src/com/android/incallui/CallUtils.java5
-rw-r--r--InCallUI/src/com/android/incallui/GlowPadWrapper.java17
-rw-r--r--InCallUI/src/com/android/incallui/InCallActivity.java59
-rw-r--r--InCallUI/src/com/android/incallui/InCallVideoCallCallback.java15
-rw-r--r--InCallUI/src/com/android/incallui/StatusBarNotifier.java58
-rw-r--r--InCallUI/src/com/android/incallui/VideoCallFragment.java138
-rw-r--r--InCallUI/src/com/android/incallui/VideoCallPresenter.java333
-rw-r--r--InCallUI/src/com/android/incallui/widget/multiwaveview/GlowPadView.java8
105 files changed, 1228 insertions, 612 deletions
diff --git a/InCallUI/res/drawable-hdpi/ic_hd_18dp.png b/InCallUI/res/drawable-hdpi/ic_hd_18dp.png
deleted file mode 100644
index ade1788c1..000000000
--- a/InCallUI/res/drawable-hdpi/ic_hd_18dp.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_hd_18dp.png b/InCallUI/res/drawable-hdpi/ic_hd_24dp.png
index 35bf51a4f..35bf51a4f 100644
--- a/InCallUI/res/drawable-xhdpi/ic_hd_18dp.png
+++ b/InCallUI/res/drawable-hdpi/ic_hd_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_hd_18dp.png b/InCallUI/res/drawable-mdpi/ic_hd_18dp.png
deleted file mode 100644
index 82c972646..000000000
--- a/InCallUI/res/drawable-mdpi/ic_hd_18dp.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_hd_24dp.png b/InCallUI/res/drawable-mdpi/ic_hd_24dp.png
new file mode 100644
index 000000000..30938fe4d
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_hd_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_hd_24dp.png b/InCallUI/res/drawable-xhdpi/ic_hd_24dp.png
new file mode 100644
index 000000000..4c954d86f
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_hd_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_hd_18dp.png b/InCallUI/res/drawable-xxhdpi/ic_hd_18dp.png
deleted file mode 100644
index 510aa6e8b..000000000
--- a/InCallUI/res/drawable-xxhdpi/ic_hd_18dp.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_hd_18dp.png b/InCallUI/res/drawable-xxhdpi/ic_hd_24dp.png
index dd08bbbec..dd08bbbec 100644
--- a/InCallUI/res/drawable-xxxhdpi/ic_hd_18dp.png
+++ b/InCallUI/res/drawable-xxhdpi/ic_hd_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_hd_24dp.png b/InCallUI/res/drawable-xxxhdpi/ic_hd_24dp.png
new file mode 100644
index 000000000..3f87b882e
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_hd_24dp.png
Binary files differ
diff --git a/InCallUI/res/layout/call_button_fragment.xml b/InCallUI/res/layout/call_button_fragment.xml
index 7f429c76e..0cdaf23f7 100644
--- a/InCallUI/res/layout/call_button_fragment.xml
+++ b/InCallUI/res/layout/call_button_fragment.xml
@@ -69,13 +69,6 @@
android:background="@drawable/btn_compound_audio"
android:contentDescription="@string/audio_mode_speaker" />
- <!-- "Change to audio call" for video calls. -->
- <ImageButton android:id="@+id/changeToVoiceButton"
- style="@style/InCallButton"
- android:background="@drawable/btn_change_to_voice"
- android:contentDescription="@string/onscreenChangeToVoiceText"
- android:visibility="gone" />
-
<!-- MIDDLE LEFT SLOT ================================================================== -->
<!-- "Mute" -->
@@ -129,6 +122,13 @@
<!-- This slot is either "Add" or "Merge", depending on the state of the call. One or the
other of these must always be set to GONE. -->
+ <!-- "Turn off camera" for video calls. -->
+ <ToggleButton android:id="@+id/pauseVideoButton"
+ style="@style/InCallCompoundButton"
+ android:background="@drawable/btn_compound_video_off"
+ android:contentDescription="@string/onscreenPauseVideoText"
+ android:visibility="gone" />
+
<!-- "Add Call" -->
<ImageButton android:id="@+id/addButton"
style="@style/InCallButton"
@@ -145,13 +145,6 @@
android:contentDescription="@string/onscreenMergeCallsText"
android:visibility="gone" />
- <!-- "Switch camera" for video calls. -->
- <ToggleButton android:id="@+id/pauseVideoButton"
- style="@style/InCallCompoundButton"
- android:background="@drawable/btn_compound_video_off"
- android:contentDescription="@string/onscreenPauseVideoText"
- android:visibility="gone" />
-
<!-- "Overflow" -->
<ImageButton android:id="@+id/overflowButton"
style="@style/InCallButton"
diff --git a/InCallUI/res/layout/call_card_fragment.xml b/InCallUI/res/layout/call_card_fragment.xml
index 1971c9c70..537eb5119 100644
--- a/InCallUI/res/layout/call_card_fragment.xml
+++ b/InCallUI/res/layout/call_card_fragment.xml
@@ -80,6 +80,13 @@
</FrameLayout>
+ <fragment android:name="com.android.incallui.VideoCallFragment"
+ android:id="@+id/videoCallFragment"
+ android:layout_alignParentTop="true"
+ android:layout_gravity="top|center_horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+
<!-- Progress spinner, useful for indicating pending operations such as upgrade to video. -->
<FrameLayout
android:id="@+id/progressSpinner"
@@ -109,14 +116,6 @@
android:layout_height="wrap_content"
android:layout_below="@id/primary_call_info_container" />
- <fragment android:name="com.android.incallui.VideoCallFragment"
- android:layout_alignParentStart="true"
- android:layout_gravity="start|center_vertical"
- android:id="@+id/videoCallFragment"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:visibility="gone" />
-
<!-- Placeholder for various fragments that are added dynamically underneath the caller info. -->
<FrameLayout
android:id="@+id/answer_and_dialpad_container"
diff --git a/InCallUI/res/layout/primary_call_info.xml b/InCallUI/res/layout/primary_call_info.xml
index 1dc4e78d8..7127d9815 100644
--- a/InCallUI/res/layout/primary_call_info.xml
+++ b/InCallUI/res/layout/primary_call_info.xml
@@ -42,13 +42,12 @@
<!-- Subscription provider or WiFi calling icon displayed to the left of the label -->
<ImageView android:id="@+id/callStateIcon"
- android:layout_width="16dp"
+ android:layout_width="24dp"
android:layout_height="match_parent"
- android:layout_marginStart="6dp"
android:layout_marginEnd="10dp"
android:tint="@color/incall_accent_color"
android:alpha="0.0"
- android:scaleType="center"
+ android:scaleType="fitCenter"
android:visibility="gone" />
<ImageView android:id="@+id/videoCallIcon"
@@ -97,12 +96,12 @@
android:clipToPadding="false">
<ImageView android:id="@+id/hdAudioIcon"
- android:src="@drawable/ic_hd_18dp"
- android:layout_width="16dp"
+ android:src="@drawable/ic_hd_24dp"
+ android:layout_width="24dp"
android:layout_height="match_parent"
android:layout_marginEnd="8dp"
android:tint="@color/incall_call_banner_subtext_color"
- android:scaleType="center"
+ android:scaleType="fitCenter"
android:visibility="gone" />
<!-- Label (like "Mobile" or "Work", if present) and phone number, side by side -->
diff --git a/InCallUI/res/layout/video_call_views.xml b/InCallUI/res/layout/video_call_views.xml
index 8961ea4bf..b0c6ce2ad 100644
--- a/InCallUI/res/layout/video_call_views.xml
+++ b/InCallUI/res/layout/video_call_views.xml
@@ -26,10 +26,41 @@
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- The width and height are replaced at runtime based on the selected camera. -->
- <TextureView
- android:id="@+id/previewVideo"
- android:layout_gravity="bottom|right"
- android:layout_margin="@dimen/video_preview_margin"
+ <FrameLayout
+ android:id="@+id/previewVideoContainer"
android:layout_width="70dp"
- android:layout_height="120dp" />
+ android:layout_height="120dp"
+ android:layout_gravity="bottom|right"
+ android:layout_margin="@dimen/video_preview_margin" >
+
+ <!-- The video preview surface, where the user's outgoing video is shown. -->
+ <TextureView
+ android:id="@+id/previewVideo"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+
+ <!-- The user's profile photo, shown when the user's camera is shut off. -->
+ <ImageView
+ android:id="@+id/previewProfilePhoto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:scaleType="centerInside"
+ android:adjustViewBounds="false"
+ android:contentDescription="@string/profile_photo_description"
+ android:background="@android:color/black"
+ android:visibility="gone" />
+
+ <!-- The "camera off" icon, shown when the user's camera is shut off. -->
+ <ImageView
+ android:id="@+id/previewCameraOff"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom|right"
+ android:layout_marginEnd="10dp"
+ android:layout_marginBottom="10dp"
+ android:scaleType="centerCrop"
+ android:contentDescription="@string/camera_off_description"
+ android:src="@drawable/ic_toolbar_video_off"
+ android:visibility="gone" />
+ </FrameLayout>
</FrameLayout>
diff --git a/InCallUI/res/values-af/strings.xml b/InCallUI/res/values-af/strings.xml
index 8017dc92e..0d37ec2fa 100644
--- a/InCallUI/res/values-af/strings.xml
+++ b/InCallUI/res/values-af/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Video-oproep"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Versoek tans video"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Kan nie video-oproep koppel nie"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Video-oproep (Wag tans)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Jou terugbelnommer\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Jou noodterugbelnommer\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Bel"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> uur</item>
<item quantity="one">1 uur</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-am/strings.xml b/InCallUI/res/values-am/strings.xml
index 1c4d7292d..48bc3d054 100644
--- a/InCallUI/res/values-am/strings.xml
+++ b/InCallUI/res/values-am/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"የቪዲዮ ጥሪ"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"ቪድዮ በመጠየቅ ላይ"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"የቪዲዮ ጥሪን ማገናኘት አልተቻለም"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"የቪዲዮ ጥሪ (ላፍታ ቆሟል)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"የእርስዎ የመልሶ መደወያ ቁጥር\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"የእርስዎ የድንገተኛ አደጋ መልሶ መደወያ ቁጥር\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"በመደወል ላይ"</string>
@@ -167,4 +168,8 @@
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ሰዓቶች</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ሰዓቶች</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-ar/strings.xml b/InCallUI/res/values-ar/strings.xml
index e19866677..58db1e355 100644
--- a/InCallUI/res/values-ar/strings.xml
+++ b/InCallUI/res/values-ar/strings.xml
@@ -49,7 +49,7 @@
<string name="card_title_video_call" msgid="5898636679563320218">"مكالمة فيديو"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"جارٍ طلب الفيديو"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"يتعذر إجراء مكالمة فيديو"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"مكالمة فيديو (تم إيقافها مؤقتًا)"</string>
+ <string name="card_title_video_call_rejected" msgid="462358296694719787">"تم رفض طلب مكالمة الفيديو"</string>
<string name="card_title_callback_number" msgid="7307938207564217293">"رقم معاودة الاتصال\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"رقم معاودة اتصال الطوارئ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"جارٍ الطلب"</string>
@@ -179,4 +179,6 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> من الساعات</item>
<item quantity="one">ساعة واحدة</item>
</plurals>
+ <string name="profile_photo_description" msgid="5609894336203315400">"صورة الملف الشخصي"</string>
+ <string name="camera_off_description" msgid="5689494614359429889">"تم إيقاف الكاميرا"</string>
</resources>
diff --git a/InCallUI/res/values-bg/strings.xml b/InCallUI/res/values-bg/strings.xml
index 4f4a39a70..82515a595 100644
--- a/InCallUI/res/values-bg/strings.xml
+++ b/InCallUI/res/values-bg/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Видеообаждане"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Заявява се видеовръзка"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Видеообаждането не може да се осъществи"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Видеообаждане (на пауза)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Номер за обратно обаждане\n– <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Номер за спешно обратно обаждане\n– <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Набира се"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> часа</item>
<item quantity="one">1 час</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-bn-rBD/strings.xml b/InCallUI/res/values-bn-rBD/strings.xml
index 66c7927e1..e370b6457 100644
--- a/InCallUI/res/values-bn-rBD/strings.xml
+++ b/InCallUI/res/values-bn-rBD/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"ভিডিও কল"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"ভিডিওর অনুরোধ করছে"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"ভিডিও কলে সংযোগ করা যাচ্ছে না"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"ভিডিও কল (বিরাম দেওয়া হয়েছে)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"আপনার কলব্যাক নম্বর\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"আপনার জরুরী কলব্যাক নম্বর\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"ডায়াল করা হচ্ছে"</string>
@@ -167,4 +168,8 @@
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ঘন্টা</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ঘন্টা</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-ca/strings.xml b/InCallUI/res/values-ca/strings.xml
index 45fbe2cab..27b41e130 100644
--- a/InCallUI/res/values-ca/strings.xml
+++ b/InCallUI/res/values-ca/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Videotrucada"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"S\'està sol·licitant el vídeo"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"No es pot connectar la videotrucada"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videotrucada (en pausa)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Número de devolució de trucada\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Número de devolució de trucada d\'emergència\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Marcatge"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> hores</item>
<item quantity="one">1 hora</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-cs/strings.xml b/InCallUI/res/values-cs/strings.xml
index 942ae14f2..c428dccc7 100644
--- a/InCallUI/res/values-cs/strings.xml
+++ b/InCallUI/res/values-cs/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Videohovor"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Požadování videa"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Videohovor nelze zahájit"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videohovor (pozastaveno)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Vaše číslo pro zpětné volání\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Vaše číslo pro tísňové zpětné volání\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Vytáčení"</string>
@@ -173,4 +174,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> hodin</item>
<item quantity="one">1 hodina</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-da/strings.xml b/InCallUI/res/values-da/strings.xml
index 6e37a36f9..4c8536dd4 100644
--- a/InCallUI/res/values-da/strings.xml
+++ b/InCallUI/res/values-da/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Videoopkald"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Anmoder om video"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Kan ikke forbinde videoopkald"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videoopkald (på pause)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Dit tilbagekaldsnummer\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Dit tilbagekaldsnummer til nødopkald\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Ringer op"</string>
@@ -167,4 +168,8 @@
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> timer</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> timer</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-de/strings.xml b/InCallUI/res/values-de/strings.xml
index 9b61c4e91..fb79d6421 100644
--- a/InCallUI/res/values-de/strings.xml
+++ b/InCallUI/res/values-de/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Videoanruf"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Videoanfrage wird gesendet."</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Videoanruf kann nicht verbunden werden."</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videoanruf (pausiert)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Ihre Rückrufnummer:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Ihre Notrufnummer:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Verbindung wird aufgebaut..."</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> Stunden</item>
<item quantity="one">1 Stunde</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-el/strings.xml b/InCallUI/res/values-el/strings.xml
index b2e6c9216..3a8a36b39 100644
--- a/InCallUI/res/values-el/strings.xml
+++ b/InCallUI/res/values-el/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Βιντεοκλήση"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Αίτημα βίντεο"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Δεν είναι δυνατή η σύνδεση βιντεοκλησης"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Βιντεοκλήση (Παύση)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Αριθμός επανάκλησης\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Αριθμός επανάκλησης έκτακτης ανάγκης\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Κλήση"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ώρες</item>
<item quantity="one">1 ώρα</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-en-rAU/strings.xml b/InCallUI/res/values-en-rAU/strings.xml
index d16d85afd..5d2aa84c9 100644
--- a/InCallUI/res/values-en-rAU/strings.xml
+++ b/InCallUI/res/values-en-rAU/strings.xml
@@ -49,7 +49,7 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Video call"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Requesting video"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Can\'t connect video call"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Video call (Paused)"</string>
+ <string name="card_title_video_call_rejected" msgid="462358296694719787">"Video request rejected"</string>
<string name="card_title_callback_number" msgid="7307938207564217293">"Your callback number\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Your emergency callback number\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Dialling"</string>
@@ -167,4 +167,6 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> hours</item>
<item quantity="one">1 hour</item>
</plurals>
+ <string name="profile_photo_description" msgid="5609894336203315400">"Profile photo"</string>
+ <string name="camera_off_description" msgid="5689494614359429889">"Camera off"</string>
</resources>
diff --git a/InCallUI/res/values-en-rGB/strings.xml b/InCallUI/res/values-en-rGB/strings.xml
index d16d85afd..5d2aa84c9 100644
--- a/InCallUI/res/values-en-rGB/strings.xml
+++ b/InCallUI/res/values-en-rGB/strings.xml
@@ -49,7 +49,7 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Video call"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Requesting video"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Can\'t connect video call"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Video call (Paused)"</string>
+ <string name="card_title_video_call_rejected" msgid="462358296694719787">"Video request rejected"</string>
<string name="card_title_callback_number" msgid="7307938207564217293">"Your callback number\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Your emergency callback number\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Dialling"</string>
@@ -167,4 +167,6 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> hours</item>
<item quantity="one">1 hour</item>
</plurals>
+ <string name="profile_photo_description" msgid="5609894336203315400">"Profile photo"</string>
+ <string name="camera_off_description" msgid="5689494614359429889">"Camera off"</string>
</resources>
diff --git a/InCallUI/res/values-en-rIN/strings.xml b/InCallUI/res/values-en-rIN/strings.xml
index d16d85afd..5d2aa84c9 100644
--- a/InCallUI/res/values-en-rIN/strings.xml
+++ b/InCallUI/res/values-en-rIN/strings.xml
@@ -49,7 +49,7 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Video call"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Requesting video"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Can\'t connect video call"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Video call (Paused)"</string>
+ <string name="card_title_video_call_rejected" msgid="462358296694719787">"Video request rejected"</string>
<string name="card_title_callback_number" msgid="7307938207564217293">"Your callback number\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Your emergency callback number\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Dialling"</string>
@@ -167,4 +167,6 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> hours</item>
<item quantity="one">1 hour</item>
</plurals>
+ <string name="profile_photo_description" msgid="5609894336203315400">"Profile photo"</string>
+ <string name="camera_off_description" msgid="5689494614359429889">"Camera off"</string>
</resources>
diff --git a/InCallUI/res/values-es-rUS/strings.xml b/InCallUI/res/values-es-rUS/strings.xml
index 5c717810d..18a19d37e 100644
--- a/InCallUI/res/values-es-rUS/strings.xml
+++ b/InCallUI/res/values-es-rUS/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Videollamada"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Solicitando video"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"No se puede conectar la videollamada."</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videollamada (pausada)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Número de devolución de llamada\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Número de devolución de llamada de emergencia\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Marcando"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> horas</item>
<item quantity="one">1 hora</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-es/strings.xml b/InCallUI/res/values-es/strings.xml
index a17a1fc04..87e4960fd 100644
--- a/InCallUI/res/values-es/strings.xml
+++ b/InCallUI/res/values-es/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Videollamada"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Solicitando videollamada"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"No se puede establecer la videollamada"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videollamada (en pausa)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Tu número de devolución de llamada\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Tu número de devolución de llamada de emergencia\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Llamando..."</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> horas</item>
<item quantity="one">1 hora</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-et-rEE/strings.xml b/InCallUI/res/values-et-rEE/strings.xml
index 27b9f9313..204f59852 100644
--- a/InCallUI/res/values-et-rEE/strings.xml
+++ b/InCallUI/res/values-et-rEE/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Videokõne"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Video taotlemine"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Videokõnet ei õnnestu ühendada"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videokõne (peatatud)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Teie tagasihelistamise number\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Teie hädaabikõne tagasihelistamise number\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Valimine"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> tundi</item>
<item quantity="one">1 tund</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-eu-rES/strings.xml b/InCallUI/res/values-eu-rES/strings.xml
index b83267beb..90837488e 100644
--- a/InCallUI/res/values-eu-rES/strings.xml
+++ b/InCallUI/res/values-eu-rES/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Bideo-deia"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Bideoa eskatzen"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Ezin da konektatu bideo-deia"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Bideo-deia (pausatuta)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Deiak itzultzeko zenbakia:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Larrialdi-deiak itzultzeko zenbakia:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Markatzen"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ordu</item>
<item quantity="one">ordubete</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-fa/strings.xml b/InCallUI/res/values-fa/strings.xml
index db36fa520..297ee15f0 100644
--- a/InCallUI/res/values-fa/strings.xml
+++ b/InCallUI/res/values-fa/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"تماس ویدیویی"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"درحال درخواست تماس ویدیویی"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"اتصال تماس ویدیویی ممکن نیست"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"تماس ویدیویی (موقتاً متوقف شد)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"شماره پاسخ تماس شما\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"شماره پاسخ تماس اضطراری شما\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"شماره‌گیری"</string>
@@ -167,4 +168,8 @@
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ساعت</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ساعت</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-fi/strings.xml b/InCallUI/res/values-fi/strings.xml
index dab9656d2..c7fd6d473 100644
--- a/InCallUI/res/values-fi/strings.xml
+++ b/InCallUI/res/values-fi/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Videopuhelu"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Videota pyydetään"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Videopuhelua ei voi soittaa"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videopuhelu (keskeytetty)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Takaisinsoittonumerosi\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Hätäpuhelujen takaisinsoittonumero\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Soitetaan"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> tuntia</item>
<item quantity="one">1 tunti</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-fr-rCA/strings.xml b/InCallUI/res/values-fr-rCA/strings.xml
index 22788b339..54b8305ff 100644
--- a/InCallUI/res/values-fr-rCA/strings.xml
+++ b/InCallUI/res/values-fr-rCA/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Appel vidéo"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Demande de vidéo en cours"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Impossible de connecter l\'appel vidéo"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Appel vidéo (en pause)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Votre numéro de rappel :\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Votre numéro de rappel d\'urgence :\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Numérotation en cours…"</string>
@@ -167,4 +168,8 @@
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> heure</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> heures</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-fr/strings.xml b/InCallUI/res/values-fr/strings.xml
index 634722dbc..e9798de0f 100644
--- a/InCallUI/res/values-fr/strings.xml
+++ b/InCallUI/res/values-fr/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Appel vidéo"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Demande de vidéo en cours…"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Impossible d\'établir la connexion de l\'appel vidéo."</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Appel vidéo (interrompu)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Votre numéro de rappel\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Votre numéro de rappel d\'urgence\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Numérotation en cours…"</string>
@@ -167,4 +168,8 @@
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> heure</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> heures</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-gl-rES/strings.xml b/InCallUI/res/values-gl-rES/strings.xml
index 6800d1b8c..36dc02475 100644
--- a/InCallUI/res/values-gl-rES/strings.xml
+++ b/InCallUI/res/values-gl-rES/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Videochamada"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Solicitando vídeo"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Non se pode conectar a videochamada"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videochamada (pausada)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Número de devolución de chamada\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Número de devolución de chamada de emerxencia\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Marcación"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> horas</item>
<item quantity="one">Unha hora</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-hi/strings.xml b/InCallUI/res/values-hi/strings.xml
index 0361d7bec..447e6ee18 100644
--- a/InCallUI/res/values-hi/strings.xml
+++ b/InCallUI/res/values-hi/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"वीडियो कॉल"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"वीडियो का अनुरोध किया जा रहा है"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"वीडियो कॉल कनेक्‍ट नहीं किया जा सकता"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"वीडियो काॅल (रोका गया)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"आपका कॉलबैक नंबर\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"आपका आपातकालीन कॉलबैक नंबर\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"डायल हो रहा है"</string>
@@ -167,4 +168,8 @@
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> घंटे</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> घंटे</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-hr/strings.xml b/InCallUI/res/values-hr/strings.xml
index ed5e82344..0ee8d4e41 100644
--- a/InCallUI/res/values-hr/strings.xml
+++ b/InCallUI/res/values-hr/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Videopoziv"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Zahtijevanje videopiziva"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Videopoziv nije uspostavljen"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videopoziv (pauziran)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Vaš broj za povratni poziv\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Vaš broj za povratni poziv za hitne službe\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Biranje broja"</string>
@@ -170,4 +171,8 @@
<item quantity="few"><xliff:g id="COUNT">%d</xliff:g> sata</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sati</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-hu/strings.xml b/InCallUI/res/values-hu/strings.xml
index d3da90b7d..c280fc023 100644
--- a/InCallUI/res/values-hu/strings.xml
+++ b/InCallUI/res/values-hu/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Videohívás"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Videohívást kér"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"A videohívás létesítése sikertelen"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videohívás (szüneteltetve)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Visszahívható telefonszáma\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Vészhelyzet esetén visszahívható telefonszáma\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Tárcsázás"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> óra</item>
<item quantity="one">1 óra</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-hy-rAM/strings.xml b/InCallUI/res/values-hy-rAM/strings.xml
index f30dc5b6f..de0021614 100644
--- a/InCallUI/res/values-hy-rAM/strings.xml
+++ b/InCallUI/res/values-hy-rAM/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Տեսազանգել"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Տեսակապի հայցում"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Հնարավոր չէ կապակցել տեսազանգը"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Տեսազանգ (դադարեցված)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Ձեր հետադարձ զանգի համարը՝\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Արտակարգ իրավիճակների հետադարձ զանգի համարը՝\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Համարարկում է"</string>
@@ -167,4 +168,8 @@
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ժամ</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ժամ</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-in/strings.xml b/InCallUI/res/values-in/strings.xml
index 43ae54a4b..941679620 100644
--- a/InCallUI/res/values-in/strings.xml
+++ b/InCallUI/res/values-in/strings.xml
@@ -49,7 +49,7 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Video call"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Meminta video"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Tidak dapat menyambungkan video call"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Video call (Dijeda)"</string>
+ <string name="card_title_video_call_rejected" msgid="462358296694719787">"Permintaan video ditolak"</string>
<string name="card_title_callback_number" msgid="7307938207564217293">"Nomor panggilan balik Anda\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Nomor panggilan balik darurat Anda\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Memanggil"</string>
@@ -167,4 +167,6 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> jam</item>
<item quantity="one">1 jam</item>
</plurals>
+ <string name="profile_photo_description" msgid="5609894336203315400">"Foto profil"</string>
+ <string name="camera_off_description" msgid="5689494614359429889">"Kamera tidak aktif"</string>
</resources>
diff --git a/InCallUI/res/values-is-rIS/strings.xml b/InCallUI/res/values-is-rIS/strings.xml
index 5f665d063..a45111ce0 100644
--- a/InCallUI/res/values-is-rIS/strings.xml
+++ b/InCallUI/res/values-is-rIS/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Myndsímtal"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Biður um myndskeið"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Ekki tókst að tengja myndsímtal"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Myndsímtal (í bið)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Svarhringinúmerið þitt\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Svarhringinúmerið þitt í neyð\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Hringir"</string>
@@ -167,4 +168,8 @@
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> klukkustund</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> klukkustundir</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-it/strings.xml b/InCallUI/res/values-it/strings.xml
index dc4980332..53c64788c 100644
--- a/InCallUI/res/values-it/strings.xml
+++ b/InCallUI/res/values-it/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Videochiamata"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Richiesta video..."</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Impossibile effettuare una videochiamata"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videochiamata (in pausa)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Il numero da richiamare\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Numero da richiamare in caso di emergenza\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Chiamata in corso"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ore</item>
<item quantity="one">1 ora</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-iw/strings.xml b/InCallUI/res/values-iw/strings.xml
index ba80fc269..680b3f228 100644
--- a/InCallUI/res/values-iw/strings.xml
+++ b/InCallUI/res/values-iw/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"שיחת וידאו"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"מבקש וידאו"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"לא ניתן לחבר שיחת וידאו"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"שיחת וידאו (מושהית)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"המספר שלך להתקשרות חזרה\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"המספר שלך להתקשרות חזרה במצב חירום\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"מחייג"</string>
@@ -173,4 +174,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> שעות</item>
<item quantity="one">שעה אחת</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-ja/strings.xml b/InCallUI/res/values-ja/strings.xml
index 7f731bf35..eecf2fc9c 100644
--- a/InCallUI/res/values-ja/strings.xml
+++ b/InCallUI/res/values-ja/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"ビデオハングアウト"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"ビデオハングアウトをリクエストしています"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"ビデオハングアウトを接続できません"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"ビデオハングアウト(一時停止)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"コールバック先\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"緊急通報コールバック先\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"発信中"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g>時間</item>
<item quantity="one">1時間</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-ka-rGE/strings.xml b/InCallUI/res/values-ka-rGE/strings.xml
index 39d74ce75..24a7204d4 100644
--- a/InCallUI/res/values-ka-rGE/strings.xml
+++ b/InCallUI/res/values-ka-rGE/strings.xml
@@ -49,7 +49,7 @@
<string name="card_title_video_call" msgid="5898636679563320218">"ვიდეოზარი"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"მიმდინარეობს ვიდეოს მოთხოვნა"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"ვერ ხორციელდება ვიდეო ზარით დაკავშირება"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"ვიდეოზარი (დაპაუზებული)"</string>
+ <string name="card_title_video_call_rejected" msgid="462358296694719787">"ვიდეო მოთხოვნა არ დაკმაყოფილდა"</string>
<string name="card_title_callback_number" msgid="7307938207564217293">"თქვენი გადმორეკვის ნომერი \n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"თქვენი საგანგებო გადმორეკვის ნომერი \n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"აკრეფვა"</string>
@@ -167,4 +167,6 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> საათი</item>
<item quantity="one">1 საათი</item>
</plurals>
+ <string name="profile_photo_description" msgid="5609894336203315400">"პროფილის ფოტო"</string>
+ <string name="camera_off_description" msgid="5689494614359429889">"კამერა გამორთულია"</string>
</resources>
diff --git a/InCallUI/res/values-kk-rKZ/strings.xml b/InCallUI/res/values-kk-rKZ/strings.xml
index c96d13d38..26c179883 100644
--- a/InCallUI/res/values-kk-rKZ/strings.xml
+++ b/InCallUI/res/values-kk-rKZ/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Бейне қоңырау"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Бейне сұралуда"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Бейне қоңырауға қосылу мүмкін емес"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Бейне қоңырауы (кідіртілген)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Кері қоңырау шалу нөміріңіз\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Жедел кері қоңырау шалу нөміріңіз\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Теру"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> сағат</item>
<item quantity="one">1 сағат</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-km-rKH/strings.xml b/InCallUI/res/values-km-rKH/strings.xml
index fe00a4f84..8f533fe9e 100644
--- a/InCallUI/res/values-km-rKH/strings.xml
+++ b/InCallUI/res/values-km-rKH/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"ហៅ​ជា​វីដេអូ"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"ស្នើ​វីដេអូ"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"មិនអាចភ្ជាប់ការហៅជាវីដេអូបានទេ"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"ការហៅជាវីដេអូ (បានផ្អាក)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"លេខទូរស័ព្ទអាសន្នហៅទៅវិញរបស់អ្នក\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"លេខទូរស័ព្ទអាសន្នហៅទៅវិញរបស់អ្នក\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"ហៅ"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ម៉ោង</item>
<item quantity="one">1 ម៉ោង</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-kn-rIN/strings.xml b/InCallUI/res/values-kn-rIN/strings.xml
index 361d33678..a9d2e92f6 100644
--- a/InCallUI/res/values-kn-rIN/strings.xml
+++ b/InCallUI/res/values-kn-rIN/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"ವೀಡಿಯೊ ಕರೆ"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"ವೀಡಿಯೊ ವಿನಂತಿಸಲಾಗುತ್ತಿದೆ"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"ವೀಡಿಯೊ ಕರೆಯನ್ನು ಸಂಪರ್ಕಪಡಿಸಲಾಗುವುದಿಲ್ಲ"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"ವೀಡಿಯೊ ಕರೆ (ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"ನಿಮ್ಮ ಕರೆಯ ಸಂಖ್ಯೆ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"ನಿಮ್ಮ ತುರ್ತು ಕರೆಯ ಸಂಖ್ಯೆ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"ಡಯಲ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
@@ -167,4 +168,8 @@
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ಗಂಟೆಗಳು</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ಗಂಟೆಗಳು</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-ko/strings.xml b/InCallUI/res/values-ko/strings.xml
index 79cf9be14..ff55c7f12 100644
--- a/InCallUI/res/values-ko/strings.xml
+++ b/InCallUI/res/values-ko/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"화상 통화"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"동영상 요청 중"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"화상 통화를 연결할 수 없습니다."</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"화상 통화(일시중지됨)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"콜백 번호\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"긴급 콜백 번호\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"전화 거는 중"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g>시간</item>
<item quantity="one">1시간</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-ky-rKG/strings.xml b/InCallUI/res/values-ky-rKG/strings.xml
index 6f850197b..04af9e253 100644
--- a/InCallUI/res/values-ky-rKG/strings.xml
+++ b/InCallUI/res/values-ky-rKG/strings.xml
@@ -71,7 +71,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Видео чалуу"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Видео"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Видео чалууга туташуу мүмкүн болбой жатат"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Видео чалуу (Тындырылган)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Төмөнкү номерге кайра чалуу\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Төмөнкү номерге шашылыш кайра чалуу\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Терилүүдө"</string>
@@ -218,4 +219,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> саат</item>
<item quantity="one">1 саат</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-lo-rLA/strings.xml b/InCallUI/res/values-lo-rLA/strings.xml
index 407859fc4..db3ba0ab7 100644
--- a/InCallUI/res/values-lo-rLA/strings.xml
+++ b/InCallUI/res/values-lo-rLA/strings.xml
@@ -49,7 +49,7 @@
<string name="card_title_video_call" msgid="5898636679563320218">"ໂທ​ແບບ​ເຫັນ​ໜ້າ"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"​ກຳ​ລັງ​ຮ້ອງ​ຂໍ​ວິ​ດີ​ໂອ"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"ບໍ່​ສາ​ມາດ​ເຊື່ອມ​ຕໍ່​ການ​ໂທເຫັນພາບ​ໄດ້"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"ໂທເຫັນພາບ (ຢຸດ​ແລ້ວ)"</string>
+ <string name="card_title_video_call_rejected" msgid="462358296694719787">"ປະ​ຕິ​ເສດ​ການ​ຂໍ​ວິ​ດີ​ໂອ​ແລ້ວ"</string>
<string name="card_title_callback_number" msgid="7307938207564217293">"ເບີ​ໂທ​ກັບ​ຂອງ​ທ່ານ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"ເບີ​ໂທ​ກັບ​ສຸກ​ເສີນ​ຂອງ​ທ່ານ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"ກຳລັງໂທ"</string>
@@ -167,4 +167,6 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ຊົ່ວ​ໂມງ</item>
<item quantity="one">1 ຊົ່ວໂມງ</item>
</plurals>
+ <string name="profile_photo_description" msgid="5609894336203315400">"ຮູບໂປຣໄຟລ໌"</string>
+ <string name="camera_off_description" msgid="5689494614359429889">"ກ້ອງ​ຖ່າຍ​ຮູບ​ປິດ"</string>
</resources>
diff --git a/InCallUI/res/values-lt/strings.xml b/InCallUI/res/values-lt/strings.xml
index 0b703a7a0..359516b0b 100644
--- a/InCallUI/res/values-lt/strings.xml
+++ b/InCallUI/res/values-lt/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Vaizdo skambutis"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Pateikiama vaizdo skambučio užklausa"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Nepavyko prijungti vaizdo įrašo skambučio"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Vaizdo skambutis (pristabdytas)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Atskambinimo numeris\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Atskambinimo numeris, kuriuos skambina pagalbos tarnyba\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Renkamas numeris"</string>
@@ -173,4 +174,8 @@
<item quantity="many"><xliff:g id="COUNT">%d</xliff:g> valandos</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> valandų</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-lv/strings.xml b/InCallUI/res/values-lv/strings.xml
index bb8eaf31d..3cbd39a52 100644
--- a/InCallUI/res/values-lv/strings.xml
+++ b/InCallUI/res/values-lv/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Videozvans"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Notiek video pieprasīšana"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Nevar veikt videozvanu"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videozvans (pārtraukts)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Jūsu atzvana numurs\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Jūsu ārkārtas atzvana numurs\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Notiek numura sastādīšana"</string>
@@ -170,4 +171,8 @@
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> stunda</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> stundas</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-mk-rMK/strings.xml b/InCallUI/res/values-mk-rMK/strings.xml
index 93768da9f..0dd0ba34a 100644
--- a/InCallUI/res/values-mk-rMK/strings.xml
+++ b/InCallUI/res/values-mk-rMK/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Видеоповик"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Се побарува видео"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Не може да поврзе видеоповик"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Видеоповик (Паузирано)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Вашиот број за повратен повик\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Вашиот број за итен повик\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Бирање"</string>
@@ -167,4 +168,8 @@
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> час</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> часа</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-ml-rIN/strings.xml b/InCallUI/res/values-ml-rIN/strings.xml
index f5c396fd3..69bce29d2 100644
--- a/InCallUI/res/values-ml-rIN/strings.xml
+++ b/InCallUI/res/values-ml-rIN/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"വീഡിയോ കോള്‍"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"വീഡിയോ അഭ്യർത്ഥിക്കുന്നു"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"വീഡിയോ കോളുമായി കണക്‌റ്റുചെയ്യാനാവില്ല"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"വീഡിയോ കോൾ (താൽക്കാലികമായി നിർത്തി)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"നിങ്ങൾ തിരിച്ചുവിളിക്കേണ്ട നമ്പർ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"അടിയന്തിരമായി നിങ്ങൾ തിരിച്ചുവിളിക്കേണ്ട നമ്പർ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"ഡയൽ ചെയ്യുന്നു"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> മണിക്കൂർ</item>
<item quantity="one">1 മണിക്കൂർ</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-mn-rMN/strings.xml b/InCallUI/res/values-mn-rMN/strings.xml
index 95a3d8128..f3ce27af4 100644
--- a/InCallUI/res/values-mn-rMN/strings.xml
+++ b/InCallUI/res/values-mn-rMN/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Видео хурал"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Видео хүсэлт гаргасан"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Видео дуудлага амжилтгүй боллоо"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Видео дуудлага (түр зогсоосон)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Таны залгасан дугаар\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Таны залгасан түргэн тусламжийн дугаар \n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Залгаж байна"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> цаг</item>
<item quantity="one">1 цаг</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-mr-rIN/strings.xml b/InCallUI/res/values-mr-rIN/strings.xml
index 86528d73b..f3b1b0fa9 100644
--- a/InCallUI/res/values-mr-rIN/strings.xml
+++ b/InCallUI/res/values-mr-rIN/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"व्हिडिओ कॉल"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"व्हिडिओ विनंती करत आहे"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"व्हिडिओ कॉल कनेक्ट करू शकत नाही"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"व्हिडिओ कॉल (विराम दिला)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"आपला कॉलबॅक नंबर\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"आपला आणीबाणी कॉलबॅक नंबर\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"डायल करीत आहे"</string>
@@ -167,4 +168,8 @@
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> तास</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> तास</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-ms-rMY/strings.xml b/InCallUI/res/values-ms-rMY/strings.xml
index 7de6a11a0..502e55d79 100644
--- a/InCallUI/res/values-ms-rMY/strings.xml
+++ b/InCallUI/res/values-ms-rMY/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Pgln video"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Meminta video"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Tidak dapat menyambungkan panggilan video"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Panggilan video (Dijeda)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Nombor panggil balik anda\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Nombor panggil balik kecemasan anda\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Mendail"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> jam</item>
<item quantity="one">1 jam</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-my-rMM/strings.xml b/InCallUI/res/values-my-rMM/strings.xml
index 1cecb5558..0b7bf83e1 100644
--- a/InCallUI/res/values-my-rMM/strings.xml
+++ b/InCallUI/res/values-my-rMM/strings.xml
@@ -49,7 +49,7 @@
<string name="card_title_video_call" msgid="5898636679563320218">"ဗီဒီယို ခေါ်ဆိုမှု"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"ဗွီဒီယိုကို တောင်းဆိုနေ"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"ဗွီဒီယို ခေါ်ဆိုမှု မပြုနိုင်။"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"ဗီဒီယိုခေါ်ဆိုမှု (ရပ်ထားသည်)"</string>
+ <string name="card_title_video_call_rejected" msgid="462358296694719787">"ဗီဒီယို တောင်းဆိုချက် ပယ်ချ၏"</string>
<string name="card_title_callback_number" msgid="7307938207564217293">"သင့်အား ပြန်ခေါ်ရန် နံပါတ်\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"သင့် အရေးပေါ် ပြန်ခေါ်ရန် နံပါတ်\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"ဖုန်းခေါ်နေစဉ်"</string>
@@ -167,4 +167,6 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> နာရီများ</item>
<item quantity="one">၁ နာရီ</item>
</plurals>
+ <string name="profile_photo_description" msgid="5609894336203315400">"ပရိုဖိုင် ဓာတ်ပုံ"</string>
+ <string name="camera_off_description" msgid="5689494614359429889">"ကင်မရာ ပိတ်ရန်"</string>
</resources>
diff --git a/InCallUI/res/values-nb/strings.xml b/InCallUI/res/values-nb/strings.xml
index 23d3efaa2..b3b6a8236 100644
--- a/InCallUI/res/values-nb/strings.xml
+++ b/InCallUI/res/values-nb/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Videoanrop"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Ber om video"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Kan ikke koble til videosamtale"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videosamtale (satt på pause)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Ditt tilbakeringingsnummer\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Ditt tilbakeringingsnummer for nødsamtaler\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Slår nummeret"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> timer</item>
<item quantity="one">1 time</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-ne-rNP/strings.xml b/InCallUI/res/values-ne-rNP/strings.xml
index 186b02495..bebc3812b 100644
--- a/InCallUI/res/values-ne-rNP/strings.xml
+++ b/InCallUI/res/values-ne-rNP/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"भिडियो कल"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"भिडियो अनुरोध"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"भिडियो कल जडान गर्न सक्दैन"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"भिडियो कल (पज गरिएको)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"तपाईंको कलब्याक नम्बर \n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"तपाईंको आपतकालिन कलब्याक नम्बर \n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"डायल गर्ने"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> घन्टा</item>
<item quantity="one">१ घन्टा</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-nl/strings.xml b/InCallUI/res/values-nl/strings.xml
index c48805e62..366bccd8b 100644
--- a/InCallUI/res/values-nl/strings.xml
+++ b/InCallUI/res/values-nl/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Videogesprek"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Video aanvragen"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Kan geen videogesprek starten"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videogesprek (onderbreken)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Uw terugbelnummer\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Uw terugbelnummer bij alarm\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Kiezen"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> uur</item>
<item quantity="one">1 uur</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-pl/strings.xml b/InCallUI/res/values-pl/strings.xml
index 10721145d..7d99cc220 100644
--- a/InCallUI/res/values-pl/strings.xml
+++ b/InCallUI/res/values-pl/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Rozmowa wideo"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Wysyłanie żądania wideo"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Nie można nawiązać połączenia wideo"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Rozmowa wideo (wstrzymana)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Twój numer oddzwaniania\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Twój numer oddzwaniania dla połączeń alarmowych\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Trwa wybieranie numeru"</string>
@@ -173,4 +174,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> godziny</item>
<item quantity="one">1 godzina</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-pt-rPT/strings.xml b/InCallUI/res/values-pt-rPT/strings.xml
index 83560ef95..eec97db54 100644
--- a/InCallUI/res/values-pt-rPT/strings.xml
+++ b/InCallUI/res/values-pt-rPT/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Videochamada"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"A solicitar vídeo"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Não é possível ligar a videochamada"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videochamada (em pausa)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"O seu número de retorno de chamada\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"O seu número de retorno de chamadas de emergência\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"A marcar"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> horas</item>
<item quantity="one">1 hora</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-pt/strings.xml b/InCallUI/res/values-pt/strings.xml
index 9f9309796..db185ee0f 100644
--- a/InCallUI/res/values-pt/strings.xml
+++ b/InCallUI/res/values-pt/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Vídeo chamada"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Solicitando vídeo"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Não é possível conectar a vídeo chamada"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Vídeo chamada (pausada)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Seu número de retorno de chamada\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Seu número de retorno de chamada de emergência\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Discando"</string>
@@ -167,4 +168,8 @@
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> horas</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> horas</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-ro/strings.xml b/InCallUI/res/values-ro/strings.xml
index 768c3916d..83af1e0a5 100644
--- a/InCallUI/res/values-ro/strings.xml
+++ b/InCallUI/res/values-ro/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Apel video"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Se solicită video"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Nu se poate conecta apelul video"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Apel video (întrerupt)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Numărul de apelare inversă\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Numărul de apelare inversă de urgență\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Apelează"</string>
@@ -170,4 +171,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> de ore</item>
<item quantity="one">O oră</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-ru/strings.xml b/InCallUI/res/values-ru/strings.xml
index a690a32ef..89428528f 100644
--- a/InCallUI/res/values-ru/strings.xml
+++ b/InCallUI/res/values-ru/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Видеовстреча"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Запрос видео"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Не удалось совершить видеовызов"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Видеозвонок (на паузе)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Номер обратного вызова:\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Номер обратного вызова для экстренных служб:\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Набор номера"</string>
@@ -173,4 +174,8 @@
<item quantity="many"><xliff:g id="COUNT">%d</xliff:g> часов</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> часа</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-si-rLK/strings.xml b/InCallUI/res/values-si-rLK/strings.xml
index f3329023f..c6034607d 100644
--- a/InCallUI/res/values-si-rLK/strings.xml
+++ b/InCallUI/res/values-si-rLK/strings.xml
@@ -49,7 +49,7 @@
<string name="card_title_video_call" msgid="5898636679563320218">"වීඩියෝ ඇමතුම"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"වීඩියෝවක් ඉල්ලමින්"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"වීඩියෝ ඇමතුම සම්බන්ධ කළ නොහැක"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"වීඩියෝ ඇමතුම (විරාමය)"</string>
+ <string name="card_title_video_call_rejected" msgid="462358296694719787">"වීඩියෝ ඉල්ලීම ප්‍රතික්ෂේප කරන ලදී"</string>
<string name="card_title_callback_number" msgid="7307938207564217293">"ඔබට ආපසු කථා කිරීමේ අංකය\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"ඔබගේ හදිසි ඇමතුම් අංකය\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"අමතමින්"</string>
@@ -167,4 +167,6 @@
<item quantity="one">පැය <xliff:g id="COUNT">%d</xliff:g></item>
<item quantity="other">පැය <xliff:g id="COUNT">%d</xliff:g></item>
</plurals>
+ <string name="profile_photo_description" msgid="5609894336203315400">"පැතිකඩ ඡායාරූපය"</string>
+ <string name="camera_off_description" msgid="5689494614359429889">"කැමරාව ක්‍රියාවිරහිතයි"</string>
</resources>
diff --git a/InCallUI/res/values-sk/strings.xml b/InCallUI/res/values-sk/strings.xml
index de12d0ca1..2f32560ec 100644
--- a/InCallUI/res/values-sk/strings.xml
+++ b/InCallUI/res/values-sk/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Videohovor"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Žiada sa video"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Videohovor nie je možné pripojiť"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videohovor (pozastavený)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Vaše číslo na spätné volanie\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Vaše číslo na spätné tiesňové volanie\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Vytáčanie"</string>
@@ -173,4 +174,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> hodín</item>
<item quantity="one">1 hodina</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-sl/strings.xml b/InCallUI/res/values-sl/strings.xml
index 58675e974..364ace542 100644
--- a/InCallUI/res/values-sl/strings.xml
+++ b/InCallUI/res/values-sl/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Videoklic"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Zahtevanje videa"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Videoklica ni mogoče vzpostaviti"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videoklic (zaustavljen)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Vaša številka za povratni klic:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Vaša številka za povratni klic v sili:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Klicanje"</string>
@@ -173,4 +174,8 @@
<item quantity="few"><xliff:g id="COUNT">%d</xliff:g> ure</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ur</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-sr/strings.xml b/InCallUI/res/values-sr/strings.xml
index c20f2fba5..5571bb375 100644
--- a/InCallUI/res/values-sr/strings.xml
+++ b/InCallUI/res/values-sr/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Видео позив"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Захтевање видео позива"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Повезивање видео позива није успело"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Видео позив (паузиран)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Број за повратни позив\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Број за хитан повратни позив\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Бирање"</string>
@@ -170,4 +171,8 @@
<item quantity="few"><xliff:g id="COUNT">%d</xliff:g> сата</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> сати</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-sv/strings.xml b/InCallUI/res/values-sv/strings.xml
index 4ee298e08..12d315ad8 100644
--- a/InCallUI/res/values-sv/strings.xml
+++ b/InCallUI/res/values-sv/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Videosamtal"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Begär video"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Det gick inte att ansluta till videosamtalet"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videosamtal (pausat)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Ditt nummer för återuppringning\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Ditt nödnummer för återuppringning\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Ringer"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> timmar</item>
<item quantity="one">1 timme</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-sw/strings.xml b/InCallUI/res/values-sw/strings.xml
index 3801c91c5..806ab398d 100644
--- a/InCallUI/res/values-sw/strings.xml
+++ b/InCallUI/res/values-sw/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Hangout ya Video"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Inaomba video"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Haiwezi kuunganisha Hangout ya video"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Hangout ya video (Imesitishwa)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Nambari yako ya kupigiwa simu\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Nambari yako ya dharura ya kupigiwa simu\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Inapiga"</string>
@@ -167,4 +168,8 @@
<item quantity="other">Saa <xliff:g id="COUNT">%d</xliff:g></item>
<item quantity="one">Saa 1</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/drawable/btn_change_to_voice.xml b/InCallUI/res/values-sw410dp/config.xml
index 86a7f21d5..a57f86784 100644
--- a/InCallUI/res/drawable/btn_change_to_voice.xml
+++ b/InCallUI/res/values-sw410dp/config.xml
@@ -1,7 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-
<!--
- ~ Copyright (C) 2014 The Android Open Source Project
+ ~ Copyright (C) 2015 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
@@ -16,16 +14,8 @@
~ limitations under the License
-->
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-
- <item android:id="@+id/backgroundItem"
- android:drawable="@drawable/btn_background" />
-
- <item>
- <bitmap android:src="@drawable/ic_toolbar_audio_phone"
- android:gravity="center"
- android:tint="@color/selectable_icon_tint"
- android:autoMirrored="true" />
- </item>
-
-</layer-list> \ No newline at end of file
+<resources>
+ <!-- Determines the maximum number of buttons visible on the call card. Any buttons over this
+ count are put into the overflow menu. -->
+ <integer name="call_card_max_buttons">6</integer>
+</resources> \ No newline at end of file
diff --git a/InCallUI/res/values-ta-rIN/strings.xml b/InCallUI/res/values-ta-rIN/strings.xml
index 935a81372..1d3994125 100644
--- a/InCallUI/res/values-ta-rIN/strings.xml
+++ b/InCallUI/res/values-ta-rIN/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"வீடியோ அழைப்பு"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"வீடியோவைக் கோருகிறது"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"வீடியோ அழைப்பை இணைக்க முடியாது"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"வீடியோ அழைப்பு (இடைநிறுத்தப்பட்டது)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"உங்களைத் திரும்ப அழைப்பதற்கான எண்\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"அவசர அழைப்பு எண்\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"அழைக்கிறது"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> மணிநேரம்</item>
<item quantity="one">1 மணிநேரம்</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-te-rIN/strings.xml b/InCallUI/res/values-te-rIN/strings.xml
index 87a47e2b5..757dffdaa 100644
--- a/InCallUI/res/values-te-rIN/strings.xml
+++ b/InCallUI/res/values-te-rIN/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"వీడియో కాల్"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"వీడియో కోసం అభ్యర్థిస్తోంది"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"వీడియో కాల్‌ను కనెక్ట్ చేయలేరు"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"వీడియో కాల్ (పాజ్ చేయబడింది)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"మీ కాల్‌బ్యాక్ నంబర్\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"మీ అత్యవసర కాల్‌బ్యాక్ నంబర్\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"డయల్ చేస్తోంది"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> గంటలు</item>
<item quantity="one">1 గంట</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-th/strings.xml b/InCallUI/res/values-th/strings.xml
index 53ac19167..7c59a56a4 100644
--- a/InCallUI/res/values-th/strings.xml
+++ b/InCallUI/res/values-th/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"แฮงเอาท์วิดีโอ"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"กำลังขอวิดีโอ"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"ไม่สามารถเชื่อมต่อแฮงเอาท์วิดีโอได้"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"แฮงเอาท์วิดีโอ (หยุดชั่วคราว)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"หมายเลขโทรกลับของคุณ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"หมายเลขโทรกลับฉุกเฉินของคุณ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"กำลังโทรออก"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ชั่วโมง</item>
<item quantity="one">1 ชั่วโมง</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-tl/strings.xml b/InCallUI/res/values-tl/strings.xml
index a228dc8f5..cf8d3ec48 100644
--- a/InCallUI/res/values-tl/strings.xml
+++ b/InCallUI/res/values-tl/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Video call"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Humihiling ng video"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Hindi makakonekta sa video call"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Video call (Naka-pause)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Ang iyong numero ng callback\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Ang iyong emergency na numero ng callback\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Dina-dial"</string>
@@ -167,4 +168,8 @@
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> oras</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> na oras</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-tr/strings.xml b/InCallUI/res/values-tr/strings.xml
index e398e366b..3d041306f 100644
--- a/InCallUI/res/values-tr/strings.xml
+++ b/InCallUI/res/values-tr/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Video görüşmesi"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Video isteniyor"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Video görüşmesi bağlantısı yapılamıyor"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Video görüşmesi (Duraklatıldı)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Geri arama numaranız\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Acil durum geri arama numaranız\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Çevriliyor"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> saat</item>
<item quantity="one">1 saat</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-uk/strings.xml b/InCallUI/res/values-uk/strings.xml
index 71f7de09f..2acb148ee 100644
--- a/InCallUI/res/values-uk/strings.xml
+++ b/InCallUI/res/values-uk/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Відеодзвінок"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Надсилання запиту на відеодзвінок"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Неможливо здійснити відеодзвінок"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Відеодзвінок (призупинено)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Номер для зв’язку:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Екстрений номер:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Набір"</string>
@@ -173,4 +174,8 @@
<item quantity="many"><xliff:g id="COUNT">%d</xliff:g> годин</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> години</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-ur-rPK/strings.xml b/InCallUI/res/values-ur-rPK/strings.xml
index c07cf9ccc..d4f6c515d 100644
--- a/InCallUI/res/values-ur-rPK/strings.xml
+++ b/InCallUI/res/values-ur-rPK/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"ویڈیو کال"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"ویڈیو کی درخواست کی جا رہی ہے"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"ویڈیو کال منسلک نہیں کر سکتا"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"ویڈیو کال (موقوف)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"‏آپ کا کال بیک نمبر‎\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>‎"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"‏آپ کا ہنگامی کال بیک نمبر‎\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>‎"</string>
<string name="notification_dialing" msgid="2107666444937350731">"ڈائل ہو رہا ہے"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> گھنٹے</item>
<item quantity="one">1 گھنٹہ</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-uz-rUZ/strings.xml b/InCallUI/res/values-uz-rUZ/strings.xml
index cbacaac2e..914467971 100644
--- a/InCallUI/res/values-uz-rUZ/strings.xml
+++ b/InCallUI/res/values-uz-rUZ/strings.xml
@@ -35,7 +35,7 @@
<string name="pause_prompt_no" msgid="6686238803236884877">"Yo‘q"</string>
<string name="wild_prompt_str" msgid="5543521676355533577">"Belgilarni quyidagilar bilan almashtiring:"</string>
<string name="caller_manage_header" msgid="3231519674734638786">"Konferensiya qo‘ng‘irog‘i <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
- <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Ovozli xabar raqami"</string>
+ <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Ovozli pochta raqami"</string>
<string name="card_title_dialing" msgid="5769417478498348054">"Raqam terilmoqda"</string>
<string name="card_title_redialing" msgid="8253487008234167266">"Qayta terilmoqda"</string>
<string name="card_title_conf_call" msgid="1162980346189744501">"Konferensiya qo‘ng‘irog‘i"</string>
@@ -49,14 +49,14 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Video qo‘ng‘iroq"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Video so\'ralmoqda"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Video qo‘ng‘iroqqa ulanib bo‘lmadi"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Video qo‘ng‘iroqlar (to‘xtatildi)"</string>
+ <string name="card_title_video_call_rejected" msgid="462358296694719787">"Video qo‘ng‘iroq so‘rovi rad etildi"</string>
<string name="card_title_callback_number" msgid="7307938207564217293">"Teskari qo‘ng‘iroq raqamingiz\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Favqulodda holatlar uchun teskari qo‘ng‘iroq raqamingiz\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Terilmoqda"</string>
- <string name="notification_missedCallTitle" msgid="7554385905572364535">"Javob berilmagan qo‘ng‘iroq"</string>
+ <string name="notification_missedCallTitle" msgid="7554385905572364535">"Javobsiz qo‘ng‘iroq"</string>
<string name="notification_missedCallsTitle" msgid="1361677948941502522">"Javobsiz qo‘ng‘iroqlar"</string>
<string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ta javobsiz qo‘ng‘iroq"</string>
- <string name="notification_missedCallTicker" msgid="504686252427747209">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g>dan javobsiz qo‘ng‘iroq"</string>
+ <string name="notification_missedCallTicker" msgid="504686252427747209">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> qo‘ng‘irog‘i javobsiz qoldirildi"</string>
<string name="notification_ongoing_call" msgid="7068688957273482989">"Joriy qo‘ng‘iroq"</string>
<string name="notification_ongoing_call_wifi" msgid="8521553590606569379">"Chiquvchi Wi-Fi qo‘ng‘irog‘i"</string>
<string name="notification_on_hold" msgid="3480694969511790465">"Kutmoqda"</string>
@@ -67,7 +67,7 @@
<string name="notification_voicemail_title" msgid="8933468752045550523">"Yangi ovozli xabar"</string>
<string name="notification_voicemail_title_count" msgid="4366360747660929916">"Yangi ovozli xabar (<xliff:g id="COUNT">%d</xliff:g>)"</string>
<string name="notification_voicemail_text_format" msgid="4447323569453981685">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>ni terish"</string>
- <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Ovozli qo‘ng‘iroq raqami noma’lum"</string>
+ <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Ovozli pochta raqami noma’lum"</string>
<string name="notification_network_selection_title" msgid="4224455487793492772">"Xizmat mavjud emas"</string>
<string name="notification_network_selection_text" msgid="2607085729661923269">"Tanlangan tarmoq (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) mavjud emas"</string>
<string name="notification_action_answer" msgid="6700362365135365143">"Javob berish"</string>
@@ -76,8 +76,8 @@
<string name="notification_action_answer_voice" msgid="1770796916369437773">"Ovoz"</string>
<string name="notification_action_accept" msgid="2898609801209468429">"Roziman"</string>
<string name="notification_action_dismiss" msgid="2679969397930852858">"Yopish"</string>
- <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Teskari qo‘ng‘iroq"</string>
- <string name="notification_missedCall_message" msgid="3049928912736917988">"Xabar"</string>
+ <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Qo‘ng‘iroq"</string>
+ <string name="notification_missedCall_message" msgid="3049928912736917988">"SMS"</string>
<string name="incall_error_power_off" msgid="6550191216405193368">"Qo‘ng‘iroq qilish uchun, avval \"Parvoz rejimi\" o‘chirilishi kerak."</string>
<string name="incall_error_emergency_only" msgid="4678640422710818317">"Tarmoqda ro‘yxatdan o‘tmagan."</string>
<string name="incall_error_out_of_service" msgid="4100065333878929223">"Mobil tarmoq mavjud emas."</string>
@@ -121,7 +121,7 @@
<string name="unknown_call_session_event" msgid="2431061946920253582">"Noma’lum qo‘ng‘iroq sessiyasi hodisasi"</string>
<string name="voicemail_provider" msgid="5135942703327136909">"Xizmat"</string>
<string name="voicemail_settings" msgid="72448049107749316">"Moslash"</string>
- <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;O‘rnatilmagan&gt;"</string>
+ <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Ko‘rsatilmagan&gt;"</string>
<string name="other_settings" msgid="3672912580359716394">"Boshqa qo‘ng‘iroq sozlamalari"</string>
<string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> orqali qo‘ng‘rioq qilinmoqda"</string>
<string name="incoming_via_template" msgid="1696993226115570960">"Kiruvchi qo‘ng‘iroqlar <xliff:g id="PROVIDER_NAME">%s</xliff:g> orqali"</string>
@@ -150,7 +150,7 @@
<string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Tebratish"</string>
<string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Ovoz"</string>
<string name="default_notification_description" msgid="78174796906240970">"Standart ovoz (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
- <string name="ringtone_title" msgid="6374978286202084684">"Telefon qo‘ng‘iroq ohangi"</string>
+ <string name="ringtone_title" msgid="6374978286202084684">"Telefon ringtoni"</string>
<string name="vibrate_on_ring_title" msgid="9197564612065258960">"Jiringlash vaqtida tebranish"</string>
<string name="preference_category_ringtone" msgid="5197960752529332721">"Qo‘ng‘iroq ohangi &amp; tebranish"</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Konferensiya qo‘ng‘irog‘ini boshqarish"</string>
@@ -167,4 +167,6 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> soat</item>
<item quantity="one">1 soat</item>
</plurals>
+ <string name="profile_photo_description" msgid="5609894336203315400">"Profil rasmi"</string>
+ <string name="camera_off_description" msgid="5689494614359429889">"Kamera o‘chiq"</string>
</resources>
diff --git a/InCallUI/res/values-vi/strings.xml b/InCallUI/res/values-vi/strings.xml
index 5d62c6058..adecdbd1d 100644
--- a/InCallUI/res/values-vi/strings.xml
+++ b/InCallUI/res/values-vi/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Cuộc gọi điện video"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Đang yêu cầu video"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Không kết nối được cuộc gọi điện video"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Cuộc gọi điện video (tạm dừng)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Số gọi lại của bạn\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Số gọi lại khẩn cấp của bạn\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Đang gọi"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> giờ</item>
<item quantity="one">1 giờ</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-zh-rCN/strings.xml b/InCallUI/res/values-zh-rCN/strings.xml
index e55425b46..56c03f87d 100644
--- a/InCallUI/res/values-zh-rCN/strings.xml
+++ b/InCallUI/res/values-zh-rCN/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"视频通话"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"正在发出视频请求"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"无法连接视频通话"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"视频通话(已暂停)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"您的回拨号码\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"您的紧急回拨号码\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"正在拨号"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 小时</item>
<item quantity="one">1 小时</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-zh-rHK/strings.xml b/InCallUI/res/values-zh-rHK/strings.xml
index 72d85b546..6b68a83d2 100644
--- a/InCallUI/res/values-zh-rHK/strings.xml
+++ b/InCallUI/res/values-zh-rHK/strings.xml
@@ -49,7 +49,7 @@
<string name="card_title_video_call" msgid="5898636679563320218">"視像通話"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"提出視像要求"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"無法連接視像通話"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"視像通話 (已暫停)"</string>
+ <string name="card_title_video_call_rejected" msgid="462358296694719787">"視像通話要求被拒"</string>
<string name="card_title_callback_number" msgid="7307938207564217293">"您的回撥號碼:\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"您的緊急回撥號碼:\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"撥號中"</string>
@@ -167,4 +167,6 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 小時</item>
<item quantity="one">1 小時</item>
</plurals>
+ <string name="profile_photo_description" msgid="5609894336203315400">"個人檔案相片"</string>
+ <string name="camera_off_description" msgid="5689494614359429889">"攝影機已關閉"</string>
</resources>
diff --git a/InCallUI/res/values-zh-rTW/strings.xml b/InCallUI/res/values-zh-rTW/strings.xml
index ab835075c..2b8f8b232 100644
--- a/InCallUI/res/values-zh-rTW/strings.xml
+++ b/InCallUI/res/values-zh-rTW/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"視訊通話"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"提出視訊要求"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"無法建立視訊通話連線"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"視訊通話 (已暫停)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"您的回撥號碼如下\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"您的緊急回撥號碼如下\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"撥號中"</string>
@@ -167,4 +168,8 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 小時</item>
<item quantity="one">1 小時</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values-zu/strings.xml b/InCallUI/res/values-zu/strings.xml
index 8d6233b04..16b280082 100644
--- a/InCallUI/res/values-zu/strings.xml
+++ b/InCallUI/res/values-zu/strings.xml
@@ -49,7 +49,8 @@
<string name="card_title_video_call" msgid="5898636679563320218">"Ikholi yevidiyo"</string>
<string name="card_title_video_call_requesting" msgid="4587504939739340937">"Icela ividiyo"</string>
<string name="card_title_video_call_error" msgid="9000555878389539225">"Ayikwazi ukuxhuma ikholi yevidiyo"</string>
- <string name="card_title_video_call_paused" msgid="3753261320787432731">"Ikholi yevidiyo (Imiswe isikhashana)"</string>
+ <!-- no translation found for card_title_video_call_rejected (462358296694719787) -->
+ <skip />
<string name="card_title_callback_number" msgid="7307938207564217293">"Inombolo yakho okumele ishayelwe futhi ngu-\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Inombolo yakho yesimo esiphuthumayo okumele iphinde ishayelwe ngu-\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
<string name="notification_dialing" msgid="2107666444937350731">"Iyadayela"</string>
@@ -167,4 +168,8 @@
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> amahora</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> amahora</item>
</plurals>
+ <!-- no translation found for profile_photo_description (5609894336203315400) -->
+ <skip />
+ <!-- no translation found for camera_off_description (5689494614359429889) -->
+ <skip />
</resources>
diff --git a/InCallUI/res/values/array.xml b/InCallUI/res/values/array.xml
index 2e38c2c46..7877ec8f3 100644
--- a/InCallUI/res/values/array.xml
+++ b/InCallUI/res/values/array.xml
@@ -112,61 +112,24 @@
<item>@string/description_direction_down</item>
</array>
-
- <!-- For upgrade to video from VOLTE to VT (Tx/Rx/Bidirectional) in an active video call.
+ <!-- For accept/reject upgrade to video in active video call
- Accept upgrade to video request (drag right)
- - Decline upgrade to video request (drag left)
- - Answer as audio call (drag down) -->
- <array name="incoming_call_widget_video_upgrade_request_targets">
+ - Decline upgrade to video request (drag left)-->
+ <array name="incoming_call_widget_video_request_targets">
<item>@drawable/ic_lockscreen_answer_video</item>
- <item>@null</item>
- <item>@drawable/ic_lockscreen_decline</item>
- <item>@drawable/ic_lockscreen_answer</item>
+ <item>@drawable/ic_lockscreen_decline_video</item>
</array>
- <array name="incoming_call_widget_video_upgrade_request_target_descriptions">
+
+ <array name="incoming_call_widget_video_request_target_descriptions">
<item>@string/description_target_accept_upgrade_to_video_request</item>
<item>@null</item>
<item>@string/description_target_decline_upgrade_to_video_request</item>
<item>@null</item>"
</array>
- <array name="incoming_call_widget_video_upgrade_request_target_direction_descriptions">
+ <array name="incoming_call_widget_video_request_target_direction_descriptions">
<item>@string/description_direction_right</item>
<item>@null</item>
<item>@string/description_direction_left</item>
<item>@null</item>
</array>
-
- <!-- For accept/reject upgrade to video in active video call
- - Accept upgrade to video request (drag right)
- - Decline upgrade to video request (drag left)-->
- <array name="incoming_call_widget_bidirectional_video_accept_reject_request_targets">
- <item>@drawable/ic_lockscreen_answer_video</item>
- <item>@drawable/ic_lockscreen_decline</item>
- </array>
-
- <!-- For accept/reject upgrade to video transmit in active video call
- - Accept upgrade to video request (drag right)
- - Decline upgrade to video request (drag left)
- TODO: This should be automatically rejected in the lower layers -->
- <array name="incoming_call_widget_video_transmit_accept_reject_request_targets">
- <item>@drawable/ic_lockscreen_answer_video</item>
- <item>@drawable/ic_lockscreen_decline</item>
- </array>
- <array name="incoming_call_widget_video_transmit_request_target_descriptions">
- <item>@string/description_target_accept_upgrade_to_video_request</item>
- <item>@string/description_target_decline_upgrade_to_video_request</item>
- </array>
-
- <!-- For accept/reject upgrade to video receive in active video call
- - Accept upgrade to video request (drag right)
- - Decline upgrade to video request (drag left)-->
- <array name="incoming_call_widget_video_receive_accept_reject_request_targets">
- <item>@drawable/ic_lockscreen_answer_video</item>
- <item>@drawable/ic_lockscreen_decline</item>
- </array>
- <array name="incoming_call_widget_video_receive_request_target_descriptions">
- <item>@string/description_target_accept_upgrade_to_video_request</item>
- <item>@string/description_target_decline_upgrade_to_video_request</item>
- </array>
-
</resources>
diff --git a/InCallUI/res/values/config.xml b/InCallUI/res/values/config.xml
new file mode 100644
index 000000000..b81ba3ca0
--- /dev/null
+++ b/InCallUI/res/values/config.xml
@@ -0,0 +1,27 @@
+<!--
+ ~ 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
+ -->
+<resources>
+ <!-- Determines the maximum number of buttons visible on the call card. Any buttons over this
+ count are put into the overflow menu. -->
+ <integer name="call_card_max_buttons">5</integer>
+
+ <!-- Determines video calls will automatically enter fullscreen mode after the start of the
+ call. -->
+ <bool name="video_call_auto_fullscreen">true</bool>
+ <!-- The number of milliseconds after which a video call will automatically enter fullscreen
+ mode (requires video_call_auto_fullscreen to be true). -->
+ <integer name="video_call_auto_fullscreen_timeout">5000</integer>
+</resources> \ No newline at end of file
diff --git a/InCallUI/res/values/strings.xml b/InCallUI/res/values/strings.xml
index c3ccc141c..c985a8cc7 100644
--- a/InCallUI/res/values/strings.xml
+++ b/InCallUI/res/values/strings.xml
@@ -114,8 +114,8 @@
<string name="card_title_video_call_requesting">Requesting video</string>
<!-- In-call screen: status label when there is a problem connecting a video call. -->
<string name="card_title_video_call_error">Can\'t connect video call</string>
- <!-- In-call screen: status label when in a paused video call. -->
- <string name="card_title_video_call_paused">Video call (Paused)</string>
+ <!-- In-call screen: status label when the remote party rejects a video call request. -->
+ <string name="card_title_video_call_rejected">Video request rejected</string>
<!-- In-call screen: string shown to the user when their outgoing number is different than the
number reported by TelephonyManager#getLine1Number() -->
@@ -294,13 +294,6 @@
<!-- Text for the onscreen overflow button, to see additional actions which can be done. -->
<string name="onscreenOverflowText">More options</string>
- <!-- STOPSHIP - For test only - In-call screen: Modify Call Options for IMS call -->
- <string name="modify_call_option_title" translatable="false">Which type of call?</string>
- <string name="modify_call_option_vt" translatable="false">Video bidirectional</string>
- <string name="modify_call_option_vt_tx" translatable="false">Video transmit</string>
- <string name="modify_call_option_vt_rx" translatable="false">Video receive</string>
- <string name="modify_call_option_voice" translatable="false">Voice Only</string>
-
<!-- Message indicating that Video Started flowing for IMS-VT calls -->
<string name="player_started">Player Started</string>
<!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
@@ -440,17 +433,6 @@
<!-- This can be used in any application wanting to disable the text "Emergency number" -->
<string name="emergency_call_dialog_number_for_display">Emergency number</string>
- <!-- Video quality changed message -->
- <string name="video_quality_changed" translatable="false">Video quality changed to \u0020</string>
- <!-- Video quality High -->
- <string name="video_quality_high" translatable="false">High</string>
- <!-- Video quality Medium -->
- <string name="video_quality_medium" translatable="false">Medium</string>
- <!-- Video quality Low -->
- <string name="video_quality_low" translatable="false">Low</string>
- <!-- Video quality Unknown -->
- <string name="video_quality_unknown" translatable="false">Unknown</string>
-
<!-- Phrase describing a time duration using seconds [CHAR LIMIT=16] -->
<plurals name="duration_seconds">
<item quantity="one">1 second</item>
@@ -466,4 +448,12 @@
<item quantity="one">1 hour</item>
<item quantity="other"><xliff:g id="count">%d</xliff:g> hours</item>
</plurals>
+
+ <!-- Description of the profile photo shown when the device's camera is disabled udring a video
+ call. [CHAR LIMIT=NONE] -->
+ <string name="profile_photo_description">Profile photo</string>
+
+ <!-- Description of the "camera off" icon displayed when the device's camera is disabled during
+ a video call. [CHAR LIMIT=NONE] -->
+ <string name="camera_off_description">Camera off</string>
</resources>
diff --git a/InCallUI/src/com/android/incallui/AnswerFragment.java b/InCallUI/src/com/android/incallui/AnswerFragment.java
index 07cbfd573..d68a316c9 100644
--- a/InCallUI/src/com/android/incallui/AnswerFragment.java
+++ b/InCallUI/src/com/android/incallui/AnswerFragment.java
@@ -21,6 +21,7 @@ import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
+import android.telecom.VideoProfile;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
@@ -49,10 +50,7 @@ public class AnswerFragment extends BaseFragment<AnswerPresenter, AnswerPresente
public static final int TARGET_SET_FOR_AUDIO_WITH_SMS = 1;
public static final int TARGET_SET_FOR_VIDEO_WITHOUT_SMS = 2;
public static final int TARGET_SET_FOR_VIDEO_WITH_SMS = 3;
- public static final int TARGET_SET_FOR_VIDEO_UPGRADE_REQUEST = 4;
- public static final int TARGET_SET_FOR_BIDIRECTIONAL_VIDEO_ACCEPT_REJECT_REQUEST = 5;
- public static final int TARGET_SET_FOR_VIDEO_TRANSMIT_ACCEPT_REJECT_REQUEST = 6;
- public static final int TARGET_SET_FOR_VIDEO_RECEIVE_ACCEPT_REJECT_REQUEST = 7;
+ public static final int TARGET_SET_FOR_VIDEO_ACCEPT_REJECT_REQUEST = 4;
/**
* The popup showing the list of canned responses.
@@ -124,12 +122,21 @@ public class AnswerFragment extends BaseFragment<AnswerPresenter, AnswerPresente
* Sets targets on the glowpad according to target set identified by the parameter.
* @param targetSet Integer identifying the set of targets to use.
*/
- @Override
public void showTargets(int targetSet) {
+ showTargets(targetSet, VideoProfile.VideoState.BIDIRECTIONAL);
+ }
+
+ /**
+ * Sets targets on the glowpad according to target set identified by the parameter.
+ * @param targetSet Integer identifying the set of targets to use.
+ */
+ @Override
+ public void showTargets(int targetSet, int videoState) {
final int targetResourceId;
final int targetDescriptionsResourceId;
final int directionDescriptionsResourceId;
final int handleDrawableResourceId;
+ mGlowpad.setVideoState(videoState);
switch (targetSet) {
case TARGET_SET_FOR_AUDIO_WITH_SMS:
@@ -156,39 +163,13 @@ public class AnswerFragment extends BaseFragment<AnswerPresenter, AnswerPresente
R.array.incoming_call_widget_video_with_sms_direction_descriptions;
handleDrawableResourceId = R.drawable.ic_incall_video_handle;
break;
- case TARGET_SET_FOR_VIDEO_UPGRADE_REQUEST:
- targetResourceId = R.array.incoming_call_widget_video_upgrade_request_targets;
- targetDescriptionsResourceId =
- R.array.incoming_call_widget_video_upgrade_request_target_descriptions;
- directionDescriptionsResourceId = R.array
- .incoming_call_widget_video_upgrade_request_target_direction_descriptions;
- handleDrawableResourceId = R.drawable.ic_incall_video_handle;
- break;
- case TARGET_SET_FOR_BIDIRECTIONAL_VIDEO_ACCEPT_REJECT_REQUEST:
+ case TARGET_SET_FOR_VIDEO_ACCEPT_REJECT_REQUEST:
targetResourceId =
- R.array.incoming_call_widget_bidirectional_video_accept_reject_request_targets;
+ R.array.incoming_call_widget_video_request_targets;
targetDescriptionsResourceId =
- R.array.incoming_call_widget_video_upgrade_request_target_descriptions;
+ R.array.incoming_call_widget_video_request_target_descriptions;
directionDescriptionsResourceId = R.array
- .incoming_call_widget_video_upgrade_request_target_direction_descriptions;
- handleDrawableResourceId = R.drawable.ic_incall_video_handle;
- break;
- case TARGET_SET_FOR_VIDEO_TRANSMIT_ACCEPT_REJECT_REQUEST:
- targetResourceId =
- R.array.incoming_call_widget_video_transmit_accept_reject_request_targets;
- targetDescriptionsResourceId =
- R.array.incoming_call_widget_video_transmit_request_target_descriptions;
- directionDescriptionsResourceId = R.array
- .incoming_call_widget_video_upgrade_request_target_direction_descriptions;
- handleDrawableResourceId = R.drawable.ic_incall_video_handle;
- break;
- case TARGET_SET_FOR_VIDEO_RECEIVE_ACCEPT_REJECT_REQUEST:
- targetResourceId =
- R.array.incoming_call_widget_video_receive_accept_reject_request_targets;
- targetDescriptionsResourceId =
- R.array.incoming_call_widget_video_receive_request_target_descriptions;
- directionDescriptionsResourceId = R.array
- .incoming_call_widget_video_upgrade_request_target_direction_descriptions;
+ .incoming_call_widget_video_request_target_direction_descriptions;
handleDrawableResourceId = R.drawable.ic_incall_video_handle;
break;
case TARGET_SET_FOR_AUDIO_WITHOUT_SMS:
@@ -376,6 +357,11 @@ public class AnswerFragment extends BaseFragment<AnswerPresenter, AnswerPresente
}
@Override
+ public void onDeclineUpgradeRequest(Context context) {
+ InCallPresenter.getInstance().declineUpgradeRequest(context);
+ }
+
+ @Override
public void onText() {
getPresenter().onText();
}
diff --git a/InCallUI/src/com/android/incallui/AnswerPresenter.java b/InCallUI/src/com/android/incallui/AnswerPresenter.java
index 33cdba4c0..9decb7b21 100644
--- a/InCallUI/src/com/android/incallui/AnswerPresenter.java
+++ b/InCallUI/src/com/android/incallui/AnswerPresenter.java
@@ -98,6 +98,17 @@ public class AnswerPresenter extends Presenter<AnswerPresenter.AnswerUi>
public void onDisconnect(Call call) {
// no-op
}
+
+ public void onSessionModificationStateChange(int sessionModificationState) {
+ boolean isUpgradePending = sessionModificationState ==
+ Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST;
+
+ if (!isUpgradePending) {
+ // Stop listening for updates.
+ CallList.getInstance().removeCallUpdateListener(mCallId, this);
+ showAnswerUi(false);
+ }
+ }
private boolean isVideoUpgradePending(Call call) {
return call.getSessionModificationState()
@@ -167,27 +178,15 @@ public class AnswerPresenter extends Presenter<AnswerPresenter.AnswerUi>
return;
}
- showAnswerUi(true);
- getUi().showTargets(getUiTarget(currentVideoState, modifyToVideoState));
-
- }
+ AnswerUi ui = getUi();
- private int getUiTarget(int currentVideoState, int modifyToVideoState) {
- if (showVideoUpgradeOptions(currentVideoState, modifyToVideoState)) {
- return AnswerFragment.TARGET_SET_FOR_VIDEO_UPGRADE_REQUEST;
- } else if (isEnabled(modifyToVideoState, VideoProfile.VideoState.BIDIRECTIONAL)) {
- return AnswerFragment.TARGET_SET_FOR_BIDIRECTIONAL_VIDEO_ACCEPT_REJECT_REQUEST;
- } else if (isEnabled(modifyToVideoState, VideoProfile.VideoState.TX_ENABLED)) {
- return AnswerFragment.TARGET_SET_FOR_VIDEO_TRANSMIT_ACCEPT_REJECT_REQUEST;
- } else if (isEnabled(modifyToVideoState, VideoProfile.VideoState.RX_ENABLED)) {
- return AnswerFragment.TARGET_SET_FOR_VIDEO_RECEIVE_ACCEPT_REJECT_REQUEST;
+ if (ui == null) {
+ Log.e(this, "Ui is null. Can't process upgrade request");
+ return;
}
- return AnswerFragment.TARGET_SET_FOR_VIDEO_UPGRADE_REQUEST;
- }
-
- private boolean showVideoUpgradeOptions(int currentVideoState, int modifyToVideoState) {
- return currentVideoState == VideoProfile.VideoState.AUDIO_ONLY &&
- isEnabled(modifyToVideoState, VideoProfile.VideoState.BIDIRECTIONAL);
+ showAnswerUi(true);
+ ui.showTargets(AnswerFragment.TARGET_SET_FOR_VIDEO_ACCEPT_REJECT_REQUEST,
+ modifyToVideoState);
}
private boolean isEnabled(int videoState, int mask) {
@@ -221,15 +220,16 @@ public class AnswerPresenter extends Presenter<AnswerPresenter.AnswerUi>
}
public void onAnswer(int videoState, Context context) {
- Log.d(this, "onAnswer mCallId=" + mCallId + " videoState=" + videoState);
if (mCallId == null) {
return;
}
if (mCall.getSessionModificationState()
== Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) {
+ Log.d(this, "onAnswer (upgradeCall) mCallId=" + mCallId + " videoState=" + videoState);
InCallPresenter.getInstance().acceptUpgradeRequest(videoState, context);
} else {
+ Log.d(this, "onAnswer (answerCall) mCallId=" + mCallId + " videoState=" + videoState);
TelecomAdapter.getInstance().answerCall(mCall.getId(), videoState);
}
}
@@ -267,17 +267,14 @@ public class AnswerPresenter extends Presenter<AnswerPresenter.AnswerUi>
}
private void configureAnswerTargetsForSms(Call call, List<String> textMsgs) {
- if (getUi() == null) {
- return;
- }
-
- final Context context = getUi().getContext();
-
mHasTextMessages = textMsgs != null;
boolean withSms =
call.can(android.telecom.Call.Details.CAPABILITY_RESPOND_VIA_TEXT)
&& mHasTextMessages;
- if (call.isVideoCall(context)) {
+
+ // Only present the user with the option to answer as a video call if the incoming call is
+ // a bi-directional video call.
+ if (VideoProfile.VideoState.isBidirectional((call.getVideoState()))) {
if (withSms) {
getUi().showTargets(AnswerFragment.TARGET_SET_FOR_VIDEO_WITH_SMS);
getUi().configureMessageDialog(textMsgs);
@@ -297,6 +294,7 @@ public class AnswerPresenter extends Presenter<AnswerPresenter.AnswerUi>
interface AnswerUi extends Ui {
public void onShowAnswerUi(boolean shown);
public void showTargets(int targetSet);
+ public void showTargets(int targetSet, int videoState);
public void showMessageDialog();
public void configureMessageDialog(List<String> textResponses);
public Context getContext();
diff --git a/InCallUI/src/com/android/incallui/Call.java b/InCallUI/src/com/android/incallui/Call.java
index 5cf0f9b1a..9f58fbed5 100644
--- a/InCallUI/src/com/android/incallui/Call.java
+++ b/InCallUI/src/com/android/incallui/Call.java
@@ -124,6 +124,7 @@ public class Call {
public static final int REQUEST_FAILED = 2;
public static final int RECEIVED_UPGRADE_TO_VIDEO_REQUEST = 3;
public static final int UPGRADE_TO_VIDEO_REQUEST_TIMED_OUT = 4;
+ public static final int REQUEST_REJECTED = 5;
}
public static class VideoSettings {
@@ -509,11 +510,8 @@ public class Call {
mSessionModificationState = state;
Log.d(this, "setSessionModificationState " + state + " mSessionModificationState="
+ mSessionModificationState);
- if (state != Call.SessionModificationState.WAITING_FOR_RESPONSE) {
- setModifyToVideoState(VideoProfile.VideoState.AUDIO_ONLY);
- }
if (hasChanged) {
- update();
+ CallList.getInstance().onSessionModificationStateChange(this, state);
}
}
@@ -549,7 +547,7 @@ public class Call {
}
return String.format(Locale.US, "[%s, %s, %s, children:%s, parent:%s, conferenceable:%s, " +
- "videoState:%d, mSessionModificationState:%d, VideoSettings:%s]",
+ "videoState:%s, mSessionModificationState:%d, VideoSettings:%s]",
mId,
State.toString(getState()),
android.telecom.Call.Details
@@ -557,7 +555,8 @@ public class Call {
mChildCallIds,
getParentId(),
this.mTelecommCall.getConferenceableCalls(),
- mTelecommCall.getDetails().getVideoState(),
+ VideoProfile.VideoState.videoStateToString(
+ mTelecommCall.getDetails().getVideoState()),
mSessionModificationState,
getVideoSettings());
}
diff --git a/InCallUI/src/com/android/incallui/CallButtonFragment.java b/InCallUI/src/com/android/incallui/CallButtonFragment.java
index b3cadcfec..9def35694 100644
--- a/InCallUI/src/com/android/incallui/CallButtonFragment.java
+++ b/InCallUI/src/com/android/incallui/CallButtonFragment.java
@@ -18,9 +18,7 @@ package com.android.incallui;
import static com.android.incallui.CallButtonFragment.Buttons.*;
-import android.app.AlertDialog;
import android.content.Context;
-import android.content.DialogInterface;
import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
@@ -30,8 +28,6 @@ import android.graphics.drawable.RippleDrawable;
import android.graphics.drawable.StateListDrawable;
import android.os.Bundle;
import android.telecom.AudioState;
-import android.telecom.TelecomManager;
-import android.telecom.VideoProfile;
import android.util.SparseIntArray;
import android.view.ContextThemeWrapper;
import android.view.HapticFeedbackConstants;
@@ -43,12 +39,10 @@ import android.view.ViewGroup;
import android.widget.CompoundButton;
import android.widget.ImageButton;
import android.widget.PopupMenu;
-import android.widget.Toast;
import android.widget.PopupMenu.OnDismissListener;
import android.widget.PopupMenu.OnMenuItemClickListener;
import com.android.contacts.common.util.MaterialColorMapUtils.MaterialPalette;
-import java.util.ArrayList;
/**
* Fragment for call control buttons
@@ -58,7 +52,7 @@ public class CallButtonFragment
implements CallButtonPresenter.CallButtonUi, OnMenuItemClickListener, OnDismissListener,
View.OnClickListener {
private static final int INVALID_INDEX = -1;
- private static final int BUTTON_MAX_VISIBLE = 5;
+ private int mButtonMaxVisible;
// The button is currently visible in the UI
private static final int BUTTON_VISIBLE = 1;
// The button is hidden in the UI
@@ -68,24 +62,22 @@ public class CallButtonFragment
public interface Buttons {
public static final int BUTTON_AUDIO = 0;
- public static final int BUTTON_DOWNGRADE_TO_VOICE = 1;
- public static final int BUTTON_MUTE = 2;
- public static final int BUTTON_DIALPAD = 3;
- public static final int BUTTON_HOLD = 4;
- public static final int BUTTON_SWAP = 5;
- public static final int BUTTON_UPGRADE_TO_VIDEO = 6;
- public static final int BUTTON_SWITCH_CAMERA = 7;
- public static final int BUTTON_ADD_CALL = 8;
- public static final int BUTTON_MERGE = 9;
- public static final int BUTTON_PAUSE_VIDEO = 10;
- public static final int BUTTON_MANAGE_VIDEO_CONFERENCE = 11;
- public static final int BUTTON_COUNT = 12;
+ public static final int BUTTON_MUTE = 1;
+ public static final int BUTTON_DIALPAD = 2;
+ public static final int BUTTON_HOLD = 3;
+ public static final int BUTTON_SWAP = 4;
+ public static final int BUTTON_UPGRADE_TO_VIDEO = 5;
+ public static final int BUTTON_SWITCH_CAMERA = 6;
+ public static final int BUTTON_ADD_CALL = 7;
+ public static final int BUTTON_MERGE = 8;
+ public static final int BUTTON_PAUSE_VIDEO = 9;
+ public static final int BUTTON_MANAGE_VIDEO_CONFERENCE = 10;
+ public static final int BUTTON_COUNT = 11;
}
private SparseIntArray mButtonVisibilityMap = new SparseIntArray(BUTTON_COUNT);
private CompoundButton mAudioButton;
- private ImageButton mChangeToVoiceButton;
private CompoundButton mMuteButton;
private CompoundButton mShowDialpadButton;
private CompoundButton mHoldButton;
@@ -129,6 +121,8 @@ public class CallButtonFragment
for (int i = 0; i < BUTTON_COUNT; i++) {
mButtonVisibilityMap.put(i, BUTTON_HIDDEN);
}
+
+ mButtonMaxVisible = getResources().getInteger(R.integer.call_card_max_buttons);
}
@Override
@@ -138,8 +132,6 @@ public class CallButtonFragment
mAudioButton = (CompoundButton) parent.findViewById(R.id.audioButton);
mAudioButton.setOnClickListener(this);
- mChangeToVoiceButton = (ImageButton) parent.findViewById(R.id.changeToVoiceButton);
- mChangeToVoiceButton. setOnClickListener(this);
mMuteButton = (CompoundButton) parent.findViewById(R.id.muteButton);
mMuteButton.setOnClickListener(this);
mShowDialpadButton = (CompoundButton) parent.findViewById(R.id.dialpadButton);
@@ -196,10 +188,6 @@ public class CallButtonFragment
case R.id.addButton:
getPresenter().addCallClicked();
break;
- case R.id.changeToVoiceButton:
- // STOPSHIP One way video options
- getPresenter().displayModifyCallOptions();
- break;
case R.id.muteButton: {
getPresenter().muteClicked(!mMuteButton.isSelected());
break;
@@ -219,8 +207,7 @@ public class CallButtonFragment
getPresenter().showDialpadClicked(!mShowDialpadButton.isSelected());
break;
case R.id.changeToVideoButton:
- // STOPSHIP One way video options
- getPresenter().displayModifyCallOptions();
+ getPresenter().changeToVideoClicked();
break;
case R.id.switchCameraButton:
getPresenter().switchCameraClicked(
@@ -271,7 +258,6 @@ public class CallButtonFragment
}
ImageButton[] normalButtons = {
- mChangeToVoiceButton,
mSwapButton,
mChangeToVideoButton,
mAddCallButton,
@@ -358,7 +344,6 @@ public class CallButtonFragment
mIsEnabled = isEnabled;
mAudioButton.setEnabled(isEnabled);
- mChangeToVoiceButton.setEnabled(isEnabled);
mMuteButton.setEnabled(isEnabled);
mShowDialpadButton.setEnabled(isEnabled);
mHoldButton.setEnabled(isEnabled);
@@ -389,8 +374,6 @@ public class CallButtonFragment
switch (id) {
case BUTTON_AUDIO:
return mAudioButton;
- case BUTTON_DOWNGRADE_TO_VOICE:
- return mChangeToVoiceButton;
case BUTTON_MUTE:
return mMuteButton;
case BUTTON_DIALPAD:
@@ -444,74 +427,6 @@ public class CallButtonFragment
}
}
- /**The function is called when Modify Call button gets pressed. The function creates and
- * displays modify call options.
- */
- @Override
- public void displayModifyCallOptions() {
- CallButtonPresenter.CallButtonUi ui = getUi();
- if (ui == null) {
- Log.e(this, "Cannot display ModifyCallOptions as ui is null");
- return;
- }
-
- Context context = getContext();
-
- final ArrayList<CharSequence> items = new ArrayList<CharSequence>();
- final ArrayList<Integer> itemToCallType = new ArrayList<Integer>();
- final Resources res = ui.getContext().getResources();
- // Prepare the string array and mapping.
- items.add(res.getText(R.string.modify_call_option_voice));
- itemToCallType.add(VideoProfile.VideoState.AUDIO_ONLY);
-
- items.add(res.getText(R.string.modify_call_option_vt_rx));
- itemToCallType.add(VideoProfile.VideoState.RX_ENABLED);
-
- items.add(res.getText(R.string.modify_call_option_vt_tx));
- itemToCallType.add(VideoProfile.VideoState.TX_ENABLED);
-
- items.add(res.getText(R.string.modify_call_option_vt));
- itemToCallType.add(VideoProfile.VideoState.BIDIRECTIONAL);
-
- AlertDialog.Builder builder = new AlertDialog.Builder(getUi().getContext());
- builder.setTitle(R.string.modify_call_option_title);
- final AlertDialog alert;
-
- DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int item) {
- Toast.makeText(getUi().getContext(), items.get(item), Toast.LENGTH_SHORT).show();
- final int selCallType = itemToCallType.get(item);
- Log.v(this, "Videocall: ModifyCall: upgrade/downgrade to "
- + fromCallType(selCallType));
- VideoProfile videoProfile = new VideoProfile(selCallType);
- getPresenter().changeToVideoClicked(videoProfile);
- dialog.dismiss();
- }
- };
- int currVideoState = getPresenter().getCurrentVideoState();
- int currUnpausedVideoState = CallUtils.getUnPausedVideoState(currVideoState);
- int index = itemToCallType.indexOf(currUnpausedVideoState);
- if (index == INVALID_INDEX) {
- return;
- }
- builder.setSingleChoiceItems(items.toArray(new CharSequence[0]), index, listener);
- alert = builder.create();
- alert.show();
- }
-
- public static String fromCallType(int callType) {
- switch (callType) {
- case VideoProfile.VideoState.BIDIRECTIONAL:
- return "VT";
- case VideoProfile.VideoState.TX_ENABLED:
- return "VT_TX";
- case VideoProfile.VideoState.RX_ENABLED:
- return "VT_RX";
- }
- return "";
- }
-
private void addToOverflowMenu(int id, View button, PopupMenu menu) {
button.setVisibility(View.GONE);
menu.getMenu().add(Menu.NONE, id, Menu.NONE, button.getContentDescription());
@@ -539,7 +454,7 @@ public class CallButtonFragment
final View button = getButtonById(i);
if (visibility == BUTTON_VISIBLE) {
visibleCount++;
- if (visibleCount <= BUTTON_MAX_VISIBLE) {
+ if (visibleCount <= mButtonMaxVisible) {
button.setVisibility(View.VISIBLE);
prevVisibleButton = button;
prevVisibleId = i;
diff --git a/InCallUI/src/com/android/incallui/CallButtonPresenter.java b/InCallUI/src/com/android/incallui/CallButtonPresenter.java
index 82c576f79..d788a1097 100644
--- a/InCallUI/src/com/android/incallui/CallButtonPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallButtonPresenter.java
@@ -79,6 +79,7 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
InCallPresenter.getInstance().removeIncomingCallListener(this);
InCallPresenter.getInstance().removeDetailsListener(this);
InCallPresenter.getInstance().getInCallCameraManager().removeCameraSelectionListener(this);
+ InCallPresenter.getInstance().removeCanAddCallListener(this);
}
@Override
@@ -258,20 +259,16 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
getUi().displayDialpad(checked /* show */, true /* animate */);
}
- public void displayModifyCallOptions() {
- getUi().displayModifyCallOptions();
- }
-
- public int getCurrentVideoState() {
- return mCall.getVideoState();
- }
-
- public void changeToVideoClicked(VideoProfile videoProfile) {
+ public void changeToVideoClicked() {
VideoCall videoCall = mCall.getVideoCall();
if (videoCall == null) {
return;
}
+ int currVideoState = mCall.getVideoState();
+ int currUnpausedVideoState = CallUtils.getUnPausedVideoState(currVideoState);
+ currUnpausedVideoState |= VideoProfile.VideoState.BIDIRECTIONAL;
+ VideoProfile videoProfile = new VideoProfile(currUnpausedVideoState);
videoCall.sendSessionModifyRequest(videoProfile);
mCall.setSessionModificationState(Call.SessionModificationState.WAITING_FOR_RESPONSE);
}
@@ -316,15 +313,16 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
if (pause) {
videoCall.setCamera(null);
VideoProfile videoProfile = new VideoProfile(
- mCall.getVideoState() | VideoProfile.VideoState.PAUSED);
+ mCall.getVideoState() & ~VideoProfile.VideoState.TX_ENABLED);
videoCall.sendSessionModifyRequest(videoProfile);
} else {
InCallCameraManager cameraManager = InCallPresenter.getInstance().
getInCallCameraManager();
videoCall.setCamera(cameraManager.getActiveCameraId());
VideoProfile videoProfile = new VideoProfile(
- mCall.getVideoState() & ~VideoProfile.VideoState.PAUSED);
+ mCall.getVideoState() | VideoProfile.VideoState.TX_ENABLED);
videoCall.sendSessionModifyRequest(videoProfile);
+ mCall.setSessionModificationState(Call.SessionModificationState.WAITING_FOR_RESPONSE);
}
getUi().setVideoPaused(pause);
}
@@ -354,7 +352,7 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
* @param call The active call.
*/
private void updateButtonsState(Call call) {
- Log.v(this, "Showing buttons for voice call.");
+ Log.v(this, "updateButtonsState");
final CallButtonUi ui = getUi();
final boolean isVideo = CallUtils.isVideoCall(call);
@@ -373,9 +371,7 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
final boolean showAddCall = TelecomAdapter.getInstance().canAddCall();
final boolean showMerge = call.can(
android.telecom.Call.Details.CAPABILITY_MERGE_CONFERENCE);
- // TODO: This button is currently being used for both upgrade and downgrade scenarios.
- // It should be split into BUTTON_DOWNGRADE_TO_VOICE AND BUTTON_UPGRADE_TO_VIDEO
- final boolean showUpgradeToVideo = isVideo ||
+ final boolean showUpgradeToVideo = !isVideo &&
(call.can(android.telecom.Call.Details.CAPABILITY_SUPPORTS_VT_LOCAL_TX)
&& call.can(android.telecom.Call.Details.CAPABILITY_SUPPORTS_VT_REMOTE_RX));
@@ -388,7 +384,6 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
ui.showButton(BUTTON_MUTE, showMute);
ui.showButton(BUTTON_ADD_CALL, showAddCall);
ui.showButton(BUTTON_UPGRADE_TO_VIDEO, showUpgradeToVideo);
- ui.showButton(BUTTON_DOWNGRADE_TO_VOICE, false);
ui.showButton(BUTTON_SWITCH_CAMERA, isVideo);
ui.showButton(BUTTON_PAUSE_VIDEO, isVideo);
ui.showButton(BUTTON_DIALPAD, !isVideo);
@@ -436,7 +431,6 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
void setAudio(int mode);
void setSupportedAudio(int mask);
void displayDialpad(boolean on, boolean animate);
- void displayModifyCallOptions();
boolean isDialpadVisible();
/**
diff --git a/InCallUI/src/com/android/incallui/CallCardFragment.java b/InCallUI/src/com/android/incallui/CallCardFragment.java
index 691589ca0..499f46417 100644
--- a/InCallUI/src/com/android/incallui/CallCardFragment.java
+++ b/InCallUI/src/com/android/incallui/CallCardFragment.java
@@ -31,6 +31,8 @@ import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable;
import android.os.Bundle;
import android.os.Trace;
+import android.os.Handler;
+import android.os.Looper;
import android.telecom.DisconnectCause;
import android.telecom.VideoProfile;
import android.telephony.PhoneNumberUtils;
@@ -63,6 +65,38 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
implements CallCardPresenter.CallCardUi {
private static final String TAG = "CallCardFragment";
+ /**
+ * Internal class which represents the call state label which is to be applied.
+ */
+ private class CallStateLabel {
+ private CharSequence mCallStateLabel;
+ private boolean mIsAutoDismissing;
+
+ public CallStateLabel(CharSequence callStateLabel, boolean isAutoDismissing) {
+ mCallStateLabel = callStateLabel;
+ mIsAutoDismissing = isAutoDismissing;
+ }
+
+ public CharSequence getCallStateLabel() {
+ return mCallStateLabel;
+ }
+
+ /**
+ * Determines if the call state label should auto-dismiss.
+ *
+ * @return {@code true} if the call state label should auto-dismiss.
+ */
+ public boolean isAutoDismissing() {
+ return mIsAutoDismissing;
+ }
+ };
+
+ /**
+ * The duration of time (in milliseconds) a call state label should remain visible before
+ * resetting to its previous value.
+ */
+ private static final long CALL_STATE_LABEL_RESET_DELAY_MS = 3000;
+
private AnimatorSet mAnimatorSet;
private int mShrinkAnimationDuration;
private int mFabNormalDiameter;
@@ -119,6 +153,13 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
private MaterialPalette mCurrentThemeColors;
+ /**
+ * Call state label to set when an auto-dismissing call state label is dismissed.
+ */
+ private CharSequence mPostResetCallStateLabel;
+ private boolean mCallStateLabelResetPending = false;
+ private Handler mHandler;
+
@Override
public CallCardPresenter.CallCardUi getUi() {
return this;
@@ -133,6 +174,7 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ mHandler = new Handler(Looper.getMainLooper());
mShrinkAnimationDuration = getResources().getInteger(R.integer.shrink_animation_duration);
mVideoAnimationDuration = getResources().getInteger(R.integer.video_animation_duration);
mFloatingActionButtonVerticalOffset = getResources().getDimensionPixelOffset(
@@ -269,6 +311,9 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
// Retrieve here since at fragment creation time the incoming video view is not inflated.
final View videoView = getView().findViewById(R.id.incomingVideo);
+ if (videoView == null) {
+ return;
+ }
// Determine how much space there is below or to the side of the call card.
final float spaceBesideCallCard = getSpaceBesideCallCard();
@@ -492,15 +537,16 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
boolean isWifi,
boolean isConference) {
boolean isGatewayCall = !TextUtils.isEmpty(gatewayNumber);
- CharSequence callStateLabel = getCallStateLabelFromState(state, videoState,
+ CallStateLabel callStateLabel = getCallStateLabelFromState(state, videoState,
sessionModificationState, disconnectCause, connectionLabel, isGatewayCall, isWifi,
isConference);
- Log.v(this, "setCallState " + callStateLabel);
+ Log.v(this, "setCallState " + callStateLabel.getCallStateLabel());
+ Log.v(this, "AutoDismiss " + callStateLabel.isAutoDismissing());
Log.v(this, "DisconnectCause " + disconnectCause.toString());
Log.v(this, "gateway " + connectionLabel + gatewayNumber);
- if (TextUtils.equals(callStateLabel, mCallStateLabel.getText())) {
+ if (TextUtils.equals(callStateLabel.getCallStateLabel(), mCallStateLabel.getText())) {
// Nothing to do if the labels are the same
if (state == Call.State.ACTIVE || state == Call.State.CONFERENCED) {
mCallStateLabel.clearAnimation();
@@ -510,24 +556,13 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
}
// Update the call state label and icon.
- if (!TextUtils.isEmpty(callStateLabel)) {
- mCallStateLabel.setText(callStateLabel);
- mCallStateLabel.setAlpha(1);
- mCallStateLabel.setVisibility(View.VISIBLE);
-
+ setCallStateLabel(callStateLabel);
+ if (!TextUtils.isEmpty(callStateLabel.getCallStateLabel())) {
if (state == Call.State.ACTIVE || state == Call.State.CONFERENCED) {
mCallStateLabel.clearAnimation();
} else {
mCallStateLabel.startAnimation(mPulseAnimation);
}
- } else {
- Animation callStateLabelAnimation = mCallStateLabel.getAnimation();
- if (callStateLabelAnimation != null) {
- callStateLabelAnimation.cancel();
- }
- mCallStateLabel.setText(null);
- mCallStateLabel.setAlpha(0);
- mCallStateLabel.setVisibility(View.GONE);
}
if (callStateIcon != null) {
@@ -538,7 +573,7 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
mCallStateIcon.setImageDrawable(callStateIcon);
if (state == Call.State.ACTIVE || state == Call.State.CONFERENCED
- || TextUtils.isEmpty(callStateLabel)) {
+ || TextUtils.isEmpty(callStateLabel.getCallStateLabel())) {
mCallStateIcon.clearAnimation();
} else {
mCallStateIcon.startAnimation(mPulseAnimation);
@@ -569,7 +604,7 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
if (state == Call.State.INCOMING) {
if (callStateLabel != null) {
- getView().announceForAccessibility(callStateLabel);
+ getView().announceForAccessibility(callStateLabel.getCallStateLabel());
}
if (mPrimaryName.getText() != null) {
getView().announceForAccessibility(mPrimaryName.getText());
@@ -577,6 +612,50 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
}
}
+ private void setCallStateLabel(CallStateLabel callStateLabel) {
+ Log.v(this, "setCallStateLabel : label = " + callStateLabel.getCallStateLabel());
+
+ if (callStateLabel.isAutoDismissing()) {
+ mCallStateLabelResetPending = true;
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ Log.v(this, "restoringCallStateLabel : label = " +
+ mPostResetCallStateLabel);
+ changeCallStateLabel(mPostResetCallStateLabel);
+ mCallStateLabelResetPending = false;
+ }
+ }, CALL_STATE_LABEL_RESET_DELAY_MS);
+
+ changeCallStateLabel(callStateLabel.getCallStateLabel());
+ } else {
+ // Keep track of the current call state label; used when resetting auto dismissing
+ // call state labels.
+ mPostResetCallStateLabel = callStateLabel.getCallStateLabel();
+
+ if (!mCallStateLabelResetPending) {
+ changeCallStateLabel(callStateLabel.getCallStateLabel());
+ }
+ }
+ }
+
+ private void changeCallStateLabel(CharSequence callStateLabel) {
+ Log.v(this, "changeCallStateLabel : label = " + callStateLabel);
+ if (!TextUtils.isEmpty(callStateLabel)) {
+ mCallStateLabel.setText(callStateLabel);
+ mCallStateLabel.setAlpha(1);
+ mCallStateLabel.setVisibility(View.VISIBLE);
+ } else {
+ Animation callStateLabelAnimation = mCallStateLabel.getAnimation();
+ if (callStateLabelAnimation != null) {
+ callStateLabelAnimation.cancel();
+ }
+ mCallStateLabel.setText(null);
+ mCallStateLabel.setAlpha(0);
+ mCallStateLabel.setVisibility(View.GONE);
+ }
+ }
+
@Override
public void setCallbackNumber(String callbackNumber, boolean isEmergencyCall) {
if (mInCallMessageLabel == null) {
@@ -670,7 +749,7 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
*
* TODO: Move this to the CallCardPresenter.
*/
- private CharSequence getCallStateLabelFromState(int state, int videoState,
+ private CallStateLabel getCallStateLabelFromState(int state, int videoState,
int sessionModificationState, DisconnectCause disconnectCause, String label,
boolean isGatewayCall, boolean isWifi, boolean isConference) {
final Context context = getView().getContext();
@@ -678,6 +757,7 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
boolean hasSuggestedLabel = label != null;
boolean isAccount = hasSuggestedLabel && !isGatewayCall;
+ boolean isAutoDismissing = false;
switch (state) {
case Call.State.IDLE:
@@ -689,15 +769,20 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
if ((isAccount || isWifi || isConference) && hasSuggestedLabel) {
callStateLabel = label;
} else if (sessionModificationState
+ == Call.SessionModificationState.REQUEST_REJECTED) {
+ callStateLabel = context.getString(R.string.card_title_video_call_rejected);
+ isAutoDismissing = true;
+ } else if (sessionModificationState
== Call.SessionModificationState.REQUEST_FAILED) {
callStateLabel = context.getString(R.string.card_title_video_call_error);
+ isAutoDismissing = true;
} else if (sessionModificationState
== Call.SessionModificationState.WAITING_FOR_RESPONSE) {
callStateLabel = context.getString(R.string.card_title_video_call_requesting);
- } else if (CallUtils.isVideoCall(videoState) &&
- VideoProfile.VideoState.isPaused(videoState)) {
- callStateLabel = context.getString(R.string.card_title_video_call_paused);
- } else if (VideoProfile.VideoState.isBidirectional(videoState)) {
+ } else if (sessionModificationState
+ == Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) {
+ callStateLabel = context.getString(R.string.card_title_video_call_requesting);
+ } else if (CallUtils.isVideoCall(videoState)) {
callStateLabel = context.getString(R.string.card_title_video_call);
}
break;
@@ -721,7 +806,8 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
callStateLabel = label;
} else if (isAccount) {
callStateLabel = context.getString(R.string.incoming_via_template, label);
- } else if (VideoProfile.VideoState.isBidirectional(videoState)) {
+ } else if (VideoProfile.VideoState.isTransmissionEnabled(videoState) ||
+ VideoProfile.VideoState.isReceptionEnabled(videoState)) {
callStateLabel = context.getString(R.string.notification_incoming_video_call);
} else {
callStateLabel = context.getString(R.string.card_title_incoming_call);
@@ -748,7 +834,7 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
default:
Log.wtf(this, "updateCallStateWidgets: unexpected call: " + state);
}
- return callStateLabel;
+ return new CallStateLabel(callStateLabel, isAutoDismissing);
}
private void showAndInitializeSecondaryCallInfo(boolean hasProvider) {
diff --git a/InCallUI/src/com/android/incallui/CallCardPresenter.java b/InCallUI/src/com/android/incallui/CallCardPresenter.java
index ee13e061f..b233ad56b 100644
--- a/InCallUI/src/com/android/incallui/CallCardPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallCardPresenter.java
@@ -48,6 +48,7 @@ import com.android.incallui.InCallPresenter.IncomingCallListener;
import com.android.incalluibind.ObjectFactory;
import java.lang.ref.WeakReference;
+import java.util.Objects;
import com.google.common.base.Preconditions;
@@ -58,7 +59,7 @@ import com.google.common.base.Preconditions;
*/
public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
implements InCallStateListener, IncomingCallListener, InCallDetailsListener,
- InCallEventListener {
+ InCallEventListener, CallList.CallUpdateListener {
public interface EmergencyCallListener {
public void onCallUpdated(BaseFragment fragment, boolean isEmergency);
@@ -75,8 +76,8 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
private ContactCacheEntry mPrimaryContactInfo;
private ContactCacheEntry mSecondaryContactInfo;
private CallTimer mCallTimer;
-
private Context mContext;
+ private boolean mSpinnerShowing = false;
public static class ContactLookupCallback implements ContactInfoCacheCallback {
private final WeakReference<CallCardPresenter> mCallCardPresenter;
@@ -121,6 +122,7 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
// Call may be null if disconnect happened already.
if (call != null) {
mPrimary = call;
+ CallList.getInstance().addCallUpdateListener(call.getId(), this);
// start processing lookups right away.
if (!call.isConferenceCall()) {
@@ -158,6 +160,9 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
InCallPresenter.getInstance().removeIncomingCallListener(this);
InCallPresenter.getInstance().removeDetailsListener(this);
InCallPresenter.getInstance().removeInCallEventListener(this);
+ if (mPrimary != null) {
+ CallList.getInstance().removeCallUpdateListener(mPrimary.getId(), this);
+ }
mPrimary = null;
mPrimaryContactInfo = null;
@@ -204,6 +209,7 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
final boolean secondaryChanged = !Call.areSame(mSecondary, secondary);
mSecondary = secondary;
+ Call previousPrimary = mPrimary;
mPrimary = primary;
// Refresh primary call information if either:
@@ -212,6 +218,11 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
if (mPrimary != null && (primaryChanged ||
ui.isManageConferenceVisible() != shouldShowManageConference())) {
// primary call has changed
+ if (previousPrimary != null) {
+ CallList.getInstance().removeCallUpdateListener(previousPrimary.getId(), this);
+ }
+ CallList.getInstance().addCallUpdateListener(mPrimary.getId(), this);
+
mPrimaryContactInfo = ContactInfoCache.buildCacheEntryFromCall(mContext, mPrimary,
mPrimary.getState() == Call.State.INCOMING);
updatePrimaryDisplayInfo();
@@ -262,7 +273,6 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
}
maybeShowManageConferenceCallButton();
- maybeShowProgressSpinner();
// Hide the end call button instantly if we're receiving an incoming call.
getUi().setEndCallButtonEnabled(shouldShowEndCallButton(mPrimary, callState),
@@ -279,6 +289,32 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
}
}
+ @Override
+ public void onCallChanged(Call call) {
+ // No-op; specific call updates handled elsewhere.
+ }
+
+ /**
+ * Handles a change to the session modification state for a call. Triggers showing the progress
+ * spinner, as well as updating the call state label.
+ *
+ * @param sessionModificationState The new session modification state.
+ */
+ @Override
+ public void onSessionModificationStateChange(int sessionModificationState) {
+ Log.d(this, "onSessionModificationStateChange : sessionModificationState = " +
+ sessionModificationState);
+
+ if (mPrimary == null) {
+ return;
+ }
+ maybeShowProgressSpinner(mPrimary.getState(), sessionModificationState);
+ getUi().setEndCallButtonEnabled(sessionModificationState !=
+ Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST,
+ true /* shouldAnimate */);
+ updatePrimaryCallState();
+ }
+
private String getSubscriptionNumber() {
// If it's an emergency call, and they're not populating the callback number,
// then try to fall back to the phone sub info (to hopefully get the SIM's
@@ -322,11 +358,21 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
getUi().showManageConferenceCallButton(shouldShowManageConference());
}
- private void maybeShowProgressSpinner() {
- final boolean show = mPrimary != null && mPrimary.getSessionModificationState()
- == Call.SessionModificationState.WAITING_FOR_RESPONSE
- && mPrimary.getState() == Call.State.ACTIVE;
- getUi().setProgressSpinnerVisible(show);
+ /**
+ * Determines if a pending session modification exists for the current call. If so, the
+ * progress spinner is shown, and the call state is updated.
+ *
+ * @param callState The call state.
+ * @param sessionModificationState The session modification state.
+ */
+ private void maybeShowProgressSpinner(int callState, int sessionModificationState) {
+ final boolean show = sessionModificationState ==
+ Call.SessionModificationState.WAITING_FOR_RESPONSE
+ && callState == Call.State.ACTIVE;
+ if (show != mSpinnerShowing) {
+ getUi().setProgressSpinnerVisible(show);
+ mSpinnerShowing = show;
+ }
}
/**
@@ -657,7 +703,7 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
}
private boolean hasOutgoingGatewayCall() {
- // We only display the gateway information while STATE_DIALING so return false for any othe
+ // We only display the gateway information while STATE_DIALING so return false for any other
// call state.
// TODO: mPrimary can be null because this is called from updatePrimaryDisplayInfo which
// is also called after a contact search completes (call is not present yet). Split the
diff --git a/InCallUI/src/com/android/incallui/CallList.java b/InCallUI/src/com/android/incallui/CallList.java
index d89fead9a..bec81ec57 100644
--- a/InCallUI/src/com/android/incallui/CallList.java
+++ b/InCallUI/src/com/android/incallui/CallList.java
@@ -142,6 +142,21 @@ public class CallList {
Trace.endSection();
}
+ /**
+ * Called when a single call has changed session modification state.
+ *
+ * @param call The call.
+ * @param sessionModificationState The new session modification state.
+ */
+ public void onSessionModificationStateChange(Call call, int sessionModificationState) {
+ final List<CallUpdateListener> listeners = mCallUpdateListenerMap.get(call.getId());
+ if (listeners != null) {
+ for (CallUpdateListener listener : listeners) {
+ listener.onSessionModificationStateChange(sessionModificationState);
+ }
+ }
+ }
+
public void notifyCallUpdateListeners(Call call) {
final List<CallUpdateListener> listeners = mCallUpdateListenerMap.get(call.getId());
if (listeners != null) {
@@ -501,7 +516,12 @@ public class CallList {
*/
public void notifyCallsOfDeviceRotation(int rotation) {
for (Call call : mCallById.values()) {
- if (call.getVideoCall() != null) {
+ // First, ensure a VideoCall is set on the call so that the change can be sent to the
+ // provider (a VideoCall can be present for a call that does not currently have video,
+ // but can be upgraded to video).
+ // Second, ensure that the call videoState has video enabled (there is no need to set
+ // device orientation on a voice call which has not yet been upgraded to video).
+ if (call.getVideoCall() != null && CallUtils.isVideoCall(call)) {
call.getVideoCall().setDeviceOrientation(rotation);
}
}
@@ -556,10 +576,19 @@ public class CallList {
* that will get called upon disconnection.
*/
public void onDisconnect(Call call);
+
+
}
public interface CallUpdateListener {
// TODO: refactor and limit arg to be call state. Caller info is not needed.
public void onCallChanged(Call call);
+
+ /**
+ * Notifies of a change to the session modification state for a call.
+ *
+ * @param sessionModificationState The new session modification state.
+ */
+ public void onSessionModificationStateChange(int sessionModificationState);
}
}
diff --git a/InCallUI/src/com/android/incallui/CallUtils.java b/InCallUI/src/com/android/incallui/CallUtils.java
index 79cf4c7e7..0e0c4c6f5 100644
--- a/InCallUI/src/com/android/incallui/CallUtils.java
+++ b/InCallUI/src/com/android/incallui/CallUtils.java
@@ -39,9 +39,8 @@ public class CallUtils {
}
public static boolean isVideoCall(int videoState) {
- return VideoProfile.VideoState.isBidirectional(videoState)
- && VideoProfile.VideoState.isTransmissionEnabled(videoState)
- && VideoProfile.VideoState.isReceptionEnabled(videoState);
+ return VideoProfile.VideoState.isTransmissionEnabled(videoState)
+ || VideoProfile.VideoState.isReceptionEnabled(videoState);
}
public static boolean isIncomingVideoCall(Call call) {
diff --git a/InCallUI/src/com/android/incallui/GlowPadWrapper.java b/InCallUI/src/com/android/incallui/GlowPadWrapper.java
index 58a5f30ea..177669668 100644
--- a/InCallUI/src/com/android/incallui/GlowPadWrapper.java
+++ b/InCallUI/src/com/android/incallui/GlowPadWrapper.java
@@ -49,6 +49,7 @@ public class GlowPadWrapper extends GlowPadView implements GlowPadView.OnTrigger
private AnswerListener mAnswerListener;
private boolean mPingEnabled = true;
private boolean mTargetTriggered = false;
+ private int mVideoState = VideoProfile.VideoState.BIDIRECTIONAL;
public GlowPadWrapper(Context context) {
super(context);
@@ -125,11 +126,11 @@ public class GlowPadWrapper extends GlowPadView implements GlowPadView.OnTrigger
break;
case R.drawable.ic_videocam:
case R.drawable.ic_lockscreen_answer_video:
- mAnswerListener.onAnswer(VideoProfile.VideoState.BIDIRECTIONAL, getContext());
+ mAnswerListener.onAnswer(mVideoState, getContext());
mTargetTriggered = true;
break;
- case R.drawable.ic_toolbar_video_off:
- InCallPresenter.getInstance().declineUpgradeRequest(getContext());
+ case R.drawable.ic_lockscreen_decline_video:
+ mAnswerListener.onDeclineUpgradeRequest(getContext());
mTargetTriggered = true;
break;
default:
@@ -152,9 +153,19 @@ public class GlowPadWrapper extends GlowPadView implements GlowPadView.OnTrigger
mAnswerListener = listener;
}
+ /**
+ * Sets the video state represented by the "video" icon on the glow pad.
+ *
+ * @param videoState The new video state.
+ */
+ public void setVideoState(int videoState) {
+ mVideoState = videoState;
+ }
+
public interface AnswerListener {
void onAnswer(int videoState, Context context);
void onDecline(Context context);
+ void onDeclineUpgradeRequest(Context context);
void onText();
}
}
diff --git a/InCallUI/src/com/android/incallui/InCallActivity.java b/InCallUI/src/com/android/incallui/InCallActivity.java
index 5ecb96e3f..289bf6388 100644
--- a/InCallUI/src/com/android/incallui/InCallActivity.java
+++ b/InCallUI/src/com/android/incallui/InCallActivity.java
@@ -24,19 +24,21 @@ import android.app.DialogFragment;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
-import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
import android.content.res.Configuration;
import android.graphics.Point;
+import android.hardware.SensorManager;
import android.os.Bundle;
import android.os.Trace;
import android.telecom.DisconnectCause;
import android.telecom.PhoneAccountHandle;
import android.text.TextUtils;
+import android.view.Display;
import android.view.MenuItem;
+import android.view.OrientationEventListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.KeyEvent;
@@ -122,10 +124,13 @@ public class InCallActivity extends Activity implements FragmentDisplayManager {
}
};
+ /** Listener for orientation changes. */
+ private OrientationEventListener mOrientationEventListener;
+
/**
- * Used to determine if a change in orientation has occurred.
+ * Used to determine if a change in rotation has occurred.
*/
- private static int sCurrentOrientation = Configuration.ORIENTATION_UNDEFINED;
+ private static int sPreviousRotation = -1;
@Override
protected void onCreate(Bundle icicle) {
@@ -193,6 +198,28 @@ public class InCallActivity extends Activity implements FragmentDisplayManager {
dialogFragment.setListener(mSelectAcctListener);
}
}
+
+ mOrientationEventListener = new OrientationEventListener(this,
+ SensorManager.SENSOR_DELAY_NORMAL) {
+ @Override
+ public void onOrientationChanged(int orientation) {
+ // Orientation is the current device orientation in degrees. Ultimately we want
+ // the rotation (in fixed 90 degree intervals).
+ Display display = getWindowManager().getDefaultDisplay();
+ int newRotation = display.getRotation();
+ if (newRotation != sPreviousRotation) {
+ doOrientationChanged(newRotation);
+ }
+ }
+ };
+
+ if (mOrientationEventListener.canDetectOrientation()) {
+ Log.v(this, "Orientation detection enabled.");
+ mOrientationEventListener.enable();
+ } else {
+ Log.v(this, "Orientation detection disabled.");
+ mOrientationEventListener.disable();
+ }
Log.d(this, "onCreate(): exit");
}
@@ -215,9 +242,6 @@ public class InCallActivity extends Activity implements FragmentDisplayManager {
// setting activity should be last thing in setup process
InCallPresenter.getInstance().setActivity(this);
- // It is possible that the activity restarted because orientation changed.
- // Notify listeners if orientation changed.
- doOrientationChanged(getResources().getConfiguration().orientation);
InCallPresenter.getInstance().onActivityStarted();
}
@@ -357,7 +381,7 @@ public class InCallActivity extends Activity implements FragmentDisplayManager {
// in-call UI:
if ((mConferenceManagerFragment == null || !mConferenceManagerFragment.isVisible())
- && !mCallCardFragment.isVisible()) {
+ && (mCallCardFragment == null || !mCallCardFragment.isVisible())) {
return;
}
@@ -474,20 +498,19 @@ public class InCallActivity extends Activity implements FragmentDisplayManager {
}
/**
- * Handles changes in device orientation.
+ * Handles changes in device rotation.
*
- * @param orientation The new device orientation.
+ * @param rotation The new device rotation.
*/
- private void doOrientationChanged(int orientation) {
- Log.d(this, "doOrientationChanged prevOrientation=" + sCurrentOrientation +
- " newOrientation=" + orientation);
- // Check to see if the orientation changed to prevent triggering orientation change events
+ private void doOrientationChanged(int rotation) {
+ Log.d(this, "doOrientationChanged prevOrientation=" + sPreviousRotation +
+ " newOrientation=" + rotation);
+ // Check to see if the rotation changed to prevent triggering rotation change events
// for other configuration changes.
- if (orientation != sCurrentOrientation) {
- sCurrentOrientation = orientation;
- InCallPresenter.getInstance().onDeviceRotationChange(
- getWindowManager().getDefaultDisplay().getRotation());
- InCallPresenter.getInstance().onDeviceOrientationChange(sCurrentOrientation);
+ if (rotation != sPreviousRotation) {
+ sPreviousRotation = rotation;
+ InCallPresenter.getInstance().onDeviceRotationChange(rotation);
+ InCallPresenter.getInstance().onDeviceOrientationChange(sPreviousRotation);
}
}
diff --git a/InCallUI/src/com/android/incallui/InCallVideoCallCallback.java b/InCallUI/src/com/android/incallui/InCallVideoCallCallback.java
index ba4ab660d..ede1129cd 100644
--- a/InCallUI/src/com/android/incallui/InCallVideoCallCallback.java
+++ b/InCallUI/src/com/android/incallui/InCallVideoCallCallback.java
@@ -80,6 +80,19 @@ public class InCallVideoCallCallback extends VideoCall.Callback {
Log.d(this, "onSessionModifyResponseReceived status=" + status + " requestedProfile="
+ requestedProfile + " responseProfile=" + responseProfile);
if (status != VideoProvider.SESSION_MODIFY_REQUEST_SUCCESS) {
+ // Report the reason the upgrade failed as the new session modification state.
+ if (status == VideoProvider.SESSION_MODIFY_REQUEST_TIMED_OUT) {
+ mCall.setSessionModificationState(
+ Call.SessionModificationState.UPGRADE_TO_VIDEO_REQUEST_TIMED_OUT);
+ } else {
+ if (status == VideoProvider.SESSION_MODIFY_REQUEST_REJECTED_BY_REMOTE) {
+ mCall.setSessionModificationState(
+ Call.SessionModificationState.REQUEST_REJECTED);
+ } else {
+ mCall.setSessionModificationState(
+ Call.SessionModificationState.REQUEST_FAILED);
+ }
+ }
InCallVideoCallCallbackNotifier.getInstance().upgradeToVideoFail(status, mCall);
} else if (requestedProfile != null && responseProfile != null) {
boolean modifySucceeded = requestedProfile.getVideoState() ==
@@ -95,6 +108,8 @@ public class InCallVideoCallCallback extends VideoCall.Callback {
} else {
Log.d(this, "onSessionModifyResponseReceived request and response Profiles are null");
}
+ // Finally clear the outstanding request.
+ mCall.setSessionModificationState(Call.SessionModificationState.NO_REQUEST);
}
/**
diff --git a/InCallUI/src/com/android/incallui/StatusBarNotifier.java b/InCallUI/src/com/android/incallui/StatusBarNotifier.java
index 86f997575..a54536ce6 100644
--- a/InCallUI/src/com/android/incallui/StatusBarNotifier.java
+++ b/InCallUI/src/com/android/incallui/StatusBarNotifier.java
@@ -45,7 +45,9 @@ import com.android.incallui.InCallPresenter.InCallState;
/**
* This class adds Notifications to the status bar for the in-call experience.
*/
-public class StatusBarNotifier implements InCallPresenter.InCallStateListener {
+public class StatusBarNotifier implements InCallPresenter.InCallStateListener,
+ CallList.CallUpdateListener {
+
// notification types
private static final int IN_CALL_NOTIFICATION = 1;
@@ -58,6 +60,8 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener {
private int mSavedContent = 0;
private Bitmap mSavedLargeIcon;
private String mSavedContentTitle;
+ private String mCallId = null;
+ private InCallState mInCallState;
public StatusBarNotifier(Context context, ContactInfoCache contactInfoCache) {
Preconditions.checkNotNull(context);
@@ -74,7 +78,7 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener {
@Override
public void onStateChange(InCallState oldState, InCallState newState, CallList callList) {
Log.d(this, "onStateChange");
-
+ mInCallState = newState;
updateNotification(newState, callList);
}
@@ -146,6 +150,12 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener {
final boolean isIncoming = (call.getState() == Call.State.INCOMING ||
call.getState() == Call.State.CALL_WAITING);
+ if (mCallId != null) {
+ CallList.getInstance().removeCallUpdateListener(mCallId, this);
+ }
+ mCallId = call.getId();
+ CallList.getInstance().addCallUpdateListener(call.getId(), this);
+
// we make a call to the contact info cache to query for supplemental data to what the
// call provides. This includes the contact name and photo.
// This callback will always get called immediately and synchronously with whatever data
@@ -187,7 +197,7 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener {
// Check if data has changed; if nothing is different, don't issue another notification.
final int iconResId = getIconToDisplay(call);
- final Bitmap largeIcon = getLargeIconToDisplay(contactInfo, call);
+ Bitmap largeIcon = getLargeIconToDisplay(contactInfo, call);
final int contentResId = getContentString(call);
final String contentTitle = getContentTitle(contactInfo, call);
@@ -195,6 +205,10 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener {
return;
}
+ if (largeIcon != null) {
+ largeIcon = getRoundedIcon(largeIcon);
+ }
+
/*
* Nothing more to check...build and send it.
*/
@@ -342,15 +356,18 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener {
if (contactInfo.photo != null && (contactInfo.photo instanceof BitmapDrawable)) {
largeIcon = ((BitmapDrawable) contactInfo.photo).getBitmap();
}
+ return largeIcon;
+ }
- if (largeIcon != null) {
- final int height = (int) mContext.getResources().getDimension(
- android.R.dimen.notification_large_icon_height);
- final int width = (int) mContext.getResources().getDimension(
- android.R.dimen.notification_large_icon_width);
- largeIcon = BitmapUtil.getRoundedBitmap(largeIcon, width, height);
+ private Bitmap getRoundedIcon(Bitmap bitmap) {
+ if (bitmap == null) {
+ return null;
}
- return largeIcon;
+ final int height = (int) mContext.getResources().getDimension(
+ android.R.dimen.notification_large_icon_height);
+ final int width = (int) mContext.getResources().getDimension(
+ android.R.dimen.notification_large_icon_width);
+ return BitmapUtil.getRoundedBitmap(bitmap, width, height);
}
/**
@@ -574,4 +591,25 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener {
return PendingIntent.getBroadcast(context, 0, intent, 0);
}
+ @Override
+ public void onCallChanged(Call call) {
+ // no-op
+ }
+
+ /**
+ * Responds to changes in the session modification state for the call by dismissing the
+ * status bar notification as required.
+ *
+ * @param sessionModificationState The new session modification state.
+ */
+ @Override
+ public void onSessionModificationStateChange(int sessionModificationState) {
+ if (sessionModificationState == Call.SessionModificationState.NO_REQUEST) {
+ if (mCallId != null) {
+ CallList.getInstance().removeCallUpdateListener(mCallId, this);
+ }
+
+ updateNotification(mInCallState, CallList.getInstance());
+ }
+ }
}
diff --git a/InCallUI/src/com/android/incallui/VideoCallFragment.java b/InCallUI/src/com/android/incallui/VideoCallFragment.java
index c285ff3fe..24e9e8d76 100644
--- a/InCallUI/src/com/android/incallui/VideoCallFragment.java
+++ b/InCallUI/src/com/android/incallui/VideoCallFragment.java
@@ -16,15 +16,10 @@
package com.android.incallui;
-import android.content.Context;
-import android.content.res.Configuration;
-import android.content.res.Resources;
import android.graphics.Matrix;
import android.graphics.Point;
import android.graphics.SurfaceTexture;
import android.os.Bundle;
-import android.telecom.Connection;
-import android.telecom.VideoProfile;
import android.view.Display;
import android.view.LayoutInflater;
import android.view.Surface;
@@ -33,7 +28,8 @@ import android.view.View;
import android.view.ViewGroup;
import android.view.ViewStub;
import android.view.ViewTreeObserver;
-import android.widget.Toast;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
import com.google.common.base.Objects;
@@ -65,12 +61,6 @@ public class VideoCallFragment extends BaseFragment<VideoCallPresenter,
*/
public static final int ORIENTATION_UNKNOWN = -1;
- /**
- * Invalid resource id.
- */
- public static final int INVALID_RESOURCE_ID = -1;
-
-
// Static storage used to retain the video surfaces across Activity restart.
// TextureViews are not parcelable, so it is not possible to store them in the saved state.
private static boolean sVideoSurfacesInUse = false;
@@ -91,6 +81,21 @@ public class VideoCallFragment extends BaseFragment<VideoCallPresenter,
private View mVideoViews;
/**
+ * The {@link FrameLayout} containing the preview surface.
+ */
+ private View mPreviewVideoContainer;
+
+ /**
+ * Icon shown to indicate that the outgoing camera has been turned off.
+ */
+ private View mCameraOff;
+
+ /**
+ * {@link ImageView} containing the user's profile photo.
+ */
+ private ImageView mPreviewPhoto;
+
+ /**
* {@code True} when the layout of the activity has been completed.
*/
private boolean mIsLayoutComplete = false;
@@ -534,19 +539,21 @@ public class VideoCallFragment extends BaseFragment<VideoCallPresenter,
}
/**
- * Show or hide preview and incoming video views
+ * Hides and shows the incoming video view and changes the outgoing video view's state based on
+ * whether outgoing view is enabled or not.
*/
- public void showVideoViews(boolean showPreview, boolean showIncoming) {
+ public void showVideoViews(boolean previewPaused, boolean showIncoming) {
inflateVideoUi(true);
View incomingVideoView = mVideoViews.findViewById(R.id.incomingVideo);
- View previewVideoView = mVideoViews.findViewById(R.id.previewVideo);
-
if (incomingVideoView != null) {
incomingVideoView.setVisibility(showIncoming ? View.VISIBLE : View.INVISIBLE);
}
- if (previewVideoView != null) {
- previewVideoView.setVisibility(showPreview ? View.VISIBLE : View.INVISIBLE);
+ if (mCameraOff != null) {
+ mCameraOff.setVisibility(!previewPaused ? View.VISIBLE : View.INVISIBLE);
+ }
+ if (mPreviewPhoto != null) {
+ mPreviewPhoto.setVisibility(!previewPaused ? View.VISIBLE : View.INVISIBLE);
}
}
@@ -558,43 +565,6 @@ public class VideoCallFragment extends BaseFragment<VideoCallPresenter,
}
/**
- * Displays a message on the UI that the video call quality has changed.
- *
- */
- @Override
- public void showVideoQualityChanged(int videoQuality) {
- Log.d(this, "showVideoQualityChanged. Video quality changed to " + videoQuality);
-
- final Context context = getActivity();
- if (context == null) {
- Log.e(this, "showVideoQualityChanged - Activity is null. Return");
- return;
- }
-
- final Resources resources = context.getResources();
-
- int videoQualityResourceId = R.string.video_quality_unknown;
- switch (videoQuality) {
- case VideoProfile.QUALITY_HIGH:
- videoQualityResourceId = R.string.video_quality_high;
- break;
- case VideoProfile.QUALITY_MEDIUM:
- videoQualityResourceId = R.string.video_quality_medium;
- break;
- case VideoProfile.QUALITY_LOW:
- videoQualityResourceId = R.string.video_quality_low;
- break;
- default:
- break;
- }
-
- String videoQualityChangedText = resources.getString(R.string.video_quality_changed) +
- resources.getString(videoQualityResourceId);
-
- Toast.makeText(context, videoQualityChangedText, Toast.LENGTH_SHORT).show();
- }
-
- /**
* Cleans up the video telephony surfaces. Used when the presenter indicates a change to an
* audio-only state. Since the surfaces are static, it is important to ensure they are cleaned
* up promptly.
@@ -613,6 +583,11 @@ public class VideoCallFragment extends BaseFragment<VideoCallPresenter,
sVideoSurfacesInUse = false;
}
+ @Override
+ public ImageView getPreviewPhotoView() {
+ return mPreviewPhoto;
+ }
+
private void onPresenterChanged(VideoCallPresenter presenter) {
Log.d(this, "onPresenterChanged: Presenter=" + presenter);
if (sDisplaySurface != null) {
@@ -678,11 +653,19 @@ public class VideoCallFragment extends BaseFragment<VideoCallPresenter,
return;
}
+ // Set the dimensions of both the video surface and the FrameLayout containing it.
ViewGroup.LayoutParams params = preview.getLayoutParams();
params.width = width;
params.height = height;
preview.setLayoutParams(params);
+ if (mPreviewVideoContainer != null) {
+ ViewGroup.LayoutParams containerParams = mPreviewVideoContainer.getLayoutParams();
+ containerParams.width = width;
+ containerParams.height = height;
+ mPreviewVideoContainer.setLayoutParams(containerParams);
+ }
+
// The width and height are interchanged outside of this method based on the current
// orientation, so we can transform using "width", which will be either the width or
// the height.
@@ -739,47 +722,6 @@ public class VideoCallFragment extends BaseFragment<VideoCallPresenter,
}
/**
- * Sets the call's data usage value
- *
- * @param context the current context
- * @param dataUsage the data usage value
- */
- @Override
- public void setCallDataUsage(Context context, long dataUsage) {
- Log.d(this, "setDataUsage: dataUsage = " + dataUsage);
- Toast.makeText(context, "dataUsage=" + dataUsage, Toast.LENGTH_LONG).show();
- }
-
- private int fromCallSessionEvent(int event) {
- switch (event) {
- case Connection.VideoProvider.SESSION_EVENT_RX_PAUSE:
- return R.string.player_stopped;
- case Connection.VideoProvider.SESSION_EVENT_RX_RESUME:
- return R.string.player_started;
- case Connection.VideoProvider.SESSION_EVENT_CAMERA_FAILURE:
- return R.string.camera_not_ready;
- case Connection.VideoProvider.SESSION_EVENT_CAMERA_READY:
- return R.string.camera_ready;
- default:
- return R.string.unknown_call_session_event;
- }
- }
-
- /**
- * Sets the call's data usage value
- *
- * @param context the current context
- * @param event the call session event
- */
- @Override
- public void displayCallSessionEvent(int event) {
- Log.d(this, "displayCallSessionEvent: event = " + event);
- Context context = getActivity();
- String msg = context.getResources().getString(fromCallSessionEvent(event));
- Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
- }
-
- /**
* Determines the size of the device screen.
*
* @return {@link Point} specifying the width and height of the screen.
@@ -818,6 +760,10 @@ public class VideoCallFragment extends BaseFragment<VideoCallPresenter,
}
if (mVideoViews != null) {
+ mPreviewVideoContainer = mVideoViews.findViewById(R.id.previewVideoContainer);
+ mCameraOff = mVideoViews.findViewById(R.id.previewCameraOff);
+ mPreviewPhoto = (ImageView) mVideoViews.findViewById(R.id.previewProfilePhoto);
+
TextureView displaySurface = (TextureView) mVideoViews.findViewById(R.id.incomingVideo);
Log.d(this, "inflateVideoCallViews: sVideoSurfacesInUse=" + sVideoSurfacesInUse);
diff --git a/InCallUI/src/com/android/incallui/VideoCallPresenter.java b/InCallUI/src/com/android/incallui/VideoCallPresenter.java
index f11f328e6..ba82c01fc 100644
--- a/InCallUI/src/com/android/incallui/VideoCallPresenter.java
+++ b/InCallUI/src/com/android/incallui/VideoCallPresenter.java
@@ -18,8 +18,13 @@ package com.android.incallui;
import android.content.Context;
import android.content.res.Configuration;
+import android.database.Cursor;
import android.graphics.Point;
+import android.net.Uri;
+import android.os.AsyncTask;
import android.os.Handler;
+import android.os.Looper;
+import android.provider.ContactsContract;
import android.telecom.AudioState;
import android.telecom.CameraCapabilities;
import android.telecom.Connection;
@@ -27,15 +32,17 @@ import android.telecom.Connection.VideoProvider;
import android.telecom.InCallService.VideoCall;
import android.telecom.VideoProfile;
import android.view.Surface;
+import android.view.View;
+import android.widget.ImageView;
import com.android.contacts.common.CallUtil;
+import com.android.contacts.common.ContactPhotoManager;
import com.android.incallui.InCallPresenter.InCallDetailsListener;
import com.android.incallui.InCallPresenter.InCallOrientationListener;
import com.android.incallui.InCallPresenter.InCallStateListener;
import com.android.incallui.InCallPresenter.IncomingCallListener;
import com.android.incallui.InCallVideoCallCallbackNotifier.SurfaceChangeListener;
import com.android.incallui.InCallVideoCallCallbackNotifier.VideoEventListener;
-import com.google.common.base.Preconditions;
import java.util.Objects;
@@ -70,6 +77,22 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi
public static final boolean DEBUG = false;
/**
+ * Runnable which is posted to schedule automatically entering fullscreen mode.
+ */
+ private Runnable mAutoFullscreenRunnable = new Runnable() {
+ @Override
+ public void run() {
+ if (mAutoFullScreenPending) {
+ Log.v(this, "Automatically entering fullscreen mode.");
+ setFullScreen(true);
+ mAutoFullScreenPending = false;
+ } else {
+ Log.v(this, "Skipping scheduled fullscreen mode.");
+ }
+ }
+ };
+
+ /**
* Determines the device orientation (portrait/lanscape).
*/
public int getDeviceOrientation() {
@@ -158,9 +181,38 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi
private static boolean mIsVideoMode = false;
- /** Handler which resets request state to NO_REQUEST after an interval. */
- private Handler mSessionModificationResetHandler;
- private static final long SESSION_MODIFICATION_RESET_DELAY_MS = 3000;
+ /**
+ * Contact photo manager to retrieve cached contact photo information.
+ */
+ private ContactPhotoManager mContactPhotoManager = null;
+
+ /**
+ * The URI for the user's profile photo, or {@code null} if not specified.
+ */
+ private ContactInfoCache.ContactCacheEntry mProfileInfo = null;
+
+ /**
+ * UI thread handler used for delayed task execution.
+ */
+ private Handler mHandler;
+
+ /**
+ * Determines whether video calls should automatically enter full screen mode after
+ * {@link #mAutoFullscreenTimeoutMillis} milliseconds.
+ */
+ private boolean mIsAutoFullscreenEnabled = false;
+
+ /**
+ * Determines the number of milliseconds after which a video call will automatically enter
+ * fullscreen mode. Requires {@link #mIsAutoFullscreenEnabled} to be {@code true}.
+ */
+ private int mAutoFullscreenTimeoutMillis = 0;
+
+ /**
+ * Determines if the countdown is currently running to automatically enter full screen video
+ * mode.
+ */
+ private boolean mAutoFullScreenPending = false;
/**
* Initializes the presenter.
@@ -168,10 +220,14 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi
* @param context The current context.
*/
public void init(Context context) {
- mContext = Preconditions.checkNotNull(context);
+ mContext = context;
mMinimumVideoDimension = mContext.getResources().getDimension(
R.dimen.video_preview_small_dimension);
- mSessionModificationResetHandler = new Handler();
+ mHandler = new Handler(Looper.getMainLooper());
+ mIsAutoFullscreenEnabled = mContext.getResources()
+ .getBoolean(R.bool.video_call_auto_fullscreen);
+ mAutoFullscreenTimeoutMillis = mContext.getResources().getInteger(
+ R.integer.video_call_auto_fullscreen_timeout);
}
/**
@@ -315,6 +371,26 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi
private void toggleFullScreen() {
mIsFullScreen = !mIsFullScreen;
+ Log.v(this, "toggleFullScreen = " + mIsFullScreen);
+ // Ensure we cancel any scheduled auto activation of fullscreen mode as the user's setting
+ // should override any automatic operation.
+ cancelAutoFullScreen();
+ InCallPresenter.getInstance().setFullScreenVideoState(mIsFullScreen);
+ }
+
+ /**
+ * Sets the current full screen mode.
+ *
+ * @param isFullScreen {@code true} if full screen mode should be active, {@code false}
+ * otherwise.
+ */
+ public void setFullScreen(boolean isFullScreen) {
+ Log.v(this, "setFullScreen = " + isFullScreen);
+ if (mIsFullScreen == isFullScreen) {
+ Log.v(this, "setFullScreen ignored as already in that state.");
+ return;
+ }
+ mIsFullScreen = isFullScreen;
InCallPresenter.getInstance().setFullScreenVideoState(mIsFullScreen);
}
@@ -367,21 +443,29 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi
// Determine the primary active call).
Call primary = null;
+
+ // Determine the call which is the focus of the user's attention. In the case of an
+ // incoming call waiting call, the primary call is still the active video call, however
+ // the determination of whether we should be in fullscreen mode is based on the type of the
+ // incoming call, not the active video call.
+ Call currentCall = null;
+
if (newState == InCallPresenter.InCallState.INCOMING) {
// We don't want to replace active video call (primary call)
// with a waiting call, since user may choose to ignore/decline the waiting call and
// this should have no impact on current active video call, that is, we should not
// change the camera or UI unless the waiting VT call becomes active.
primary = callList.getActiveCall();
+ currentCall = callList.getIncomingCall();
if (!CallUtils.isActiveVideoCall(primary)) {
primary = callList.getIncomingCall();
}
} else if (newState == InCallPresenter.InCallState.OUTGOING) {
- primary = callList.getOutgoingCall();
+ currentCall = primary = callList.getOutgoingCall();
} else if (newState == InCallPresenter.InCallState.PENDING_OUTGOING) {
- primary = callList.getPendingOutgoingCall();
+ currentCall = primary = callList.getPendingOutgoingCall();
} else if (newState == InCallPresenter.InCallState.INCALL) {
- primary = callList.getActiveCall();
+ currentCall = primary = callList.getActiveCall();
}
final boolean primaryChanged = !Objects.equals(mPrimaryCall, primary);
@@ -390,10 +474,17 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi
Log.d(this, "onStateChange mPrimaryCall = " + mPrimaryCall);
if (primaryChanged) {
onPrimaryCallChanged(primary);
- } else if(mPrimaryCall!=null) {
+ } else if (mPrimaryCall != null) {
updateVideoCall(primary);
}
updateCallCache(primary);
+
+ // If the call context changed, potentially exit fullscreen or schedule auto enter of
+ // fullscreen mode.
+ // If the current call context is no longer a video call, exit fullscreen mode.
+ maybeExitFullscreen(currentCall);
+ // Schedule auto-enter of fullscreen mode if the current call context is a video call
+ maybeAutoEnterFullscreen(currentCall);
}
private void checkForVideoStateChange(Call call) {
@@ -401,8 +492,10 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi
final boolean hasVideoStateChanged = mCurrentVideoState != call.getVideoState();
Log.d(this, "checkForVideoStateChange: isVideoCall= " + isVideoCall
- + " hasVideoStateChanged=" +
- hasVideoStateChanged + " isVideoMode=" + isVideoMode());
+ + " hasVideoStateChanged=" + hasVideoStateChanged + " isVideoMode="
+ + isVideoMode() + " previousVideoState: " +
+ VideoProfile.VideoState.videoStateToString(mCurrentVideoState) + " newVideoState: "
+ + VideoProfile.VideoState.videoStateToString(call.getVideoState()));
if (!hasVideoStateChanged) {
return;
@@ -610,6 +703,8 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi
updateAudioMode(true);
mIsVideoMode = true;
+
+ maybeAutoEnterFullscreen(call);
}
//TODO: Move this into Telecom. InCallUI should not be this close to audio functionality.
@@ -624,7 +719,7 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi
sPrevVideoAudioMode != AudioModeProvider.AUDIO_MODE_INVALID;
Log.d(this, "Is previous audio mode valid = " + isPrevAudioModeValid + " enableSpeaker is "
- + enableSpeaker);
+ + enableSpeaker);
// Set audio mode to previous mode if enableSpeaker is false.
if (isPrevAudioModeValid && !enableSpeaker) {
@@ -682,9 +777,7 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi
enableCamera(mVideoCall, false);
Log.d(this, "exitVideoMode mIsFullScreen: " + mIsFullScreen);
- if (mIsFullScreen) {
- toggleFullScreen();
- }
+ setFullScreen(false);
mIsVideoMode = false;
}
@@ -712,6 +805,7 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi
ui.showVideoViews(true, false);
} else if (VideoProfile.VideoState.isReceptionEnabled(videoState)) {
ui.showVideoViews(false, !isPaused && isCallActive);
+ loadProfilePhotoAsync();
} else {
ui.hideVideoUi();
}
@@ -770,18 +864,7 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi
*/
@Override
public void onVideoQualityChanged(Call call, int videoQuality) {
- if (!call.equals(mPrimaryCall)) {
- return;
- }
-
- VideoCallUi ui = getUi();
- if (ui == null) {
- Log.e(this, "Error VideoCallUi is null. Return.");
- return;
- }
-
- // Display a video quality changed message on UI.
- ui.showVideoQualityChanged(videoQuality);
+ // No-op
}
/**
@@ -851,13 +934,28 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi
*/
@Override
public void onCallSessionEvent(int event) {
- Log.d(this, "onCallSessionEvent event =" + event);
- VideoCallUi ui = getUi();
- if (ui == null) {
- Log.e(this, "onCallSessionEvent: VideoCallUi is null");
- return;
+ StringBuilder sb = new StringBuilder();
+ sb.append("onCallSessionEvent = ");
+
+ switch (event) {
+ case Connection.VideoProvider.SESSION_EVENT_RX_PAUSE:
+ sb.append("rx_pause");
+ break;
+ case Connection.VideoProvider.SESSION_EVENT_RX_RESUME:
+ sb.append("rx_resume");
+ break;
+ case Connection.VideoProvider.SESSION_EVENT_CAMERA_FAILURE:
+ sb.append("camera_failure");
+ break;
+ case Connection.VideoProvider.SESSION_EVENT_CAMERA_READY:
+ sb.append("camera_ready");
+ break;
+ default:
+ sb.append("unknown event = ");
+ sb.append(event);
+ break;
}
- ui.displayCallSessionEvent(event);
+ Log.d(this, sb.toString());
}
/**
@@ -868,12 +966,6 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi
@Override
public void onCallDataUsageChange(long dataUsage) {
Log.d(this, "onCallDataUsageChange dataUsage=" + dataUsage);
- VideoCallUi ui = getUi();
- if (ui == null) {
- Log.e(this, "onCallDataUsageChange: VideoCallUi is null");
- return;
- }
- ui.setCallDataUsage(mContext, dataUsage);
}
/**
@@ -917,8 +1009,6 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi
if (call == null) {
return;
}
-
- call.setSessionModificationState(Call.SessionModificationState.NO_REQUEST);
}
@Override
@@ -931,25 +1021,6 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi
if (call == null) {
return;
}
-
- if (status == VideoProvider.SESSION_MODIFY_REQUEST_TIMED_OUT) {
- call.setSessionModificationState(
- Call.SessionModificationState.UPGRADE_TO_VIDEO_REQUEST_TIMED_OUT);
- } else {
- call.setSessionModificationState(Call.SessionModificationState.REQUEST_FAILED);
-
- final Call modifyCall = call;
- // Start handler to change state from REQUEST_FAILED to NO_REQUEST after an interval.
- mSessionModificationResetHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- if (modifyCall != null) {
- modifyCall
- .setSessionModificationState(Call.SessionModificationState.NO_REQUEST);
- }
- }
- }, SESSION_MODIFICATION_RESET_DELAY_MS);
- }
}
@Override
@@ -991,7 +1062,6 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi
* @param width peer width
* @param height peer height
*/
-
private void setDisplayVideoSize(int width, int height) {
Log.d(this, "setDisplayVideoSize:Received peer width=" + width + " peer height=" + height);
VideoCallUi ui = getUi();
@@ -1013,6 +1083,65 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi
ui.setDisplayVideoSize(size.x, size.y);
}
+ /**
+ * Exits fullscreen mode if the current call context has changed to a non-video call.
+ *
+ * @param call The call.
+ */
+ protected void maybeExitFullscreen(Call call) {
+ if (call == null) {
+ return;
+ }
+
+ if (!CallUtils.isVideoCall(call) || call.getState() == Call.State.INCOMING) {
+ setFullScreen(false);
+ }
+ }
+
+ /**
+ * Schedules auto-entering of fullscreen mode.
+ * Will not enter full screen mode if any of the following conditions are met:
+ * 1. No call
+ * 2. Call is not active
+ * 3. Call is not video call
+ * 4. Already in fullscreen mode
+ *
+ * @param call The current call.
+ */
+ protected void maybeAutoEnterFullscreen(Call call) {
+ if (!mIsAutoFullscreenEnabled) {
+ return;
+ }
+
+ if (call == null || (
+ call != null && (call.getState() != Call.State.ACTIVE ||
+ !CallUtils.isVideoCall(call)) || mIsFullScreen)) {
+ // Ensure any previously scheduled attempt to enter fullscreen is cancelled.
+ cancelAutoFullScreen();
+ return;
+ }
+
+ if (mAutoFullScreenPending) {
+ Log.v(this, "maybeAutoEnterFullscreen : already pending.");
+ return;
+ }
+ Log.v(this, "maybeAutoEnterFullscreen : scheduled");
+ mAutoFullScreenPending = true;
+ mHandler.postDelayed(mAutoFullscreenRunnable, mAutoFullscreenTimeoutMillis);
+ }
+
+ /**
+ * Cancels pending auto fullscreen mode.
+ */
+ public void cancelAutoFullScreen() {
+ if (!mAutoFullScreenPending) {
+ Log.v(this, "cancelAutoFullScreen : none pending.");
+ return;
+ }
+ Log.v(this, "cancelAutoFullScreen : cancelling pending");
+ mAutoFullScreenPending = false;
+ }
+
private static boolean isAudioRouteEnabled(int audioRoute, int audioRouteMask) {
return ((audioRoute & audioRouteMask) != 0);
}
@@ -1101,12 +1230,87 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi
}
/**
+ * Starts an asynchronous load of the user's profile photo.
+ */
+ public void loadProfilePhotoAsync() {
+ final VideoCallUi ui = getUi();
+ if (ui == null) {
+ return;
+ }
+
+ final AsyncTask<Void, Void, Void> task = new AsyncTask<Void, Void, Void>() {
+ /**
+ * Performs asynchronous load of the user profile information.
+ *
+ * @param params The parameters of the task.
+ *
+ * @return {@code null}.
+ */
+ @Override
+ protected Void doInBackground(Void... params) {
+ if (mProfileInfo == null) {
+ // Try and read the photo URI from the local profile.
+ mProfileInfo = new ContactInfoCache.ContactCacheEntry();
+ final Cursor cursor = mContext.getContentResolver().query(
+ ContactsContract.Profile.CONTENT_URI, new String[]{
+ ContactsContract.CommonDataKinds.Phone._ID,
+ ContactsContract.CommonDataKinds.Phone.PHOTO_URI,
+ ContactsContract.CommonDataKinds.Phone.LOOKUP_KEY,
+ ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
+ }, null, null, null);
+ if (cursor != null) {
+ try {
+ if (cursor.moveToFirst()) {
+ mProfileInfo.lookupKey = cursor.getString(cursor.getColumnIndex(
+ ContactsContract.CommonDataKinds.Phone.LOOKUP_KEY));
+ String photoUri = cursor.getString(cursor.getColumnIndex(
+ ContactsContract.CommonDataKinds.Phone.PHOTO_URI));
+ mProfileInfo.displayPhotoUri = photoUri == null ? null
+ : Uri.parse(photoUri);
+ mProfileInfo.name = cursor.getString(cursor.getColumnIndex(
+ ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
+ }
+ } finally {
+ cursor.close();
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ protected void onPostExecute(Void result) {
+ // If user profile information was found, issue an async request to load the user's
+ // profile photo.
+ if (mProfileInfo != null) {
+ if (mContactPhotoManager == null) {
+ mContactPhotoManager = ContactPhotoManager.getInstance(mContext);
+ }
+ ContactPhotoManager.DefaultImageRequest imageRequest = (mProfileInfo != null)
+ ? null :
+ new ContactPhotoManager.DefaultImageRequest(mProfileInfo.name,
+ mProfileInfo.lookupKey, false /* isCircularPhoto */);
+
+ ImageView photoView = ui.getPreviewPhotoView();
+ if (photoView == null) {
+ return;
+ }
+ mContactPhotoManager.loadDirectoryPhoto(photoView,
+ mProfileInfo.displayPhotoUri,
+ false /* darkTheme */, false /* isCircular */, imageRequest);
+ }
+ }
+ };
+
+ task.execute();
+ }
+
+ /**
* Defines the VideoCallUI interactions.
*/
public interface VideoCallUi extends Ui {
void showVideoViews(boolean showPreview, boolean showIncoming);
void hideVideoUi();
- void showVideoQualityChanged(int videoQuality);
boolean isDisplayVideoSurfaceCreated();
boolean isPreviewVideoSurfaceCreated();
Surface getDisplayVideoSurface();
@@ -1115,10 +1319,9 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi
void setPreviewSize(int width, int height);
void setPreviewSurfaceSize(int width, int height);
void setDisplayVideoSize(int width, int height);
- void setCallDataUsage(Context context, long dataUsage);
- void displayCallSessionEvent(int event);
Point getScreenSize();
Point getPreviewSize();
void cleanupSurfaces();
+ ImageView getPreviewPhotoView();
}
}
diff --git a/InCallUI/src/com/android/incallui/widget/multiwaveview/GlowPadView.java b/InCallUI/src/com/android/incallui/widget/multiwaveview/GlowPadView.java
index 812e883c0..4bd27db9c 100644
--- a/InCallUI/src/com/android/incallui/widget/multiwaveview/GlowPadView.java
+++ b/InCallUI/src/com/android/incallui/widget/multiwaveview/GlowPadView.java
@@ -637,11 +637,15 @@ public class GlowPadView extends View {
}
/**
- * Sets teh handle drawable to the drawable specified by the resource ID.
+ * Sets the handle drawable to the drawable specified by the resource ID.
* @param resourceId
*/
public void setHandleDrawable(int resourceId) {
- mHandleDrawable = new TargetDrawable(getResources(), resourceId, 2);
+ if (mHandleDrawable != null) {
+ mHandleDrawable.setDrawable(getResources(), resourceId);
+ } else {
+ mHandleDrawable = new TargetDrawable(getResources(), resourceId, 1);
+ }
mHandleDrawable.setState(TargetDrawable.STATE_INACTIVE);
}