Voice Note Locking.

Limit of 60 minutes, after which it's cancelled.
This commit is contained in:
Alan Evans
2019-03-28 15:04:38 -03:00
committed by GitHub
parent cab3657ab0
commit e842f78457
11 changed files with 378 additions and 169 deletions

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M22.1,15l-9.5,-9.5c-0.3,-0.3 -0.8,-0.3 -1.1,0L1.9,15L3,16.1l9,-9l9,9L22.1,15z"/>
</vector>

9
res/drawable/ic_lock.xml Normal file
View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M18,9h-1V6c0,-2.8 -2.2,-5 -5,-5S7,3.2 7,6v3H6c-1.1,0 -2,0.9 -2,2v9c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2v-9C20,9.9 19.1,9 18,9zM9,6c0,-1.7 1.3,-3 3,-3s3,1.3 3,3v3H9V6zM13,16.2v2.3h-2v-2.3c-0.6,-0.4 -1,-1 -1,-1.7c0,-1.1 0.9,-2 2,-2s2,0.9 2,2C14,15.2 13.6,15.9 13,16.2z"/>
</vector>

View File

@@ -124,31 +124,12 @@
<org.thoughtcrime.securesms.components.MicrophoneRecorderView
android:id="@+id/recorder_view"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_width="36dp"
android:layout_gravity="center_vertical"
android:clipChildren="false"
android:clipToPadding="false">
<ImageButton
android:id="@+id/quick_audio_toggle"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_marginEnd="2dp"
android:padding="6dp"
android:src="?quick_mic_icon"
android:background="@null"
android:contentDescription="@string/conversation_activity__quick_attachment_drawer_record_and_send_audio_description" />
<ImageView
android:id="@+id/quick_audio_fab"
android:layout_width="74dp"
android:layout_height="74dp"
android:src="@drawable/ic_mic_white_48dp"
android:background="@drawable/circle_tintable"
android:backgroundTint="@color/core_red"
android:visibility="gone"
android:scaleType="center"/>
<include layout="@layout/microphone_recorder_view" />
</org.thoughtcrime.securesms.components.MicrophoneRecorderView>
@@ -177,51 +158,7 @@
</LinearLayout>
<LinearLayout
android:id="@+id/recording_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:orientation="horizontal"
tools:visibility="gone">
<TextView
android:id="@+id/record_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="none"
android:layout_marginStart="20dp"
style="@style/Signal.Text.Body"
android:text="00:00"
android:textColor="@color/core_grey_60"
android:singleLine="true"
android:visibility="gone"
tools:visibility="visible"/>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipChildren="true">
<TextView
android:id="@+id/slide_to_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left|start|center_vertical"
android:drawableStart="@drawable/ic_keyboard_arrow_left_grey600_24dp"
style="@style/Signal.Text.Caption"
android:text="@string/conversation_input_panel__slide_to_cancel"
android:textAllCaps="true"
android:textColor="@color/core_grey_60"
android:ellipsize="none"
android:visibility="gone"
android:paddingEnd="50dp"
tools:visibility="visible"/>
</FrameLayout>
</LinearLayout>
<include layout="@layout/recording_layout" />
</FrameLayout>

View File

@@ -0,0 +1,63 @@
<?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:tools="http://schemas.android.com/tools"
tools:showIn="@layout/conversation_input_panel">
<ImageButton
android:id="@+id/quick_audio_toggle"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_marginEnd="2dp"
android:background="@null"
android:contentDescription="@string/conversation_activity__quick_attachment_drawer_record_and_send_audio_description"
android:padding="6dp"
android:src="?quick_mic_icon" />
<LinearLayout
android:id="@+id/lock_drop_target"
android:layout_width="40dp"
android:layout_height="64dp"
android:layout_gravity="center"
android:background="?attr/conversation_input_background"
android:clipChildren="false"
android:orientation="vertical"
android:visibility="gone"
tools:showIn="@layout/conversation_input_panel"
tools:translationY="@dimen/recording_voice_lock_target"
tools:visibility="visible">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:contentDescription="@string/conversation_activity__quick_attachment_drawer_lock_record_description"
android:tint="?attr/conversation_input_inline_attach_icon_tint"
app:srcCompat="@drawable/ic_lock" />
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="6dp"
android:contentDescription="@string/conversation_activity__quick_attachment_drawer_lock_record_description"
android:tint="?attr/conversation_input_inline_attach_icon_tint"
app:srcCompat="@drawable/ic_chevron_up" />
</LinearLayout>
<ImageView
android:id="@+id/quick_audio_fab"
android:layout_width="74dp"
android:layout_height="74dp"
android:layout_marginStart="-18dp"
android:layout_marginTop="-18dp"
android:background="@drawable/circle_tintable"
android:clickable="false"
android:scaleType="center"
android:src="@drawable/ic_mic_white_48dp"
android:visibility="gone"
tools:ignore="ContentDescription"
tools:visibility="visible" />
</merge>

View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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/recording_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:orientation="horizontal"
tools:visibility="visible"
tools:showIn="@layout/conversation_input_panel">
<TextView
android:id="@+id/record_time"
style="@style/Signal.Text.Body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:ellipsize="none"
android:singleLine="true"
android:textColor="@color/core_grey_60"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="00:00"
tools:visibility="visible" />
<TextView
android:id="@+id/record_cancel"
style="@style/Signal.Text.Caption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:ellipsize="none"
android:gravity="center_vertical"
android:text="@string/conversation_input_panel__cancel"
android:textAllCaps="true"
android:textColor="@color/red_A700"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/frameLayout"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible" />
<FrameLayout
android:id="@+id/frameLayout"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:clipChildren="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/record_time"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/slide_to_cancel"
style="@style/Signal.Text.Caption"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableStart="@drawable/ic_keyboard_arrow_left_grey600_24dp"
android:ellipsize="none"
android:gravity="center_vertical"
android:text="@string/conversation_input_panel__slide_to_cancel"
android:textAllCaps="true"
android:textColor="@color/core_grey_60"
android:visibility="gone"
tools:visibility="visible" />
</FrameLayout>
</android.support.constraint.ConstraintLayout>

View File

@@ -99,4 +99,6 @@
<dimen name="alertview_small_icon_size">14dp</dimen>
<dimen name="recording_voice_lock_target">-150dp</dimen>
</resources>

View File

@@ -869,10 +869,12 @@
<string name="conversation_activity__attachment_thumbnail">Attachment Thumbnail</string>
<string name="conversation_activity__quick_attachment_drawer_toggle_camera_description">Toggle quick camera attachment drawer</string>
<string name="conversation_activity__quick_attachment_drawer_record_and_send_audio_description">Record and send audio attachment</string>
<string name="conversation_activity__quick_attachment_drawer_lock_record_description">Lock recording of audio attachment</string>
<string name="conversation_activity__enable_signal_for_sms">Enable Signal for SMS</string>
<!-- conversation_input_panel -->
<string name="conversation_input_panel__slide_to_cancel">SLIDE TO CANCEL</string>
<string name="conversation_input_panel__slide_to_cancel">Slide to cancel</string>
<string name="conversation_input_panel__cancel">Cancel</string>
<!-- conversation_item -->
<string name="conversation_item__mms_image_description">Media message</string>