This commit is contained in:
Finnley Somdahl 2023-12-01 01:22:15 -06:00
parent 1df528c0dc
commit afa960c808
171 changed files with 3458 additions and 1915 deletions

View file

@ -30,11 +30,11 @@ import java.text.SimpleDateFormat
import java.util.*
object AppUpdater {
suspend fun check(activity: FragmentActivity, post:Boolean=false) {
if(post) snackString(currContext()?.getString(R.string.checking_for_update))
suspend fun check(activity: FragmentActivity, post: Boolean = false) {
if (post) snackString(currContext()?.getString(R.string.checking_for_update))
val repo = activity.getString(R.string.repo)
tryWithSuspend {
val (md, version) = if(BuildConfig.DEBUG){
val (md, version) = if (BuildConfig.DEBUG) {
val res = client.get("https://api.github.com/repos/$repo/releases")
.parsed<JsonArray>().map {
Mapper.json.decodeFromJsonElement<GithubResponse>(it)
@ -42,9 +42,9 @@ object AppUpdater {
val r = res.filter { it.prerelease }.maxByOrNull {
it.timeStamp()
} ?: throw Exception("No Pre Release Found")
val v = r.tagName.substringAfter("v","")
val v = r.tagName.substringAfter("v", "")
(r.body ?: "") to v.ifEmpty { throw Exception("Weird Version : ${r.tagName}") }
}else{
} else {
val res =
client.get("https://raw.githubusercontent.com/$repo/main/stable.md").text
res to res.substringAfter("# ").substringBefore("\n")
@ -54,15 +54,23 @@ object AppUpdater {
val dontShow = loadData("dont_ask_for_update_$version") ?: false
if (compareVersion(version) && !dontShow && !activity.isDestroyed) activity.runOnUiThread {
CustomBottomDialog.newInstance().apply {
setTitleText("${if (BuildConfig.DEBUG) "Beta " else ""}Update " + currContext()!!.getString(R.string.available))
setTitleText(
"${if (BuildConfig.DEBUG) "Beta " else ""}Update " + currContext()!!.getString(
R.string.available
)
)
addView(
TextView(activity).apply {
val markWon = Markwon.builder(activity).usePlugin(SoftBreakAddsNewLinePlugin.create()).build()
val markWon = Markwon.builder(activity)
.usePlugin(SoftBreakAddsNewLinePlugin.create()).build()
markWon.setMarkdown(this, md)
}
)
setCheck(currContext()!!.getString(R.string.dont_show_again, version), false) { isChecked ->
setCheck(
currContext()!!.getString(R.string.dont_show_again, version),
false
) { isChecked ->
if (isChecked) {
saveData("dont_ask_for_update_$version", true)
}
@ -72,11 +80,11 @@ object AppUpdater {
try {
client.get("https://api.github.com/repos/$repo/releases/tags/v$version")
.parsed<GithubResponse>().assets?.find {
it.browserDownloadURL.endsWith("apk")
}?.browserDownloadURL.apply {
if (this != null) activity.downloadUpdate(version, this)
else openLinkInBrowser("https://github.com/repos/$repo/releases/tag/v$version")
}
it.browserDownloadURL.endsWith("apk")
}?.browserDownloadURL.apply {
if (this != null) activity.downloadUpdate(version, this)
else openLinkInBrowser("https://github.com/repos/$repo/releases/tag/v$version")
}
} catch (e: Exception) {
logError(e)
}
@ -89,25 +97,24 @@ object AppUpdater {
show(activity.supportFragmentManager, "dialog")
}
}
else{
if(post) snackString(currContext()?.getString(R.string.no_update_found))
else {
if (post) snackString(currContext()?.getString(R.string.no_update_found))
}
}
}
private fun compareVersion(version: String): Boolean {
if(BuildConfig.DEBUG) {
if (BuildConfig.DEBUG) {
return BuildConfig.VERSION_NAME != version
}
else {
} else {
fun toDouble(list: List<String>): Double {
return list.mapIndexed { i: Int, s: String ->
when (i) {
0 -> s.toDouble() * 100
1 -> s.toDouble() * 10
2 -> s.toDouble()
else -> s.toDoubleOrNull()?: 0.0
0 -> s.toDouble() * 100
1 -> s.toDouble() * 10
2 -> s.toDouble()
else -> s.toDoubleOrNull() ?: 0.0
}
}.sum()
}
@ -211,7 +218,7 @@ object AppUpdater {
val tagName: String,
val prerelease: Boolean,
@SerialName("created_at")
val createdAt : String,
val createdAt: String,
val body: String? = null,
val assets: List<Asset>? = null
) {