diff --git a/data/calendar/src/main/java/de/mm20/launcher2/calendar/CalendarRepository.kt b/data/calendar/src/main/java/de/mm20/launcher2/calendar/CalendarRepository.kt index f4f165b8..1bc3c095 100644 --- a/data/calendar/src/main/java/de/mm20/launcher2/calendar/CalendarRepository.kt +++ b/data/calendar/src/main/java/de/mm20/launcher2/calendar/CalendarRepository.kt @@ -38,7 +38,7 @@ internal class CalendarRepositoryImpl( ) : CalendarRepository { override fun search(query: String): Flow> { - if (query.isBlank() || query.length < 3) { + if (query.isBlank() || query.length < 2) { return flow { emit(persistentListOf()) } diff --git a/data/contacts/src/main/java/de/mm20/launcher2/contacts/ContactRepository.kt b/data/contacts/src/main/java/de/mm20/launcher2/contacts/ContactRepository.kt index c7166c77..e4f279fb 100644 --- a/data/contacts/src/main/java/de/mm20/launcher2/contacts/ContactRepository.kt +++ b/data/contacts/src/main/java/de/mm20/launcher2/contacts/ContactRepository.kt @@ -24,7 +24,7 @@ internal class ContactRepositoryImpl( override fun search(query: String): Flow> { val hasPermission = permissionsManager.hasPermission(PermissionGroup.Contacts) - if (query.length < 3) { + if (query.length < 2) { return flow { emit(persistentListOf()) } @@ -59,6 +59,7 @@ internal class ContactRepositoryImpl( val results = mutableListOf() for ((id, rawIds) in contactMap) { Contact.contactById(context, id, rawIds)?.let { results.add(it) } + if (results.size > 15) break } results } diff --git a/data/files/src/main/java/de/mm20/launcher2/files/providers/LocalFileProvider.kt b/data/files/src/main/java/de/mm20/launcher2/files/providers/LocalFileProvider.kt index 2033cdcc..9bebb7bb 100644 --- a/data/files/src/main/java/de/mm20/launcher2/files/providers/LocalFileProvider.kt +++ b/data/files/src/main/java/de/mm20/launcher2/files/providers/LocalFileProvider.kt @@ -19,6 +19,7 @@ internal class LocalFileProvider( if (!permissionsManager.checkPermissionOnce(PermissionGroup.ExternalStorage)) { return@withContext emptyList() } + if (query.length < 2 || query.isBlank()) return@withContext emptyList() val results = mutableListOf() val uri = MediaStore.Files.getContentUri("external").buildUpon() .appendQueryParameter("limit", "10").build() @@ -29,9 +30,8 @@ internal class LocalFileProvider( MediaStore.Files.FileColumns.DATA, MediaStore.Files.FileColumns.MIME_TYPE ) - val selection = - if (query.length > 3) "${MediaStore.Files.FileColumns.TITLE} LIKE ?" else "${MediaStore.Files.FileColumns.TITLE} = ?" - val selArgs = if (query.length > 3) arrayOf("%$query%") else arrayOf(query) + val selection = "${MediaStore.Files.FileColumns.TITLE} LIKE ?" + val selArgs = if (query.length > 3) arrayOf("%$query%") else arrayOf("$query%") val sort = "${MediaStore.Files.FileColumns.DISPLAY_NAME} COLLATE NOCASE ASC" diff --git a/data/wikipedia/src/main/java/de/mm20/launcher2/wikipedia/WikipediaRepository.kt b/data/wikipedia/src/main/java/de/mm20/launcher2/wikipedia/WikipediaRepository.kt index 5769f17f..d3b28260 100644 --- a/data/wikipedia/src/main/java/de/mm20/launcher2/wikipedia/WikipediaRepository.kt +++ b/data/wikipedia/src/main/java/de/mm20/launcher2/wikipedia/WikipediaRepository.kt @@ -63,6 +63,8 @@ internal class WikipediaRepositoryImpl( httpClient.dispatcher.cancelAll() } + if (query.length < 4) return@channelFlow + if (!::wikipediaService.isInitialized) return@channelFlow if (query.isBlank()) return@channelFlow