diff options
| author | 2024-11-29 02:30:29 +0000 | |
|---|---|---|
| committer | 2024-11-29 02:30:29 +0000 | |
| commit | ab58d64895a7de708784bd451624646229dca46d (patch) | |
| tree | e4b873c417842770851424d62e3c8fdff4cbfbee | |
| parent | 897b8eb9dd5568ea5d34ca8621ec208fe6c2aff0 (diff) | |
| parent | 65e15f48d74bc4da8c843b6eccb7c6ef5359bbba (diff) | |
Merge "[Catalyst] Support sensitivity level" into main
3 files changed, 21 insertions, 1 deletions
diff --git a/packages/SettingsLib/Graph/graph.proto b/packages/SettingsLib/Graph/graph.proto index 6b93cd73164f..f611793b619b 100644 --- a/packages/SettingsLib/Graph/graph.proto +++ b/packages/SettingsLib/Graph/graph.proto @@ -79,6 +79,8 @@ message PreferenceProto { optional IntentProto launch_intent = 14; // Descriptor of the preference value. optional PreferenceValueDescriptorProto value_descriptor = 15; + // Indicate how sensitive of the preference. + optional int32 sensitivity_level = 16; // Target of an Intent message ActionTarget { diff --git a/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceGraphBuilder.kt b/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceGraphBuilder.kt index a65d24cf3d6f..a768b5edb395 100644 --- a/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceGraphBuilder.kt +++ b/packages/SettingsLib/Graph/src/com/android/settingslib/graph/PreferenceGraphBuilder.kt @@ -55,9 +55,9 @@ import com.android.settingslib.metadata.RangeValue import com.android.settingslib.metadata.ReadWritePermit import com.android.settingslib.preference.PreferenceScreenFactory import com.android.settingslib.preference.PreferenceScreenProvider -import java.util.Locale import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext +import java.util.Locale private const val TAG = "PreferenceGraphBuilder" @@ -387,6 +387,7 @@ fun PreferenceMetadata.toProto( } persistent = metadata.isPersistent(context) if (persistent) { + if (metadata is PersistentPreference<*>) sensitivityLevel = metadata.sensitivityLevel if ( flags.includeValue() && enabled && diff --git a/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PersistentPreference.kt b/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PersistentPreference.kt index 6c11e6997fba..668f981e215b 100644 --- a/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PersistentPreference.kt +++ b/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PersistentPreference.kt @@ -42,6 +42,19 @@ annotation class ReadWritePermit { } } +/** Indicates how sensitive of the data. */ +@Retention(AnnotationRetention.SOURCE) +@Target(AnnotationTarget.TYPE) +annotation class SensitivityLevel { + companion object { + const val UNKNOWN_SENSITIVITY = 0 + const val NO_SENSITIVITY = 1 + const val LOW_SENSITIVITY = 2 + const val MEDIUM_SENSITIVITY = 3 + const val HIGH_SENSITIVITY = 4 + } +} + /** Preference interface that has a value persisted in datastore. */ interface PersistentPreference<T> { @@ -86,6 +99,10 @@ interface PersistentPreference<T> { callingUid, this as PreferenceMetadata, ) + + /** The sensitivity level of the preference. */ + val sensitivityLevel: @SensitivityLevel Int + get() = SensitivityLevel.UNKNOWN_SENSITIVITY } /** Descriptor of values. */ |