diff --git a/app/src/main/java/com/cyb3rko/techniklogger/MainActivity.kt b/app/src/main/java/com/cyb3rko/techniklogger/MainActivity.kt
index 2e3ebcd..0aaa069 100644
--- a/app/src/main/java/com/cyb3rko/techniklogger/MainActivity.kt
+++ b/app/src/main/java/com/cyb3rko/techniklogger/MainActivity.kt
@@ -38,7 +38,7 @@ class MainActivity : AppCompatActivity() {
showNameDialog(this, false)
} else {
if (!BuildConfig.DEBUG) {
- Updater.updateCheck(this@MainActivity)
+ Updater.updateCheck(this@MainActivity, false)
}
}
}
diff --git a/app/src/main/java/com/cyb3rko/techniklogger/fragments/ListingFragment.kt b/app/src/main/java/com/cyb3rko/techniklogger/fragments/ListingFragment.kt
index 297e520..f1d869b 100644
--- a/app/src/main/java/com/cyb3rko/techniklogger/fragments/ListingFragment.kt
+++ b/app/src/main/java/com/cyb3rko/techniklogger/fragments/ListingFragment.kt
@@ -18,6 +18,7 @@ import com.cyb3rko.techniklogger.data.ParseController
import com.cyb3rko.techniklogger.databinding.FragmentListingBinding
import com.cyb3rko.techniklogger.recycler.MissionAdapter
import com.cyb3rko.techniklogger.table.ExportBuilder
+import com.cyb3rko.techniklogger.update.Updater
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import es.dmoral.toasty.Toasty
import java.text.SimpleDateFormat
@@ -256,6 +257,7 @@ class ListingFragment : Fragment() {
when (item.itemId) {
R.id.action_year -> findNavController().navigate(R.id.navigation_years)
R.id.action_rename -> showNameDialog(requireActivity() as MainActivity, true)
+ R.id.action_update -> Updater.updateCheck(requireActivity() as MainActivity, true)
R.id.action_info -> {
var info = "App-Version: ${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})"
info += "\nBuild-Typ: ${BuildConfig.BUILD_TYPE}"
diff --git a/app/src/main/java/com/cyb3rko/techniklogger/update/Updater.kt b/app/src/main/java/com/cyb3rko/techniklogger/update/Updater.kt
index f9a652a..b2284b5 100644
--- a/app/src/main/java/com/cyb3rko/techniklogger/update/Updater.kt
+++ b/app/src/main/java/com/cyb3rko/techniklogger/update/Updater.kt
@@ -1,9 +1,11 @@
package com.cyb3rko.techniklogger.update
import android.Manifest
+import android.app.Activity
import android.content.Context
import android.content.pm.PackageManager
import android.util.Base64
+import androidx.appcompat.app.AlertDialog
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import com.androidnetworking.AndroidNetworking
@@ -18,8 +20,10 @@ import es.dmoral.toasty.Toasty
import java.nio.charset.StandardCharsets
internal object Updater {
- internal fun updateCheck(activity: MainActivity) {
+ internal fun updateCheck(activity: Activity, feedback: Boolean) {
logD("Frage App-Update an")
+ var dialog: AlertDialog? = null
+ if (feedback) dialog = getProgressDialog(activity)
AndroidNetworking.initialize(activity)
AndroidNetworking.get("https://git.aldiserver.de/api/v1/repos/niko/technik-logger-app/contents/app/build.gradle")
.addHeaders("Authorization", "token d70a26aa455b25e60885ba5ff31cce231d454f82")
@@ -39,6 +43,7 @@ internal object Updater {
parts2 = parts[1].split("\"")
val newestVersion = parts2[0]
+ dialog?.cancel()
if (BuildConfig.VERSION_CODE != neuesterVersionCode) {
logD("App-Update verfügbar: $newestVersion")
showDownloadDialog(activity, newestVersion)
@@ -48,6 +53,13 @@ internal object Updater {
)
} else {
logD("Kein App-Update verfügbar, App ist auf dem neuesten Stand")
+ if (feedback) {
+ MaterialAlertDialogBuilder(activity)
+ .setTitle("App-Version aktuell")
+ .setMessage("Es ist kein Update verfügbar, die App ist auf dem neusten Stand.")
+ .setPositiveButton(android.R.string.ok, null)
+ .show()
+ }
}
} catch (e: Exception) {
activity.showErrorToast("Update-Check fehlgeschlagen", Toasty.LENGTH_SHORT)
@@ -64,6 +76,12 @@ internal object Updater {
})
}
+ private fun getProgressDialog(activity: Activity): AlertDialog {
+ return MaterialAlertDialogBuilder(activity)
+ .setView(R.layout.dialog_view_progress)
+ .show()
+ }
+
private fun showDownloadDialog(context: Context, newestVersion: String) {
MaterialAlertDialogBuilder(context)
.setTitle("Neues Update verfügbar")
diff --git a/app/src/main/res/layout/dialog_view_progress.xml b/app/src/main/res/layout/dialog_view_progress.xml
new file mode 100644
index 0000000..8d03fcd
--- /dev/null
+++ b/app/src/main/res/layout/dialog_view_progress.xml
@@ -0,0 +1,24 @@
+
+