Add 'Add remote donate megaphone' to internal settings.

This commit is contained in:
Cody Henthorne 2023-11-14 10:30:43 -05:00 committed by Greyson Parrelli
parent bf0548e802
commit 1413b74f76
3 changed files with 46 additions and 0 deletions

View file

@ -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"))

View file

@ -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))
}
}
}
}

View file

@ -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) }
}