Added support for multi-image receive.

This commit is contained in:
Greyson Parrelli
2018-11-08 23:33:37 -08:00
parent e665252b86
commit 47a10a0288
55 changed files with 1277 additions and 186 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 661 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 725 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<solid android:color="@color/signal_primary"/>
<corners android:radius="2dp"/>
</shape>

View File

@@ -1,14 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.exoplayer2.ui.PlayerView
android:id="@+id/video_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center"/>
android:id="@+id/video_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center"
app:player_layout_id="@layout/media_preview_exoplayer_layout"/>
</FrameLayout>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/album_thumbnail_root"
android:orientation="horizontal"
android:layout_width="300dp"
android:layout_height="150dp">
<org.thoughtcrime.securesms.components.ThumbnailView
android:id="@+id/album_cell_1"
android:layout_height="150dp"
android:layout_width="149dp"
app:thumbnail_radius="0dp"/>
<org.thoughtcrime.securesms.components.ThumbnailView
android:id="@+id/album_cell_2"
android:layout_height="150dp"
android:layout_width="149dp"
android:layout_gravity="right|end"
app:thumbnail_radius="0dp"/>
</FrameLayout>

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/album_thumbnail_root"
android:layout_width="300dp"
android:layout_height="200dp">
<org.thoughtcrime.securesms.components.ThumbnailView
android:id="@+id/album_cell_1"
android:layout_height="200dp"
android:layout_width="199dp"
app:thumbnail_radius="0dp"/>
<org.thoughtcrime.securesms.components.ThumbnailView
android:id="@+id/album_cell_2"
android:layout_height="99dp"
android:layout_width="99dp"
android:layout_gravity="right|end|top"
app:thumbnail_radius="0dp"/>
<org.thoughtcrime.securesms.components.ThumbnailView
android:id="@+id/album_cell_3"
android:layout_height="99dp"
android:layout_width="99dp"
android:layout_gravity="right|end|bottom"
app:thumbnail_radius="0dp"/>
</FrameLayout>

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/album_thumbnail_root"
android:layout_width="300dp"
android:layout_height="300dp">
<org.thoughtcrime.securesms.components.ThumbnailView
android:id="@+id/album_cell_1"
android:layout_height="149dp"
android:layout_width="149dp"
app:thumbnail_radius="0dp"/>
<org.thoughtcrime.securesms.components.ThumbnailView
android:id="@+id/album_cell_2"
android:layout_height="149dp"
android:layout_width="149dp"
android:layout_gravity="right|end|top"
app:thumbnail_radius="0dp"/>
<org.thoughtcrime.securesms.components.ThumbnailView
android:id="@+id/album_cell_3"
android:layout_height="149dp"
android:layout_width="149dp"
android:layout_gravity="left|start|bottom"
app:thumbnail_radius="0dp"/>
<org.thoughtcrime.securesms.components.ThumbnailView
android:id="@+id/album_cell_4"
android:layout_height="149dp"
android:layout_width="149dp"
android:layout_gravity="right|end|bottom"
app:thumbnail_radius="0dp"/>
</FrameLayout>

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/album_thumbnail_root"
android:layout_width="300dp"
android:layout_height="250dp">
<org.thoughtcrime.securesms.components.ThumbnailView
android:id="@+id/album_cell_1"
android:layout_height="149dp"
android:layout_width="149dp"
app:thumbnail_radius="0dp"/>
<org.thoughtcrime.securesms.components.ThumbnailView
android:id="@+id/album_cell_2"
android:layout_height="149dp"
android:layout_width="149dp"
android:layout_gravity="right|end|top"
app:thumbnail_radius="0dp"/>
<org.thoughtcrime.securesms.components.ThumbnailView
android:id="@+id/album_cell_3"
android:layout_height="99dp"
android:layout_width="99dp"
android:layout_gravity="left|start|bottom"
app:thumbnail_radius="0dp"/>
<org.thoughtcrime.securesms.components.ThumbnailView
android:id="@+id/album_cell_4"
android:layout_height="99dp"
android:layout_width="99dp"
android:layout_gravity="center_horizontal|bottom"
app:thumbnail_radius="0dp"/>
<org.thoughtcrime.securesms.components.ThumbnailView
android:id="@+id/album_cell_5"
android:layout_height="99dp"
android:layout_width="99dp"
android:layout_gravity="right|end|bottom"
app:thumbnail_radius="0dp"/>
</FrameLayout>

View File

