mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-08-05 04:45:14 +01:00
Allow sending sticker replies behind a Labs flag.
This commit is contained in:
committed by
Michelle Tang
parent
56378c7166
commit
7d6a31b254
+1
@@ -11,4 +11,5 @@ sealed interface LabsSettingsEvents {
|
||||
data class ToggleIncognito(val enabled: Boolean) : LabsSettingsEvents
|
||||
data class ToggleBetterSearch(val enabled: Boolean) : LabsSettingsEvents
|
||||
data class ToggleStarredMessages(val enabled: Boolean) : LabsSettingsEvents
|
||||
data class ToggleStickerReplies(val enabled: Boolean) : LabsSettingsEvents
|
||||
}
|
||||
|
||||
+9
@@ -133,6 +133,15 @@ private fun LabsSettingsContent(
|
||||
onCheckChanged = { onEvent(LabsSettingsEvents.ToggleStarredMessages(it)) }
|
||||
)
|
||||
}
|
||||
|
||||
item {
|
||||
Rows.ToggleRow(
|
||||
checked = state.stickerReplies,
|
||||
text = "Sticker Replies",
|
||||
label = "Keep a pending quote when sending a sticker so the sticker is sent as a reply. Normally the quote is dropped when you send a sticker.",
|
||||
onCheckChanged = { onEvent(LabsSettingsEvents.ToggleStickerReplies(it)) }
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -13,5 +13,6 @@ data class LabsSettingsState(
|
||||
val storyArchive: Boolean = false,
|
||||
val incognito: Boolean = false,
|
||||
val betterSearch: Boolean = false,
|
||||
val starredMessages: Boolean = false
|
||||
val starredMessages: Boolean = false,
|
||||
val stickerReplies: Boolean = false
|
||||
)
|
||||
|
||||
+6
-1
@@ -37,6 +37,10 @@ class LabsSettingsViewModel : ViewModel() {
|
||||
SignalStore.labs.starredMessages = event.enabled
|
||||
_state.value = _state.value.copy(starredMessages = event.enabled)
|
||||
}
|
||||
is LabsSettingsEvents.ToggleStickerReplies -> {
|
||||
SignalStore.labs.stickerReplies = event.enabled
|
||||
_state.value = _state.value.copy(stickerReplies = event.enabled)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +50,8 @@ class LabsSettingsViewModel : ViewModel() {
|
||||
storyArchive = SignalStore.labs.storyArchive,
|
||||
incognito = SignalStore.labs.incognito,
|
||||
betterSearch = SignalStore.labs.betterSearch,
|
||||
starredMessages = SignalStore.labs.starredMessages
|
||||
starredMessages = SignalStore.labs.starredMessages,
|
||||
stickerReplies = SignalStore.labs.stickerReplies
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+11
-1
@@ -2489,7 +2489,17 @@ class ConversationFragment :
|
||||
?: MediaUtil.IMAGE_WEBP
|
||||
)
|
||||
|
||||
sendMessageWithoutComposeInput(slide = slide, clearCompose = clearCompose)
|
||||
val quote = if (SignalStore.labs.stickerReplies) {
|
||||
inputPanel.quote.orNull()
|
||||
} else {
|
||||
null
|
||||
}
|
||||
|
||||
sendMessageWithoutComposeInput(slide = slide, quote = quote, clearCompose = clearCompose)
|
||||
|
||||
if (quote != null) {
|
||||
inputPanel.clearQuote()
|
||||
}
|
||||
|
||||
viewModel.updateStickerLastUsedTime(stickerRecord, System.currentTimeMillis().milliseconds)
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ class LabsValues internal constructor(store: KeyValueStore) : SignalStoreValues(
|
||||
const val INCOGNITO: String = "labs.incognito"
|
||||
const val BETTER_SEARCH: String = "labs.better_search"
|
||||
const val STARRED_MESSAGES: String = "labs.starred_messages"
|
||||
const val STICKER_REPLIES: String = "labs.sticker_replies"
|
||||
}
|
||||
|
||||
public override fun onFirstEverAppLaunch() = Unit
|
||||
@@ -25,6 +26,8 @@ class LabsValues internal constructor(store: KeyValueStore) : SignalStoreValues(
|
||||
|
||||
var starredMessages by booleanValue(STARRED_MESSAGES, true).falseForExternalUsers()
|
||||
|
||||
var stickerReplies by booleanValue(STICKER_REPLIES, false).falseForExternalUsers()
|
||||
|
||||
private fun SignalStoreValueDelegate<Boolean>.falseForExternalUsers(): SignalStoreValueDelegate<Boolean> {
|
||||
return this.map { actualValue -> RemoteConfig.internalUser && actualValue }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user