[Catalyst] Take write permit into account for SettingsPreferenceMetadata.writable

NO_IFTTT=Catalyst only

Fix: 394973168
Flag: com.android.settings.flags.catalyst
Test: manual
Change-Id: I4c09ab50d3a08ab50f4fced29ea70bb50b14e5d7
This commit is contained in:
Jacky Wang
2025-02-08 10:12:45 +08:00
parent 60c6d8ead5
commit 089e6378b5
4 changed files with 8 additions and 13 deletions

View File

@@ -40,6 +40,7 @@ import com.android.settingslib.graph.proto.PreferenceProto
import com.android.settingslib.graph.proto.PreferenceValueProto
import com.android.settingslib.graph.toIntent
import com.android.settingslib.metadata.PreferenceCoordinate
import com.android.settingslib.metadata.ReadWritePermit
import com.android.settingslib.metadata.SensitivityLevel
/** Transform Catalyst Graph result to Framework GET METADATA result */
@@ -215,13 +216,14 @@ private fun PreferenceProto.toMetadata(
extras.putBundle(KEY_INT_RANGE, intRange)
}
if (tagsCount > 0) extras.putStringArray(KEY_TAGS, tagsList.toTypedArray())
val writePermit = ReadWritePermit.getWritePermit(readWritePermit)
return SettingsPreferenceMetadata.Builder(screenKey, key)
.setTitle(title.getText(context))
.setSummary(summary.getText(context))
.setEnabled(enabled)
.setAvailable(available)
.setRestricted(restricted)
.setWritable(persistent)
.setWritable(persistent && writePermit == ReadWritePermit.ALLOW)
.setLaunchIntent(launchIntent.toIntent())
.setWriteSensitivity(sensitivity)
// Returns all the permissions that are used, some of which are exclusive (e.g. p1 or p2)