Füge manuelle Update-Suche im Menü hinzu (Fix #6)

master
Niko Diamadis 4 years ago
parent 42784fc4f8
commit f827edbfe5
Signed by: niko
GPG Key ID: BE53B0B17B1B142E

@ -38,7 +38,7 @@ class MainActivity : AppCompatActivity() {
showNameDialog(this, false) showNameDialog(this, false)
} else { } else {
if (!BuildConfig.DEBUG) { if (!BuildConfig.DEBUG) {
Updater.updateCheck(this@MainActivity) Updater.updateCheck(this@MainActivity, false)
} }
} }
} }

@ -18,6 +18,7 @@ import com.cyb3rko.techniklogger.data.ParseController
import com.cyb3rko.techniklogger.databinding.FragmentListingBinding import com.cyb3rko.techniklogger.databinding.FragmentListingBinding
import com.cyb3rko.techniklogger.recycler.MissionAdapter import com.cyb3rko.techniklogger.recycler.MissionAdapter
import com.cyb3rko.techniklogger.table.ExportBuilder import com.cyb3rko.techniklogger.table.ExportBuilder
import com.cyb3rko.techniklogger.update.Updater
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import es.dmoral.toasty.Toasty import es.dmoral.toasty.Toasty
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
@ -256,6 +257,7 @@ class ListingFragment : Fragment() {
when (item.itemId) { when (item.itemId) {
R.id.action_year -> findNavController().navigate(R.id.navigation_years) R.id.action_year -> findNavController().navigate(R.id.navigation_years)
R.id.action_rename -> showNameDialog(requireActivity() as MainActivity, true) R.id.action_rename -> showNameDialog(requireActivity() as MainActivity, true)
R.id.action_update -> Updater.updateCheck(requireActivity() as MainActivity, true)
R.id.action_info -> { R.id.action_info -> {
var info = "App-Version: ${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})" var info = "App-Version: ${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})"
info += "\nBuild-Typ: ${BuildConfig.BUILD_TYPE}" info += "\nBuild-Typ: ${BuildConfig.BUILD_TYPE}"

@ -1,9 +1,11 @@
package com.cyb3rko.techniklogger.update package com.cyb3rko.techniklogger.update
import android.Manifest import android.Manifest
import android.app.Activity
import android.content.Context import android.content.Context
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.util.Base64 import android.util.Base64
import androidx.appcompat.app.AlertDialog
import androidx.core.app.ActivityCompat import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import com.androidnetworking.AndroidNetworking import com.androidnetworking.AndroidNetworking
@ -18,8 +20,10 @@ import es.dmoral.toasty.Toasty
import java.nio.charset.StandardCharsets import java.nio.charset.StandardCharsets
internal object Updater { internal object Updater {
internal fun updateCheck(activity: MainActivity) { internal fun updateCheck(activity: Activity, feedback: Boolean) {
logD("Frage App-Update an") logD("Frage App-Update an")
var dialog: AlertDialog? = null
if (feedback) dialog = getProgressDialog(activity)
AndroidNetworking.initialize(activity) AndroidNetworking.initialize(activity)
AndroidNetworking.get("https://git.aldiserver.de/api/v1/repos/niko/technik-logger-app/contents/app/build.gradle") AndroidNetworking.get("https://git.aldiserver.de/api/v1/repos/niko/technik-logger-app/contents/app/build.gradle")
.addHeaders("Authorization", "token d70a26aa455b25e60885ba5ff31cce231d454f82") .addHeaders("Authorization", "token d70a26aa455b25e60885ba5ff31cce231d454f82")
@ -39,6 +43,7 @@ internal object Updater {
parts2 = parts[1].split("\"") parts2 = parts[1].split("\"")
val newestVersion = parts2[0] val newestVersion = parts2[0]
dialog?.cancel()
if (BuildConfig.VERSION_CODE != neuesterVersionCode) { if (BuildConfig.VERSION_CODE != neuesterVersionCode) {
logD("App-Update verfügbar: $newestVersion") logD("App-Update verfügbar: $newestVersion")
showDownloadDialog(activity, newestVersion) showDownloadDialog(activity, newestVersion)
@ -48,6 +53,13 @@ internal object Updater {
) )
} else { } else {
logD("Kein App-Update verfügbar, App ist auf dem neuesten Stand") 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) { } catch (e: Exception) {
activity.showErrorToast("Update-Check fehlgeschlagen", Toasty.LENGTH_SHORT) 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) { private fun showDownloadDialog(context: Context, newestVersion: String) {
MaterialAlertDialogBuilder(context) MaterialAlertDialogBuilder(context)
.setTitle("Neues Update verfügbar") .setTitle("Neues Update verfügbar")

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingTop="@dimen/md_dialog_frame_margin_vertical"
android:paddingLeft="@dimen/md_dialog_frame_margin_horizontal"
android:paddingRight="@dimen/md_dialog_frame_margin_horizontal"
android:paddingBottom="@dimen/md_dialog_frame_margin_vertical">
<com.google.android.material.progressindicator.CircularProgressIndicator
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:textSize="16sp"
android:text="Suche nach Update"
android:layout_gravity="center_vertical" />
</LinearLayout>

@ -23,6 +23,12 @@
<menu> <menu>
<item
android:id="@+id/action_update"
android:title="Update suchen"
app:showAsAction="never"
tools:ignore="HardcodedText" />
<item <item
android:id="@+id/action_info" android:id="@+id/action_info"
android:title="App-Info" android:title="App-Info"

Loading…
Cancel
Save