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)
} else {
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.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}"

@ -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")

@ -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>
<item
android:id="@+id/action_update"
android:title="Update suchen"
app:showAsAction="never"
tools:ignore="HardcodedText" />
<item
android:id="@+id/action_info"
android:title="App-Info"

Loading…
Cancel
Save