From 0a1f164452d7f2e60a6e24ef0ef43f8a46dfe016 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Tue, 15 Oct 2024 18:54:34 +0530 Subject: [PATCH] AppUtil: Compare timestamp for nightly builds Signed-off-by: Aayush Gupta --- app/build.gradle.kts | 2 ++ .../main/java/com/aurora/store/data/model/SelfUpdate.kt | 3 ++- app/src/main/java/com/aurora/store/util/AppUtil.kt | 8 +++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2b31a654f..7481ebd53 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -19,6 +19,7 @@ * */ +import java.time.Instant import java.util.Properties plugins { @@ -51,6 +52,7 @@ android { testInstrumentationRunner = "com.aurora.store.HiltInstrumentationTestRunner" testInstrumentationRunnerArguments["disableAnalytics"] = "true" + buildConfigField("long", "TIMESTAMP", "${Instant.now().epochSecond}") } signingConfigs { diff --git a/app/src/main/java/com/aurora/store/data/model/SelfUpdate.kt b/app/src/main/java/com/aurora/store/data/model/SelfUpdate.kt index 7c8c3395b..2d3e04ce9 100644 --- a/app/src/main/java/com/aurora/store/data/model/SelfUpdate.kt +++ b/app/src/main/java/com/aurora/store/data/model/SelfUpdate.kt @@ -36,7 +36,8 @@ data class SelfUpdate( @SerializedName("fdroid_build") var fdroidBuild: String = String(), @SerializedName("updated_on") var updatedOn: String = String(), val changelog: String = String(), - val size: Long = 0L + val size: Long = 0L, + val timestamp: Long = 0L ) { companion object { private const val BASE_URL = "https://gitlab.com/AuroraOSS/AuroraStore/-/raw/master" diff --git a/app/src/main/java/com/aurora/store/util/AppUtil.kt b/app/src/main/java/com/aurora/store/util/AppUtil.kt index 52f86a460..83bf5c0e0 100644 --- a/app/src/main/java/com/aurora/store/util/AppUtil.kt +++ b/app/src/main/java/com/aurora/store/util/AppUtil.kt @@ -123,7 +123,13 @@ class AppUtil @Inject constructor( val selfUpdate = gson.fromJson(String(response.responseBytes), SelfUpdate::class.java) - if (selfUpdate.versionCode > BuildConfig.VERSION_CODE) { + val isUpdate = when (BuildConfig.BUILD_TYPE) { + RELEASE -> selfUpdate.versionCode > BuildConfig.VERSION_CODE + NIGHTLY -> selfUpdate.timestamp > BuildConfig.TIMESTAMP + else -> false + } + + if (isUpdate) { if (CertUtil.isFDroidApp(context, BuildConfig.APPLICATION_ID)) { if (selfUpdate.fdroidBuild.isNotEmpty()) { return@withContext SelfUpdate.toApp(selfUpdate, context)