Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 20933813 authored by Liana Kazanova (xWF)'s avatar Liana Kazanova (xWF) Committed by Android (Google) Code Review
Browse files

Merge changes from topic "revert-33413727-Spa-search-converter-FBFNSWREQE" into main

* changes:
  Revert "Create Spa-search lib"
  Revert "Create Spa search converters"
parents 5f06d3e5 28be35c8
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -114,7 +114,6 @@ android_library {
        "keyboard_flags_lib",
        "com_android_systemui_flags_lib",
        "settings_connectivity_flags_lib",
        "Spa-search",

        // app function dependencies
        "androidx.appsearch_appsearch",
+1 −1
Original line number Diff line number Diff line
@@ -5430,7 +5430,7 @@
        <activity android:name=".spa.SpaAppBridgeActivity" android:exported="false"/>

        <activity
            android:name=".spa.search.SettingsSpaSearchLandingActivity"
            android:name=".spa.search.SpaSearchLandingActivity"
            android:exported="true">
            <intent-filter android:priority="1">
                <action android:name="android.settings.SPA_SEARCH_LANDING" />
+34 −0
Original line number Diff line number Diff line
syntax = "proto2";

package com.android.settings.spa;

message SpaSearchLandingKey {
  oneof page {
    SpaSearchLandingSpaPage spa_page = 1;
    SpaSearchLandingFragment fragment = 2;
  }
}

message SpaSearchLandingSpaPage {
  /** The destination of SPA page. */
  optional string destination = 1;
}

message SpaSearchLandingFragment {
  /** The fragment class name. */
  optional string fragment_name = 1;

  /** The key of the preference to highlight the item. */
  optional string preference_key = 2;

  /** The arguments passed to the page. */
  map<string, BundleValue> arguments = 3;
}

/** A value in an Android Bundle. */
message BundleValue {
  oneof value {
    /** A 32-bit signed integer value. */
    int32 int_value = 1;
  }
}
+27 −23
Original line number Diff line number Diff line
@@ -28,15 +28,18 @@ import com.android.settings.network.telephony.NrAdvancedCallingPreferenceControl
import com.android.settings.network.telephony.RoamingPreferenceController.Companion.RoamingSearchItem
import com.android.settings.network.telephony.VideoCallingPreferenceController.Companion.VideoCallingSearchItem
import com.android.settings.network.telephony.WifiCallingPreferenceController.Companion.WifiCallingSearchItem
import com.android.settingslib.spa.search.SpaSearchIndexableItem
import com.android.settingslib.spa.search.SpaSearchIndexablePage
import com.android.settingslib.spa.search.SpaSearchLanding.BundleValue
import com.android.settingslib.spa.search.SpaSearchLanding.SpaSearchLandingFragment
import com.android.settingslib.spa.search.SpaSearchLanding.SpaSearchLandingKey
import com.android.settings.spa.SpaSearchLanding.BundleValue
import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingFragment
import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingKey
import com.android.settings.spa.search.SpaSearchRepository.Companion.createSearchIndexableRaw
import com.android.settings.spa.search.SpaSearchRepository.Companion.searchIndexProviderOf
import com.android.settingslib.search.SearchIndexableData
import com.android.settingslib.search.SearchIndexableRaw
import com.android.settingslib.spaprivileged.settingsprovider.settingsGlobalBoolean

class MobileNetworkSettingsSearchIndex(
    private val searchItemsFactory: (context: Context) -> List<MobileNetworkSettingsSearchItem> =
        ::createSearchItems
        ::createSearchItems,
) {
    data class MobileNetworkSettingsSearchResult(
        val key: String,
@@ -48,37 +51,38 @@ class MobileNetworkSettingsSearchIndex(
        fun getSearchResult(subId: Int): MobileNetworkSettingsSearchResult?
    }

    fun getSearchIndexablePage(): SpaSearchIndexablePage {
        return SpaSearchIndexablePage(targetClass = MobileNetworkSettings::class.java) { context ->
    fun createSearchIndexableData(): SearchIndexableData {
        val searchIndexProvider = searchIndexProviderOf { context ->
            if (!isMobileNetworkSettingsSearchable(context)) {
                return@SpaSearchIndexablePage emptyList()
                return@searchIndexProviderOf emptyList()
            }
            val subInfos = context.requireSubscriptionManager().activeSubscriptionInfoList
            if (subInfos.isNullOrEmpty()) {
                return@SpaSearchIndexablePage emptyList()
                return@searchIndexProviderOf emptyList()
            }
            searchItemsFactory(context).flatMap { searchItem ->
                spaSearchIndexableItemList(context, searchItem, subInfos)
                searchIndexableRawList(context, searchItem, subInfos)
            }
        }
        return SearchIndexableData(MobileNetworkSettings::class.java, searchIndexProvider)
    }

    private fun spaSearchIndexableItemList(
    private fun searchIndexableRawList(
        context: Context,
        searchItem: MobileNetworkSettingsSearchItem,
        subInfos: List<SubscriptionInfo>,
    ): List<SpaSearchIndexableItem> =
        subInfos: List<SubscriptionInfo>
    ): List<SearchIndexableRaw> =
        subInfos.mapNotNull { subInfo ->
            searchItem.getSearchResult(subInfo.subscriptionId)?.let { searchResult ->
                searchIndexableItem(context, searchResult, subInfo)
                searchIndexableRaw(context, searchResult, subInfo)
            }
        }

    private fun searchIndexableItem(
    private fun searchIndexableRaw(
        context: Context,
        searchResult: MobileNetworkSettingsSearchResult,
        subInfo: SubscriptionInfo,
    ): SpaSearchIndexableItem {
    ): SearchIndexableRaw {
        val key =
            SpaSearchLandingKey.newBuilder()
                .setFragment(
@@ -87,16 +91,16 @@ class MobileNetworkSettingsSearchIndex(
                        .setPreferenceKey(searchResult.key)
                        .putArguments(
                            Settings.EXTRA_SUB_ID,
                            BundleValue.newBuilder().setIntValue(subInfo.subscriptionId).build(),
                        )
                )
                            BundleValue.newBuilder().setIntValue(subInfo.subscriptionId).build()))
                .build()
        val simsTitle = context.getString(R.string.provider_network_settings_title)
        return SpaSearchIndexableItem(
            searchLandingKey = key,
            pageTitle = "$simsTitle > ${subInfo.displayName}",
        return createSearchIndexableRaw(
            context = context,
            spaSearchLandingKey = key,
            itemTitle = searchResult.title,
            keywords = searchResult.keywords,
            indexableClass = MobileNetworkSettings::class.java,
            pageTitle = "$simsTitle > ${subInfo.displayName}",
        )
    }

+3 −3
Original line number Diff line number Diff line
@@ -22,15 +22,15 @@ import android.content.Intent
import android.net.Uri
import android.provider.Settings
import com.android.settings.search.SearchIndexableResourcesFactory.createSearchIndexableResources
import com.android.settings.spa.search.SettingsSpaSearchRepository
import com.android.settings.spa.search.SpaSearchRepository
import com.android.settingslib.search.SearchIndexableResources

/** FeatureProvider for the refactored search code. */
open class SearchFeatureProviderImpl : SearchFeatureProvider {
    private val lazySearchIndexableResources by lazy {
        createSearchIndexableResources().apply {
            for (indexableData in SettingsSpaSearchRepository().getSearchIndexableDataList()) {
                addIndex(indexableData)
            for (searchIndexableData in SpaSearchRepository().getSearchIndexableDataList()) {
                addIndex(searchIndexableData)
            }
        }
    }
Loading