From 7a7fbd0126acbb6b684f9b786993c63cd520b82a Mon Sep 17 00:00:00 2001 From: Jacky Wang Date: Thu, 19 Sep 2024 15:22:48 +0800 Subject: [PATCH] [Catalyst] Initial integration for Android version screen Bug: 365886251 Flag: com.android.settings.flags.catalyst_firmware_version Test: Manual Change-Id: I06a9ef31e86d30e405f8fed7e130f5298971c237 --- aconfig/catalyst/about_phone.aconfig | 8 +++ .../firmwareversion/FirmwareVersionScreen.kt | 64 +++++++++++++++++++ .../FirmwareVersionSettings.java | 9 +++ 3 files changed, 81 insertions(+) create mode 100644 src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionScreen.kt diff --git a/aconfig/catalyst/about_phone.aconfig b/aconfig/catalyst/about_phone.aconfig index 086304193c2..5403b652c6c 100644 --- a/aconfig/catalyst/about_phone.aconfig +++ b/aconfig/catalyst/about_phone.aconfig @@ -7,3 +7,11 @@ flag { description: "Flag for Legal information" bug: "323791114" } + +flag { + name: "catalyst_firmware_version" + namespace: "android_settings" + description: "Flag for Android version" + bug: "323791114" +} + diff --git a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionScreen.kt b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionScreen.kt new file mode 100644 index 00000000000..58fdefe6e4a --- /dev/null +++ b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionScreen.kt @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.deviceinfo.firmwareversion + +import android.content.Context +import android.os.Build +import com.android.settings.R +import com.android.settings.flags.Flags +import com.android.settingslib.metadata.PreferenceMetadata +import com.android.settingslib.metadata.PreferenceSummaryProvider +import com.android.settingslib.metadata.ProvidePreferenceScreen +import com.android.settingslib.metadata.preferenceHierarchy +import com.android.settingslib.preference.PreferenceScreenCreator + +@ProvidePreferenceScreen +class FirmwareVersionScreen : PreferenceScreenCreator, PreferenceSummaryProvider { + + override fun isFlagEnabled(context: Context) = Flags.catalystFirmwareVersion() + + override val key: String + get() = KEY + + override val title: Int + get() = R.string.firmware_version + + override fun getSummary(context: Context): CharSequence? = + Build.VERSION.RELEASE_OR_PREVIEW_DISPLAY + + override val keywords: Int + get() = R.string.keywords_android_version + + override fun fragmentClass() = FirmwareVersionSettings::class.java + + override fun getPreferenceHierarchy(context: Context) = + preferenceHierarchy(this) { + +PreferenceWidget("os_firmware_version", R.string.firmware_version) + +PreferenceWidget("security_key", R.string.security_patch) + +PreferenceWidget("module_version", R.string.module_version) + +PreferenceWidget("base_band", R.string.baseband_version) + +PreferenceWidget("kernel_version", R.string.kernel_version) + +PreferenceWidget("os_build_number", R.string.build_number) + } + + private class PreferenceWidget(override val key: String, override val title: Int) : + PreferenceMetadata + + companion object { + const val KEY = "firmware_version" + } +} diff --git a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionSettings.java b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionSettings.java index e2d3d8a9bca..d447c989143 100644 --- a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionSettings.java +++ b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionSettings.java @@ -17,6 +17,10 @@ package com.android.settings.deviceinfo.firmwareversion; import android.app.settings.SettingsEnums; +import android.content.Context; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; @@ -26,6 +30,11 @@ import com.android.settingslib.search.SearchIndexable; @SearchIndexable public class FirmwareVersionSettings extends DashboardFragment { + @Override + public @Nullable String getPreferenceScreenBindingKey(@NonNull Context context) { + return FirmwareVersionScreen.KEY; + } + @Override protected int getPreferenceScreenResId() { return R.xml.firmware_version;