diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt
index 03378a99d8..3ed9bbc1af 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt
@@ -4,6 +4,7 @@ import android.animation.FloatEvaluator
import android.animation.ValueAnimator
import android.content.res.Resources
import android.database.Cursor
+import android.graphics.Rect
import android.os.Bundle
import android.util.Log
import android.view.ActionMode
@@ -18,6 +19,7 @@ import kotlinx.android.synthetic.main.activity_conversation_v2.*
import kotlinx.android.synthetic.main.activity_conversation_v2.view.*
import kotlinx.android.synthetic.main.activity_conversation_v2_action_bar.*
import kotlinx.android.synthetic.main.view_input_bar.view.*
+import kotlinx.android.synthetic.main.view_input_bar_recording.*
import kotlinx.android.synthetic.main.view_input_bar_recording.view.*
import network.loki.messenger.R
import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity
@@ -26,13 +28,19 @@ import org.thoughtcrime.securesms.conversation.v2.menus.ConversationActionModeCa
import org.thoughtcrime.securesms.conversation.v2.menus.ConversationMenuHelper
import org.thoughtcrime.securesms.database.DatabaseFactory
import org.thoughtcrime.securesms.database.model.MessageRecord
+import org.thoughtcrime.securesms.loki.utilities.toDp
+import org.thoughtcrime.securesms.loki.utilities.toPx
import org.thoughtcrime.securesms.mms.GlideApp
import kotlin.math.abs
+import kotlin.math.roundToInt
import kotlin.math.sqrt
class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDelegate {
+ private val lockViewExpansionMargin by lazy { toDp(3, resources) }
+ private val lockViewHitMargin by lazy { toPx(40, resources) }
private var threadID: Long = -1
private var actionMode: ActionMode? = null
+ private var isLockViewExpanded = false
// TODO: Selected message background color
// TODO: Overflow menu background + text color
@@ -194,6 +202,45 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe
chevronImageView.translationX = 0.0f
slideToCancelTextView.translationX = 0.0f
}
+ if (isValidLockViewLocation(event.rawX.roundToInt(), event.rawY.roundToInt())) {
+ if (!isLockViewExpanded) {
+ expandLockView()
+ isLockViewExpanded = true
+ }
+ } else {
+ if (isLockViewExpanded) {
+ collapseLockView()
+ isLockViewExpanded = false
+ }
+ }
+ }
+
+ private fun isValidLockViewLocation(x: Int, y: Int): Boolean {
+ val lockViewLocation = IntArray(2) { 0 }
+ lockView.getLocationOnScreen(lockViewLocation)
+ val hitRect = Rect(lockViewLocation[0] - lockViewHitMargin, 0,
+ lockViewLocation[0] + lockView.width + lockViewHitMargin, lockViewLocation[1] + lockView.height)
+ return hitRect.contains(x, y)
+ }
+
+ private fun expandLockView() {
+ val animation = ValueAnimator.ofObject(FloatEvaluator(), lockView.scaleX, 1.05f)
+ animation.duration = 250L
+ animation.addUpdateListener { animator ->
+ lockView.scaleX = animator.animatedValue as Float
+ lockView.scaleY = animator.animatedValue as Float
+ }
+ animation.start()
+ }
+
+ private fun collapseLockView() {
+ val animation = ValueAnimator.ofObject(FloatEvaluator(), lockView.scaleX, 1.0f)
+ animation.duration = 250L
+ animation.addUpdateListener { animator ->
+ lockView.scaleX = animator.animatedValue as Float
+ lockView.scaleY = animator.animatedValue as Float
+ }
+ animation.start()
}
override fun onMicrophoneButtonCancel(event: MotionEvent) {
diff --git a/app/src/main/res/drawable/view_lock_background.xml b/app/src/main/res/drawable/view_lock_background.xml
index b7f6ef75e1..9d3510cd34 100644
--- a/app/src/main/res/drawable/view_lock_background.xml
+++ b/app/src/main/res/drawable/view_lock_background.xml
@@ -3,6 +3,6 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/view_input_bar_recording.xml b/app/src/main/res/layout/view_input_bar_recording.xml
index 36741377a5..d53bbdd48c 100644
--- a/app/src/main/res/layout/view_input_bar_recording.xml
+++ b/app/src/main/res/layout/view_input_bar_recording.xml
@@ -3,8 +3,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
- android:layout_height="132dp"
- android:background="@color/blue">
+ android:layout_height="126dp">
diff --git a/app/src/main/res/values-notnight-v21/colors.xml b/app/src/main/res/values-notnight-v21/colors.xml
index 7cd8241332..af045cbcbb 100644
--- a/app/src/main/res/values-notnight-v21/colors.xml
+++ b/app/src/main/res/values-notnight-v21/colors.xml
@@ -23,7 +23,7 @@
#FCFCFC
#0D000000
#FCFCFC
- #99FFFFFF
+ #66000000
#ffffff
#fcfcfc
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 39228cd5b2..bc99fea95b 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -30,7 +30,7 @@
#171717
#0DFFFFFF
#171717
- #99000000
+ #66FFFFFF
- #5ff8b0