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 d28ca345fc..a8d853a76f 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
@@ -23,6 +23,7 @@ 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
+import org.thoughtcrime.securesms.conversation.v2.input_bar.InputBarButton
import org.thoughtcrime.securesms.conversation.v2.input_bar.InputBarDelegate
import org.thoughtcrime.securesms.conversation.v2.menus.ConversationActionModeCallback
import org.thoughtcrime.securesms.conversation.v2.menus.ConversationMenuHelper
@@ -36,7 +37,6 @@ 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
@@ -70,9 +70,12 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe
private val glide by lazy { GlideApp.with(this) }
- private val screenWidth by lazy {
- Resources.getSystem().displayMetrics.widthPixels
- }
+ private val screenWidth by lazy { Resources.getSystem().displayMetrics.widthPixels }
+
+ private val gifButton by lazy { InputBarButton(this, R.drawable.ic_gif_white_24dp, hasOpaqueBackground = true) }
+ private val documentButton by lazy { InputBarButton(this, R.drawable.ic_document_small_dark, hasOpaqueBackground = true) }
+ private val libraryButton by lazy { InputBarButton(this, R.drawable.ic_baseline_photo_library_24, hasOpaqueBackground = true) }
+ private val cameraButton by lazy { InputBarButton(this, R.drawable.ic_baseline_photo_camera_24, hasOpaqueBackground = true) }
// region Settings
companion object {
@@ -87,7 +90,7 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe
threadID = intent.getLongExtra(THREAD_ID, -1)
setUpRecyclerView()
setUpToolBar()
- inputBar.delegate = this
+ setUpInputBar()
}
private fun setUpRecyclerView() {
@@ -120,6 +123,22 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe
profilePictureView.update(thread, threadID)
}
+ private fun setUpInputBar() {
+ inputBar.delegate = this
+ // GIF button
+ gifButtonContainer.addView(gifButton)
+ gifButton.layoutParams = RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT)
+ // Document button
+ documentButtonContainer.addView(documentButton)
+ documentButton.layoutParams = RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT)
+ // Library button
+ libraryButtonContainer.addView(libraryButton)
+ libraryButton.layoutParams = RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT)
+ // Camera button
+ cameraButtonContainer.addView(cameraButton)
+ cameraButton.layoutParams = RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT)
+ }
+
override fun onPrepareOptionsMenu(menu: Menu): Boolean {
ConversationMenuHelper.onPrepareOptionsMenu(menu, menuInflater, thread, this) { onOptionsItemSelected(it) }
super.onPrepareOptionsMenu(menu)
diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBarButton.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBarButton.kt
index 08a2ece80c..cf95a7c4eb 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBarButton.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBarButton.kt
@@ -27,6 +27,7 @@ import kotlin.math.abs
class InputBarButton : RelativeLayout {
private val gestureHandler = Handler(Looper.getMainLooper())
private var isSendButton = false
+ private var hasOpaqueBackground = false
@DrawableRes private var iconID = 0
private var longPressCallback: Runnable? = null
private var onDownTimestamp = 0L
@@ -43,7 +44,15 @@ class InputBarButton : RelativeLayout {
private val expandedImageViewPosition by lazy { PointF(0.0f, 0.0f) }
private val collapsedImageViewPosition by lazy { PointF((expandedSize - collapsedSize) / 2, (expandedSize - collapsedSize) / 2) }
- private val defaultColorID by lazy { if (isSendButton) R.color.accent else R.color.input_bar_button_background }
+ private val colorID by lazy {
+ if (hasOpaqueBackground) {
+ R.color.input_bar_button_background_opaque
+ } else if (isSendButton) {
+ R.color.accent
+ } else {
+ R.color.input_bar_button_background
+ }
+ }
val expandedSize by lazy { resources.getDimension(R.dimen.input_bar_button_expanded_size) }
val collapsedSize by lazy { resources.getDimension(R.dimen.input_bar_button_collapsed_size) }
@@ -53,7 +62,7 @@ class InputBarButton : RelativeLayout {
val size = collapsedSize.toInt()
result.layoutParams = LayoutParams(size, size)
result.setBackgroundResource(R.drawable.input_bar_button_background)
- result.mainColor = resources.getColorWithID(defaultColorID, context.theme)
+ result.mainColor = resources.getColorWithID(colorID, context.theme)
result
}
@@ -72,9 +81,10 @@ class InputBarButton : RelativeLayout {
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) { throw IllegalAccessException("Use InputBarButton(context:iconID:) instead.") }
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) { throw IllegalAccessException("Use InputBarButton(context:iconID:) instead.") }
- constructor(context: Context, @DrawableRes iconID: Int, isSendButton: Boolean = false) : super(context) {
+ constructor(context: Context, @DrawableRes iconID: Int, isSendButton: Boolean = false, hasOpaqueBackground: Boolean = false) : super(context) {
this.isSendButton = isSendButton
this.iconID = iconID
+ this.hasOpaqueBackground = hasOpaqueBackground
val size = resources.getDimension(R.dimen.input_bar_button_expanded_size).toInt()
val layoutParams = LayoutParams(size, size)
this.layoutParams = layoutParams
@@ -90,13 +100,13 @@ class InputBarButton : RelativeLayout {
}
fun expand() {
- GlowViewUtilities.animateColorChange(context, imageViewContainer, defaultColorID, R.color.accent)
+ GlowViewUtilities.animateColorChange(context, imageViewContainer, colorID, R.color.accent)
imageViewContainer.animateSizeChange(R.dimen.input_bar_button_collapsed_size, R.dimen.input_bar_button_expanded_size, animationDuration)
animateImageViewContainerPositionChange(collapsedImageViewPosition, expandedImageViewPosition)
}
fun collapse() {
- GlowViewUtilities.animateColorChange(context, imageViewContainer, R.color.accent, defaultColorID)
+ GlowViewUtilities.animateColorChange(context, imageViewContainer, R.color.accent, colorID)
imageViewContainer.animateSizeChange(R.dimen.input_bar_button_expanded_size, R.dimen.input_bar_button_collapsed_size, animationDuration)
animateImageViewContainerPositionChange(expandedImageViewPosition, collapsedImageViewPosition)
}
diff --git a/app/src/main/res/layout/activity_conversation_v2.xml b/app/src/main/res/layout/activity_conversation_v2.xml
index d50a07e101..0c7582aca9 100644
--- a/app/src/main/res/layout/activity_conversation_v2.xml
+++ b/app/src/main/res/layout/activity_conversation_v2.xml
@@ -12,6 +12,40 @@
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/input_bar_height" />
+
+
+
+
+
+
+
+
+
+
+
+
#FFFFFF
#FCFCFC
#0D000000
+ #EFEFEF
#FCFCFC
#66000000
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index bc99fea95b..45d1eb8454 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -29,6 +29,7 @@
#000000
#171717
#0DFFFFFF
+ #232323
#171717
#66FFFFFF