[Feature] Skip update (#953)

This commit is contained in:
Jace 2022-04-15 21:03:21 +08:00 committed by GitHub
parent 765b3efa26
commit a4735c41ba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 8 deletions

View file

@ -44,6 +44,7 @@ class InAppUpdater {
@JsonProperty("assets") val assets: List<GithubAsset>,
@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()
}
}

View file

@ -6,6 +6,7 @@
<string name="search_types_list_key" translatable="false">search_type_list</string>
<string name="grid_format_key" translatable="false">grid_format</string>
<string name="auto_update_key" translatable="false">auto_update</string>
<string name="skip_update_key" translatable="false">skip_update_key</string>
<string name="prerelease_update_key" translatable="false">prerelease_update</string>
<string name="manual_check_update_key" translatable="false">manual_check_update</string>
<string name="fast_forward_button_time_key" translatable="false">fast_forward_button_time</string>
@ -347,6 +348,7 @@
<string name="video_skip_op">Skip OP</string>
<string name="dont_show_again">Don\'t show again</string>
<string name="skip_update">Skip this Update</string>
<string name="update">Update</string>
<string name="watch_quality_pref">Preferred watch quality</string>
<string name="limit_title">Limit title characters on player</string>