Add donate_friend remote megaphone action.

This commit is contained in:
Cody Henthorne
2024-01-10 11:52:55 -05:00
committed by GitHub
parent dd1a15c249
commit 20f8c69b07
5 changed files with 25 additions and 5 deletions

View File

@ -615,6 +615,13 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter
}
)
clickPref(
title = DSLSettingsText.from("Add donate_friend remote megaphone"),
onClick = {
viewModel.addRemoteDonateFriendMegaphone()
}
)
dividerPref()
sectionHeaderPref(DSLSettingsText.from("CDS"))

View File

@ -64,7 +64,7 @@ class InternalSettingsRepository(context: Context) {
}
}
fun addRemoteDonateMegaphone() {
fun addRemoteMegaphone(actionId: RemoteMegaphoneRecord.ActionId) {
SignalExecutors.UNBOUNDED.execute {
val record = RemoteMegaphoneRecord(
uuid = UUID.randomUUID().toString(),
@ -75,7 +75,7 @@ class InternalSettingsRepository(context: Context) {
doNotShowAfter = System.currentTimeMillis() + 28.days.inWholeMilliseconds,
showForNumberOfDays = 30,
conditionalId = null,
primaryActionId = RemoteMegaphoneRecord.ActionId.DONATE,
primaryActionId = actionId,
secondaryActionId = RemoteMegaphoneRecord.ActionId.SNOOZE,
imageUrl = "/static/release-notes/donate-heart.png",
title = "Donate Test",

View File

@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import io.reactivex.rxjava3.core.Observable
import org.signal.ringrtc.CallManager
import org.thoughtcrime.securesms.database.model.RemoteMegaphoneRecord
import org.thoughtcrime.securesms.jobs.StoryOnboardingDownloadJob
import org.thoughtcrime.securesms.keyvalue.InternalValues
import org.thoughtcrime.securesms.keyvalue.SignalStore
@ -128,7 +129,11 @@ class InternalSettingsViewModel(private val repository: InternalSettingsReposito
}
fun addRemoteDonateMegaphone() {
repository.addRemoteDonateMegaphone()
repository.addRemoteMegaphone(RemoteMegaphoneRecord.ActionId.DONATE)
}
fun addRemoteDonateFriendMegaphone() {
repository.addRemoteMegaphone(RemoteMegaphoneRecord.ActionId.DONATE_FOR_FRIEND)
}
fun refresh() {

View File

@ -50,7 +50,8 @@ data class RemoteMegaphoneRecord(
enum class ActionId(val id: String, val isDonateAction: Boolean = false) {
SNOOZE("snooze"),
FINISH("finish"),
DONATE("donate", true);
DONATE("donate", true),
DONATE_FOR_FRIEND("donate_friend", true);
companion object {
fun from(id: String?): ActionId? {

View File

@ -9,6 +9,7 @@ import org.json.JSONArray
import org.json.JSONException
import org.signal.core.util.concurrent.SignalExecutors
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.badges.gifts.flow.GiftFlowActivity
import org.thoughtcrime.securesms.badges.models.Badge
import org.thoughtcrime.securesms.components.settings.app.subscription.InAppDonations
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonateToSignalActivity
@ -56,10 +57,16 @@ object RemoteMegaphoneRepository {
snooze.run(context, controller, remote)
}
private val donateForFriend: Action = Action { context, controller, remote ->
controller.onMegaphoneNavigationRequested(Intent(context, GiftFlowActivity::class.java))
snooze.run(context, controller, remote)
}
private val actions = mapOf(
ActionId.SNOOZE.id to snooze,
ActionId.FINISH.id to finish,
ActionId.DONATE.id to donate
ActionId.DONATE.id to donate,
ActionId.DONATE_FOR_FRIEND.id to donateForFriend
)
@WorkerThread