Commit f361e7e0 authored by Rhodwell Malicdem's avatar Rhodwell Malicdem Committed by dmeehan@mozilla.com
Browse files

Bug 1970671 - Fix DDG not appearing if there is no associated icon...

Bug 1970671 - Fix DDG not appearing if there is no associated icon r=android-reviewers,skhan, a=dmeehan

Differential Revision: https://phabricator.services.mozilla.com/D252691
parent dae8171a
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@
package mozilla.components.feature.search.icons

import mozilla.appservices.remotesettings.RemoteSettingsClient
import mozilla.appservices.remotesettings.RemoteSettingsException
import mozilla.appservices.remotesettings.RemoteSettingsRecord
import mozilla.components.feature.search.RemoteSettingsRepository
import mozilla.components.support.remotesettings.RemoteSettingsService
@@ -37,7 +38,13 @@ class SearchConfigIconsUpdateService(
     *
     * @param record The [RemoteSettingsRecord] who's attachment is to be fetched.
=     */
    fun fetchIconAttachment(record: RemoteSettingsRecord): ByteArray? {
        return client?.getAttachment(record)
    fun fetchIconAttachment(record: RemoteSettingsRecord?): ByteArray? {
        return record?.let {
            try {
                client?.getAttachment(it)
            } catch (e: RemoteSettingsException) {
                null
            }
        }
    }
}
+10 −12
Original line number Diff line number Diff line
@@ -105,12 +105,11 @@ class SearchEngineSelectorRepository(
        val searchEngineList = mutableListOf<SearchEngine>()
        searchConfig.engines.forEach { engine ->
            val iconAttachmentModel = findMatchingIcon(engine.identifier, iconsList)
            iconAttachmentModel?.let {
            val searchEngine = try {
                reader.loadStreamAPI(
                    engineDefinition = engine,
                        attachmentModel = searchConfigIconsUpdateService.fetchIconAttachment(it),
                        mimetype = it.attachment?.mimetype ?: "",
                    attachmentModel = searchConfigIconsUpdateService.fetchIconAttachment(iconAttachmentModel),
                    mimetype = iconAttachmentModel?.attachment?.mimetype ?: "",
                    defaultIcon = defaultSearchEngineIcon,
                )
            } catch (exception: IllegalArgumentException) {
@@ -118,7 +117,6 @@ class SearchEngineSelectorRepository(
            }
            searchEngineList.add(searchEngine)
        }
        }
        return searchEngineList
    }