Add 'Add remote donate megaphone' to internal settings.
This commit is contained in:
parent
bf0548e802
commit
1413b74f76
3 changed files with 46 additions and 0 deletions
|
@ -591,6 +591,13 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter
|
|||
}
|
||||
)
|
||||
|
||||
clickPref(
|
||||
title = DSLSettingsText.from("Add remote donate megaphone"),
|
||||
onClick = {
|
||||
viewModel.addRemoteDonateMegaphone()
|
||||
}
|
||||
)
|
||||
|
||||
dividerPref()
|
||||
|
||||
sectionHeaderPref(DSLSettingsText.from("CDS"))
|
||||
|
|
|
@ -1,19 +1,24 @@
|
|||
package org.thoughtcrime.securesms.components.settings.app.internal
|
||||
|
||||
import android.content.Context
|
||||
import org.json.JSONObject
|
||||
import org.signal.core.util.concurrent.SignalExecutors
|
||||
import org.thoughtcrime.securesms.database.MessageTable
|
||||
import org.thoughtcrime.securesms.database.SignalDatabase
|
||||
import org.thoughtcrime.securesms.database.model.RemoteMegaphoneRecord
|
||||
import org.thoughtcrime.securesms.database.model.addStyle
|
||||
import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||
import org.thoughtcrime.securesms.emoji.EmojiFiles
|
||||
import org.thoughtcrime.securesms.jobs.AttachmentDownloadJob
|
||||
import org.thoughtcrime.securesms.jobs.CreateReleaseChannelJob
|
||||
import org.thoughtcrime.securesms.jobs.FetchRemoteMegaphoneImageJob
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.notifications.v2.ConversationId
|
||||
import org.thoughtcrime.securesms.recipients.Recipient
|
||||
import org.thoughtcrime.securesms.releasechannel.ReleaseChannel
|
||||
import java.util.UUID
|
||||
import kotlin.time.Duration.Companion.days
|
||||
|
||||
class InternalSettingsRepository(context: Context) {
|
||||
|
||||
|
@ -58,4 +63,34 @@ class InternalSettingsRepository(context: Context) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun addRemoteDonateMegaphone() {
|
||||
SignalExecutors.UNBOUNDED.execute {
|
||||
val record = RemoteMegaphoneRecord(
|
||||
uuid = UUID.randomUUID().toString(),
|
||||
priority = 100,
|
||||
countries = "*:1000000",
|
||||
minimumVersion = 1,
|
||||
doNotShowBefore = System.currentTimeMillis() - 2.days.inWholeMilliseconds,
|
||||
doNotShowAfter = System.currentTimeMillis() + 28.days.inWholeMilliseconds,
|
||||
showForNumberOfDays = 30,
|
||||
conditionalId = null,
|
||||
primaryActionId = RemoteMegaphoneRecord.ActionId.DONATE,
|
||||
secondaryActionId = RemoteMegaphoneRecord.ActionId.SNOOZE,
|
||||
imageUrl = "/static/release-notes/donate-heart.png",
|
||||
title = "Donate Test",
|
||||
body = "Donate body test.",
|
||||
primaryActionText = "Donate",
|
||||
secondaryActionText = "Snooze",
|
||||
primaryActionData = null,
|
||||
secondaryActionData = JSONObject("{ \"snoozeDurationDays\": [5, 7, 100] }")
|
||||
)
|
||||
|
||||
SignalDatabase.remoteMegaphones.insert(record)
|
||||
|
||||
if (record.imageUrl != null) {
|
||||
ApplicationDependencies.getJobManager().add(FetchRemoteMegaphoneImageJob(record.uuid, record.imageUrl))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -122,6 +122,10 @@ class InternalSettingsViewModel(private val repository: InternalSettingsReposito
|
|||
repository.addSampleReleaseNote()
|
||||
}
|
||||
|
||||
fun addRemoteDonateMegaphone() {
|
||||
repository.addRemoteDonateMegaphone()
|
||||
}
|
||||
|
||||
fun refresh() {
|
||||
store.update { getState().copy(emojiVersion = it.emojiVersion) }
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue