From 9136df04dff35733a8f0db7bf4edfb14cf83a94b Mon Sep 17 00:00:00 2001 From: Michael Mikovsky <77305074+Astatin3@users.noreply.github.com> Date: Sat, 2 Aug 2025 20:22:47 -0600 Subject: [PATCH] Add app version info button --- .../ui/settings/SettingsFragment.java | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/app/src/main/java/com/ridgebotics/ridgescout/ui/settings/SettingsFragment.java b/app/src/main/java/com/ridgebotics/ridgescout/ui/settings/SettingsFragment.java index 61af482..463633d 100644 --- a/app/src/main/java/com/ridgebotics/ridgescout/ui/settings/SettingsFragment.java +++ b/app/src/main/java/com/ridgebotics/ridgescout/ui/settings/SettingsFragment.java @@ -21,6 +21,9 @@ import static com.ridgebotics.ridgescout.utility.SettingsManager.prefs; import android.app.AlertDialog; import android.content.Context; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.os.Build; import android.os.Bundle; import android.text.Editable; import android.text.InputType; @@ -88,6 +91,10 @@ public class SettingsFragment extends Fragment { SettingsManager manager = new SettingsManager(getContext()); + ButtonSettingsItem appInfoButton = new ButtonSettingsItem(); + appInfoButton.addButton("App info", v -> showAppInfo()); + manager.addItem(appInfoButton); + ButtonSettingsItem corruptButton = new ButtonSettingsItem(); corruptButton.addButton("find corrupted files", view -> { @@ -287,6 +294,41 @@ public class SettingsFragment extends Fragment { alert.create().show(); } + private TextView createText(String title) { + TextView tv = new TextView(getContext()); + tv.setTextAppearance(com.google.android.material.R.style.TextAppearance_MaterialComponents_Body1); + tv.setText(title); + return tv; + } + + private void showAppInfo() { + LinearLayout ll = new LinearLayout(getContext()); + ll.setOrientation(VERTICAL); + ll.setPadding(10, 10, 10, 10); + + try { + PackageInfo pInfo = getContext().getPackageManager().getPackageInfo(getContext().getPackageName(), 0); + ll.addView(createText("Package: " + pInfo.packageName)); + ll.addView(createText("Version: " + pInfo.versionName)); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + ll.addView(createText("Signature: " + (pInfo.signingInfo != null ? pInfo.signingInfo.toString() : "None"))); + } + + } catch (PackageManager.NameNotFoundException e) { + AlertManager.error("Failed to get version info", e); + } + + + + AlertDialog.Builder alert = new AlertDialog.Builder(getContext()); + alert.setTitle("App info"); + alert.setView(ll); + alert.setNeutralButton("Ok", null); + alert.setCancelable(true); + + alert.create().show(); + } +