From f827edbfe531134fdbd513bec18569ae619cb911 Mon Sep 17 00:00:00 2001 From: Niko Diamadis Date: Sun, 16 Oct 2022 17:19:51 +0200 Subject: [PATCH] =?UTF-8?q?F=C3=BCge=20manuelle=20Update-Suche=20im=20Men?= =?UTF-8?q?=C3=BC=20hinzu=20(Fix=20#6)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cyb3rko/techniklogger/MainActivity.kt | 2 +- .../fragments/ListingFragment.kt | 2 ++ .../cyb3rko/techniklogger/update/Updater.kt | 20 +++++++++++++++- .../main/res/layout/dialog_view_progress.xml | 24 +++++++++++++++++++ app/src/main/res/menu/menu_main.xml | 6 +++++ 5 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/layout/dialog_view_progress.xml 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 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml index 5cbe61c..d65aad6 100644 --- a/app/src/main/res/menu/menu_main.xml +++ b/app/src/main/res/menu/menu_main.xml @@ -23,6 +23,12 @@ + +