diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt
index e98a377540..4ca580b668 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt
@@ -352,6 +352,13 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter
sectionHeaderPref(R.string.preferences__internal_release_channel)
+ clickPref(
+ title = DSLSettingsText.from(R.string.preferences__internal_release_channel_set_last_version),
+ onClick = {
+ SignalStore.releaseChannelValues().highestVersionNoteReceived = max(SignalStore.releaseChannelValues().highestVersionNoteReceived - 10, 0)
+ }
+ )
+
clickPref(
title = DSLSettingsText.from(R.string.preferences__internal_fetch_release_channel),
onClick = {
@@ -361,9 +368,9 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter
)
clickPref(
- title = DSLSettingsText.from(R.string.preferences__internal_release_channel_set_last_version),
+ title = DSLSettingsText.from(R.string.preferences__internal_add_sample_note),
onClick = {
- SignalStore.releaseChannelValues().highestVersionNoteReceived = max(SignalStore.releaseChannelValues().highestVersionNoteReceived - 10, 0)
+ viewModel.addSampleReleaseNote()
}
)
diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsRepository.kt
index 200822e16d..08c25daa8b 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsRepository.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsRepository.kt
@@ -2,7 +2,17 @@ package org.thoughtcrime.securesms.components.settings.app.internal
import android.content.Context
import org.signal.core.util.concurrent.SignalExecutors
+import org.thoughtcrime.securesms.database.MessageDatabase
+import org.thoughtcrime.securesms.database.SignalDatabase
+import org.thoughtcrime.securesms.database.model.addStyle
+import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList
+import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
import org.thoughtcrime.securesms.emoji.EmojiFiles
+import org.thoughtcrime.securesms.jobs.AttachmentDownloadJob
+import org.thoughtcrime.securesms.jobs.CreateReleaseChannelJob
+import org.thoughtcrime.securesms.keyvalue.SignalStore
+import org.thoughtcrime.securesms.recipients.Recipient
+import org.thoughtcrime.securesms.releasechannel.ReleaseChannel
class InternalSettingsRepository(context: Context) {
@@ -13,4 +23,38 @@ class InternalSettingsRepository(context: Context) {
consumer(EmojiFiles.Version.readVersion(context))
}
}
+
+ fun addSampleReleaseNote() {
+ SignalExecutors.UNBOUNDED.execute {
+ ApplicationDependencies.getJobManager().runSynchronously(CreateReleaseChannelJob.create(), 5000)
+
+ val title = "Release Note Title"
+ val bodyText = "Release note body. Aren't I awesome?"
+ val body = "$title\n\n$bodyText"
+ val bodyRangeList = BodyRangeList.newBuilder()
+ .addStyle(BodyRangeList.BodyRange.Style.BOLD, 0, title.length)
+
+ val recipientId = SignalStore.releaseChannelValues().releaseChannelRecipientId!!
+ val threadId = SignalDatabase.threads.getOrCreateThreadIdFor(Recipient.resolved(recipientId))
+
+ val insertResult: MessageDatabase.InsertResult? = ReleaseChannel.insertAnnouncement(
+ recipientId = recipientId,
+ body = body,
+ threadId = threadId,
+ messageRanges = bodyRangeList.build(),
+ image = "https://via.placeholder.com/720x480",
+ imageWidth = 720,
+ imageHeight = 480
+ )
+
+ SignalDatabase.sms.insertBoostRequestMessage(recipientId, threadId)
+
+ if (insertResult != null) {
+ SignalDatabase.attachments.getAttachmentsForMessage(insertResult.messageId)
+ .forEach { ApplicationDependencies.getJobManager().add(AttachmentDownloadJob(insertResult.messageId, it.attachmentId, false)) }
+
+ ApplicationDependencies.getMessageNotifier().updateNotification(context, insertResult.threadId)
+ }
+ }
+ }
}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsViewModel.kt
index 56e69af03f..da05e05e1c 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsViewModel.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsViewModel.kt
@@ -102,6 +102,10 @@ class InternalSettingsViewModel(private val repository: InternalSettingsReposito
store.update { getState().copy(disableStories = newState) }
}
+ fun addSampleReleaseNote() {
+ repository.addSampleReleaseNote()
+ }
+
private fun refresh() {
store.update { getState().copy(emojiVersion = it.emojiVersion) }
}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationReactionOverlay.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationReactionOverlay.java
index d2f83e0b63..b655ab0451 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationReactionOverlay.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationReactionOverlay.java
@@ -642,6 +642,10 @@ public final class ConversationReactionOverlay extends FrameLayout {
private int getSelectedIndexViaMotionEvent(@NonNull MotionEvent motionEvent, @NonNull Boundary boundary) {
int selected = -1;
+ if (backgroundView.getVisibility() != View.VISIBLE) {
+ return selected;
+ }
+
for (int i = 0; i < emojiViews.length; i++) {
final float emojiLeft = (segmentSize * i) + emojiStripViewBounds.left;
horizontalEmojiBoundary.update(emojiLeft, emojiLeft + segmentSize);
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index debc9d4800..ba6f9996d9 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -2678,6 +2678,7 @@
Release channel
Fetch release channel
Set last version seen back 10 versions
+ Add sample note
Disable stories