Fix topics do not re-subscribe to Firebase after restoring from backup (#511)
This commit is contained in:
parent
d3174ae39b
commit
e5dba81036
2 changed files with 8 additions and 0 deletions
|
@ -5,9 +5,11 @@ import android.net.Uri
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.google.gson.GsonBuilder
|
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.app.Application
|
import io.heckel.ntfy.app.Application
|
||||||
import io.heckel.ntfy.db.Icon
|
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.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
|
||||||
|
@ -16,6 +18,7 @@ class Backuper(val context: Context) {
|
||||||
private val gson = Gson()
|
private val gson = Gson()
|
||||||
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()
|
||||||
|
|
||||||
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")
|
||||||
|
@ -88,6 +91,7 @@ class Backuper(val context: Context) {
|
||||||
if (subscriptions == null) {
|
if (subscriptions == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
val appBaseUrl = context.getString(R.string.app_base_url)
|
||||||
subscriptions.forEach { s ->
|
subscriptions.forEach { s ->
|
||||||
try {
|
try {
|
||||||
repository.addSubscription(io.heckel.ntfy.db.Subscription(
|
repository.addSubscription(io.heckel.ntfy.db.Subscription(
|
||||||
|
@ -104,6 +108,9 @@ class Backuper(val context: Context) {
|
||||||
upConnectorToken = s.upConnectorToken,
|
upConnectorToken = s.upConnectorToken,
|
||||||
displayName = s.displayName,
|
displayName = s.displayName,
|
||||||
))
|
))
|
||||||
|
if (s.baseUrl == appBaseUrl) {
|
||||||
|
messenger.subscribe(s.topic)
|
||||||
|
}
|
||||||
} 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)
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ Bug fixes + maintenance:
|
||||||
* Remove timestamp when copying message text (#471, thanks to @wunter8)
|
* Remove timestamp when copying message text (#471, thanks to @wunter8)
|
||||||
* Fix auto-delete if some icons do not exist anymore (#506)
|
* Fix auto-delete if some icons do not exist anymore (#506)
|
||||||
* Fix notification icon color (#480, thanks to @s-h-a-r-d for reporting)
|
* Fix notification icon color (#480, thanks to @s-h-a-r-d for reporting)
|
||||||
|
* Fix topics do not re-subscribe to Firebase after restoring from backup (#511)
|
||||||
* Add donate button (no ticket)
|
* Add donate button (no ticket)
|
||||||
|
|
||||||
Additional translations:
|
Additional translations:
|
||||||
|
|
Loading…
Reference in a new issue