Loading packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceSearchIndexablesProvider.kt +15 −3 Original line number Diff line number Diff line Loading @@ -64,7 +64,7 @@ abstract class PreferenceSearchIndexablesProvider : SearchIndexablesProvider() { val start = SystemClock.elapsedRealtime() val context = requireContext() context.visitPreferenceScreen { preferenceScreenMetadata -> val screenTitle = preferenceScreenMetadata.getPreferenceScreenTitle(context) val screenTitle = preferenceScreenMetadata.getIndexableTitle(context) fun PreferenceHierarchyNode.visitRecursively(isParentAvailableOnCondition: Boolean) { if (!metadata.isAvailable(context)) return val isAvailableOnCondition = Loading Loading @@ -94,7 +94,7 @@ abstract class PreferenceSearchIndexablesProvider : SearchIndexablesProvider() { val start = SystemClock.elapsedRealtime() val context = requireContext() context.visitPreferenceScreen { preferenceScreenMetadata -> val screenTitle = preferenceScreenMetadata.getPreferenceScreenTitle(context) val screenTitle = preferenceScreenMetadata.getIndexableTitle(context) fun PreferenceHierarchyNode.visitRecursively() { if (metadata.isAvailableOnCondition) return if ( Loading Loading @@ -141,7 +141,7 @@ abstract class PreferenceSearchIndexablesProvider : SearchIndexablesProvider() { val intent = preferenceScreenMetadata.getLaunchIntent(context, this) ?: return null val columnValues = arrayOfNulls<Any>(SearchIndexablesContract.INDEXABLES_RAW_COLUMNS.size) columnValues[SearchIndexablesContract.COLUMN_INDEX_RAW_TITLE] = getPreferenceTitle(context) columnValues[SearchIndexablesContract.COLUMN_INDEX_RAW_TITLE] = getIndexableTitle(context) columnValues[SearchIndexablesContract.COLUMN_INDEX_RAW_KEYWORDS] = getKeywords(context) columnValues[SearchIndexablesContract.COLUMN_INDEX_RAW_SCREEN_TITLE] = screenTitle val iconResId = getPreferenceIcon(context) Loading @@ -161,6 +161,18 @@ abstract class PreferenceSearchIndexablesProvider : SearchIndexablesProvider() { return columnValues } private fun PreferenceScreenMetadata.getIndexableTitle(context: Context) = when (this) { is PreferenceIndexableTitleProvider -> getIndexableTitle(context) else -> getPreferenceScreenTitle(context) } private fun PreferenceMetadata.getIndexableTitle(context: Context) = when (this) { is PreferenceIndexableTitleProvider -> getIndexableTitle(context) else -> getPreferenceTitle(context) } private fun PreferenceMetadata.getKeywords(context: Context) = if (keywords != 0) context.getString(keywords) else null Loading packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceStateProviders.kt +12 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,18 @@ interface PreferenceTitleProvider { fun getTitle(context: Context): CharSequence? } /** * Provides preference title to be shown in search result. * * This is used to add more context to the title, and it is effective only when building indexable * data in [PreferenceSearchIndexablesProvider]. */ interface PreferenceIndexableTitleProvider { /** Provides preference indexable title. */ fun getIndexableTitle(context: Context): CharSequence? } /** * Interface to provide dynamic preference summary. * Loading Loading
packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceSearchIndexablesProvider.kt +15 −3 Original line number Diff line number Diff line Loading @@ -64,7 +64,7 @@ abstract class PreferenceSearchIndexablesProvider : SearchIndexablesProvider() { val start = SystemClock.elapsedRealtime() val context = requireContext() context.visitPreferenceScreen { preferenceScreenMetadata -> val screenTitle = preferenceScreenMetadata.getPreferenceScreenTitle(context) val screenTitle = preferenceScreenMetadata.getIndexableTitle(context) fun PreferenceHierarchyNode.visitRecursively(isParentAvailableOnCondition: Boolean) { if (!metadata.isAvailable(context)) return val isAvailableOnCondition = Loading Loading @@ -94,7 +94,7 @@ abstract class PreferenceSearchIndexablesProvider : SearchIndexablesProvider() { val start = SystemClock.elapsedRealtime() val context = requireContext() context.visitPreferenceScreen { preferenceScreenMetadata -> val screenTitle = preferenceScreenMetadata.getPreferenceScreenTitle(context) val screenTitle = preferenceScreenMetadata.getIndexableTitle(context) fun PreferenceHierarchyNode.visitRecursively() { if (metadata.isAvailableOnCondition) return if ( Loading Loading @@ -141,7 +141,7 @@ abstract class PreferenceSearchIndexablesProvider : SearchIndexablesProvider() { val intent = preferenceScreenMetadata.getLaunchIntent(context, this) ?: return null val columnValues = arrayOfNulls<Any>(SearchIndexablesContract.INDEXABLES_RAW_COLUMNS.size) columnValues[SearchIndexablesContract.COLUMN_INDEX_RAW_TITLE] = getPreferenceTitle(context) columnValues[SearchIndexablesContract.COLUMN_INDEX_RAW_TITLE] = getIndexableTitle(context) columnValues[SearchIndexablesContract.COLUMN_INDEX_RAW_KEYWORDS] = getKeywords(context) columnValues[SearchIndexablesContract.COLUMN_INDEX_RAW_SCREEN_TITLE] = screenTitle val iconResId = getPreferenceIcon(context) Loading @@ -161,6 +161,18 @@ abstract class PreferenceSearchIndexablesProvider : SearchIndexablesProvider() { return columnValues } private fun PreferenceScreenMetadata.getIndexableTitle(context: Context) = when (this) { is PreferenceIndexableTitleProvider -> getIndexableTitle(context) else -> getPreferenceScreenTitle(context) } private fun PreferenceMetadata.getIndexableTitle(context: Context) = when (this) { is PreferenceIndexableTitleProvider -> getIndexableTitle(context) else -> getPreferenceTitle(context) } private fun PreferenceMetadata.getKeywords(context: Context) = if (keywords != 0) context.getString(keywords) else null Loading
packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceStateProviders.kt +12 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,18 @@ interface PreferenceTitleProvider { fun getTitle(context: Context): CharSequence? } /** * Provides preference title to be shown in search result. * * This is used to add more context to the title, and it is effective only when building indexable * data in [PreferenceSearchIndexablesProvider]. */ interface PreferenceIndexableTitleProvider { /** Provides preference indexable title. */ fun getIndexableTitle(context: Context): CharSequence? } /** * Interface to provide dynamic preference summary. * Loading