@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/album_thumbnail_root"
android:layout_width="300dp"
android:layout_height="250dp">
<org.thoughtcrime.securesms.components.ThumbnailView
android:id="@+id/album_cell_1"
android:layout_height="149dp"
android:layout_width="149dp"
app:thumbnail_radius="0dp"/>
<org.thoughtcrime.securesms.components.ThumbnailView
android:id="@+id/album_cell_2"
android:layout_height="149dp"
android:layout_width="149dp"
android:layout_gravity="right|end|top"
app:thumbnail_radius="0dp"/>
<org.thoughtcrime.securesms.components.ThumbnailView
android:id="@+id/album_cell_3"
android:layout_height="99dp"
android:layout_width="99dp"
android:layout_gravity="left|start|bottom"
app:thumbnail_radius="0dp"/>
<org.thoughtcrime.securesms.components.ThumbnailView
android:id="@+id/album_cell_4"
android:layout_height="99dp"
android:layout_width="99dp"
android:layout_gravity="center_horizontal|bottom"
app:thumbnail_radius="0dp"/>
<FrameLayout
android:layout_width="99dp"
android:layout_height="99dp"
android:layout_gravity="right|end|bottom">
<org.thoughtcrime.securesms.components.ThumbnailView
android:id="@+id/album_cell_5"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_gravity="center_horizontal|bottom"
app:thumbnail_radius="0dp"/>
<TextView
android:id="@+id/album_cell_overflow_text"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:gravity="center"
android:textSize="28dp"
android:textColor="@color/core_white"
android:background="@color/transparent_black_40"
tools:text="+2" />
</FrameLayout>
</FrameLayout>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<merge
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<FrameLayout
android:id="@+id/album_cell_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?conversation_background"/>
<ViewStub
android:id="@+id/album_transfer_controls_stub"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_gravity="center"
android:layout="@layout/transfer_controls_stub" />
</merge>

View File

@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<merge
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<org.thoughtcrime.securesms.components.ThumbnailView
android:id="@+id/conversation_thumbnail_image"
@@ -12,8 +13,19 @@
android:longClickable="false"
android:scaleType="fitCenter"
android:contentDescription="@string/conversation_item__mms_image_description"
android:visibility="gone"
tools:visibility="visible"
app:thumbnail_radius="1dp"/>
<org.thoughtcrime.securesms.components.AlbumThumbnailView
android:id="@+id/conversation_thumbnail_album"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false"
android:longClickable="false"
android:contentDescription="@string/conversation_item__mms_image_description"
android:visibility="gone"/>
<ImageView
android:id="@+id/conversation_thumbnail_shade"
android:layout_width="match_parent"

View File

@@ -1,13 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray95">
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray95">
<org.thoughtcrime.securesms.components.viewpager.HackyViewPager
android:id="@+id/media_pager"
android:id="@+id/media_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"/>
<LinearLayout
android:id="@+id/media_preview_details_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:orientation="vertical"
android:background="@drawable/image_shade"
android:gravity="bottom"
android:visibility="gone"
android:animateLayoutChanges="true">
<org.thoughtcrime.securesms.components.MaxHeightScrollView
android:id="@+id/media_preview_caption_container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
android:layout_height="wrap_content"
android:paddingTop="32dp"
android:animateLayoutChanges="true"
app:scrollView_maxHeight="120dp">
<org.thoughtcrime.securesms.components.emoji.EmojiTextView
android:id="@+id/media_preview_caption"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingBottom="8dp"
style="@style/Signal.Text.Body"
android:textColor="@color/core_white"
android:gravity="bottom"
tools:text="With great power comes great responsibility." />
</org.thoughtcrime.securesms.components.MaxHeightScrollView>
<android.support.v7.widget.RecyclerView
android:id="@+id/media_preview_album_rail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
tools:layout_height="64dp"/>
<FrameLayout
android:id="@+id/media_preview_playback_controls_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:animateLayoutChanges="true"/>
</LinearLayout>
</FrameLayout>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<org.thoughtcrime.securesms.components.ThumbnailView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/rail_item_image"
android:layout_width="48dp"
android:layout_height="48sp"
android:layout_margin="2dp"
android:padding="2dp"
android:background="@drawable/album_rail_item_background"
app:thumbnail_radius="2dp"/>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.exoplayer2.ui.AspectRatioFrameLayout
android:id="@+id/exo_content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"/>
</FrameLayout>

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -8,6 +9,7 @@
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="false"
android:contentDescription="@string/media_preview_activity__media_content_description" />
<ViewStub android:id="@+id/video_player_stub"

