settings: add PawletOS version info and Android settings section

This commit is contained in:
oxmc
2026-06-09 10:30:25 -07:00
parent 22beff9c94
commit fda87a4aa8
3 changed files with 84 additions and 1 deletions
+13
View File
@@ -2,4 +2,17 @@
<resources>
<string name="app_name">PawletOS</string>
<string name="app_summary">PawletOS device settings</string>
<string name="category_pawletos">PawletOS</string>
<string name="category_android">Android settings</string>
<string name="pref_version">Version</string>
<string name="pref_build_type">Build type</string>
<string name="pref_device">Device</string>
<string name="pref_android_version">Android version</string>
<string name="pref_android_codename">Version codename</string>
<string name="pref_security_patch">Security patch level</string>
<string name="pref_build_number">Build number</string>
<string name="pref_kernel_version">Kernel version</string>
</resources>
+37 -1
View File
@@ -1,6 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Add PawletOS-specific preferences here -->
<PreferenceCategory android:title="@string/category_pawletos">
<Preference
android:key="pawlet_version"
android:title="@string/pref_version"
android:selectable="false" />
<Preference
android:key="pawlet_build_type"
android:title="@string/pref_build_type"
android:selectable="false" />
<Preference
android:key="pawlet_device"
android:title="@string/pref_device"
android:selectable="false" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/category_android">
<Preference
android:key="android_version"
android:title="@string/pref_android_version"
android:selectable="false" />
<Preference
android:key="android_codename"
android:title="@string/pref_android_codename"
android:selectable="false" />
<Preference
android:key="android_security_patch"
android:title="@string/pref_security_patch"
android:selectable="false" />
<Preference
android:key="android_build_number"
android:title="@string/pref_build_number"
android:selectable="false" />
<Preference
android:key="android_kernel"
android:title="@string/pref_kernel_version"
android:selectable="false" />
</PreferenceCategory>
</PreferenceScreen>
@@ -1,11 +1,45 @@
package me.pawlet.settings
import android.os.Build
import android.os.Bundle
import android.os.SystemProperties
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
class PawletSettingsFragment : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.pawlet_settings, rootKey)
populate()
}
private fun populate() {
setPref("pawlet_version", SystemProperties.get("ro.pawlet.display.version", Build.UNKNOWN))
setPref("pawlet_build_type", SystemProperties.get("ro.pawlet.releasetype", Build.UNKNOWN))
setPref("pawlet_device", Build.MODEL)
setPref("android_version", Build.VERSION.RELEASE)
setPref("android_codename", resolveCodename())
setPref("android_security_patch", Build.VERSION.SECURITY_PATCH)
setPref("android_build_number", Build.DISPLAY)
setPref("android_kernel", System.getProperty("os.version") ?: Build.UNKNOWN)
}
private fun setPref(key: String, value: String) {
findPreference<Preference>(key)?.summary = value
}
private fun resolveCodename(): String {
val raw = SystemProperties.get("ro.build.version.codename", "REL")
if (raw != "REL") return raw
return when (Build.VERSION.SDK_INT) {
36 -> "Baklava"
35 -> "VanillaIceCream"
34 -> "UpsideDownCake"
33 -> "Tiramisu"
32, 31 -> "Snow Cone"
30 -> "RedVelvetCake"
else -> Build.VERSION.RELEASE
}
}
}