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() dividerPref()
sectionHeaderPref(DSLSettingsText.from("CDS")) sectionHeaderPref(DSLSettingsText.from("CDS"))

View File

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

View File

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

View File

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

View File

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