summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Lee <anwlee@google.com>2014-07-17 18:44:39 -0700
committerAndrew Lee <anwlee@google.com>2014-07-17 18:47:21 -0700
commit2ee65e79ee71959d2ca26a6a3ec317d3a80b28e9 (patch)
tree58545b4b211842777e5364c8946a410bb662f7f1
parent77e58350baa664c832aca01d963a0ecc76e7585f (diff)
Add new buttons for video calls.
These are simply hidden for now; behavior needs to be wired up still. Since it now has so many buttons, I also tried to update and clean up the comments/arrangement of buttons in call_button_fragment. Bug: 16014280 Change-Id: If0780bab9de1889d9c4350ffc345c7239cfcc948
-rw-r--r--InCallUI/res/drawable/btn_change_to_audio.xml29
-rw-r--r--InCallUI/res/drawable/btn_change_to_video.xml29
-rw-r--r--InCallUI/res/drawable/btn_compound_video_off.xml31
-rw-r--r--InCallUI/res/drawable/btn_compound_video_switch.xml31
-rw-r--r--InCallUI/res/drawable/btn_overflow.xml29
-rw-r--r--InCallUI/res/layout/call_button_fragment.xml85
-rw-r--r--InCallUI/res/values/strings.xml2
7 files changed, 214 insertions, 22 deletions
diff --git a/InCallUI/res/drawable/btn_change_to_audio.xml b/InCallUI/res/drawable/btn_change_to_audio.xml
new file mode 100644
index 000000000..974dd4a2e
--- /dev/null
+++ b/InCallUI/res/drawable/btn_change_to_audio.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ ~ Copyright (C) 2014 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <item android:drawable="@drawable/btn_background" />
+
+ <item>
+ <bitmap android:src="@drawable/ic_toolbar_audio_phone"
+ android:gravity="center"
+ android:tint="@color/selectable_icon_tint" />
+ </item>
+
+</layer-list> \ No newline at end of file
diff --git a/InCallUI/res/drawable/btn_change_to_video.xml b/InCallUI/res/drawable/btn_change_to_video.xml
new file mode 100644
index 000000000..255b9b6ce
--- /dev/null
+++ b/InCallUI/res/drawable/btn_change_to_video.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ ~ Copyright (C) 2014 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <item android:drawable="@drawable/btn_background" />
+
+ <item>
+ <bitmap android:src="@drawable/ic_toolbar_video"
+ android:gravity="center"
+ android:tint="@color/selectable_icon_tint" />
+ </item>
+
+</layer-list> \ No newline at end of file
diff --git a/InCallUI/res/drawable/btn_compound_video_off.xml b/InCallUI/res/drawable/btn_compound_video_off.xml
new file mode 100644
index 000000000..776df50ff
--- /dev/null
+++ b/InCallUI/res/drawable/btn_compound_video_off.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2014 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<!-- Layers used to render the in-call "Mute" compound button. -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <!-- The standard "compound button" background. -->
+ <item android:drawable="@drawable/btn_compound_background" />
+
+ <!-- Use an explicit <bitmap> to avoid scaling the icon up to the full size of the button. -->
+ <item>
+ <bitmap android:src="@drawable/ic_toolbar_video_off"
+ android:gravity="center"
+ android:tint="@color/selectable_icon_tint" />
+ </item>
+
+</layer-list>
diff --git a/InCallUI/res/drawable/btn_compound_video_switch.xml b/InCallUI/res/drawable/btn_compound_video_switch.xml
new file mode 100644
index 000000000..aa1459370
--- /dev/null
+++ b/InCallUI/res/drawable/btn_compound_video_switch.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2014 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<!-- Layers used to render the in-call "Mute" compound button. -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <!-- The standard "compound button" background. -->
+ <item android:drawable="@drawable/btn_compound_background" />
+
+ <!-- Use an explicit <bitmap> to avoid scaling the icon up to the full size of the button. -->
+ <item>
+ <bitmap android:src="@drawable/ic_toolbar_video_switch"
+ android:gravity="center"
+ android:tint="@color/selectable_icon_tint" />
+ </item>
+
+</layer-list>
diff --git a/InCallUI/res/drawable/btn_overflow.xml b/InCallUI/res/drawable/btn_overflow.xml
new file mode 100644
index 000000000..e851eceb4
--- /dev/null
+++ b/InCallUI/res/drawable/btn_overflow.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ ~ Copyright (C) 2014 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <item android:drawable="@drawable/btn_background" />
+
+ <item>
+ <bitmap android:src="@drawable/ic_overflow_menu"
+ android:gravity="center"
+ android:tint="@color/selectable_icon_tint" />
+ </item>
+
+</layer-list> \ No newline at end of file
diff --git a/InCallUI/res/layout/call_button_fragment.xml b/InCallUI/res/layout/call_button_fragment.xml
index 8397ace97..a35cc5e3a 100644
--- a/InCallUI/res/layout/call_button_fragment.xml
+++ b/InCallUI/res/layout/call_button_fragment.xml
@@ -50,10 +50,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content" />
- <!-- Row 2: The main batch of in-call buttons:
- Dialpad / Audio mode / Mute / Hold / Add call
- Visible in all states except while an incoming call is
- ringing. -->
+ <!-- Row 2: The main batch of in-call buttons. -->
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
@@ -63,44 +60,59 @@
android:background="@color/button_background_color"
android:gravity="bottom|center_horizontal">
- <!-- This row has either 4 or 5 buttons. This may depend on whether the device supports
- "Hold" (i.e. 4 buttons on CDMA devices, 5 buttons on GSM devices.) or whether it is in
- a video call.
+ <!-- This row only ever shows either 4 or 5 buttons. This may depend on whether the device
+ supports "Hold" (i.e. 4 buttons on CDMA devices, 5 buttons on GSM devices.) or whether
+ it is in a video call.
There are a couple of *pairs* of buttons that share a single "slot", namely Hold/Swap
and Add/Merge. For these, the code in InCallTouchUi is responsible for making sure
- that at any point exactly one of the pair is VISIBLE and the other is GONE. -->
+ that at any point exactly one of the pair is VISIBLE and the other is GONE.
- <!-- "Audio mode" -->
- <!-- This is a multi-mode button that can behave either like a simple "compound button" with
- two states *or* like an action button that brings up a popup menu; see
- btn_compound_audio.xml and InCallTouchUi.updateAudioButton() for the full details. -->
+ If there are more than 5 buttons eligible to be shown, the presenter is responsible for
+ collapsing those options into an overflow menu, which appears as one of the buttons
+ in the row instead. -->
+
+ <!-- FAR LEFT SLOT ===================================================================== -->
+
+ <!-- "Audio mode". this is a multi-mode button that can behave either like a simple
+ "compound button" with two states *or* like an action button that brings up a popup
+ menu; see btn_compound_audio.xml and CallButtonFragment.updateAudioButtons(). -->
<ImageButton android:id="@+id/audioButton"
- style="@style/InCallButton"
+ style="@style/InCallCompoundButton"
android:background="@drawable/btn_compound_audio"
android:contentDescription="@string/onscreenAudioText" />
+ <!-- "Change to audio call" for video calls. -->
+ <ImageButton android:id="@+id/changeToAudioButton"
+ style="@style/InCallButton"
+ android:background="@drawable/btn_change_to_audio"
+ android:contentDescription="@string/onscreenChangeToAudioText"
+ android:visibility="gone" />
+
+ <!-- MIDDLE LEFT SLOT ================================================================== -->
+
<!-- "Mute" -->
- <!-- This is a "compound button": it has checked and unchecked states. -->
<ImageButton android:id="@+id/muteButton"
- style="@style/InCallButton"
+ style="@style/InCallCompoundButton"
android:background="@drawable/btn_compound_mute"
android:contentDescription="@string/onscreenMuteText" />
+ <!-- CENTER SLOT ======================================================================= -->
+
<!-- "Dialpad" -->
- <!-- This is a "compound button": it has checked and unchecked states. -->
<ImageButton android:id="@+id/dialpadButton"
style="@style/InCallCompoundButton"
android:background="@drawable/btn_compound_dialpad"
android:contentDescription="@string/onscreenShowDialpadText" />
+ <!-- MIDDLE RIGHT SLOT ================================================================= -->
+
<!-- This slot is either "Hold" or "Swap", depending on the state of the call. One or the
other of these must always be set to GONE. -->
<!-- "Hold" -->
- <!-- This is a "compound button": it has checked and unchecked states. -->
<ImageButton android:id="@+id/holdButton"
- style="@style/InCallButton"
+ style="@style/InCallCompoundButton"
android:background="@drawable/btn_compound_hold"
android:contentDescription="@string/onscreenHoldText" />
@@ -111,6 +123,22 @@
android:contentDescription="@string/onscreenSwapCallsText"
android:visibility="gone" />
+ <!-- "Change to video call" -->
+ <ImageButton android:id="@+id/changeToVideoButton"
+ style="@style/InCallButton"
+ android:background="@drawable/btn_change_to_video"
+ android:contentDescription="@string/onscreenVideoCallText"
+ android:visibility="gone" />
+
+ <!-- "Switch camera" for video calls. -->
+ <ImageButton android:id="@+id/switchCameraButton"
+ style="@style/InCallCompoundButton"
+ android:background="@drawable/btn_compound_video_switch"
+ android:contentDescription="@string/onscreenSwitchCameraText"
+ android:visibility="gone" />
+
+ <!-- FAR RIGHT SLOT ==================================================================== -->
+
<!-- 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. -->
@@ -121,16 +149,29 @@
android:contentDescription="@string/onscreenAddCallText"
android:visibility="gone" />
- <!-- "Merge calls" -->
- <!-- This button is used only on GSM devices, where we know that "Add" and "Merge" are never
- available at the same time. The "Merge" button for CDMA devices is "cdmaMergeButton"
- above. -->
+ <!-- "Merge calls". This button is used only on GSM devices, where we know that "Add" and
+ "Merge" are never available at the same time. The "Merge" button for CDMA devices is
+ "cdmaMergeButton" above. -->
<ImageButton android:id="@+id/mergeButton"
style="@style/InCallButton"
android:background="@drawable/btn_merge"
android:contentDescription="@string/onscreenMergeCallsText"
android:visibility="gone" />
+ <!-- "Switch camera" for video calls. -->
+ <ImageButton 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"
+ android:background="@drawable/btn_overflow"
+ android:contentDescription="@string/onscreenOverflowText"
+ android:visibility="gone" />
+
</LinearLayout>
</LinearLayout>
diff --git a/InCallUI/res/values/strings.xml b/InCallUI/res/values/strings.xml
index d0f300d60..3795aa540 100644
--- a/InCallUI/res/values/strings.xml
+++ b/InCallUI/res/values/strings.xml
@@ -311,6 +311,8 @@
<string name="onscreenSwitchCameraText">Switch camera</string>
<!-- Text for the onscreen "Pause video" button. -->
<string name="onscreenPauseVideoText">Pause video</string>
+ <!-- Text for the onscreen overflow button, to see additional actions which can be done. -->
+ <string name="onscreenOverflowText">More options</string>
<!-- For incoming calls, this is a string we can get from a CDMA network instead of
the actual phone number, to indicate there's no number present. DO NOT TRANSLATE. -->