Skip to content

Commit

Permalink
feat: support upgrade version from github
Browse files Browse the repository at this point in the history
  • Loading branch information
plateaukao committed Dec 15, 2023
1 parent 7cbf7f5 commit 9097035
Show file tree
Hide file tree
Showing 36 changed files with 148 additions and 5 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ android {
applicationId "info.plateaukao.einkbro"
minSdkVersion 26
targetSdkVersion 33
versionCode 11_00_00
versionName "11.0.0"
versionCode 10_18_00
versionName "10.18.0"
vectorDrawables.useSupportLibrary = true

buildConfigField("String", "builtDateTime", "\"${getCurrentTimestamp()}\"")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,17 +54,20 @@ import info.plateaukao.einkbro.setting.LinkSettingItem
import info.plateaukao.einkbro.setting.ListSettingWithEnumItem
import info.plateaukao.einkbro.setting.ListSettingWithStringItem
import info.plateaukao.einkbro.setting.NavigateSettingItem
import info.plateaukao.einkbro.setting.SettingItemInterface
import info.plateaukao.einkbro.setting.SettingScreen
import info.plateaukao.einkbro.setting.ValueSettingItem
import info.plateaukao.einkbro.setting.VersionSettingItem
import info.plateaukao.einkbro.unit.BackupUnit
import info.plateaukao.einkbro.unit.BrowserUnit
import info.plateaukao.einkbro.unit.HelperUnit
import info.plateaukao.einkbro.view.GestureType
import info.plateaukao.einkbro.view.NinjaToast
import info.plateaukao.einkbro.view.compose.MyTheme
import info.plateaukao.einkbro.view.dialog.DialogManager
import info.plateaukao.einkbro.view.dialog.PrinterDocumentPaperSizeDialog
import info.plateaukao.einkbro.view.dialog.TranslationLanguageDialog
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject
Expand Down Expand Up @@ -205,7 +208,18 @@ class SettingActivity : ComponentActivity(), KoinComponent {
composable(About.name) {
SettingScreen(
navController,
LinkSettingItem.values().toList(),
mutableListOf<SettingItemInterface>().apply{
addAll(LinkSettingItem.values().toList())
add(ActionSettingItem(
R.string.setting_title_github_update,
R.drawable.ic_data,
R.string.setting_summary_github_update,
) {
lifecycleScope.launch(Dispatchers.IO) {
HelperUnit.updateVersion(this@SettingActivity)
}
})
},
dialogManager,
action,
2
Expand Down
68 changes: 66 additions & 2 deletions app/src/main/java/info/plateaukao/einkbro/unit/HelperUnit.kt
Original file line number Diff line number Diff line change
Expand Up @@ -38,23 +38,36 @@ import android.text.util.Linkify
import android.view.View
import android.webkit.MimeTypeMap
import androidx.activity.result.ActivityResultLauncher
import androidx.core.content.FileProvider
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetBehavior.BottomSheetCallback
import com.google.android.material.bottomsheet.BottomSheetDialog
import info.plateaukao.einkbro.BuildConfig
import info.plateaukao.einkbro.R
import info.plateaukao.einkbro.activity.EpubReaderActivity
import info.plateaukao.einkbro.util.Constants
import info.plateaukao.einkbro.view.NinjaToast
import info.plateaukao.einkbro.view.dialog.DialogManager
import java.io.*
import okhttp3.OkHttpClient
import okhttp3.Request
import okio.IOException
import org.json.JSONArray
import java.io.BufferedReader
import java.io.File
import java.io.FileOutputStream
import java.io.InputStreamReader
import java.text.SimpleDateFormat
import java.util.*
import java.util.Date
import java.util.Locale


object HelperUnit {
private const val REQUEST_CODE_ASK_PERMISSIONS = 123
private const val REQUEST_CODE_ASK_PERMISSIONS_1 = 1234

private val client = OkHttpClient()


@JvmStatic
// return true if need permissions
fun needGrantStoragePermission(activity: Activity): Boolean {
Expand Down Expand Up @@ -354,4 +367,55 @@ object HelperUnit {

return Pair(fileName, mimeType)
}

suspend fun updateVersion(context: Context) {
val url = "https://api.github.com/repos/plateaukao/einkbro/releases"
val request = Request.Builder().url(url).build()

client.newCall(request).execute().use { response ->
try {
val jsonArray = JSONArray(response.body!!.string())
val latestRelease = jsonArray.getJSONObject(0)
val tagName = latestRelease
.getString("tag_name")
.replace("v", "")
if(tagName > BuildConfig.VERSION_NAME) {
val downloadUrl = latestRelease.getJSONArray("assets")
.getJSONObject(0)
.getString("browser_download_url")
// download apk
val file = File.createTempFile("temp", ".apk", context.cacheDir)
downloadApkFile(downloadUrl, file.absolutePath)
val apkUri = FileProvider.getUriForFile(
context,
BuildConfig.APPLICATION_ID + ".fileprovider",
file
)

// install it
val intent = Intent(Intent.ACTION_VIEW).apply {
setDataAndType(apkUri, "application/vnd.android.package-archive")
flags = Intent.FLAG_ACTIVITY_NEW_TASK
flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
}

context.startActivity(intent)
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}

private fun downloadApkFile(apkUrl: String, destinationPath: String) {
val request = Request.Builder().url(apkUrl).build()
OkHttpClient().newCall(request).execute().use { response ->
if (!response.isSuccessful) throw IOException("Failed to download file: $response")

val fos = FileOutputStream(destinationPath)
fos.use { outputStream ->
outputStream.write(response.body?.bytes())
}
}
}
}
2 changes: 2 additions & 0 deletions app/src/main/res/values-af/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-ar/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-ca/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-cs/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-da/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,8 @@ Dies zu deaktivieren ist sicherer, schneller und spart Datenvolumen. Manche Inha
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-el/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-es/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,8 @@ Si desinstala la aplicación, el mismo será eliminado. Por tanto se recomienda
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-fi/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-fr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-he/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-hu/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-in/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -444,4 +444,6 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
</resources>
2 changes: 2 additions & 0 deletions app/src/main/res/values-it/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-ja/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-ko/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-night/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,6 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
</resources>
2 changes: 2 additions & 0 deletions app/src/main/res/values-nl/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-no/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-pl/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-pt/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-ro/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-ru/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -507,4 +507,6 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
</resources>
2 changes: 2 additions & 0 deletions app/src/main/res/values-sat/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -502,4 +502,6 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
</resources>
2 changes: 2 additions & 0 deletions app/src/main/res/values-sr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-sv/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-tr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-uk/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,8 @@
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="red">Red</string>
<string name="setting_title_github_update">Update from Github</string>
<string name="setting_summary_github_update">Update version from Github</string>
<!-- Dialog help -->
<!-- Dialog changelog -->
<!-- License changelog -->
Expand Down
Loading

0 comments on commit 9097035

Please sign in to comment.