mirror of
https://github.com/quik-sms/quik.git
synced 2026-11-15 18:48:52 +01:00
Fix changelog version logic
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
package com.moez.QKSMS.manager
|
||||
|
||||
import android.content.Context
|
||||
import com.moez.QKSMS.common.util.extensions.versionCode
|
||||
import com.moez.QKSMS.util.Preferences
|
||||
import com.squareup.moshi.Json
|
||||
import com.squareup.moshi.Moshi
|
||||
@@ -40,19 +41,7 @@ class ChangelogManagerImpl @Inject constructor(
|
||||
private val prefs: Preferences
|
||||
) : ChangelogManager {
|
||||
|
||||
private val oldVersion: Int get() = prefs.changelogVersion.get()
|
||||
private val versionCode: Int get() = context.packageManager.getPackageInfo(context.packageName, 0).versionCode
|
||||
|
||||
override fun didUpdate(): Boolean {
|
||||
if (oldVersion == 0) {
|
||||
prefs.changelogVersion.set(versionCode)
|
||||
}
|
||||
|
||||
return when {
|
||||
oldVersion != versionCode -> true
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
override fun didUpdate(): Boolean = prefs.changelogVersion.get() != context.versionCode
|
||||
|
||||
override fun getChangelog(): Single<ChangelogManager.Changelog> {
|
||||
val url = "https://firestore.googleapis.com/v1/projects/qksms-app/databases/(default)/documents/changelog"
|
||||
@@ -74,7 +63,10 @@ class ChangelogManagerImpl @Inject constructor(
|
||||
.map { response ->
|
||||
response.documents
|
||||
.sortedBy { document -> document.fields.versionCode.value }
|
||||
.filter { document -> document.fields.versionCode.value.toInt() in (oldVersion + 1)..versionCode }
|
||||
.filter { document ->
|
||||
val range = (prefs.changelogVersion.get() + 1)..context.versionCode
|
||||
document.fields.versionCode.value.toInt() in range
|
||||
}
|
||||
}
|
||||
.map { documents ->
|
||||
val added = documents.fold(listOf<String>()) { acc, document ->
|
||||
@@ -93,7 +85,7 @@ class ChangelogManagerImpl @Inject constructor(
|
||||
}
|
||||
|
||||
override fun markChangelogSeen() {
|
||||
prefs.changelogVersion.set(versionCode)
|
||||
prefs.changelogVersion.set(context.versionCode)
|
||||
}
|
||||
|
||||
private data class ChangelogResponse(
|
||||
|
||||
@@ -20,6 +20,7 @@ package com.moez.QKSMS.migration
|
||||
|
||||
import android.content.Context
|
||||
import com.moez.QKSMS.blocking.QksmsBlockingClient
|
||||
import com.moez.QKSMS.common.util.extensions.versionCode
|
||||
import com.moez.QKSMS.repository.ConversationRepository
|
||||
import com.moez.QKSMS.util.Preferences
|
||||
import kotlinx.coroutines.GlobalScope
|
||||
@@ -34,17 +35,18 @@ class QkMigration @Inject constructor(
|
||||
) {
|
||||
|
||||
init {
|
||||
val oldVersion = prefs.version.get()
|
||||
val newVersion = context.packageManager.getPackageInfo(context.packageName, 0).versionCode
|
||||
GlobalScope.launch {
|
||||
val oldVersion = prefs.version.get()
|
||||
|
||||
if (oldVersion < 2199) {
|
||||
upgradeTo370()
|
||||
if (oldVersion < 2199) {
|
||||
upgradeTo370()
|
||||
}
|
||||
|
||||
prefs.version.set(context.versionCode)
|
||||
}
|
||||
|
||||
prefs.changelogVersion.set(newVersion)
|
||||
}
|
||||
|
||||
private fun upgradeTo370() = GlobalScope.launch {
|
||||
private fun upgradeTo370() {
|
||||
// Migrate changelog version
|
||||
prefs.changelogVersion.set(prefs.version.get())
|
||||
|
||||
|
||||
@@ -38,8 +38,9 @@ class GlideAppModule : AppGlideModule() {
|
||||
|
||||
override fun registerComponents(context: Context, glide: Glide, registry: Registry) {
|
||||
// TODO use DI to create the ContactImageLoader.Factory
|
||||
registry.append(String::class.java, InputStream::class.java, ContactImageLoader.Factory(context,
|
||||
Preferences(RxSharedPreferences.create(PreferenceManager.getDefaultSharedPreferences(context)))))
|
||||
val rxPrefs = RxSharedPreferences.create(PreferenceManager.getDefaultSharedPreferences(context))
|
||||
val prefs = Preferences(context, rxPrefs)
|
||||
registry.append(String::class.java, InputStream::class.java, ContactImageLoader.Factory(context, prefs))
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user