mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-09-26 16:07:16 +08:00
Add donate_friend remote megaphone action.
This commit is contained in:
@ -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"))
|
||||
|
@ -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",
|
||||
|
@ -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() {
|
||||
|
@ -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? {
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user