mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-22 03:58:48 +00: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()
|
dividerPref()
|
||||||
|
|
||||||
sectionHeaderPref(DSLSettingsText.from("CDS"))
|
sectionHeaderPref(DSLSettingsText.from("CDS"))
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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() {
|
||||||
|
|||||||
@@ -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? {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user