calls: add conference support
Change-Id: Ib72f0fa032a19aca867e155ade3df114854bae19
diff --git a/ring-android/app/src/main/res/layout/frag_call.xml b/ring-android/app/src/main/res/layout/frag_call.xml
index 3f65cd1..1df29bd 100644
--- a/ring-android/app/src/main/res/layout/frag_call.xml
+++ b/ring-android/app/src/main/res/layout/frag_call.xml
@@ -53,10 +53,14 @@
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
- android:layout_margin="12dp"
+ android:layout_marginStart="12dp"
+ android:layout_marginTop="12dp"
+ android:layout_marginEnd="12dp"
+ android:layout_marginBottom="12dp"
android:visibility="gone"
app:cardCornerRadius="16dp"
- app:cardPreventCornerOverlap="false">
+ app:cardPreventCornerOverlap="false"
+ tools:visibility="visible">
<cx.ring.views.AutoFitTextureView
android:id="@+id/preview_surface"
@@ -75,23 +79,26 @@
android:clipToPadding="false"
android:fitsSystemWindows="true">
- <LinearLayout
+ <com.google.android.flexbox.FlexboxLayout
android:id="@+id/contact_bubble_layout"
- android:layout_width="match_parent"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
- android:gravity="center"
android:orientation="vertical"
- android:visibility="invisible">
+ android:visibility="visible"
+ app:flexDirection="column"
+ app:flexWrap="wrap"
+ tools:visibility="gone">
<RelativeLayout
- android:layout_width="match_parent"
+ android:layout_width="230dp"
android:layout_height="230dp">
<com.rodolfonavalon.shaperipplelibrary.ShapeRipple
android:id="@+id/shape_ripple"
- android:layout_width="match_parent"
+ android:layout_width="wrap_content"
android:layout_height="match_parent"
+ android:layout_centerInParent="true"
app:enable_color_transition="true"
app:ripple_color="@color/white"
app:ripple_count="3"
@@ -106,90 +113,95 @@
tools:src="@drawable/ic_contact_picture_fallback" />
</RelativeLayout>
- <TextView
- android:id="@+id/contact_bubble_txt"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:ellipsize="middle"
- android:gravity="center_horizontal"
- android:paddingStart="32dp"
- android:paddingEnd="32dp"
- android:singleLine="true"
- android:textAppearance="?android:attr/textAppearanceLarge"
- android:textColor="@color/text_color_primary_dark"
- tools:text="Contact Name" />
-
- <TextView
- android:id="@+id/contact_bubble_num_txt"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:ellipsize="middle"
- android:gravity="center_horizontal"
- android:paddingStart="32dp"
- android:paddingEnd="32dp"
- android:singleLine="true"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:textColor="@color/text_color_secondary_dark"
- android:visibility="gone"
- tools:text="ring:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- tools:visibility="visible" />
-
- <TextView
- android:id="@+id/call_status_txt"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center_horizontal"
- android:paddingStart="32dp"
- android:paddingEnd="32dp"
- android:textColor="@color/text_color_primary_dark"
- android:textSize="16sp"
- tools:text="Connecting" />
- </LinearLayout>
-
- <LinearLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_below="@+id/contact_bubble_layout"
- android:layout_centerHorizontal="true"
- android:orientation="horizontal"
- tools:visibility="gone">
-
- <com.google.android.material.floatingactionbutton.FloatingActionButton
- android:id="@+id/call_refuse_btn"
+ <LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_margin="16dp"
- android:contentDescription="@string/action_call_decline"
- android:onClick="@{() -> presenter.refuseClicked()}"
- android:tint="@color/white"
- android:visibility="gone"
- app:backgroundTint="@color/error_red"
- app:elevation="6dp"
- app:fabSize="normal"
- app:pressedTranslationZ="12dp"
- app:rippleColor="@android:color/white"
- app:srcCompat="@drawable/baseline_call_end_24"
- app:useCompatPadding="true" />
+ android:gravity="center_horizontal"
+ android:orientation="vertical">
- <com.google.android.material.floatingactionbutton.FloatingActionButton
- android:id="@+id/call_accept_btn"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_margin="16dp"
- android:contentDescription="@string/action_call_accept"
- android:onClick="@{() -> presenter.acceptClicked()}"
- android:visibility="gone"
- app:backgroundTint="@color/green_500"
- app:elevation="6dp"
- app:fabSize="normal"
- app:pressedTranslationZ="12dp"
- app:rippleColor="@android:color/white"
- app:srcCompat="@drawable/baseline_call_24"
- app:useCompatPadding="true" />
+ <TextView
+ android:id="@+id/contact_bubble_txt"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:ellipsize="middle"
+ android:gravity="center_horizontal"
+ android:paddingStart="32dp"
+ android:paddingEnd="32dp"
+ android:singleLine="true"
+ android:textAppearance="?android:attr/textAppearanceLarge"
+ android:textColor="@color/text_color_primary_dark"
+ tools:text="Contact Name" />
- </LinearLayout>
+ <TextView
+ android:id="@+id/contact_bubble_num_txt"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:ellipsize="middle"
+ android:gravity="center_horizontal"
+ android:paddingStart="32dp"
+ android:paddingEnd="32dp"
+ android:singleLine="true"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textColor="@color/text_color_secondary_dark"
+ android:visibility="gone"
+ tools:text="ring:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+ tools:visibility="visible" />
- <LinearLayout
+ <TextView
+ android:id="@+id/call_status_txt"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center_horizontal"
+ android:paddingStart="32dp"
+ android:paddingEnd="32dp"
+ android:textColor="@color/text_color_primary_dark"
+ android:textSize="16sp"
+ tools:text="Connecting" />
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ tools:visibility="visible">
+
+ <com.google.android.material.floatingactionbutton.FloatingActionButton
+ android:id="@+id/call_refuse_btn"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="16dp"
+ android:contentDescription="@string/action_call_decline"
+ android:onClick="@{() -> presenter.refuseClicked()}"
+ android:tint="@color/white"
+ android:visibility="visible"
+ app:backgroundTint="@color/error_red"
+ app:elevation="6dp"
+ app:fabSize="normal"
+ app:pressedTranslationZ="12dp"
+ app:rippleColor="@android:color/white"
+ app:srcCompat="@drawable/baseline_call_end_24"
+ app:useCompatPadding="true" />
+
+ <com.google.android.material.floatingactionbutton.FloatingActionButton
+ android:id="@+id/call_accept_btn"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="16dp"
+ android:contentDescription="@string/action_call_accept"
+ android:onClick="@{() -> presenter.acceptClicked()}"
+ android:visibility="visible"
+ app:backgroundTint="@color/green_500"
+ app:elevation="6dp"
+ app:fabSize="normal"
+ app:pressedTranslationZ="12dp"
+ app:rippleColor="@android:color/white"
+ app:srcCompat="@drawable/baseline_call_24"
+ app:useCompatPadding="true" />
+ </LinearLayout>
+
+ </LinearLayout>
+ </com.google.android.flexbox.FlexboxLayout>
+
+ <com.google.android.flexbox.FlexboxLayout
android:id="@+id/call_control_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -200,6 +212,8 @@
android:gravity="center"
android:orientation="vertical"
android:visibility="gone"
+ app:flexDirection="column_reverse"
+ app:flexWrap="wrap"
tools:visibility="visible">
<ImageButton
@@ -214,6 +228,17 @@
android:tint="@color/white"
app:srcCompat="@drawable/baseline_camera_front_24" />
+ <ImageButton
+ android:id="@+id/call_conference_add"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="12dp"
+ android:background="@drawable/call_button_background"
+ android:onClick="@{() -> presenter.addParticipant()}"
+ android:padding="16dp"
+ android:tint="@color/white"
+ app:srcCompat="@drawable/baseline_person_add_24" />
+
<cx.ring.views.CheckableImageButton
android:id="@+id/call_mic_btn"
android:layout_width="wrap_content"
@@ -239,7 +264,17 @@
android:tint="@color/white"
app:srcCompat="@drawable/baseline_volume_up_24" />
- </LinearLayout>
+ </com.google.android.flexbox.FlexboxLayout>
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:id="@+id/conf_control_group"
+ android:layout_alignParentEnd="true"
+ android:layout_alignParentTop="true"
+ app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
+ tools:listitem="@layout/item_conference_participant"
+ tools:itemCount="4" />
<EditText
android:id="@+id/dialpad_edit_text"