From a4735c41ba4ddb347c822ef84587692d94f6b54d Mon Sep 17 00:00:00 2001 From: Jace <54625750+Jacekun@users.noreply.github.com> Date: Fri, 15 Apr 2022 21:03:21 +0800 Subject: [PATCH] [Feature] Skip update (#953) --- .../cloudstream3/utils/InAppUpdater.kt | 25 +++++++++++++------ app/src/main/res/values/strings.xml | 2 ++ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt index ad879e73..78bd213b 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt @@ -44,6 +44,7 @@ class InAppUpdater { @JsonProperty("assets") val assets: List, @JsonProperty("target_commitish") val target_commitish: String, // branch @JsonProperty("prerelease") val prerelease: Boolean, + @JsonProperty("node_id") val node_id: String //Node Id ) data class GithubObject( @@ -61,6 +62,7 @@ class InAppUpdater { @JsonProperty("updateURL") val updateURL: String?, @JsonProperty("updateVersion") val updateVersion: String?, @JsonProperty("changelog") val changelog: String?, + @JsonProperty("updateNodeId") val updateNodeId: String? ) private val mapper = JsonMapper.builder().addModule(KotlinModule()) @@ -76,7 +78,7 @@ class InAppUpdater { } } catch (e: Exception) { println(e) - Update(false, null, null, null) + Update(false, null, null, null, null) } } @@ -136,13 +138,14 @@ class InAppUpdater { shouldUpdate, foundAsset.browser_download_url, foundVersion.groupValues[2], - found.body + found.body, + found.node_id ) } else { - Update(false, null, null, null) + Update(false, null, null, null, null) } } - return Update(false, null, null, null) + return Update(false, null, null, null, null) } private fun Activity.getPreReleaseUpdate(): Update = runBlocking { @@ -170,10 +173,11 @@ class InAppUpdater { shouldUpdate, foundAsset.browser_download_url, tagResponse.github_object.sha, - found.body + found.body, + found.node_id ) } else { - Update(false, null, null, null) + Update(false, null, null, null, null) } } @@ -265,6 +269,11 @@ class InAppUpdater { ) { val update = getAppUpdate() if (update.shouldUpdate && update.updateURL != null) { + //Check if update should be skipped + val updateNodeId = settingsManager.getString(getString(R.string.skip_update_key), "") + if (update.updateNodeId.equals(updateNodeId)) { + return false + } runOnUiThread { try { val currentVersion = packageName?.let { @@ -306,8 +315,8 @@ class InAppUpdater { setNegativeButton(R.string.cancel) { _, _ -> } if (checkAutoUpdate) { - setNeutralButton(R.string.dont_show_again) { _, _ -> - settingsManager.edit().putBoolean("auto_update", false) + setNeutralButton(R.string.skip_update) { _, _ -> + settingsManager.edit().putString(getString(R.string.skip_update_key), update.updateNodeId ?: "") .apply() } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8d355814..40815763 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -6,6 +6,7 @@ search_type_list grid_format auto_update + skip_update_key prerelease_update manual_check_update fast_forward_button_time @@ -347,6 +348,7 @@ Skip OP Don\'t show again + Skip this Update Update Preferred watch quality Limit title characters on player