View File

@@ -14,6 +14,14 @@
android:scaleType="fitCenter"
android:contentDescription="@string/conversation_item__mms_image_description" />
<ImageView
android:id="@+id/thumbnail_caption_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="6dp"
android:src="@drawable/ic_caption"
android:visibility="gone" />
<FrameLayout
android:id="@+id/play_overlay"
android:layout_width="48dp"

View File

@@ -12,15 +12,30 @@
app:matProg_linearProgress="true"
app:matProg_spinSpeed="0.333" />
<TextView android:id="@+id/download_details"
android:layout_width="@dimen/transfer_controls_expanded_width"
android:layout_height="@dimen/transfer_controls_contracted_width"
android:padding="15dp"
android:gravity="center"
android:longClickable="false"
android:textColor="?conversation_item_received_text_primary_color"
android:drawableLeft="@drawable/ic_file_download_white_36dp"
android:textSize="16dp"
android:visibility="gone"
android:textStyle="bold" />
<LinearLayout
android:id="@+id/download_details"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center"
android:gravity="center"
android:visibility="gone">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_file_download_white_36dp"/>
<TextView android:id="@+id/download_details_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dp"
android:gravity="center"
android:longClickable="false"
android:textColor="?conversation_item_received_text_primary_color"
android:textSize="16dp"
android:textStyle="bold" />
</LinearLayout>
</merge>

View File

@@ -86,6 +86,7 @@
<attr name="conversation_item_quote_text_color" format="reference"/>
<attr name="conversation_item_sticky_date_background" format="reference" />
<attr name="conversation_item_sticky_date_text_color" format="color" />
<attr name="conversation_item_image_outline_color" format="color" />
<attr name="dialog_info_icon" format="reference" />
<attr name="dialog_alert_icon" format="reference" />
@@ -300,4 +301,8 @@
<attr name="typingIndicator_tint" format="color" />
</declare-styleable>
<declare-styleable name="MaxHeightScrollView">
<attr name="scrollView_maxHeight" format="dimension" />
</declare-styleable>
</resources>

View File

@@ -10,6 +10,9 @@
<!-- AbstractNotificationBuilder -->
<string name="AbstractNotificationBuilder_new_message">New message</string>
<!-- AlbumThumbnailView -->
<string name="AlbumThumbnailView_plus">\+%d</string>
<!-- ApplicationPreferencesActivity -->
<string name="ApplicationPreferencesActivity_currently_s">Currently: %s</string>
<string name="ApplicationPreferenceActivity_you_havent_set_a_passphrase_yet">You haven\'t set a passphrase yet!</string>
@@ -734,6 +737,12 @@
<string name="SingleRecipientNotificationBuilder_signal">Signal</string>
<string name="SingleRecipientNotificationBuilder_new_message">New message</string>
<!-- TransferControlView -->
<plurals name="TransferControlView_n_items">
<item quantity="one">%d Item</item>
<item quantity="other">%d Items</item>
</plurals>
<!-- UnauthorizedReminder -->
<string name="UnauthorizedReminder_device_no_longer_registered">Device no longer registered</string>
<string name="UnauthorizedReminder_this_is_likely_because_you_registered_your_phone_number_with_Signal_on_a_different_device">This is likely because you registered your phone number with Signal on a different device. Tap to re-register.</string>

View File

@@ -204,6 +204,7 @@
<item name="conversation_item_quote_text_color">@color/core_grey_90</item>
<item name="conversation_item_sticky_date_background">@drawable/sticky_date_header_background_light</item>
<item name="conversation_item_sticky_date_text_color">@color/core_grey_60</item>
<item name="conversation_item_image_outline_color">@color/transparent_black_30</item>
<item name="quick_camera_icon">@drawable/quick_camera_light</item>
<item name="quick_mic_icon">@drawable/ic_mic_grey600_24dp</item>
@@ -311,6 +312,7 @@
<item name="conversation_item_quote_text_color">@color/core_grey_05</item>
<item name="conversation_item_sticky_date_background">@drawable/sticky_date_header_background_dark</item>
<item name="conversation_item_sticky_date_text_color">@color/core_grey_25</item>
<item name="conversation_item_image_outline_color">@color/transparent_white_30</item>
<item name="contact_list_divider">@drawable/contact_list_divider_dark</item>