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 @@ + +