Wording, backup/restore

This commit is contained in:
Philipp Heckel 2022-12-07 11:49:59 -05:00
parent 3e8ba28e63
commit 803bed5ca0
2 changed files with 15 additions and 4 deletions

View file

@ -7,9 +7,9 @@ import com.google.gson.GsonBuilder
import com.google.gson.stream.JsonReader import com.google.gson.stream.JsonReader
import io.heckel.ntfy.R import io.heckel.ntfy.R
import io.heckel.ntfy.app.Application import io.heckel.ntfy.app.Application
import io.heckel.ntfy.db.Icon
import io.heckel.ntfy.db.Repository import io.heckel.ntfy.db.Repository
import io.heckel.ntfy.firebase.FirebaseMessenger import io.heckel.ntfy.firebase.FirebaseMessenger
import io.heckel.ntfy.msg.NotificationService
import io.heckel.ntfy.util.Log import io.heckel.ntfy.util.Log
import io.heckel.ntfy.util.topicUrl import io.heckel.ntfy.util.topicUrl
import java.io.InputStreamReader import java.io.InputStreamReader
@ -19,6 +19,7 @@ class Backuper(val context: Context) {
private val resolver = context.applicationContext.contentResolver private val resolver = context.applicationContext.contentResolver
private val repository = (context.applicationContext as Application).repository private val repository = (context.applicationContext as Application).repository
private val messenger = FirebaseMessenger() private val messenger = FirebaseMessenger()
private val notifier = NotificationService(context)
suspend fun backup(uri: Uri, withSettings: Boolean = true, withSubscriptions: Boolean = true, withUsers: Boolean = true) { suspend fun backup(uri: Uri, withSettings: Boolean = true, withSubscriptions: Boolean = true, withUsers: Boolean = true) {
Log.d(TAG, "Backing up settings to file $uri") Log.d(TAG, "Backing up settings to file $uri")
@ -94,7 +95,8 @@ class Backuper(val context: Context) {
val appBaseUrl = context.getString(R.string.app_base_url) val appBaseUrl = context.getString(R.string.app_base_url)
subscriptions.forEach { s -> subscriptions.forEach { s ->
try { try {
repository.addSubscription(io.heckel.ntfy.db.Subscription( // Add to database
val subscription = io.heckel.ntfy.db.Subscription(
id = s.id, id = s.id,
baseUrl = s.baseUrl, baseUrl = s.baseUrl,
topic = s.topic, topic = s.topic,
@ -109,10 +111,19 @@ class Backuper(val context: Context) {
upAppId = s.upAppId, upAppId = s.upAppId,
upConnectorToken = s.upConnectorToken, upConnectorToken = s.upConnectorToken,
displayName = s.displayName, displayName = s.displayName,
)) )
repository.addSubscription(subscription)
// Subscribe to Firebase topics
if (s.baseUrl == appBaseUrl) { if (s.baseUrl == appBaseUrl) {
messenger.subscribe(s.topic) messenger.subscribe(s.topic)
} }
// Create dedicated channels
if (s.dedicatedChannels) {
notifier.createSubscriptionNotificationChannels(subscription)
// TODO Backup/restore individual notification channel settings
}
} catch (e: Exception) { } catch (e: Exception) {
Log.w(TAG, "Unable to restore subscription ${s.id} (${topicUrl(s.baseUrl, s.topic)}): ${e.message}. Ignoring.", e) Log.w(TAG, "Unable to restore subscription ${s.id} (${topicUrl(s.baseUrl, s.topic)}): ${e.message}. Ignoring.", e)
} }

View file

@ -354,7 +354,7 @@
<string name="detail_settings_notifications_instant_summary_on">Notifications are delivered instantly. Requires a foreground service and consumes more battery.</string> <string name="detail_settings_notifications_instant_summary_on">Notifications are delivered instantly. Requires a foreground service and consumes more battery.</string>
<string name="detail_settings_notifications_instant_summary_off">Notifications are delivered using Firebase. Delivery may be delayed, but consumes less battery.</string> <string name="detail_settings_notifications_instant_summary_off">Notifications are delivered using Firebase. Delivery may be delayed, but consumes less battery.</string>
<string name="detail_settings_notifications_dedicated_channels_title">Custom notification settings</string> <string name="detail_settings_notifications_dedicated_channels_title">Custom notification settings</string>
<string name="detail_settings_notifications_dedicated_channels_summary_on">Using dedicated notification channels for this subscription</string> <string name="detail_settings_notifications_dedicated_channels_summary_on">Using custom settings for this subscription</string>
<string name="detail_settings_notifications_dedicated_channels_summary_off">Using default settings (sounds, Do Not Disturb override, etc.)</string> <string name="detail_settings_notifications_dedicated_channels_summary_off">Using default settings (sounds, Do Not Disturb override, etc.)</string>
<string name="detail_settings_notifications_open_channels_title">Configure notification settings</string> <string name="detail_settings_notifications_open_channels_title">Configure notification settings</string>
<string name="detail_settings_notifications_open_channels_summary">Do Not Disturb (DND) override, sounds, etc.</string> <string name="detail_settings_notifications_open_channels_summary">Do Not Disturb (DND) override, sounds, etc.</string>