From 86de29beecf8844d38fe60dc0d6621deb4b3a62f Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Fri, 3 Apr 2026 15:24:34 -0300 Subject: [PATCH 01/30] Make hard-coded strings translatable --- app/src/main/kotlin/org/fdroid/ui/history/HistoryList.kt | 6 +++++- app/src/main/res/values/strings.xml | 1 + .../HistoryTestKt/HistoryEmptyDisabledTest_2ed8e27d_0.png | 4 ++-- .../history/HistoryTestKt/HistoryEmptyTest_2ed8e27d_0.png | 4 ++-- .../history/HistoryTestKt/HistoryNightTest_1def2e7f_0.png | 4 ++-- .../HistoryTestKt/HistoryPopulatedTest_2ed8e27d_0.png | 4 ++-- 6 files changed, 14 insertions(+), 9 deletions(-) diff --git a/app/src/main/kotlin/org/fdroid/ui/history/HistoryList.kt b/app/src/main/kotlin/org/fdroid/ui/history/HistoryList.kt index ed00cc2a4..2b29eef04 100644 --- a/app/src/main/kotlin/org/fdroid/ui/history/HistoryList.kt +++ b/app/src/main/kotlin/org/fdroid/ui/history/HistoryList.kt @@ -55,7 +55,11 @@ fun HistoryList( modifier = Modifier.padding(16.dp).fillMaxWidth().clickable { onEnabled(!enabled) }, ) { Row(verticalAlignment = Alignment.CenterVertically, modifier = Modifier.padding(16.dp)) { - Text(text = "Use install history", fontSize = 19.sp, modifier = Modifier.weight(1f)) + Text( + text = stringResource(R.string.install_history_switch), + fontSize = 19.sp, + modifier = Modifier.weight(1f), + ) Switch(enabled, onCheckedChange = onEnabled) } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3975a6b71..959895584 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1009,6 +1009,7 @@ This often occurs with apps installed via Google Play or other sources, if they Official IPFS gateways Custom IPFS gateways + Use installation history This list is still empty\n\nWhen you install, update or uninstall apps, a record will appear here Installation history is disabled\n\nInstallations, updates and uninstalls will not be recorded Delete installation history diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/history/HistoryTestKt/HistoryEmptyDisabledTest_2ed8e27d_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/history/HistoryTestKt/HistoryEmptyDisabledTest_2ed8e27d_0.png index b81c139f0..5320f7102 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/history/HistoryTestKt/HistoryEmptyDisabledTest_2ed8e27d_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/history/HistoryTestKt/HistoryEmptyDisabledTest_2ed8e27d_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:765dd2750bf6f69bd17e54f65d4954b82da43f30811efd9544532ff037f6a144 -size 49240 +oid sha256:28237ec38434fa636974d08cd6bc4bba31d26a90e8e1ae987116a2115e0478bb +size 49764 diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/history/HistoryTestKt/HistoryEmptyTest_2ed8e27d_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/history/HistoryTestKt/HistoryEmptyTest_2ed8e27d_0.png index e23b33616..ae3643252 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/history/HistoryTestKt/HistoryEmptyTest_2ed8e27d_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/history/HistoryTestKt/HistoryEmptyTest_2ed8e27d_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:841697f4533aa01aa76fdd4ad1906276d1c4cb94eb22afb4584c56512f2f75f4 -size 49333 +oid sha256:e7a2d550503deb71a2fddc0436313900d8f97c2c2413018e93ff81922b63acff +size 49879 diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/history/HistoryTestKt/HistoryNightTest_1def2e7f_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/history/HistoryTestKt/HistoryNightTest_1def2e7f_0.png index f148e86b5..ef256acdc 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/history/HistoryTestKt/HistoryNightTest_1def2e7f_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/history/HistoryTestKt/HistoryNightTest_1def2e7f_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:16486d4e51d86fcaebb8ed9890dd2a618c0899216e70e0d87f677feb7f446210 -size 56722 +oid sha256:0c490c338d630ee2fe39166723eaa73ee48527631422951eea68eb1067f2147d +size 57244 diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/history/HistoryTestKt/HistoryPopulatedTest_2ed8e27d_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/history/HistoryTestKt/HistoryPopulatedTest_2ed8e27d_0.png index a17b915bf..62fd205f8 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/history/HistoryTestKt/HistoryPopulatedTest_2ed8e27d_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/history/HistoryTestKt/HistoryPopulatedTest_2ed8e27d_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:44793ef002c2dd9c81ed25810baad89b7da6b0789f17f17b638ed874b45a8d3a -size 57063 +oid sha256:bb269ef10a0d4b43efb36e7ea43d62626e8bf942e7e27ac10a047aae9c9056e0 +size 57639 From f439614e36a96db50a7f7c6a37f6ad2de744bfd8 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Fri, 3 Apr 2026 15:48:47 -0300 Subject: [PATCH 02/30] Move SearchManager out of ui package --- .../kotlin/org/fdroid/search/SearchManager.kt | 121 ++++++++++++++++++ .../fdroid/ui/discover/DiscoverViewModel.kt | 2 +- .../org/fdroid/ui/search/SearchManager.kt | 115 ----------------- .../org/fdroid/ui/search/SearchViewModel.kt | 1 + .../org/fdroid/ui/search/SearchManagerTest.kt | 15 ++- 5 files changed, 131 insertions(+), 123 deletions(-) create mode 100644 app/src/main/kotlin/org/fdroid/search/SearchManager.kt delete mode 100644 app/src/main/kotlin/org/fdroid/ui/search/SearchManager.kt diff --git a/app/src/main/kotlin/org/fdroid/search/SearchManager.kt b/app/src/main/kotlin/org/fdroid/search/SearchManager.kt new file mode 100644 index 000000000..a8cdc8461 --- /dev/null +++ b/app/src/main/kotlin/org/fdroid/search/SearchManager.kt @@ -0,0 +1,121 @@ +package org.fdroid.search + +import android.database.sqlite.SQLiteException +import androidx.compose.foundation.text.input.TextFieldState +import androidx.core.os.LocaleListCompat +import androidx.lifecycle.asFlow +import java.text.Collator +import java.util.Locale +import javax.inject.Inject +import javax.inject.Singleton +import kotlin.time.measureTimedValue +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.first +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.withContext +import mu.KotlinLogging +import org.fdroid.LocaleChooser.getBestLocale +import org.fdroid.database.FDroidDatabase +import org.fdroid.database.SearchQueryRewriter +import org.fdroid.download.DownloadRequest +import org.fdroid.download.PackageName +import org.fdroid.download.getImageModel +import org.fdroid.index.RepoManager +import org.fdroid.install.InstalledAppsCache +import org.fdroid.settings.SettingsManager +import org.fdroid.ui.categories.CategoryItem +import org.fdroid.ui.lists.AppListItem +import org.fdroid.ui.search.SearchHelper.normalize +import org.fdroid.ui.search.SearchResults +import org.fdroid.utils.IoDispatcher + +@Singleton +class SearchManager +@Inject +constructor( + private val db: FDroidDatabase, + private val repoManager: RepoManager, + private val settingsManager: SettingsManager, + private val installedAppsCache: InstalledAppsCache, + @param:IoDispatcher private val ioDispatcher: CoroutineDispatcher, +) { + + private val log = KotlinLogging.logger {} + private val localeList = LocaleListCompat.getDefault() + private val collator = Collator.getInstance(Locale.getDefault()) + private val _searchResults = MutableStateFlow(null) + val textFieldState = TextFieldState() + val searchResults = _searchResults.asStateFlow() + + private val categories = + db.getRepositoryDao().getLiveCategories().asFlow().map { categories -> + categories + .map { category -> + CategoryItem( + id = category.id, + name = category.getName(localeList) ?: "Unknown Category" + ) + } + .sortedWith { c1, c2 -> collator.compare(c1.name, c2.name) } + } + + suspend fun search(term: String) = + withContext(ioDispatcher) { + // we need a way to make the app crash for testing, e.g. the crash reporter + if (term == "CrashMe") error("BOOOOOOOOM!!!") + + val sanitized = term.replace(Regex.fromLiteral("\""), "") + val query = SearchQueryRewriter.rewriteQuery(sanitized) + log.info { "Searching for: $query" } + val timedApps = measureTimedValue { + try { + val proxyConfig = settingsManager.proxyConfig + db.getAppDao().getAppSearchItems(query).sortedDescending().mapNotNull { + val repository = + repoManager.getRepository(it.repoId) ?: return@mapNotNull null + val iconModel = + it.getIcon(localeList) + ?.getImageModel(repository, proxyConfig) as? DownloadRequest + val isInstalled = installedAppsCache.isInstalled(it.packageName) + AppListItem( + repoId = it.repoId, + packageName = it.packageName, + name = it.name.getBestLocale(localeList) ?: "Unknown", + summary = it.summary.getBestLocale(localeList) ?: "", + lastUpdated = it.lastUpdated, + isInstalled = isInstalled, + isCompatible = true, // doesn't matter here, as we don't filter + iconModel = + if (isInstalled) { + PackageName(it.packageName, iconModel) + } else { + iconModel + }, + categoryIds = it.categories?.toSet(), + ) + } + } catch (e: SQLiteException) { + log.error(e) { "Error searching for $query: " } + emptyList() + } + } + val timedCategories = measureTimedValue { + categories.first().filter { + // normalization removed diacritics, so searches without them work + it.name.normalize().contains(sanitized.normalize(), ignoreCase = true) + } + } + _searchResults.value = SearchResults(timedApps.value, timedCategories.value) + log.debug { + val numResults = _searchResults.value?.apps?.size ?: 0 + "Search for $query had $numResults results " + + "and took ${timedApps.duration} and ${timedCategories.duration}" + } + } + + fun onSearchCleared() { + _searchResults.value = null + } +} diff --git a/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverViewModel.kt b/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverViewModel.kt index 22b7e58e3..c67782106 100644 --- a/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverViewModel.kt +++ b/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverViewModel.kt @@ -31,7 +31,7 @@ import org.fdroid.install.InstalledAppsCache import org.fdroid.repo.RepoUpdateManager import org.fdroid.settings.SettingsManager import org.fdroid.ui.categories.CategoryItem -import org.fdroid.ui.search.SearchManager +import org.fdroid.search.SearchManager @HiltViewModel class DiscoverViewModel diff --git a/app/src/main/kotlin/org/fdroid/ui/search/SearchManager.kt b/app/src/main/kotlin/org/fdroid/ui/search/SearchManager.kt deleted file mode 100644 index c0786e080..000000000 --- a/app/src/main/kotlin/org/fdroid/ui/search/SearchManager.kt +++ /dev/null @@ -1,115 +0,0 @@ -package org.fdroid.ui.search - -import android.database.sqlite.SQLiteException -import androidx.compose.foundation.text.input.TextFieldState -import androidx.core.os.LocaleListCompat -import androidx.lifecycle.asFlow -import java.text.Collator -import java.util.Locale -import javax.inject.Inject -import javax.inject.Singleton -import kotlin.time.measureTimedValue -import kotlinx.coroutines.CoroutineDispatcher -import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.asStateFlow -import kotlinx.coroutines.flow.first -import kotlinx.coroutines.flow.map -import kotlinx.coroutines.withContext -import mu.KotlinLogging -import org.fdroid.LocaleChooser.getBestLocale -import org.fdroid.database.FDroidDatabase -import org.fdroid.database.SearchQueryRewriter.rewriteQuery -import org.fdroid.download.DownloadRequest -import org.fdroid.download.PackageName -import org.fdroid.download.getImageModel -import org.fdroid.index.RepoManager -import org.fdroid.install.InstalledAppsCache -import org.fdroid.settings.SettingsManager -import org.fdroid.ui.categories.CategoryItem -import org.fdroid.ui.lists.AppListItem -import org.fdroid.ui.search.SearchHelper.normalize -import org.fdroid.utils.IoDispatcher - -@Singleton -class SearchManager -@Inject -constructor( - private val db: FDroidDatabase, - private val repoManager: RepoManager, - private val settingsManager: SettingsManager, - private val installedAppsCache: InstalledAppsCache, - @param:IoDispatcher private val ioDispatcher: CoroutineDispatcher, -) { - - private val log = KotlinLogging.logger {} - private val localeList = LocaleListCompat.getDefault() - private val collator = Collator.getInstance(Locale.getDefault()) - private val _searchResults = MutableStateFlow(null) - val textFieldState = TextFieldState() - val searchResults = _searchResults.asStateFlow() - - private val categories = - db.getRepositoryDao().getLiveCategories().asFlow().map { categories -> - categories - .map { category -> - CategoryItem(id = category.id, name = category.getName(localeList) ?: "Unknown Category") - } - .sortedWith { c1, c2 -> collator.compare(c1.name, c2.name) } - } - - suspend fun search(term: String) = - withContext(ioDispatcher) { - // we need a way to make the app crash for testing, e.g. the crash reporter - if (term == "CrashMe") error("BOOOOOOOOM!!!") - - val sanitized = term.replace(Regex.fromLiteral("\""), "") - val query = rewriteQuery(sanitized) - log.info { "Searching for: $query" } - val timedApps = measureTimedValue { - try { - val proxyConfig = settingsManager.proxyConfig - db.getAppDao().getAppSearchItems(query).sortedDescending().mapNotNull { - val repository = repoManager.getRepository(it.repoId) ?: return@mapNotNull null - val iconModel = - it.getIcon(localeList)?.getImageModel(repository, proxyConfig) as? DownloadRequest - val isInstalled = installedAppsCache.isInstalled(it.packageName) - AppListItem( - repoId = it.repoId, - packageName = it.packageName, - name = it.name.getBestLocale(localeList) ?: "Unknown", - summary = it.summary.getBestLocale(localeList) ?: "", - lastUpdated = it.lastUpdated, - isInstalled = isInstalled, - isCompatible = true, // doesn't matter here, as we don't filter - iconModel = - if (isInstalled) { - PackageName(it.packageName, iconModel) - } else { - iconModel - }, - categoryIds = it.categories?.toSet(), - ) - } - } catch (e: SQLiteException) { - log.error(e) { "Error searching for $query: " } - emptyList() - } - } - val timedCategories = measureTimedValue { - categories.first().filter { - // normalization removed diacritics, so searches without them work - it.name.normalize().contains(sanitized.normalize(), ignoreCase = true) - } - } - _searchResults.value = SearchResults(timedApps.value, timedCategories.value) - log.debug { - val numResults = _searchResults.value?.apps?.size ?: 0 - "Search for $query had $numResults results " + - "and took ${timedApps.duration} and ${timedCategories.duration}" - } - } - - fun onSearchCleared() { - _searchResults.value = null - } -} diff --git a/app/src/main/kotlin/org/fdroid/ui/search/SearchViewModel.kt b/app/src/main/kotlin/org/fdroid/ui/search/SearchViewModel.kt index 893e341f8..520bb95f2 100644 --- a/app/src/main/kotlin/org/fdroid/ui/search/SearchViewModel.kt +++ b/app/src/main/kotlin/org/fdroid/ui/search/SearchViewModel.kt @@ -4,6 +4,7 @@ import android.app.Application import androidx.lifecycle.AndroidViewModel import dagger.hilt.android.lifecycle.HiltViewModel import jakarta.inject.Inject +import org.fdroid.search.SearchManager @HiltViewModel class SearchViewModel diff --git a/app/src/test/java/org/fdroid/ui/search/SearchManagerTest.kt b/app/src/test/java/org/fdroid/ui/search/SearchManagerTest.kt index 73d5d9f5c..95bcd2604 100644 --- a/app/src/test/java/org/fdroid/ui/search/SearchManagerTest.kt +++ b/app/src/test/java/org/fdroid/ui/search/SearchManagerTest.kt @@ -26,6 +26,7 @@ import org.fdroid.database.RepositoryDao import org.fdroid.download.PackageName import org.fdroid.index.RepoManager import org.fdroid.install.InstalledAppsCache +import org.fdroid.search.SearchManager import org.fdroid.settings.SettingsManager import org.junit.Rule import org.junit.Test @@ -57,13 +58,13 @@ internal class SearchManagerTest { } private val searchManager = - SearchManager( - db = db, - repoManager = repoManager, - settingsManager = settingsManager, - installedAppsCache = installedAppsCache, - ioDispatcher = Dispatchers.Unconfined, - ) + SearchManager( + db = db, + repoManager = repoManager, + settingsManager = settingsManager, + installedAppsCache = installedAppsCache, + ioDispatcher = Dispatchers.Unconfined, + ) @Test fun searchCrashMeThrows() = runTest { From 6ac59f1cc0f430a159e6097999d85987e66330bf Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Fri, 3 Apr 2026 15:50:38 -0300 Subject: [PATCH 03/30] Add search history feature --- .../org/fdroid/search/SearchHistoryManager.kt | 86 ++++++ .../kotlin/org/fdroid/search/SearchManager.kt | 156 ++++++---- app/src/main/kotlin/org/fdroid/ui/Main.kt | 3 +- .../org/fdroid/ui/discover/DiscoverContent.kt | 3 +- .../org/fdroid/ui/discover/DiscoverModel.kt | 2 - .../fdroid/ui/discover/DiscoverPresenter.kt | 3 - .../fdroid/ui/discover/DiscoverViewModel.kt | 3 - .../org/fdroid/ui/search/GlobalSearch.kt | 65 +++- .../org/fdroid/ui/search/SearchResults.kt | 48 ++- .../org/fdroid/ui/search/SearchViewModel.kt | 6 +- app/src/main/res/values/strings.xml | 1 + .../org/fdroid/ui/discover/DiscoverTest.kt | 2 - .../org/fdroid/ui/search/GlobalSearchTest.kt | 57 +++- .../GlobalSearchEmptyStateTest_2ed8e27d_0.png | 3 + .../fdroid/search/SearchHistoryManagerTest.kt | 133 ++++++++ .../org/fdroid/search/SearchManagerTest.kt | 283 ++++++++++++++++++ .../org/fdroid/ui/search/SearchManagerTest.kt | 186 ------------ 17 files changed, 755 insertions(+), 285 deletions(-) create mode 100644 app/src/main/kotlin/org/fdroid/search/SearchHistoryManager.kt create mode 100644 app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchEmptyStateTest_2ed8e27d_0.png create mode 100644 app/src/test/java/org/fdroid/search/SearchHistoryManagerTest.kt create mode 100644 app/src/test/java/org/fdroid/search/SearchManagerTest.kt delete mode 100644 app/src/test/java/org/fdroid/ui/search/SearchManagerTest.kt diff --git a/app/src/main/kotlin/org/fdroid/search/SearchHistoryManager.kt b/app/src/main/kotlin/org/fdroid/search/SearchHistoryManager.kt new file mode 100644 index 000000000..afe548b81 --- /dev/null +++ b/app/src/main/kotlin/org/fdroid/search/SearchHistoryManager.kt @@ -0,0 +1,86 @@ +package org.fdroid.search + +import android.content.Context +import android.content.Context.MODE_PRIVATE +import androidx.annotation.WorkerThread +import dagger.hilt.android.qualifiers.ApplicationContext +import java.io.FileNotFoundException +import javax.inject.Inject +import javax.inject.Singleton +import kotlinx.serialization.ExperimentalSerializationApi +import kotlinx.serialization.Serializable +import kotlinx.serialization.json.Json +import kotlinx.serialization.json.decodeFromStream +import mu.KotlinLogging + +private const val HISTORY_FILE = "search_history.json" +private const val MAX_SEARCHES = 10 + +@Singleton +class SearchHistoryManager( + private val context: Context, + private val maxNumSearches: Int = MAX_SEARCHES, +) { + private val log = KotlinLogging.logger {} + + @Inject constructor(@ApplicationContext context: Context) : this(context, MAX_SEARCHES) + + @Synchronized + @WorkerThread + @OptIn(ExperimentalSerializationApi::class) + fun getSavedSearches(): List { + return try { + context.openFileInput(HISTORY_FILE).use { inputStream -> + Json.decodeFromStream>(inputStream).sortedByDescending { it.time } + } + } catch (e: Exception) { + if (e !is FileNotFoundException) { + log.error(e) { "Error getting saved searches: " } + clearAll() + } + emptyList() + } + } + + /** Saved the given [query] and returns the updated list of saved searches. */ + @Synchronized + @WorkerThread + fun saveSearchQuery(query: String): List { + log.info { "Saving search query \"$query\"" } + // get existing searches, remove any with the same query + val savedSearches = getSavedSearches().toMutableList() + savedSearches.removeAll { it.query == query } + // keep only the most recent maxNumSearches - 1 searches, so we can add the new one + val searchesToSave = + if (savedSearches.size > maxNumSearches - 1) { + savedSearches.subList(0, maxNumSearches - 1) + } else { + savedSearches + } + // add the new search with the current time + val savedSearch = SavedSearch(System.currentTimeMillis(), query) + searchesToSave.add(savedSearch) + // save searches to disk + try { + context.openFileOutput(HISTORY_FILE, MODE_PRIVATE).use { outputStream -> + outputStream.write(Json.encodeToString(searchesToSave).encodeToByteArray()) + } + } catch (e: Exception) { + log.error(e) { "Error saving $savedSearch: " } + } + return searchesToSave.sortedByDescending { it.time } + } + + @Synchronized + @WorkerThread + fun clearAll(): Boolean { + return try { + context.deleteFile(HISTORY_FILE) + } catch (e: Exception) { + log.error(e) { "Error deleting file: " } + false + } + } +} + +@Serializable data class SavedSearch(val time: Long, val query: String) diff --git a/app/src/main/kotlin/org/fdroid/search/SearchManager.kt b/app/src/main/kotlin/org/fdroid/search/SearchManager.kt index a8cdc8461..042c4910f 100644 --- a/app/src/main/kotlin/org/fdroid/search/SearchManager.kt +++ b/app/src/main/kotlin/org/fdroid/search/SearchManager.kt @@ -1,7 +1,6 @@ package org.fdroid.search import android.database.sqlite.SQLiteException -import androidx.compose.foundation.text.input.TextFieldState import androidx.core.os.LocaleListCompat import androidx.lifecycle.asFlow import java.text.Collator @@ -10,10 +9,15 @@ import javax.inject.Inject import javax.inject.Singleton import kotlin.time.measureTimedValue import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Job +import kotlinx.coroutines.coroutineScope +import kotlinx.coroutines.delay import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.map +import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import mu.KotlinLogging import org.fdroid.LocaleChooser.getBestLocale @@ -35,87 +39,113 @@ import org.fdroid.utils.IoDispatcher class SearchManager @Inject constructor( - private val db: FDroidDatabase, - private val repoManager: RepoManager, - private val settingsManager: SettingsManager, - private val installedAppsCache: InstalledAppsCache, - @param:IoDispatcher private val ioDispatcher: CoroutineDispatcher, + private val db: FDroidDatabase, + private val repoManager: RepoManager, + private val settingsManager: SettingsManager, + private val installedAppsCache: InstalledAppsCache, + private val searchHistoryManager: SearchHistoryManager, + @param:IoDispatcher private val ioDispatcher: CoroutineDispatcher, ) { private val log = KotlinLogging.logger {} private val localeList = LocaleListCompat.getDefault() private val collator = Collator.getInstance(Locale.getDefault()) private val _searchResults = MutableStateFlow(null) - val textFieldState = TextFieldState() - val searchResults = _searchResults.asStateFlow() - + private val _savedSearches = MutableStateFlow?>(null) private val categories = db.getRepositoryDao().getLiveCategories().asFlow().map { categories -> categories .map { category -> - CategoryItem( - id = category.id, - name = category.getName(localeList) ?: "Unknown Category" - ) + CategoryItem(id = category.id, name = category.getName(localeList) ?: "Unknown Category") } .sortedWith { c1, c2 -> collator.compare(c1.name, c2.name) } } + private var searchJob: SearchJob? = null - suspend fun search(term: String) = - withContext(ioDispatcher) { - // we need a way to make the app crash for testing, e.g. the crash reporter - if (term == "CrashMe") error("BOOOOOOOOM!!!") + val searchResults = _searchResults.asStateFlow() + val savedSearches = _savedSearches.asStateFlow() - val sanitized = term.replace(Regex.fromLiteral("\""), "") - val query = SearchQueryRewriter.rewriteQuery(sanitized) - log.info { "Searching for: $query" } - val timedApps = measureTimedValue { - try { - val proxyConfig = settingsManager.proxyConfig - db.getAppDao().getAppSearchItems(query).sortedDescending().mapNotNull { - val repository = - repoManager.getRepository(it.repoId) ?: return@mapNotNull null - val iconModel = - it.getIcon(localeList) - ?.getImageModel(repository, proxyConfig) as? DownloadRequest - val isInstalled = installedAppsCache.isInstalled(it.packageName) - AppListItem( - repoId = it.repoId, - packageName = it.packageName, - name = it.name.getBestLocale(localeList) ?: "Unknown", - summary = it.summary.getBestLocale(localeList) ?: "", - lastUpdated = it.lastUpdated, - isInstalled = isInstalled, - isCompatible = true, // doesn't matter here, as we don't filter - iconModel = - if (isInstalled) { - PackageName(it.packageName, iconModel) - } else { - iconModel - }, - categoryIds = it.categories?.toSet(), - ) - } - } catch (e: SQLiteException) { - log.error(e) { "Error searching for $query: " } - emptyList() - } - } - val timedCategories = measureTimedValue { - categories.first().filter { - // normalization removed diacritics, so searches without them work - it.name.normalize().contains(sanitized.normalize(), ignoreCase = true) - } - } - _searchResults.value = SearchResults(timedApps.value, timedCategories.value) - log.debug { - val numResults = _searchResults.value?.apps?.size ?: 0 - "Search for $query had $numResults results " + - "and took ${timedApps.duration} and ${timedCategories.duration}" + init { + // load saved searches on initialization + CoroutineScope(ioDispatcher).launch { + _savedSearches.value = searchHistoryManager.getSavedSearches() + } + } + + suspend fun search(term: String) { + withContext(ioDispatcher) { + // we need a way to make the app crash for testing, e.g. the crash reporter + if (term == "CrashMe") error("BOOOOOOOOM!!!") + + val sanitized = term.replace(Regex.fromLiteral("\""), "") + val query = SearchQueryRewriter.rewriteQuery(sanitized) + log.info { "Searching for: $query" } + val timedApps = measureTimedValue { + try { + val proxyConfig = settingsManager.proxyConfig + db.getAppDao().getAppSearchItems(query).sortedDescending().mapNotNull { + val repository = repoManager.getRepository(it.repoId) ?: return@mapNotNull null + val iconModel = + it.getIcon(localeList)?.getImageModel(repository, proxyConfig) as? DownloadRequest + val isInstalled = installedAppsCache.isInstalled(it.packageName) + AppListItem( + repoId = it.repoId, + packageName = it.packageName, + name = it.name.getBestLocale(localeList) ?: "Unknown", + summary = it.summary.getBestLocale(localeList) ?: "", + lastUpdated = it.lastUpdated, + isInstalled = isInstalled, + isCompatible = true, // doesn't matter here, as we don't filter + iconModel = + if (isInstalled) { + PackageName(it.packageName, iconModel) + } else { + iconModel + }, + categoryIds = it.categories?.toSet(), + ) } + } catch (e: SQLiteException) { + log.error(e) { "Error searching for $query: " } + emptyList() + } } + val timedCategories = measureTimedValue { + categories.first().filter { + // normalization removed diacritics, so searches without them work + it.name.normalize().contains(sanitized.normalize(), ignoreCase = true) + } + } + _searchResults.value = SearchResults(timedApps.value, timedCategories.value) + log.debug { + val numResults = _searchResults.value?.apps?.size ?: 0 + "Search for $query had $numResults results " + + "and took ${timedApps.duration} and ${timedCategories.duration}" + } + } + coroutineScope { + // cancel previous search job if it's still running, so we don't save search as you type + // incomplete queries + searchJob?.job?.cancel() + val job = + launch(ioDispatcher) { + // debounce, so we don't save every single search if the user is typing quickly + delay(1500) + _savedSearches.value = searchHistoryManager.saveSearchQuery(term) + } + searchJob = SearchJob(job, term) + } + } fun onSearchCleared() { _searchResults.value = null } + + suspend fun onClearSearchHistory() { + withContext(ioDispatcher) { + if (searchHistoryManager.clearAll()) _savedSearches.value = emptyList() + } + } } + +class SearchJob(val job: Job, val query: String) diff --git a/app/src/main/kotlin/org/fdroid/ui/Main.kt b/app/src/main/kotlin/org/fdroid/ui/Main.kt index a18e2804a..a400a9775 100644 --- a/app/src/main/kotlin/org/fdroid/ui/Main.kt +++ b/app/src/main/kotlin/org/fdroid/ui/Main.kt @@ -72,9 +72,10 @@ fun Main(onListeningForIntent: () -> Unit = {}) { ) { val viewModel = hiltViewModel() GlobalSearch( - textFieldState = viewModel.textFieldState, searchResults = viewModel.searchResults.collectAsStateWithLifecycle().value, + savedSearches = viewModel.savedSearchesFlow.collectAsStateWithLifecycle().value, onSearch = viewModel::search, + onClearSavedSearches = viewModel::onClearSearchHistory, onNav = { navKey -> navigator.navigate(navKey) }, onBack = { navigator.goBack() }, onSearchCleared = viewModel::onSearchCleared, diff --git a/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverContent.kt b/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverContent.kt index 47864e821..8b04d03b4 100644 --- a/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverContent.kt +++ b/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverContent.kt @@ -5,6 +5,7 @@ import androidx.compose.foundation.focusable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.text.input.rememberTextFieldState import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -29,7 +30,7 @@ fun DiscoverContent( Column(modifier = modifier) { AppsSearch( onNav = onNav, - textFieldState = discoverModel.searchTextFieldState, + textFieldState = rememberTextFieldState(), modifier = Modifier // focusable is a workaround for https://issuetracker.google.com/issues/445720462 diff --git a/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverModel.kt b/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverModel.kt index 52284cdd0..141ef8b15 100644 --- a/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverModel.kt +++ b/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverModel.kt @@ -1,6 +1,5 @@ package org.fdroid.ui.discover -import androidx.compose.foundation.text.input.TextFieldState import org.fdroid.download.NetworkState import org.fdroid.repo.RepoUpdateState import org.fdroid.ui.categories.CategoryGroup @@ -22,6 +21,5 @@ data class LoadedDiscoverModel( val recentlyUpdatedApps: List, val mostDownloadedApps: List?, val categories: Map>?, - val searchTextFieldState: TextFieldState, val hasRepoIssues: Boolean, ) : DiscoverModel() diff --git a/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverPresenter.kt b/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverPresenter.kt index c6bb2e86a..1645340a6 100644 --- a/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverPresenter.kt +++ b/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverPresenter.kt @@ -1,7 +1,6 @@ package org.fdroid.ui.discover import android.content.pm.PackageInfo -import androidx.compose.foundation.text.input.TextFieldState import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.core.os.LocaleListCompat @@ -26,7 +25,6 @@ fun DiscoverPresenter( mostDownloadedAppsFlow: Flow>, categoriesFlow: Flow>, installedAppsFlow: StateFlow>, - searchTextFieldState: TextFieldState, isFirstStart: Boolean, networkState: NetworkState, repoUpdateStateFlow: StateFlow, @@ -91,7 +89,6 @@ fun DiscoverPresenter( recentlyUpdatedApps = recentlyUpdatedApps ?: emptyList(), mostDownloadedApps = mostDownloadedApps, categories = categories?.groupBy { it.group }, - searchTextFieldState = searchTextFieldState, hasRepoIssues = hasRepoIssuesFlow.collectAsState(false).value, ) } else { diff --git a/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverViewModel.kt b/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverViewModel.kt index c67782106..bb66e6baf 100644 --- a/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverViewModel.kt +++ b/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverViewModel.kt @@ -31,7 +31,6 @@ import org.fdroid.install.InstalledAppsCache import org.fdroid.repo.RepoUpdateManager import org.fdroid.settings.SettingsManager import org.fdroid.ui.categories.CategoryItem -import org.fdroid.search.SearchManager @HiltViewModel class DiscoverViewModel @@ -42,7 +41,6 @@ constructor( private val db: FDroidDatabase, networkMonitor: NetworkMonitor, private val settingsManager: SettingsManager, - private val searchManager: SearchManager, private val repoManager: RepoManager, private val repoUpdateManager: RepoUpdateManager, private val installedAppsCache: InstalledAppsCache, @@ -94,7 +92,6 @@ constructor( mostDownloadedAppsFlow = mostDownloadedApps, categoriesFlow = categories, installedAppsFlow = installedAppsCache.installedApps, - searchTextFieldState = searchManager.textFieldState, isFirstStart = settingsManager.isFirstStart, // not observing the flow, but just taking the current value, // because we kick off repo updates from the UI depending on this state diff --git a/app/src/main/kotlin/org/fdroid/ui/search/GlobalSearch.kt b/app/src/main/kotlin/org/fdroid/ui/search/GlobalSearch.kt index 271218902..fed4eb341 100644 --- a/app/src/main/kotlin/org/fdroid/ui/search/GlobalSearch.kt +++ b/app/src/main/kotlin/org/fdroid/ui/search/GlobalSearch.kt @@ -12,9 +12,11 @@ import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Scaffold import androidx.compose.material3.SearchBarDefaults import androidx.compose.runtime.Composable +import androidx.compose.runtime.DisposableEffect import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.tooling.preview.Preview +import org.fdroid.search.SavedSearch import org.fdroid.ui.FDroidContent import org.fdroid.ui.navigation.NavigationKey import org.fdroid.ui.utils.appListItems @@ -23,9 +25,11 @@ import org.fdroid.ui.utils.categoryItems @Composable @OptIn(ExperimentalMaterial3Api::class) fun GlobalSearch( - textFieldState: TextFieldState, + textFieldState: TextFieldState = rememberTextFieldState(), searchResults: SearchResults?, + savedSearches: List? = null, onSearch: suspend (String) -> Unit, + onClearSavedSearches: () -> Unit, onNav: (NavigationKey) -> Unit, onBack: () -> Unit, onSearchCleared: () -> Unit, @@ -38,19 +42,24 @@ fun GlobalSearch( onSearchCleared = onSearchCleared, onHideSearch = onBack, ) - }, + } ) { paddingValues -> + // clear search results when leaving screen + DisposableEffect(Unit) { onDispose { onSearchCleared() } } HorizontalDivider( color = SearchBarDefaults.colors().dividerColor, - modifier = Modifier.padding( - start = paddingValues.calculateStartPadding(LocalLayoutDirection.current), - end = paddingValues.calculateEndPadding(LocalLayoutDirection.current), - top = paddingValues.calculateTopPadding(), - ), + modifier = + Modifier.padding( + start = paddingValues.calculateStartPadding(LocalLayoutDirection.current), + end = paddingValues.calculateEndPadding(LocalLayoutDirection.current), + top = paddingValues.calculateTopPadding(), + ), ) SearchResults( searchResults = searchResults, textFieldState = textFieldState, + savedSearches = savedSearches, + onClearSavedSearches = onClearSavedSearches, onNav = onNav, paddingValues = paddingValues, modifier = Modifier, @@ -64,18 +73,50 @@ fun GlobalSearch( private fun AppsSearchLoadingPreview() { FDroidContent { val textFieldState = rememberTextFieldState("foo bar") - Box(Modifier.fillMaxSize()) { GlobalSearch(textFieldState, null, {}, {}, {}, {}) } + Box(Modifier.fillMaxSize()) { GlobalSearch(textFieldState, null, null, {}, {}, {}, {}, {}) } } } @Preview @Composable @OptIn(ExperimentalMaterial3Api::class) -private fun AppsSearchEmptyPreview() { +private fun AppsSearchEmptyStatePreview() { + FDroidContent { + val textFieldState = rememberTextFieldState("f") + val savedSearches = + listOf(SavedSearch(1, "foo"), SavedSearch(2, "foo bar"), SavedSearch(3, "foobar")) + Box(Modifier.fillMaxSize()) { + GlobalSearch( + textFieldState = textFieldState, + searchResults = null, + savedSearches = savedSearches, + onSearch = {}, + onClearSavedSearches = {}, + onNav = {}, + onBack = {}, + onSearchCleared = {}, + ) + } + } +} + +@Preview +@Composable +@OptIn(ExperimentalMaterial3Api::class) +private fun AppsSearchNoResultsPreview() { FDroidContent { val textFieldState = rememberTextFieldState("foo") Box(Modifier.fillMaxSize()) { - GlobalSearch(textFieldState, SearchResults(emptyList(), emptyList()), {}, {}, {}, {}) + GlobalSearch( + textFieldState = textFieldState, + searchResults = SearchResults(emptyList(), emptyList()), + savedSearches = emptyList(), + onSearch = {}, + onClearSavedSearches = {}, + onNav = {}, + onBack = {}, + onSearchCleared = {}, + ) } } } @@ -90,7 +131,9 @@ private fun AppsSearchOnlyCategoriesPreview() { GlobalSearch( textFieldState = textFieldState, searchResults = SearchResults(emptyList(), categoryItems.subList(3, 5)), + savedSearches = emptyList(), onSearch = {}, + onClearSavedSearches = {}, onNav = {}, onBack = {}, onSearchCleared = {}, @@ -109,7 +152,9 @@ private fun AppsSearchPreview() { GlobalSearch( textFieldState = textFieldState, searchResults = SearchResults(appListItems, categoryItems.subList(0, 4)), + savedSearches = emptyList(), onSearch = {}, + onClearSavedSearches = {}, onNav = {}, onBack = {}, onSearchCleared = {}, diff --git a/app/src/main/kotlin/org/fdroid/ui/search/SearchResults.kt b/app/src/main/kotlin/org/fdroid/ui/search/SearchResults.kt index 819403778..9481ca94f 100644 --- a/app/src/main/kotlin/org/fdroid/ui/search/SearchResults.kt +++ b/app/src/main/kotlin/org/fdroid/ui/search/SearchResults.kt @@ -1,8 +1,10 @@ package org.fdroid.ui.search +import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.imePadding @@ -10,17 +12,25 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.text.input.TextFieldState +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.History import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.Icon +import androidx.compose.material3.ListItem import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text +import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import org.fdroid.R +import org.fdroid.search.SavedSearch import org.fdroid.ui.categories.CategoryChip import org.fdroid.ui.categories.CategoryItem import org.fdroid.ui.categories.ChipFlowRow @@ -36,6 +46,8 @@ data class SearchResults(val apps: List, val categories: List?, + onClearSavedSearches: () -> Unit, onNav: (NavigationKey) -> Unit, paddingValues: PaddingValues, modifier: Modifier, @@ -44,7 +56,41 @@ fun SearchResults( val listState = rememberSaveable(searchResults, saver = LazyListState.Saver) { LazyListState(0, 0) } if (searchResults == null) { - if (textFieldState.text.length >= SEARCH_THRESHOLD) { + if (textFieldState.text.length < SEARCH_THRESHOLD) { + if (!savedSearches.isNullOrEmpty()) { + LazyColumn(contentPadding = paddingValues, modifier = modifier.fillMaxSize().imePadding()) { + item { + Row { + Text( + text = stringResource(R.string.search_history), + style = MaterialTheme.typography.labelLarge, + modifier = Modifier.padding(vertical = 8.dp, horizontal = 16.dp).weight(1f), + ) + TextButton(onClick = onClearSavedSearches) { Text(stringResource(R.string.clear)) } + } + } + items(savedSearches) { item -> + ListItem( + leadingContent = { + Icon( + Icons.Default.History, + contentDescription = null, + modifier = + Modifier.clip(CircleShape) + .background(MaterialTheme.colorScheme.surfaceContainer) + .padding(8.dp), + ) + }, + headlineContent = { Text(item.query) }, + modifier = + Modifier.fillMaxWidth().animateItem().clickable { + textFieldState.edit { replace(0, length, item.query) } + }, + ) + } + } + } + } else { BigLoadingIndicator(modifier.padding(paddingValues).imePadding()) } } else if (searchResults.apps.isEmpty() && textFieldState.text.length >= SEARCH_THRESHOLD) { diff --git a/app/src/main/kotlin/org/fdroid/ui/search/SearchViewModel.kt b/app/src/main/kotlin/org/fdroid/ui/search/SearchViewModel.kt index 520bb95f2..5ad895b42 100644 --- a/app/src/main/kotlin/org/fdroid/ui/search/SearchViewModel.kt +++ b/app/src/main/kotlin/org/fdroid/ui/search/SearchViewModel.kt @@ -2,8 +2,10 @@ package org.fdroid.ui.search import android.app.Application import androidx.lifecycle.AndroidViewModel +import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel import jakarta.inject.Inject +import kotlinx.coroutines.launch import org.fdroid.search.SearchManager @HiltViewModel @@ -11,10 +13,12 @@ class SearchViewModel @Inject constructor(app: Application, private val searchManager: SearchManager) : AndroidViewModel(app) { - val textFieldState = searchManager.textFieldState val searchResults = searchManager.searchResults + val savedSearchesFlow = searchManager.savedSearches suspend fun search(term: String) = searchManager.search(term) fun onSearchCleared() = searchManager.onSearchCleared() + + fun onClearSearchHistory() = viewModelScope.launch { searchManager.onClearSearchHistory() } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 959895584..703a205e6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -34,6 +34,7 @@ Apps by %s Search… + Recent searches No apps found\n\nTry using fewer search terms or add more repositories No matching apps\n\nTry using fewer search terms or remove filters No matching apps\n\nTry using fewer search terms diff --git a/app/src/screenshotTest/kotlin/org/fdroid/ui/discover/DiscoverTest.kt b/app/src/screenshotTest/kotlin/org/fdroid/ui/discover/DiscoverTest.kt index c610a20b0..d046e370e 100644 --- a/app/src/screenshotTest/kotlin/org/fdroid/ui/discover/DiscoverTest.kt +++ b/app/src/screenshotTest/kotlin/org/fdroid/ui/discover/DiscoverTest.kt @@ -1,7 +1,6 @@ package org.fdroid.ui.discover import android.content.res.Configuration -import androidx.compose.foundation.text.input.TextFieldState import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview import com.android.tools.screenshot.PreviewTest @@ -132,7 +131,6 @@ private fun getLoadedModel(): LoadedDiscoverModel { recentlyUpdatedApps = recentlyUpdatedApps, mostDownloadedApps = mostDownloadedApps, categories = categories, - searchTextFieldState = TextFieldState(), hasRepoIssues = true, ) } diff --git a/app/src/screenshotTest/kotlin/org/fdroid/ui/search/GlobalSearchTest.kt b/app/src/screenshotTest/kotlin/org/fdroid/ui/search/GlobalSearchTest.kt index da224844a..d1d73858a 100644 --- a/app/src/screenshotTest/kotlin/org/fdroid/ui/search/GlobalSearchTest.kt +++ b/app/src/screenshotTest/kotlin/org/fdroid/ui/search/GlobalSearchTest.kt @@ -5,6 +5,7 @@ import androidx.compose.foundation.text.input.rememberTextFieldState import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview import com.android.tools.screenshot.PreviewTest +import org.fdroid.search.SavedSearch import org.fdroid.ui.ScreenshotTest import org.fdroid.ui.utils.appListItems import org.fdroid.ui.utils.categoryItems @@ -16,9 +17,31 @@ fun GlobalSearchEmptyTest() = ScreenshotTest(showBottomBar = false) { val textFieldState = rememberTextFieldState() GlobalSearch( - textFieldState, - null, + textFieldState = textFieldState, + searchResults = null, + savedSearches = emptyList(), onSearch = {}, + onClearSavedSearches = {}, + onNav = {}, + onBack = {}, + onSearchCleared = {}, + ) + } + +@Composable +@PreviewTest +@Preview(showBackground = true, showSystemUi = true) +fun GlobalSearchEmptyStateTest() = + ScreenshotTest(showBottomBar = false) { + val savedSearches = + listOf(SavedSearch(1, "Browser"), SavedSearch(2, "media player"), SavedSearch(3, "email app")) + val textFieldState = rememberTextFieldState() + GlobalSearch( + textFieldState = textFieldState, + searchResults = null, + savedSearches = savedSearches, + onSearch = {}, + onClearSavedSearches = {}, onNav = {}, onBack = {}, onSearchCleared = {}, @@ -32,9 +55,11 @@ fun GlobalSearchLoadingTest() = ScreenshotTest(showBottomBar = false) { val textFieldState = rememberTextFieldState("foo bar") GlobalSearch( - textFieldState, - null, + textFieldState = textFieldState, + searchResults = null, + savedSearches = emptyList(), onSearch = {}, + onClearSavedSearches = {}, onNav = {}, onBack = {}, onSearchCleared = {}, @@ -48,9 +73,11 @@ fun GlobalSearchNoResultsTest() = ScreenshotTest(showBottomBar = false) { val textFieldState = rememberTextFieldState("foo") GlobalSearch( - textFieldState, - SearchResults(emptyList(), emptyList()), + textFieldState = textFieldState, + searchResults = SearchResults(emptyList(), emptyList()), + savedSearches = emptyList(), onSearch = {}, + onClearSavedSearches = {}, onNav = {}, onBack = {}, onSearchCleared = {}, @@ -64,9 +91,11 @@ fun GlobalSearchResultsTest() = ScreenshotTest(showBottomBar = false) { val textFieldState = rememberTextFieldState("foo bar") GlobalSearch( - textFieldState, - SearchResults(appListItems, categoryItems.subList(0, 4)), + textFieldState = textFieldState, + searchResults = SearchResults(appListItems, categoryItems.subList(0, 4)), + savedSearches = emptyList(), onSearch = {}, + onClearSavedSearches = {}, onNav = {}, onBack = {}, onSearchCleared = {}, @@ -80,9 +109,11 @@ fun GlobalSearchOnlyCategoriesTest() = ScreenshotTest(showBottomBar = false) { val textFieldState = rememberTextFieldState("foo bar") GlobalSearch( - textFieldState, - SearchResults(emptyList(), categoryItems.subList(5, 9)), + textFieldState = textFieldState, + searchResults = SearchResults(emptyList(), categoryItems.subList(5, 9)), + savedSearches = emptyList(), onSearch = {}, + onClearSavedSearches = {}, onNav = {}, onBack = {}, onSearchCleared = {}, @@ -100,9 +131,11 @@ fun GlobalSearchResultsNightTest() = ScreenshotTest(showBottomBar = false) { val textFieldState = rememberTextFieldState("foo bar") GlobalSearch( - textFieldState, - SearchResults(appListItems, categoryItems.subList(0, 4)), + textFieldState = textFieldState, + searchResults = SearchResults(appListItems, categoryItems.subList(0, 4)), + savedSearches = emptyList(), onSearch = {}, + onClearSavedSearches = {}, onNav = {}, onBack = {}, onSearchCleared = {}, diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchEmptyStateTest_2ed8e27d_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchEmptyStateTest_2ed8e27d_0.png new file mode 100644 index 000000000..0737be26d --- /dev/null +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchEmptyStateTest_2ed8e27d_0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6eb1c82199e7d0ace698bdc95b523bef51a761eaa22698dfefae3ff5f2419ca3 +size 56180 diff --git a/app/src/test/java/org/fdroid/search/SearchHistoryManagerTest.kt b/app/src/test/java/org/fdroid/search/SearchHistoryManagerTest.kt new file mode 100644 index 000000000..0e6c8f41d --- /dev/null +++ b/app/src/test/java/org/fdroid/search/SearchHistoryManagerTest.kt @@ -0,0 +1,133 @@ +package org.fdroid.search + +import android.content.Context +import android.content.Context.MODE_PRIVATE +import io.mockk.every +import io.mockk.mockk +import io.mockk.verify +import java.io.FileNotFoundException +import java.io.FileOutputStream +import kotlin.test.assertEquals +import kotlin.test.assertTrue +import kotlinx.serialization.json.Json +import org.junit.Rule +import org.junit.Test +import org.junit.rules.TemporaryFolder + +internal class SearchHistoryManagerTest { + + @get:Rule val tempFolder = TemporaryFolder() + + private val context: Context = mockk() + private val manager = SearchHistoryManager(context) + + @Test + fun testGetSavedSearchesSortedByNewest() { + val file = tempFolder.newFile() + val unsorted = + listOf( + SavedSearch(time = 10L, query = "a"), + SavedSearch(time = 30L, query = "c"), + SavedSearch(time = 20L, query = "b"), + ) + file.writeText(Json.encodeToString(unsorted)) + every { context.openFileInput(any()) } answers { file.inputStream() } + + val saved = manager.getSavedSearches() + + assertEquals(listOf(30L, 20L, 10L), saved.map { it.time }) + assertEquals(listOf("c", "b", "a"), saved.map { it.query }) + } + + @Test + fun testSaveGetAndClear() { + val file = tempFolder.newFile() + file.writeText("[]") + every { context.openFileInput(any()) } answers { file.inputStream() } + every { context.openFileOutput(any(), MODE_PRIVATE) } answers { FileOutputStream(file, false) } + every { context.deleteFile(any()) } returns true + + val savedFromSave = manager.saveSearchQuery("foo") + val savedFromDisk = manager.getSavedSearches() + + assertEquals(1, savedFromSave.size) + assertEquals("foo", savedFromSave.first().query) + assertEquals(1, savedFromDisk.size) + assertEquals("foo", savedFromDisk.first().query) + + assertTrue(manager.clearAll()) + verify { context.deleteFile(any()) } + } + + @Test + fun testSaveSearchQueryDeduplicatesExistingQuery() { + val file = tempFolder.newFile() + val existing = + listOf(SavedSearch(time = 200L, query = "foo"), SavedSearch(time = 100L, query = "bar")) + file.writeText(Json.encodeToString(existing)) + every { context.openFileInput(any()) } answers { file.inputStream() } + every { context.openFileOutput(any(), MODE_PRIVATE) } answers { FileOutputStream(file, false) } + + val saved = manager.saveSearchQuery("foo") + + assertEquals(2, saved.size) + assertEquals(1, saved.count { it.query == "foo" }) + assertEquals(1, saved.count { it.query == "bar" }) + } + + @Test + fun testSaveSearchQueryCapsSavedEntriesAtMax() { + val maxSearches = 3 + val cappedManager = SearchHistoryManager(context, maxSearches) + val file = tempFolder.newFile() + val existing = + listOf( + SavedSearch(time = 400L, query = "q4"), + SavedSearch(time = 300L, query = "q3"), + SavedSearch(time = 200L, query = "q2"), + SavedSearch(time = 100L, query = "q1"), + ) + file.writeText(Json.encodeToString(existing)) + every { context.openFileInput(any()) } answers { file.inputStream() } + every { context.openFileOutput(any(), MODE_PRIVATE) } answers { FileOutputStream(file, false) } + + val savedFromSave = cappedManager.saveSearchQuery("new-query") + val savedFromDisk = cappedManager.getSavedSearches() + + assertEquals(maxSearches, savedFromSave.size) + assertEquals(maxSearches, savedFromDisk.size) + assertTrue(savedFromSave.any { it.query == "new-query" }) + assertTrue(savedFromDisk.any { it.query == "new-query" }) + } + + @Test + fun testGetSavedSearchesReturnsEmptyForMissingFile() { + every { context.openFileInput(any()) } throws FileNotFoundException() + + val saved = manager.getSavedSearches() + + assertTrue(saved.isEmpty()) + verify(exactly = 0) { context.deleteFile(any()) } + } + + @Test + fun testGetSavedSearchesCorruptFileClearsAndReturnsEmpty() { + val file = tempFolder.newFile() + file.writeText("not valid json") + every { context.openFileInput(any()) } answers { file.inputStream() } + every { context.deleteFile(any()) } returns true + + val saved = manager.getSavedSearches() + + assertTrue(saved.isEmpty()) + verify(exactly = 1) { context.deleteFile(any()) } + } + + @Test + fun testClearAllReturnsFalseWhenDeleteFails() { + every { context.deleteFile(any()) } returns false + + assertEquals(false, manager.clearAll()) + verify(exactly = 1) { context.deleteFile(any()) } + } +} diff --git a/app/src/test/java/org/fdroid/search/SearchManagerTest.kt b/app/src/test/java/org/fdroid/search/SearchManagerTest.kt new file mode 100644 index 000000000..9fb8515d7 --- /dev/null +++ b/app/src/test/java/org/fdroid/search/SearchManagerTest.kt @@ -0,0 +1,283 @@ +package org.fdroid.search + +import android.database.sqlite.SQLiteException +import androidx.arch.core.executor.testing.InstantTaskExecutorRule +import androidx.lifecycle.MutableLiveData +import io.mockk.coEvery +import io.mockk.every +import io.mockk.mockk +import io.mockk.slot +import io.mockk.verify +import kotlin.test.assertEquals +import kotlin.test.assertFailsWith +import kotlin.test.assertIs +import kotlin.test.assertNotNull +import kotlin.test.assertNull +import kotlin.test.assertTrue +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.launch +import kotlinx.coroutines.test.StandardTestDispatcher +import kotlinx.coroutines.test.advanceTimeBy +import kotlinx.coroutines.test.advanceUntilIdle +import kotlinx.coroutines.test.runCurrent +import kotlinx.coroutines.test.runTest +import kotlinx.coroutines.test.setMain +import org.fdroid.database.AppDao +import org.fdroid.database.AppSearchItem +import org.fdroid.database.Category +import org.fdroid.database.FDroidDatabase +import org.fdroid.database.Repository +import org.fdroid.database.RepositoryDao +import org.fdroid.download.PackageName +import org.fdroid.index.RepoManager +import org.fdroid.install.InstalledAppsCache +import org.fdroid.settings.SettingsManager +import org.junit.Rule +import org.junit.Test + +@OptIn(ExperimentalCoroutinesApi::class) +internal class SearchManagerTest { + + @get:Rule + val instantTaskExecutorRule = InstantTaskExecutorRule() + + private val db: FDroidDatabase = mockk() + private val appDao: AppDao = mockk() + private val repositoryDao: RepositoryDao = mockk() + private val repoManager: RepoManager = mockk() + private val settingsManager: SettingsManager = mockk() + private val installedAppsCache: InstalledAppsCache = mockk() + private val searchHistoryManager: SearchHistoryManager = mockk() + private val categoriesLiveData = MutableLiveData>(emptyList()) + + private val repo: Repository = mockk(relaxed = true) + + init { + Dispatchers.setMain(Dispatchers.Unconfined) + + every { db.getAppDao() } returns appDao + every { db.getRepositoryDao() } returns repositoryDao + every { repositoryDao.getLiveCategories() } returns categoriesLiveData + every { settingsManager.proxyConfig } returns null + every { repoManager.getRepository(any()) } returns repo + every { installedAppsCache.isInstalled(any()) } returns false + every { searchHistoryManager.getSavedSearches() } returns emptyList() + every { searchHistoryManager.saveSearchQuery(any()) } answers + { + listOf(SavedSearch(time = 1L, query = firstArg())) + } + every { searchHistoryManager.clearAll() } returns true + } + + private val searchManager = + SearchManager( + db = db, + repoManager = repoManager, + settingsManager = settingsManager, + installedAppsCache = installedAppsCache, + searchHistoryManager = searchHistoryManager, + ioDispatcher = Dispatchers.Unconfined, + ) + + @Test + fun searchCrashMeThrows() = runTest { + assertFailsWith { searchManager.search("CrashMe") } + } + + @Test + fun searchBuildsPrefixQueryForSingleWord() = runTest { + val querySlot = slot() + coEvery { appDao.getAppSearchItems(capture(querySlot)) } returns emptyList() + + searchManager.search("foo") + + assertEquals("foo*", querySlot.captured) + } + + @Test + fun searchBuildsComplexQueryForMultipleWordsAndSanitizesQuotes() = runTest { + val querySlot = slot() + coEvery { appDao.getAppSearchItems(capture(querySlot)) } returns emptyList() + + searchManager.search("foo \"bar\"") + + assertEquals("foo* bar* OR foobar* OR \"foo* bar*\"", querySlot.captured) + } + + @Test + fun searchBuildsCjkQueryBySplittingIdeographicCharacters() = runTest { + val querySlot = slot() + coEvery { appDao.getAppSearchItems(capture(querySlot)) } returns emptyList() + + searchManager.search("測試") + + assertEquals("測* 試* OR \"測\u200B試*\" OR 測試*", querySlot.captured) + } + + @Test + fun searchBuildsMultiWordCjkQuery() = runTest { + val querySlot = slot() + coEvery { appDao.getAppSearchItems(capture(querySlot)) } returns emptyList() + + searchManager.search("測試 艾星") + + assertEquals( + "測* 試* 艾* 星* OR \"測\u200B試*\" \"艾\u200B星*\" OR 測試* 艾星*", + querySlot.captured + ) + } + + @Test + fun searchUsesLocalIconForInstalledApps() = runTest { + val item = buildSearchItem(packageName = "com.example.installed", repoId = 1L) + coEvery { appDao.getAppSearchItems(any()) } returns listOf(item) + every { installedAppsCache.isInstalled("com.example.installed") } returns true + + searchManager.search("installed") + + val results = searchManager.searchResults.value + assertNotNull(results) + assertEquals(1, results.apps.size) + val listItem = results.apps.first() + assertTrue(listItem.isInstalled) + assertIs(listItem.iconModel) + assertEquals("com.example.installed", listItem.iconModel.packageName) + } + + @Test + fun searchIsEmptyWhenThrowsSQLiteException() = runTest { + coEvery { appDao.getAppSearchItems(any()) } throws SQLiteException("boom") + + searchManager.search("boom") + + val results = searchManager.searchResults.value + assertNotNull(results) + assertTrue(results.apps.isEmpty()) + } + + @Test + fun searchFiltersCategoriesUsingNormalizedMatching() = runTest { + val category = Category(repoId = 1L, id = "coffee", name = mapOf("en-US" to "Café")) + categoriesLiveData.value = listOf(category) + coEvery { appDao.getAppSearchItems(any()) } returns emptyList() + + searchManager.search("cafe") + + val results = searchManager.searchResults.value + assertNotNull(results) + assertEquals(1, results.categories.size) + assertEquals("Café", results.categories.first().name) + } + + @Test + fun onSearchClearedResetsResultsToNull() = runTest { + coEvery { appDao.getAppSearchItems(any()) } returns emptyList() + + searchManager.search("foo") + assertNotNull(searchManager.searchResults.value) + + searchManager.onSearchCleared() + + assertNull(searchManager.searchResults.value) + } + + @Test + fun searchSavesQueryInHistory() = runTest { + val expected = listOf(SavedSearch(time = 999L, query = "foo")) + every { searchHistoryManager.saveSearchQuery("foo") } returns expected + coEvery { appDao.getAppSearchItems(any()) } returns emptyList() + + advanceUntilIdle() + searchManager.search("foo") + + verify(exactly = 1) { searchHistoryManager.saveSearchQuery("foo") } + assertEquals(expected, searchManager.savedSearches.value) + } + + @Test + fun searchDebouncesAndSavesOnlyAfterDelay() = runTest { + val searchManager = SearchManager( + db = db, + repoManager = repoManager, + settingsManager = settingsManager, + installedAppsCache = installedAppsCache, + searchHistoryManager = searchHistoryManager, + ioDispatcher = StandardTestDispatcher(testScheduler), + ) + + val expected = listOf(SavedSearch(time = 999L, query = "foo")) + every { searchHistoryManager.saveSearchQuery("foo") } returns expected + coEvery { appDao.getAppSearchItems(any()) } returns emptyList() + + advanceUntilIdle() + + val searchJob = launch { searchManager.search("foo") } + runCurrent() + verify(exactly = 0) { searchHistoryManager.saveSearchQuery(any()) } + + advanceTimeBy(1499) + runCurrent() + verify(exactly = 0) { searchHistoryManager.saveSearchQuery(any()) } + + advanceTimeBy(1) + runCurrent() + verify(exactly = 1) { searchHistoryManager.saveSearchQuery("foo") } + assertEquals(expected, searchManager.savedSearches.value) + + searchJob.join() + } + + @Test + fun onClearSearchHistoryClearsAfterDelete() = runTest { + val initial = listOf(SavedSearch(time = 123L, query = "first")) + every { searchHistoryManager.getSavedSearches() } returns initial + every { searchHistoryManager.clearAll() } returns true + + searchManager.onClearSearchHistory() + + verify(exactly = 1) { searchHistoryManager.clearAll() } + assertEquals(emptyList(), searchManager.savedSearches.value) + } + + @Test + fun onClearSearchHistoryKeepsSavedSearchesWhenDeleteFails() = runTest { + val searchManager = SearchManager( + db = db, + repoManager = repoManager, + settingsManager = settingsManager, + installedAppsCache = installedAppsCache, + searchHistoryManager = searchHistoryManager, + ioDispatcher = StandardTestDispatcher(testScheduler), + ) + + val initial = listOf(SavedSearch(time = 123L, query = "first")) + every { searchHistoryManager.getSavedSearches() } returns initial + every { searchHistoryManager.clearAll() } returns false + + advanceUntilIdle() + searchManager.onClearSearchHistory() + + verify(exactly = 1) { searchHistoryManager.clearAll() } + assertEquals(initial, searchManager.savedSearches.value) + } + + private fun buildSearchItem( + packageName: String, + repoId: Long = 1L, + appName: String = "Test App", + summary: String = "Test Summary", + lastUpdated: Long = 1234L, + categories: List? = null, + ): AppSearchItem { + val item: AppSearchItem = mockk() + every { item.repoId } returns repoId + every { item.packageName } returns packageName + every { item.lastUpdated } returns lastUpdated + every { item.name } returns mapOf("en-US" to appName) + every { item.summary } returns mapOf("en-US" to summary) + every { item.categories } returns categories + every { item.getIcon(any()) } returns null + return item + } +} diff --git a/app/src/test/java/org/fdroid/ui/search/SearchManagerTest.kt b/app/src/test/java/org/fdroid/ui/search/SearchManagerTest.kt deleted file mode 100644 index 95bcd2604..000000000 --- a/app/src/test/java/org/fdroid/ui/search/SearchManagerTest.kt +++ /dev/null @@ -1,186 +0,0 @@ -package org.fdroid.ui.search - -import android.database.sqlite.SQLiteException -import androidx.arch.core.executor.testing.InstantTaskExecutorRule -import androidx.lifecycle.MutableLiveData -import io.mockk.coEvery -import io.mockk.every -import io.mockk.mockk -import io.mockk.slot -import kotlin.test.assertEquals -import kotlin.test.assertFailsWith -import kotlin.test.assertIs -import kotlin.test.assertNotNull -import kotlin.test.assertNull -import kotlin.test.assertTrue -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.test.runTest -import kotlinx.coroutines.test.setMain -import org.fdroid.database.AppDao -import org.fdroid.database.AppSearchItem -import org.fdroid.database.Category -import org.fdroid.database.FDroidDatabase -import org.fdroid.database.Repository -import org.fdroid.database.RepositoryDao -import org.fdroid.download.PackageName -import org.fdroid.index.RepoManager -import org.fdroid.install.InstalledAppsCache -import org.fdroid.search.SearchManager -import org.fdroid.settings.SettingsManager -import org.junit.Rule -import org.junit.Test - -@OptIn(ExperimentalCoroutinesApi::class) -internal class SearchManagerTest { - - @get:Rule val instantTaskExecutorRule = InstantTaskExecutorRule() - - private val db: FDroidDatabase = mockk() - private val appDao: AppDao = mockk() - private val repositoryDao: RepositoryDao = mockk() - private val repoManager: RepoManager = mockk() - private val settingsManager: SettingsManager = mockk() - private val installedAppsCache: InstalledAppsCache = mockk() - private val categoriesLiveData = MutableLiveData>(emptyList()) - - private val repo: Repository = mockk(relaxed = true) - - init { - Dispatchers.setMain(Dispatchers.Unconfined) - - every { db.getAppDao() } returns appDao - every { db.getRepositoryDao() } returns repositoryDao - every { repositoryDao.getLiveCategories() } returns categoriesLiveData - every { settingsManager.proxyConfig } returns null - every { repoManager.getRepository(any()) } returns repo - every { installedAppsCache.isInstalled(any()) } returns false - } - - private val searchManager = - SearchManager( - db = db, - repoManager = repoManager, - settingsManager = settingsManager, - installedAppsCache = installedAppsCache, - ioDispatcher = Dispatchers.Unconfined, - ) - - @Test - fun searchCrashMeThrows() = runTest { - assertFailsWith { searchManager.search("CrashMe") } - } - - @Test - fun searchBuildsPrefixQueryForSingleWord() = runTest { - val querySlot = slot() - coEvery { appDao.getAppSearchItems(capture(querySlot)) } returns emptyList() - - searchManager.search("foo") - - assertEquals("foo*", querySlot.captured) - } - - @Test - fun searchBuildsComplexQueryForMultipleWordsAndSanitizesQuotes() = runTest { - val querySlot = slot() - coEvery { appDao.getAppSearchItems(capture(querySlot)) } returns emptyList() - - searchManager.search("foo \"bar\"") - - assertEquals("foo* bar* OR foobar* OR \"foo* bar*\"", querySlot.captured) - } - - @Test - fun searchBuildsCjkQueryBySplittingIdeographicCharacters() = runTest { - val querySlot = slot() - coEvery { appDao.getAppSearchItems(capture(querySlot)) } returns emptyList() - - searchManager.search("測試") - - assertEquals("測* 試* OR \"測\u200B試*\" OR 測試*", querySlot.captured) - } - - @Test - fun searchBuildsMultiWordCjkQuery() = runTest { - val querySlot = slot() - coEvery { appDao.getAppSearchItems(capture(querySlot)) } returns emptyList() - - searchManager.search("測試 艾星") - - assertEquals("測* 試* 艾* 星* OR \"測\u200B試*\" \"艾\u200B星*\" OR 測試* 艾星*", querySlot.captured) - } - - @Test - fun searchUsesLocalIconForInstalledApps() = runTest { - val item = buildSearchItem(packageName = "com.example.installed", repoId = 1L) - coEvery { appDao.getAppSearchItems(any()) } returns listOf(item) - every { installedAppsCache.isInstalled("com.example.installed") } returns true - - searchManager.search("installed") - - val results = searchManager.searchResults.value - assertNotNull(results) - assertEquals(1, results.apps.size) - val listItem = results.apps.first() - assertTrue(listItem.isInstalled) - assertIs(listItem.iconModel) - assertEquals("com.example.installed", listItem.iconModel.packageName) - } - - @Test - fun searchIsEmptyWhenThrowsSQLiteException() = runTest { - coEvery { appDao.getAppSearchItems(any()) } throws SQLiteException("boom") - - searchManager.search("boom") - - val results = searchManager.searchResults.value - assertNotNull(results) - assertTrue(results.apps.isEmpty()) - } - - @Test - fun searchFiltersCategoriesUsingNormalizedMatching() = runTest { - val category = Category(repoId = 1L, id = "coffee", name = mapOf("en-US" to "Café")) - categoriesLiveData.value = listOf(category) - coEvery { appDao.getAppSearchItems(any()) } returns emptyList() - - searchManager.search("cafe") - - val results = searchManager.searchResults.value - assertNotNull(results) - assertEquals(1, results.categories.size) - assertEquals("Café", results.categories.first().name) - } - - @Test - fun onSearchClearedResetsResultsToNull() = runTest { - coEvery { appDao.getAppSearchItems(any()) } returns emptyList() - - searchManager.search("foo") - assertNotNull(searchManager.searchResults.value) - - searchManager.onSearchCleared() - - assertNull(searchManager.searchResults.value) - } - - private fun buildSearchItem( - packageName: String, - repoId: Long = 1L, - appName: String = "Test App", - summary: String = "Test Summary", - lastUpdated: Long = 1234L, - categories: List? = null, - ): AppSearchItem { - val item: AppSearchItem = mockk() - every { item.repoId } returns repoId - every { item.packageName } returns packageName - every { item.lastUpdated } returns lastUpdated - every { item.name } returns mapOf("en-US" to appName) - every { item.summary } returns mapOf("en-US" to summary) - every { item.categories } returns categories - every { item.getIcon(any()) } returns null - return item - } -} From 98c7d3cb71e0703daabb7356e7c3734ab366694e Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Mon, 6 Apr 2026 13:58:22 -0300 Subject: [PATCH 04/30] Move search into bottom nav bar --- .../ui/screenshots/DiscoverScreenshotTest.kt | 3 - .../ui/screenshots/LocalizedScreenshotTest.kt | 9 +- .../fdroid/{ui => }/search/SearchHelper.kt | 2 +- .../kotlin/org/fdroid/search/SearchManager.kt | 5 +- app/src/main/kotlin/org/fdroid/ui/Main.kt | 23 ++-- .../main/kotlin/org/fdroid/ui/MainContent.kt | 85 ++++++------- .../org/fdroid/ui/apps/MyAppsPresenter.kt | 4 +- .../org/fdroid/ui/details/AppDetailsItem.kt | 2 +- .../org/fdroid/ui/discover/DiscoverContent.kt | 17 --- .../org/fdroid/ui/lists/AppListPresenter.kt | 4 +- .../org/fdroid/ui/navigation/BottomBar.kt | 10 +- .../org/fdroid/ui/navigation/NavigationKey.kt | 12 +- .../fdroid/ui/navigation/SceneDecorator.kt | 115 ++++++++++++++++++ .../fdroid/ui/search/AppSearchInputField.kt | 1 + .../kotlin/org/fdroid/ui/search/AppsSearch.kt | 74 ----------- .../org/fdroid/ui/search/GlobalSearch.kt | 7 +- .../org/fdroid/ui/search/PastSearches.kt | 95 +++++++++++++++ .../org/fdroid/ui/search/SearchResults.kt | 73 ++++------- .../org/fdroid/ui/search/TopSearchBar.kt | 9 +- .../kotlin/org/fdroid/ui/ScreenshotTest.kt | 14 ++- .../org/fdroid/ui/search/GlobalSearchTest.kt | 14 +-- .../MyAppsFullList_2ed8e27d_0.png | 4 +- .../MyAppsInstalledAndIssues_2ed8e27d_0.png | 4 +- ...yInstalledAppsAndNoInternet_2ed8e27d_0.png | 4 +- ...ppsUpdatesOnlyAndNoInternet_2ed8e27d_0.png | 4 +- .../DiscoverFirstStartTest_2ed8e27d_0.png | 4 +- .../DiscoverNoEnabledReposTest_2ed8e27d_0.png | 4 +- .../DiscoverSmallBottomBarTest_1def2e7f_0.png | 4 +- .../DiscoverTest_2ed8e27d_0.png | 4 +- .../GlobalSearchEmptyTest_2ed8e27d_0.png | 4 +- .../GlobalSearchLoadingTest_2ed8e27d_0.png | 4 +- .../GlobalSearchNoResultsTest_2ed8e27d_0.png | 4 +- ...balSearchOnlyCategoriesTest_2ed8e27d_0.png | 4 +- ...lobalSearchResultsNightTest_1def2e7f_0.png | 4 +- .../GlobalSearchResultsTest_2ed8e27d_0.png | 4 +- .../org/fdroid/ui/lists/AppListSearchTest.kt | 2 +- gradle/libs.versions.toml | 2 +- gradle/verification-metadata.xml | 10 ++ 38 files changed, 380 insertions(+), 268 deletions(-) rename app/src/main/kotlin/org/fdroid/{ui => }/search/SearchHelper.kt (97%) create mode 100644 app/src/main/kotlin/org/fdroid/ui/navigation/SceneDecorator.kt delete mode 100644 app/src/main/kotlin/org/fdroid/ui/search/AppsSearch.kt create mode 100644 app/src/main/kotlin/org/fdroid/ui/search/PastSearches.kt diff --git a/app/src/androidTest/java/org/fdroid/ui/screenshots/DiscoverScreenshotTest.kt b/app/src/androidTest/java/org/fdroid/ui/screenshots/DiscoverScreenshotTest.kt index 8cd10a02a..32d88bb9d 100644 --- a/app/src/androidTest/java/org/fdroid/ui/screenshots/DiscoverScreenshotTest.kt +++ b/app/src/androidTest/java/org/fdroid/ui/screenshots/DiscoverScreenshotTest.kt @@ -1,10 +1,8 @@ package org.fdroid.ui.screenshots -import androidx.compose.foundation.text.input.rememberTextFieldState import androidx.core.os.LocaleListCompat import org.fdroid.ui.discover.Discover import org.fdroid.ui.discover.LoadedDiscoverModel -import org.junit.Ignore import org.junit.Test import org.junit.runner.RunWith import org.junit.runners.Parameterized @@ -26,7 +24,6 @@ class DiscoverScreenshotTest(localeName: String) : LocalizedScreenshotTest(local recentlyUpdatedApps = getRecentlyUpdatedApps(localeList), mostDownloadedApps = getMostDownloadedApps(localeList), categories = getCategoryItems(localeList).groupBy { it.group }, - searchTextFieldState = rememberTextFieldState(), hasRepoIssues = false, ) Discover(discoverModel = model, onListTap = {}, onAppTap = {}, onNav = {}) diff --git a/app/src/androidTest/java/org/fdroid/ui/screenshots/LocalizedScreenshotTest.kt b/app/src/androidTest/java/org/fdroid/ui/screenshots/LocalizedScreenshotTest.kt index 914c2e66d..ec18e4ff6 100644 --- a/app/src/androidTest/java/org/fdroid/ui/screenshots/LocalizedScreenshotTest.kt +++ b/app/src/androidTest/java/org/fdroid/ui/screenshots/LocalizedScreenshotTest.kt @@ -1,11 +1,12 @@ package org.fdroid.ui.screenshots +import androidx.compose.material3.adaptive.layout.PaneScaffoldDirective import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier import androidx.compose.ui.test.DeviceConfigurationOverride import androidx.compose.ui.test.Locales import androidx.compose.ui.test.junit4.v2.createComposeRule import androidx.compose.ui.text.intl.LocaleList +import androidx.navigation3.runtime.NavEntry import androidx.navigation3.runtime.NavKey import androidx.test.platform.app.InstrumentationRegistry import androidx.test.uiautomator.UiDevice @@ -54,7 +55,7 @@ abstract class LocalizedScreenshotTest(val localeName: String) { currentNavKey: NavKey = NavigationKey.Discover, numUpdates: Int = 3, hasAppIssues: Boolean = true, - content: @Composable (Modifier) -> Unit, + content: @Composable () -> Unit, ) { val localeList = LocaleList(localeName) composeRule.setContent { @@ -69,11 +70,13 @@ abstract class LocalizedScreenshotTest(val localeName: String) { numUpdates = numUpdates, hasAppIssues = hasAppIssues, ), + navEntries = listOf(NavEntry(currentNavKey) { content() }), + directive = PaneScaffoldDirective.Default, isBigScreen = false, showBottomBar = showBottomBar, currentNavKey = currentNavKey, onNav = {}, - content = content, + onBack = {}, ) } } diff --git a/app/src/main/kotlin/org/fdroid/ui/search/SearchHelper.kt b/app/src/main/kotlin/org/fdroid/search/SearchHelper.kt similarity index 97% rename from app/src/main/kotlin/org/fdroid/ui/search/SearchHelper.kt rename to app/src/main/kotlin/org/fdroid/search/SearchHelper.kt index 18bd6db27..5471848cd 100644 --- a/app/src/main/kotlin/org/fdroid/ui/search/SearchHelper.kt +++ b/app/src/main/kotlin/org/fdroid/search/SearchHelper.kt @@ -1,4 +1,4 @@ -package org.fdroid.ui.search +package org.fdroid.search import java.text.Normalizer import java.text.Normalizer.Form.NFKD diff --git a/app/src/main/kotlin/org/fdroid/search/SearchManager.kt b/app/src/main/kotlin/org/fdroid/search/SearchManager.kt index 042c4910f..2b60d747a 100644 --- a/app/src/main/kotlin/org/fdroid/search/SearchManager.kt +++ b/app/src/main/kotlin/org/fdroid/search/SearchManager.kt @@ -31,10 +31,13 @@ import org.fdroid.install.InstalledAppsCache import org.fdroid.settings.SettingsManager import org.fdroid.ui.categories.CategoryItem import org.fdroid.ui.lists.AppListItem -import org.fdroid.ui.search.SearchHelper.normalize +import org.fdroid.search.SearchHelper.normalize import org.fdroid.ui.search.SearchResults import org.fdroid.utils.IoDispatcher +/** The minimum amount of characters we start auto-searching for. */ +const val SEARCH_THRESHOLD = 2 + @Singleton class SearchManager @Inject diff --git a/app/src/main/kotlin/org/fdroid/ui/Main.kt b/app/src/main/kotlin/org/fdroid/ui/Main.kt index a400a9775..63879b795 100644 --- a/app/src/main/kotlin/org/fdroid/ui/Main.kt +++ b/app/src/main/kotlin/org/fdroid/ui/Main.kt @@ -6,7 +6,6 @@ import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo import androidx.compose.material3.adaptive.layout.calculatePaneScaffoldDirective import androidx.compose.material3.adaptive.navigation3.ListDetailSceneStrategy -import androidx.compose.material3.adaptive.navigation3.rememberListDetailSceneStrategy import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.remember @@ -16,7 +15,6 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.navigation3.runtime.NavEntry import androidx.navigation3.runtime.NavKey import androidx.navigation3.runtime.entryProvider -import androidx.navigation3.ui.NavDisplay import org.fdroid.ui.apps.myAppsEntry import org.fdroid.ui.details.NoAppSelected import org.fdroid.ui.details.appDetailsEntry @@ -59,7 +57,6 @@ fun Main(onListeningForIntent: () -> Unit = {}) { calculatePaneScaffoldDirective(windowAdaptiveInfo).copy(horizontalPartitionSpacerSize = 2.dp) } val isBigScreen = directive.maxHorizontalPartitions > 1 - val listDetailStrategy = rememberListDetailSceneStrategy(directive = directive) val entryProvider: (NavKey) -> NavEntry = entryProvider { discoverEntry(navigator) @@ -115,21 +112,15 @@ fun Main(onListeningForIntent: () -> Unit = {}) { // flavor specific navigation destinations go here extraNavigationEntries(navigator) } - val showBottomBar = !isBigScreen && navigator.last is MainNavKey val viewModel = hiltViewModel() - val mainModel = viewModel.mainModel.collectAsStateWithLifecycle().value MainContent( - model = mainModel, + model = viewModel.mainModel.collectAsStateWithLifecycle().value, + navEntries = navigationState.toEntries(entryProvider), + directive = directive, isBigScreen = isBigScreen, - showBottomBar = showBottomBar, + showBottomBar = !isBigScreen && navigator.last is MainNavKey, currentNavKey = navigationState.topLevelRoute, - onNav = { navKey -> navigator.navigate(navKey) }, - ) { modifier -> - NavDisplay( - entries = navigationState.toEntries(entryProvider), - sceneStrategy = listDetailStrategy, - onBack = { navigator.goBack() }, - modifier = modifier, - ) - } + onNav = navigator::navigate, + onBack = navigator::goBack, + ) } diff --git a/app/src/main/kotlin/org/fdroid/ui/MainContent.kt b/app/src/main/kotlin/org/fdroid/ui/MainContent.kt index ee52b65c8..b56b3ed31 100644 --- a/app/src/main/kotlin/org/fdroid/ui/MainContent.kt +++ b/app/src/main/kotlin/org/fdroid/ui/MainContent.kt @@ -1,68 +1,61 @@ package org.fdroid.ui -import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.WindowInsets -import androidx.compose.foundation.layout.consumeWindowInsets -import androidx.compose.foundation.layout.navigationBars -import androidx.compose.foundation.layout.padding -import androidx.compose.material3.Scaffold +import androidx.compose.animation.SharedTransitionLayout +import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi +import androidx.compose.material3.adaptive.layout.PaneScaffoldDirective +import androidx.compose.material3.adaptive.navigation3.rememberListDetailSceneStrategy import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalDensity -import androidx.compose.ui.unit.dp +import androidx.navigation3.runtime.NavEntry import androidx.navigation3.runtime.NavKey +import androidx.navigation3.ui.NavDisplay import com.viktormykhailiv.compose.hints.HintHost import org.fdroid.ui.navigation.BottomBar import org.fdroid.ui.navigation.MainNavKey import org.fdroid.ui.navigation.NavigationRail +import org.fdroid.ui.navigation.rememberResponsiveNavigationSceneDecoratorStrategy @Composable +@OptIn(ExperimentalMaterial3AdaptiveApi::class) fun MainContent( model: MainModel, + navEntries: List>, + directive: PaneScaffoldDirective, isBigScreen: Boolean, showBottomBar: Boolean, currentNavKey: NavKey, onNav: (MainNavKey) -> Unit, - content: @Composable (Modifier) -> Unit, + onBack: () -> Unit, ) = FDroidContent(dynamicColors = model.dynamicColors) { - HintHost { - Scaffold( - bottomBar = - if (showBottomBar) { - { BottomBar(model = model, currentNavKey = currentNavKey, onNav = onNav) } - } else { - {} - } - ) { paddingValues -> - Row { - // show nav rail only on big screen (at least two partitions) - if (isBigScreen) - NavigationRail( - numUpdates = model.numUpdates, - hasIssues = model.hasAppIssues, - currentNavKey = currentNavKey, - onNav = onNav, - ) - val modifier = - if (isBigScreen) { - // need to consume start insets or some phones leave a lot of space there - Modifier.consumeWindowInsets(PaddingValues(start = 64.dp)) - } else if (showBottomBar) { - // we only apply the bottom padding here, so content stays above bottom bar, - // but we need to consume the navigation bar height manually - val bottom = - with(LocalDensity.current) { WindowInsets.navigationBars.getBottom(this).toDp() } - Modifier.consumeWindowInsets(PaddingValues(bottom = bottom)) - .padding(bottom = paddingValues.calculateBottomPadding()) - } else { - Modifier - } - // this needs to a have a fixed place or state saving breaks, - // so all moving pieces with conditionals are above - content(modifier) - } + val listDetailStrategy = rememberListDetailSceneStrategy(directive = directive) + SharedTransitionLayout { + HintHost { + val responsiveNavigationSceneDecoratorStrategy = + rememberResponsiveNavigationSceneDecoratorStrategy( + isBigScreen = isBigScreen, + navBar = { + if (showBottomBar) { + BottomBar(model = model, currentNavKey = currentNavKey, onNav = onNav) + } + }, + navRail = { + NavigationRail( + numUpdates = model.numUpdates, + hasIssues = model.hasAppIssues, + currentNavKey = currentNavKey, + onNav = onNav, + ) + }, + sharedTransitionScope = this, + ) + NavDisplay( + entries = navEntries, + sceneDecoratorStrategies = listOf(responsiveNavigationSceneDecoratorStrategy), + sceneStrategies = listOf(listDetailStrategy), + onBack = onBack, + modifier = Modifier, + ) } } } diff --git a/app/src/main/kotlin/org/fdroid/ui/apps/MyAppsPresenter.kt b/app/src/main/kotlin/org/fdroid/ui/apps/MyAppsPresenter.kt index 6ec70be5a..0ccc3cc73 100644 --- a/app/src/main/kotlin/org/fdroid/ui/apps/MyAppsPresenter.kt +++ b/app/src/main/kotlin/org/fdroid/ui/apps/MyAppsPresenter.kt @@ -11,8 +11,8 @@ import org.fdroid.download.NetworkState import org.fdroid.install.InstallConfirmationState import org.fdroid.install.InstallState import org.fdroid.install.InstallStateWithInfo -import org.fdroid.ui.search.SearchHelper.fixQuery -import org.fdroid.ui.search.SearchHelper.normalize +import org.fdroid.search.SearchHelper.fixQuery +import org.fdroid.search.SearchHelper.normalize // TODO add tests for this, similar to DetailsPresenter @Composable diff --git a/app/src/main/kotlin/org/fdroid/ui/details/AppDetailsItem.kt b/app/src/main/kotlin/org/fdroid/ui/details/AppDetailsItem.kt index e8465073d..53bcfb4a0 100644 --- a/app/src/main/kotlin/org/fdroid/ui/details/AppDetailsItem.kt +++ b/app/src/main/kotlin/org/fdroid/ui/details/AppDetailsItem.kt @@ -22,7 +22,7 @@ import org.fdroid.index.v2.PackageVersion import org.fdroid.install.InstallState import org.fdroid.install.SessionInstallManager import org.fdroid.ui.categories.CategoryItem -import org.fdroid.ui.search.SearchHelper.removeZeroWhiteSpace +import org.fdroid.search.SearchHelper.removeZeroWhiteSpace data class AppDetailsItem( val app: AppMetadata, diff --git a/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverContent.kt b/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverContent.kt index 8b04d03b4..70f491a94 100644 --- a/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverContent.kt +++ b/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverContent.kt @@ -1,22 +1,16 @@ package org.fdroid.ui.discover import androidx.compose.animation.AnimatedVisibility -import androidx.compose.foundation.focusable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.text.input.rememberTextFieldState import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.compose.ui.unit.dp import androidx.navigation3.runtime.NavKey import org.fdroid.R import org.fdroid.ui.categories.CategoryList import org.fdroid.ui.lists.AppListType -import org.fdroid.ui.search.AppsSearch @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -28,17 +22,6 @@ fun DiscoverContent( modifier: Modifier = Modifier, ) { Column(modifier = modifier) { - AppsSearch( - onNav = onNav, - textFieldState = rememberTextFieldState(), - modifier = - Modifier - // focusable is a workaround for https://issuetracker.google.com/issues/445720462 - .focusable() - .padding(top = 16.dp, bottom = 4.dp) - .padding(horizontal = 16.dp) - .align(Alignment.CenterHorizontally), - ) AnimatedVisibility(discoverModel.newApps.isNotEmpty()) { val listNew = AppListType.New(stringResource(R.string.app_list_new)) AppCarousel( diff --git a/app/src/main/kotlin/org/fdroid/ui/lists/AppListPresenter.kt b/app/src/main/kotlin/org/fdroid/ui/lists/AppListPresenter.kt index 8a0b17738..8b4545bf1 100644 --- a/app/src/main/kotlin/org/fdroid/ui/lists/AppListPresenter.kt +++ b/app/src/main/kotlin/org/fdroid/ui/lists/AppListPresenter.kt @@ -8,10 +8,10 @@ import java.util.Locale import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.StateFlow import org.fdroid.database.AppListSortOrder +import org.fdroid.search.SearchHelper.fixQuery +import org.fdroid.search.SearchHelper.normalize import org.fdroid.ui.categories.CategoryItem import org.fdroid.ui.repositories.RepositoryItem -import org.fdroid.ui.search.SearchHelper.fixQuery -import org.fdroid.ui.search.SearchHelper.normalize @Composable fun AppListPresenter( diff --git a/app/src/main/kotlin/org/fdroid/ui/navigation/BottomBar.kt b/app/src/main/kotlin/org/fdroid/ui/navigation/BottomBar.kt index 0c6937a08..5f2d0cdbc 100644 --- a/app/src/main/kotlin/org/fdroid/ui/navigation/BottomBar.kt +++ b/app/src/main/kotlin/org/fdroid/ui/navigation/BottomBar.kt @@ -4,8 +4,12 @@ import androidx.compose.foundation.layout.Arrangement.spacedBy import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.WindowInsetsSides +import androidx.compose.foundation.layout.consumeWindowInsets import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.navigationBars +import androidx.compose.foundation.layout.only +import androidx.compose.foundation.layout.safeDrawing import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Error import androidx.compose.material3.Badge @@ -37,9 +41,13 @@ import org.fdroid.ui.MainModel @Composable fun BottomBar(model: MainModel, currentNavKey: NavKey, onNav: (MainNavKey) -> Unit) { val res = LocalResources.current + val modifier = + Modifier.consumeWindowInsets( + WindowInsets.safeDrawing.only(WindowInsetsSides.Horizontal + WindowInsetsSides.Bottom) + ) val bottom = with(LocalDensity.current) { WindowInsets.navigationBars.getBottom(this).toDp() } NavigationBar( - modifier = if (model.smallBottomBar) Modifier.heightIn(max = 56.dp + bottom) else Modifier + modifier = if (model.smallBottomBar) modifier.heightIn(max = 48.dp + bottom) else modifier ) { topLevelRoutes.forEach { dest -> NavigationBarItem( diff --git a/app/src/main/kotlin/org/fdroid/ui/navigation/NavigationKey.kt b/app/src/main/kotlin/org/fdroid/ui/navigation/NavigationKey.kt index d3ae0cd60..4322902a2 100644 --- a/app/src/main/kotlin/org/fdroid/ui/navigation/NavigationKey.kt +++ b/app/src/main/kotlin/org/fdroid/ui/navigation/NavigationKey.kt @@ -5,6 +5,7 @@ import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Apps import androidx.compose.material.icons.filled.Explore import androidx.compose.material.icons.filled.Info +import androidx.compose.material.icons.filled.Search import androidx.compose.material.icons.filled.Settings import androidx.compose.material.icons.filled.SwapHorizontalCircle import androidx.compose.ui.graphics.vector.ImageVector @@ -22,14 +23,18 @@ sealed interface NavigationKey : NavKey { override val icon: ImageVector = Icons.Filled.Explore } + @Serializable + data object Search : NavigationKey, MainNavKey { + override val label: Int = R.string.menu_search + override val icon: ImageVector = Icons.Filled.Search + } + @Serializable data object MyApps : NavigationKey, MainNavKey { override val label: Int = R.string.menu_apps_my override val icon: ImageVector = Icons.Filled.Apps } - @Serializable data object Search : NavigationKey - @Serializable data class AppDetails(val packageName: String) : NavigationKey @Serializable data class AppList(val type: AppListType) : NavigationKey @@ -56,7 +61,8 @@ sealed interface MainNavKey : NavKey { val icon: ImageVector } -val topLevelRoutes = listOf(NavigationKey.Discover, NavigationKey.MyApps) +val topLevelRoutes = + listOf(NavigationKey.Discover, NavigationKey.Search, NavigationKey.MyApps) sealed class NavDestinations( val id: NavigationKey, diff --git a/app/src/main/kotlin/org/fdroid/ui/navigation/SceneDecorator.kt b/app/src/main/kotlin/org/fdroid/ui/navigation/SceneDecorator.kt new file mode 100644 index 000000000..58566a503 --- /dev/null +++ b/app/src/main/kotlin/org/fdroid/ui/navigation/SceneDecorator.kt @@ -0,0 +1,115 @@ +/* + * Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Mostly copied from https://github.com/android/nav3-recipes + */ + +package org.fdroid.ui.navigation + +import androidx.compose.animation.EnterExitState +import androidx.compose.animation.SharedTransitionScope +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.movableContentOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberUpdatedState +import androidx.compose.ui.Modifier +import androidx.navigation3.scene.Scene +import androidx.navigation3.scene.SceneDecoratorStrategy +import androidx.navigation3.scene.SceneDecoratorStrategyScope +import androidx.navigation3.ui.LocalNavAnimatedContentScope + +class ResponsiveNavigationScene( + scene: Scene, + isBigScreen: Boolean, + sharedTransitionScope: SharedTransitionScope, + navBarContent: @Composable (() -> Unit), + navRailContent: @Composable (() -> Unit), +) : Scene by scene { + override val key = scene::class to scene.key + + override val content = + @Composable { + val animatedContentScope = LocalNavAnimatedContentScope.current + val isMovableContentCaller = + animatedContentScope.transition.targetState == EnterExitState.Visible + + with(sharedTransitionScope) { + if (isBigScreen) { + Row(Modifier.fillMaxSize()) { + Box( + modifier = + Modifier.sharedElement(rememberSharedContentState("nav-rail"), animatedContentScope) + ) { + if (isMovableContentCaller) { + navRailContent() + } + } + Box(modifier = Modifier.weight(1f)) { scene.content() } + } + } else { + Column(Modifier.fillMaxSize()) { + Box(modifier = Modifier.weight(1f)) { scene.content() } + navBarContent() + } + } + } + } +} + +@Composable +fun rememberResponsiveNavigationSceneDecoratorStrategy( + isBigScreen: Boolean, + navBar: @Composable (() -> Unit)?, + navRail: @Composable () -> Unit, + sharedTransitionScope: SharedTransitionScope, +): ResponsiveNavigationSceneDecoratorStrategy { + val currentNavBar by rememberUpdatedState(navBar) + val currentNavRail by rememberUpdatedState(navRail) + + val movableNavBar = remember(navBar) { movableContentOf { currentNavBar?.invoke() } } + val movableNavRail = remember { movableContentOf { currentNavRail() } } + + return remember(isBigScreen, sharedTransitionScope) { + ResponsiveNavigationSceneDecoratorStrategy( + isBigScreen = isBigScreen, + sharedTransitionScope = sharedTransitionScope, + navBarContent = movableNavBar, + navRailContent = movableNavRail, + ) + } +} + +class ResponsiveNavigationSceneDecoratorStrategy( + private val isBigScreen: Boolean, + private val sharedTransitionScope: SharedTransitionScope, + private val navBarContent: @Composable (() -> Unit), + private val navRailContent: @Composable () -> Unit, +) : SceneDecoratorStrategy { + + override fun SceneDecoratorStrategyScope.decorateScene(scene: Scene): Scene { + return ResponsiveNavigationScene( + scene = scene, + isBigScreen = isBigScreen, + sharedTransitionScope = sharedTransitionScope, + navBarContent = navBarContent, + navRailContent = navRailContent, + ) + } +} diff --git a/app/src/main/kotlin/org/fdroid/ui/search/AppSearchInputField.kt b/app/src/main/kotlin/org/fdroid/ui/search/AppSearchInputField.kt index 7e722dc85..62aad39ee 100644 --- a/app/src/main/kotlin/org/fdroid/ui/search/AppSearchInputField.kt +++ b/app/src/main/kotlin/org/fdroid/ui/search/AppSearchInputField.kt @@ -23,6 +23,7 @@ import kotlinx.coroutines.flow.debounce import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.launch import org.fdroid.R +import org.fdroid.search.SEARCH_THRESHOLD @Composable @OptIn(ExperimentalMaterial3Api::class, FlowPreview::class) diff --git a/app/src/main/kotlin/org/fdroid/ui/search/AppsSearch.kt b/app/src/main/kotlin/org/fdroid/ui/search/AppsSearch.kt deleted file mode 100644 index 0ef1f90f4..000000000 --- a/app/src/main/kotlin/org/fdroid/ui/search/AppsSearch.kt +++ /dev/null @@ -1,74 +0,0 @@ -package org.fdroid.ui.search - -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.text.input.TextFieldState -import androidx.compose.foundation.text.input.rememberTextFieldState -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Search -import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.Icon -import androidx.compose.material3.SearchBar -import androidx.compose.material3.SearchBarDefaults -import androidx.compose.material3.Text -import androidx.compose.material3.rememberSearchBarState -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.focus.onFocusChanged -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.semantics.hideFromAccessibility -import androidx.compose.ui.semantics.semantics -import androidx.compose.ui.tooling.preview.Preview -import org.fdroid.R -import org.fdroid.ui.FDroidContent -import org.fdroid.ui.navigation.NavigationKey - -/** The minimum amount of characters we start auto-searching for. */ -const val SEARCH_THRESHOLD = 2 - -@Composable -@OptIn(ExperimentalMaterial3Api::class) -fun AppsSearch( - textFieldState: TextFieldState, - onNav: (NavigationKey) -> Unit, - modifier: Modifier = Modifier, -) { - val searchBarState = rememberSearchBarState() - SearchBar( - state = searchBarState, - inputField = { - // InputField is different from ExpandedFullScreenSearchBar to separate onSearch() - SearchBarDefaults.InputField( - searchBarState = searchBarState, - textFieldState = textFieldState, - placeholder = { - Text( - text = stringResource(R.string.search_placeholder), - // we hide the placeholder, because TalkBack is already saying "Search" - modifier = Modifier.semantics { hideFromAccessibility() }, - ) - }, - leadingIcon = { - Icon( - imageVector = Icons.Default.Search, - contentDescription = null, - modifier = Modifier.semantics { hideFromAccessibility() }, - ) - }, - onSearch = {}, - modifier = Modifier.onFocusChanged { if (it.isFocused) onNav(NavigationKey.Search) }, - ) - }, - modifier = modifier.clickable { onNav(NavigationKey.Search) }, - ) -} - -@Preview -@Composable -private fun Preview() { - FDroidContent { - val textFieldState = rememberTextFieldState() - Box(Modifier.fillMaxSize()) { AppsSearch(textFieldState, {}) } - } -} diff --git a/app/src/main/kotlin/org/fdroid/ui/search/GlobalSearch.kt b/app/src/main/kotlin/org/fdroid/ui/search/GlobalSearch.kt index fed4eb341..c5c454112 100644 --- a/app/src/main/kotlin/org/fdroid/ui/search/GlobalSearch.kt +++ b/app/src/main/kotlin/org/fdroid/ui/search/GlobalSearch.kt @@ -12,7 +12,6 @@ import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Scaffold import androidx.compose.material3.SearchBarDefaults import androidx.compose.runtime.Composable -import androidx.compose.runtime.DisposableEffect import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.tooling.preview.Preview @@ -38,14 +37,13 @@ fun GlobalSearch( topBar = { TopSearchBar( searchFieldState = textFieldState, + shouldRequestFocus = false, onSearch = onSearch, onSearchCleared = onSearchCleared, onHideSearch = onBack, ) } ) { paddingValues -> - // clear search results when leaving screen - DisposableEffect(Unit) { onDispose { onSearchCleared() } } HorizontalDivider( color = SearchBarDefaults.colors().dividerColor, modifier = @@ -56,13 +54,12 @@ fun GlobalSearch( ), ) SearchResults( + paddingValues = paddingValues, searchResults = searchResults, textFieldState = textFieldState, savedSearches = savedSearches, onClearSavedSearches = onClearSavedSearches, onNav = onNav, - paddingValues = paddingValues, - modifier = Modifier, ) } } diff --git a/app/src/main/kotlin/org/fdroid/ui/search/PastSearches.kt b/app/src/main/kotlin/org/fdroid/ui/search/PastSearches.kt new file mode 100644 index 000000000..09271a0fd --- /dev/null +++ b/app/src/main/kotlin/org/fdroid/ui/search/PastSearches.kt @@ -0,0 +1,95 @@ +package org.fdroid.ui.search + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.ime +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.systemBars +import androidx.compose.foundation.layout.windowInsetsBottomHeight +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.History +import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi +import androidx.compose.material3.Icon +import androidx.compose.material3.ListItem +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import org.fdroid.R +import org.fdroid.search.SavedSearch +import org.fdroid.ui.FDroidContent + +@Composable +@OptIn(ExperimentalMaterial3ExpressiveApi::class) +fun PastSearches( + savedSearches: List, + onSearch: (String) -> Unit, + onClearSavedSearches: () -> Unit, + modifier: Modifier = Modifier, + paddingValues: PaddingValues = PaddingValues(), +) { + LazyColumn(modifier = modifier.fillMaxSize(), contentPadding = paddingValues) { + item { + Row { + Text( + text = stringResource(R.string.search_history), + style = MaterialTheme.typography.labelLarge, + modifier = Modifier.padding(vertical = 8.dp, horizontal = 16.dp).weight(1f), + ) + TextButton( + onClick = onClearSavedSearches, + modifier = Modifier.padding(horizontal = 8.dp), + ) { + Text(stringResource(R.string.clear)) + } + } + } + items(savedSearches) { item -> + ListItem( + leadingContent = { + Icon( + Icons.Default.History, + contentDescription = null, + modifier = + Modifier.clip(CircleShape) + .background(MaterialTheme.colorScheme.surfaceContainer) + .padding(8.dp), + ) + }, + onClick = { onSearch(item.query) }, + modifier = Modifier.fillMaxWidth().animateItem(), + ) { + Text(item.query) + } + } + item { Spacer(Modifier.windowInsetsBottomHeight(WindowInsets.systemBars)) } + item { Spacer(Modifier.windowInsetsBottomHeight(WindowInsets.ime)) } + } +} + +@Preview +@Composable +private fun Preview() { + FDroidContent { + val savedSearches = + listOf(SavedSearch(1, "foo"), SavedSearch(2, "foo bar"), SavedSearch(3, "foobar")) + PastSearches( + savedSearches = savedSearches, + onClearSavedSearches = {}, + onSearch = {}, + ) + } +} diff --git a/app/src/main/kotlin/org/fdroid/ui/search/SearchResults.kt b/app/src/main/kotlin/org/fdroid/ui/search/SearchResults.kt index 9481ca94f..544e22107 100644 --- a/app/src/main/kotlin/org/fdroid/ui/search/SearchResults.kt +++ b/app/src/main/kotlin/org/fdroid/ui/search/SearchResults.kt @@ -1,35 +1,33 @@ package org.fdroid.ui.search -import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.ime import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.systemBars +import androidx.compose.foundation.layout.windowInsetsBottomHeight import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.items -import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.text.input.TextFieldState -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.History +import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.material3.HorizontalDivider -import androidx.compose.material3.Icon -import androidx.compose.material3.ListItem import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text -import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import org.fdroid.R +import org.fdroid.search.SEARCH_THRESHOLD import org.fdroid.search.SavedSearch import org.fdroid.ui.categories.CategoryChip import org.fdroid.ui.categories.CategoryItem @@ -43,58 +41,35 @@ import org.fdroid.ui.utils.BigLoadingIndicator data class SearchResults(val apps: List, val categories: List) @Composable +@OptIn(ExperimentalMaterial3ExpressiveApi::class) fun SearchResults( + paddingValues: PaddingValues, searchResults: SearchResults?, textFieldState: TextFieldState, savedSearches: List?, onClearSavedSearches: () -> Unit, onNav: (NavigationKey) -> Unit, - paddingValues: PaddingValues, - modifier: Modifier, + modifier: Modifier = Modifier, ) { // rememberLazyListState done differently, so it refreshes for different searchResults val listState = rememberSaveable(searchResults, saver = LazyListState.Saver) { LazyListState(0, 0) } if (searchResults == null) { - if (textFieldState.text.length < SEARCH_THRESHOLD) { - if (!savedSearches.isNullOrEmpty()) { - LazyColumn(contentPadding = paddingValues, modifier = modifier.fillMaxSize().imePadding()) { - item { - Row { - Text( - text = stringResource(R.string.search_history), - style = MaterialTheme.typography.labelLarge, - modifier = Modifier.padding(vertical = 8.dp, horizontal = 16.dp).weight(1f), - ) - TextButton(onClick = onClearSavedSearches) { Text(stringResource(R.string.clear)) } - } - } - items(savedSearches) { item -> - ListItem( - leadingContent = { - Icon( - Icons.Default.History, - contentDescription = null, - modifier = - Modifier.clip(CircleShape) - .background(MaterialTheme.colorScheme.surfaceContainer) - .padding(8.dp), - ) - }, - headlineContent = { Text(item.query) }, - modifier = - Modifier.fillMaxWidth().animateItem().clickable { - textFieldState.edit { replace(0, length, item.query) } - }, - ) - } - } - } - } else { + if (textFieldState.text.length >= SEARCH_THRESHOLD) { BigLoadingIndicator(modifier.padding(paddingValues).imePadding()) + } else { + if (!savedSearches.isNullOrEmpty()) { + PastSearches( + savedSearches = savedSearches, + onSearch = { textFieldState.edit { replace(0, length, it) } }, + onClearSavedSearches = onClearSavedSearches, + modifier = modifier, + paddingValues = paddingValues, + ) + } } } else if (searchResults.apps.isEmpty() && textFieldState.text.length >= SEARCH_THRESHOLD) { - Column(modifier = modifier.padding(paddingValues).imePadding()) { + Column(modifier = modifier.padding(paddingValues)) { if (searchResults.categories.isNotEmpty()) { CategoriesFlowRow(searchResults.categories, onNav) } @@ -108,7 +83,7 @@ fun SearchResults( LazyColumn( state = listState, contentPadding = paddingValues, - modifier = modifier.fillMaxSize().imePadding(), + modifier = modifier.fillMaxSize(), ) { if (searchResults.categories.isNotEmpty()) { item(key = "categories", contentType = "category") { @@ -139,6 +114,8 @@ fun SearchResults( }, ) } + item { Spacer(Modifier.windowInsetsBottomHeight(WindowInsets.systemBars)) } + item { Spacer(Modifier.windowInsetsBottomHeight(WindowInsets.ime)) } } } } diff --git a/app/src/main/kotlin/org/fdroid/ui/search/TopSearchBar.kt b/app/src/main/kotlin/org/fdroid/ui/search/TopSearchBar.kt index 55cc89bbf..4f644e94e 100644 --- a/app/src/main/kotlin/org/fdroid/ui/search/TopSearchBar.kt +++ b/app/src/main/kotlin/org/fdroid/ui/search/TopSearchBar.kt @@ -26,6 +26,7 @@ import org.fdroid.ui.utils.BackButton @OptIn(ExperimentalMaterial3Api::class, FlowPreview::class) fun TopSearchBar( searchFieldState: TextFieldState = rememberTextFieldState(), + shouldRequestFocus: Boolean = true, actions: @Composable (RowScope.() -> Unit) = {}, onSearch: suspend (String) -> Unit, onSearchCleared: () -> Unit, @@ -49,8 +50,10 @@ fun TopSearchBar( }, actions = actions, ) - LaunchedEffect(Unit) { - focusRequester.requestFocus() - keyboardController?.show() + LaunchedEffect(shouldRequestFocus) { + if (shouldRequestFocus) { + focusRequester.requestFocus() + keyboardController?.show() + } } } diff --git a/app/src/screenshotTest/kotlin/org/fdroid/ui/ScreenshotTest.kt b/app/src/screenshotTest/kotlin/org/fdroid/ui/ScreenshotTest.kt index 5fb262bf5..426035a78 100644 --- a/app/src/screenshotTest/kotlin/org/fdroid/ui/ScreenshotTest.kt +++ b/app/src/screenshotTest/kotlin/org/fdroid/ui/ScreenshotTest.kt @@ -1,18 +1,20 @@ package org.fdroid.ui +import androidx.compose.material3.adaptive.layout.PaneScaffoldDirective import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier +import androidx.navigation3.runtime.NavEntry import androidx.navigation3.runtime.NavKey +import org.fdroid.ui.navigation.MainNavKey import org.fdroid.ui.navigation.NavigationKey @Composable fun ScreenshotTest( - showBottomBar: Boolean = true, - smallBottomBar: Boolean = false, currentNavKey: NavKey = NavigationKey.Discover, + showBottomBar: Boolean = currentNavKey is MainNavKey, + smallBottomBar: Boolean = false, numUpdates: Int = 3, hasAppIssues: Boolean = true, - content: @Composable (Modifier) -> Unit, + content: @Composable () -> Unit, ) { MainContent( model = @@ -22,10 +24,12 @@ fun ScreenshotTest( numUpdates = numUpdates, hasAppIssues = hasAppIssues, ), + navEntries = listOf(NavEntry(currentNavKey) { content() }), + directive = PaneScaffoldDirective.Default, isBigScreen = false, showBottomBar = showBottomBar, currentNavKey = currentNavKey, onNav = {}, - content = content, + onBack = {}, ) } diff --git a/app/src/screenshotTest/kotlin/org/fdroid/ui/search/GlobalSearchTest.kt b/app/src/screenshotTest/kotlin/org/fdroid/ui/search/GlobalSearchTest.kt index d1d73858a..2d9fb24ca 100644 --- a/app/src/screenshotTest/kotlin/org/fdroid/ui/search/GlobalSearchTest.kt +++ b/app/src/screenshotTest/kotlin/org/fdroid/ui/search/GlobalSearchTest.kt @@ -14,7 +14,7 @@ import org.fdroid.ui.utils.categoryItems @PreviewTest @Preview(showBackground = true, showSystemUi = true) fun GlobalSearchEmptyTest() = - ScreenshotTest(showBottomBar = false) { + ScreenshotTest { val textFieldState = rememberTextFieldState() GlobalSearch( textFieldState = textFieldState, @@ -32,7 +32,7 @@ fun GlobalSearchEmptyTest() = @PreviewTest @Preview(showBackground = true, showSystemUi = true) fun GlobalSearchEmptyStateTest() = - ScreenshotTest(showBottomBar = false) { + ScreenshotTest { val savedSearches = listOf(SavedSearch(1, "Browser"), SavedSearch(2, "media player"), SavedSearch(3, "email app")) val textFieldState = rememberTextFieldState() @@ -52,7 +52,7 @@ fun GlobalSearchEmptyStateTest() = @PreviewTest @Preview(showBackground = true, showSystemUi = true) fun GlobalSearchLoadingTest() = - ScreenshotTest(showBottomBar = false) { + ScreenshotTest { val textFieldState = rememberTextFieldState("foo bar") GlobalSearch( textFieldState = textFieldState, @@ -70,7 +70,7 @@ fun GlobalSearchLoadingTest() = @PreviewTest @Preview(showBackground = true, showSystemUi = true) fun GlobalSearchNoResultsTest() = - ScreenshotTest(showBottomBar = false) { + ScreenshotTest { val textFieldState = rememberTextFieldState("foo") GlobalSearch( textFieldState = textFieldState, @@ -88,7 +88,7 @@ fun GlobalSearchNoResultsTest() = @PreviewTest @Preview(showBackground = true, showSystemUi = true) fun GlobalSearchResultsTest() = - ScreenshotTest(showBottomBar = false) { + ScreenshotTest { val textFieldState = rememberTextFieldState("foo bar") GlobalSearch( textFieldState = textFieldState, @@ -106,7 +106,7 @@ fun GlobalSearchResultsTest() = @PreviewTest @Preview(showBackground = true, showSystemUi = true) fun GlobalSearchOnlyCategoriesTest() = - ScreenshotTest(showBottomBar = false) { + ScreenshotTest { val textFieldState = rememberTextFieldState("foo bar") GlobalSearch( textFieldState = textFieldState, @@ -128,7 +128,7 @@ fun GlobalSearchOnlyCategoriesTest() = uiMode = Configuration.UI_MODE_NIGHT_YES or Configuration.UI_MODE_TYPE_NORMAL, ) fun GlobalSearchResultsNightTest() = - ScreenshotTest(showBottomBar = false) { + ScreenshotTest { val textFieldState = rememberTextFieldState("foo bar") GlobalSearch( textFieldState = textFieldState, diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/apps/MyAppsTestKt/MyAppsFullList_2ed8e27d_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/apps/MyAppsTestKt/MyAppsFullList_2ed8e27d_0.png index faaea403f..65f12ee8b 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/apps/MyAppsTestKt/MyAppsFullList_2ed8e27d_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/apps/MyAppsTestKt/MyAppsFullList_2ed8e27d_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:97b2a9163570a5e6f61dac969115543bcf2b5bc6040b27ce0163d1d715093158 -size 155555 +oid sha256:1501c756d19f294b3f71ee089a1e728b3ade04b91372617248f68cb60aecfe1f +size 158114 diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/apps/MyAppsTestKt/MyAppsInstalledAndIssues_2ed8e27d_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/apps/MyAppsTestKt/MyAppsInstalledAndIssues_2ed8e27d_0.png index e71c58d8e..309a6b33d 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/apps/MyAppsTestKt/MyAppsInstalledAndIssues_2ed8e27d_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/apps/MyAppsTestKt/MyAppsInstalledAndIssues_2ed8e27d_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:818edd986a22692191d23dfa22f835929af64628be310f7c7f32af6cd134081d -size 112062 +oid sha256:619eb7e9478b45a8b1ada0b65335fad718cb728f500ab04c77bb292933df5c84 +size 114633 diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/apps/MyAppsTestKt/MyAppsOnlyInstalledAppsAndNoInternet_2ed8e27d_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/apps/MyAppsTestKt/MyAppsOnlyInstalledAppsAndNoInternet_2ed8e27d_0.png index 51696a572..2505a0bb8 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/apps/MyAppsTestKt/MyAppsOnlyInstalledAppsAndNoInternet_2ed8e27d_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/apps/MyAppsTestKt/MyAppsOnlyInstalledAppsAndNoInternet_2ed8e27d_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1f5e54e6f874f31f982de0d1889f0b6947fd78668389409e6b51f439e32d1f17 -size 65274 +oid sha256:037f0d24d270c8fb52ac88bff5f40c999ea11035d03e270b6fd7968ad24506a5 +size 67807 diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/apps/MyAppsTestKt/MyAppsUpdatesOnlyAndNoInternet_2ed8e27d_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/apps/MyAppsTestKt/MyAppsUpdatesOnlyAndNoInternet_2ed8e27d_0.png index f7ac458d0..8774b310a 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/apps/MyAppsTestKt/MyAppsUpdatesOnlyAndNoInternet_2ed8e27d_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/apps/MyAppsTestKt/MyAppsUpdatesOnlyAndNoInternet_2ed8e27d_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4ed3a7b54a24bcacca7dbe3a3d426e236f59958ed940f62fff651e00dd82c5fe -size 81105 +oid sha256:8c6ea083fcbe5e69a47e88498ab197b4eab85ab129750290bb634815cf9166b7 +size 83745 diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/discover/DiscoverTestKt/DiscoverFirstStartTest_2ed8e27d_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/discover/DiscoverTestKt/DiscoverFirstStartTest_2ed8e27d_0.png index 9c9b76c9a..a43f2b27d 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/discover/DiscoverTestKt/DiscoverFirstStartTest_2ed8e27d_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/discover/DiscoverTestKt/DiscoverFirstStartTest_2ed8e27d_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6769563c16cb16a06752bb7aa66429ce9b3bda69fa4a7fb4232c8e837d62fe3b -size 52608 +oid sha256:e535a66f33e0313195434319f11049637bdf7a89d98ec8223c5323c738bb0042 +size 55346 diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/discover/DiscoverTestKt/DiscoverNoEnabledReposTest_2ed8e27d_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/discover/DiscoverTestKt/DiscoverNoEnabledReposTest_2ed8e27d_0.png index a803fc829..24259be91 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/discover/DiscoverTestKt/DiscoverNoEnabledReposTest_2ed8e27d_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/discover/DiscoverTestKt/DiscoverNoEnabledReposTest_2ed8e27d_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:406f894eba1d2dbad4b3f64f8db262b470c8d4c61f7889f7ad7110692f0438a0 -size 46396 +oid sha256:ee3d6bc540daebf569a1be2cb7de5c8e53478081baaddd68df7a855851703940 +size 48910 diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/discover/DiscoverTestKt/DiscoverSmallBottomBarTest_1def2e7f_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/discover/DiscoverTestKt/DiscoverSmallBottomBarTest_1def2e7f_0.png index f3396d216..e4aa7cda1 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/discover/DiscoverTestKt/DiscoverSmallBottomBarTest_1def2e7f_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/discover/DiscoverTestKt/DiscoverSmallBottomBarTest_1def2e7f_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:60ae81af88e21da8a7feb43d9cbf111106c715789a93295e9c5d7dc05a627547 -size 156780 +oid sha256:3a9ece5ddf70e67cff5fdad716124b4c6fde77591ee1cf3c1811c881af63e17d +size 151099 diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/discover/DiscoverTestKt/DiscoverTest_2ed8e27d_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/discover/DiscoverTestKt/DiscoverTest_2ed8e27d_0.png index 4ef46af9e..2a344adb7 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/discover/DiscoverTestKt/DiscoverTest_2ed8e27d_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/discover/DiscoverTestKt/DiscoverTest_2ed8e27d_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2485bf774cdbb291cac6288b617eba3bea65eeb3d6c723df526217b32e2fad57 -size 155874 +oid sha256:3bffaab8294637b504398af638e91187ff23640466f9775668ec00490436effe +size 151906 diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchEmptyTest_2ed8e27d_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchEmptyTest_2ed8e27d_0.png index 7abb70188..90a354891 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchEmptyTest_2ed8e27d_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchEmptyTest_2ed8e27d_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c97f31285c26e60b58f9aee6dd9c4517b0801f32df2e6e523753a20973d8eeda -size 19245 +oid sha256:b84731273d6b914154b20cd44c6a0ef56b6d5fd0815d0585e6d39da75b75760b +size 31966 diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchLoadingTest_2ed8e27d_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchLoadingTest_2ed8e27d_0.png index 5b12e86d7..f4e8936d0 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchLoadingTest_2ed8e27d_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchLoadingTest_2ed8e27d_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:198d32d7d27af34fc966958db1fd033fa4fc49db294b5ba52a3919ce0a5eee4e -size 24266 +oid sha256:45057a2f4a625328c888de722d85a141c87fa11a71e9b735fa8a1b1cb592387b +size 36852 diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchNoResultsTest_2ed8e27d_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchNoResultsTest_2ed8e27d_0.png index 49d74eb44..95a75b1a7 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchNoResultsTest_2ed8e27d_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchNoResultsTest_2ed8e27d_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5e5810b116406d8d826620ee27d4daccfedf29d6e26b95222fdce73f48250af7 -size 33494 +oid sha256:ceff828eeb1900ddb11aa1e031a6429ee6d635e95d18714e96ee936b69c1f1a0 +size 46075 diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchOnlyCategoriesTest_2ed8e27d_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchOnlyCategoriesTest_2ed8e27d_0.png index 67a66c8df..5775e0cd5 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchOnlyCategoriesTest_2ed8e27d_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchOnlyCategoriesTest_2ed8e27d_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7ae57048f9e4f87b3eaa17ed0690f831c26a19bda18ca8a84797782912c107db -size 64975 +oid sha256:70ee5992fbd5c9eb4373d0f348f6d742cc012468aa2474a263eb1dcf583b4c56 +size 77590 diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchResultsNightTest_1def2e7f_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchResultsNightTest_1def2e7f_0.png index 48a4c7a8e..b3abfdc2b 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchResultsNightTest_1def2e7f_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchResultsNightTest_1def2e7f_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:203e47a0d77a97d1f1008637fde7ef493eacc36b3bb0d35880f353e4a8bf1e09 -size 103221 +oid sha256:ce2fd6832bf854cabb19a7eb37bd060aa42ebc19d9ff472ed30385cee8c340b7 +size 115688 diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchResultsTest_2ed8e27d_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchResultsTest_2ed8e27d_0.png index 3584aa6f9..fd90cb0ee 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchResultsTest_2ed8e27d_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/search/GlobalSearchTestKt/GlobalSearchResultsTest_2ed8e27d_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0b65f5ee826e29411cfa981603de7ba1a14bf98d6f8780a96d31ab3c4395e88e -size 101535 +oid sha256:c0b51b789a143543034fbd2b6c77a3433e2b50f5b57674fb8a997519a133d9ba +size 113814 diff --git a/app/src/test/java/org/fdroid/ui/lists/AppListSearchTest.kt b/app/src/test/java/org/fdroid/ui/lists/AppListSearchTest.kt index 0b41fbb54..5ff23b1c5 100644 --- a/app/src/test/java/org/fdroid/ui/lists/AppListSearchTest.kt +++ b/app/src/test/java/org/fdroid/ui/lists/AppListSearchTest.kt @@ -26,7 +26,7 @@ import org.robolectric.RobolectricTestRunner * This is the in-memory [String.contains]-based counterpart of AppSearchItemsTest, which covers the * DB FTS4 path. * - * [AppListPresenter] uses [org.fdroid.ui.search.SearchHelper.fixQuery] on the incoming query before + * [AppListPresenter] uses [org.fdroid.search.SearchHelper.fixQuery] on the incoming query before * matching, which: * - strips diacritics via NFKD normalization (enables diacritic-insensitive search), and * - inserts zero-width spaces (U+200B) after each ideographic character (enables CJK matching diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index aa1bd1e20..a19e13c91 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -43,7 +43,7 @@ androidxActivityCompose = "1.13.0" accompanistDrawablepainter = "0.37.3" # navigation3 -nav3Core = "1.0.1" +nav3Core = "1.1.0-rc01" lifecycleViewmodelNav3 = "2.10.0" material3AdaptiveNav3 = "1.0.0-alpha03" diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 9ea885056..efecf23a6 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -1203,11 +1203,21 @@ + + + + + + + + + + From 70fe3b5dcf0374c13925a48a7df89b1efa74eb5f Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Mon, 6 Apr 2026 15:54:29 -0300 Subject: [PATCH 05/30] Update copy for download speed --- app/src/main/res/values/strings.xml | 4 ++-- .../DetailsHeaderDownloadingNightTest_3534351a_0.png | 4 ++-- .../DetailsHeaderTestKt/DetailsHeaderDownloadingTest_0.png | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 703a205e6..9906b9abe 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -570,8 +570,8 @@ This often occurs with apps installed via Google Play or other sources, if they - Percentage complete (int between 0-100) --> Downloading\n%2$s / %3$s (%4$d%%) from\n%1$s - - Downloading with %1$s + + Downloading at %1$s %1$s remaining diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/details/DetailsHeaderTestKt/DetailsHeaderDownloadingNightTest_3534351a_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/details/DetailsHeaderTestKt/DetailsHeaderDownloadingNightTest_3534351a_0.png index 71f6d66ae..b86ae526c 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/details/DetailsHeaderTestKt/DetailsHeaderDownloadingNightTest_3534351a_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/details/DetailsHeaderTestKt/DetailsHeaderDownloadingNightTest_3534351a_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8bcaeed6aafb9767b7d1c9e04f1ea98cdd208b9c077a4857d2e8a933bef569c8 -size 46617 +oid sha256:92066e2671a0fa2733feb5701d540b612714b7f8f23b69133b0e4fc06a5b4a64 +size 46451 diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/details/DetailsHeaderTestKt/DetailsHeaderDownloadingTest_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/details/DetailsHeaderTestKt/DetailsHeaderDownloadingTest_0.png index a20bef69b..aa655ebe4 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/details/DetailsHeaderTestKt/DetailsHeaderDownloadingTest_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/details/DetailsHeaderTestKt/DetailsHeaderDownloadingTest_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ddc8762b99dd13e65805fa5ebdc1f14eb659ff8dc37237b0c13f1748996f8f8f -size 45990 +oid sha256:b7c985dfe300bc834da2b8bfc874c79ebcb5bbfc9adc42f19391f4c719a9ee4c +size 45829 From 98b93667574419956906bf799f2fd96e9c32ac10 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 7 Apr 2026 09:23:21 -0300 Subject: [PATCH 06/30] Remove compact nav bar setting --- .../ui/screenshots/LocalizedScreenshotTest.kt | 1 - .../org/fdroid/settings/SettingsConstants.kt | 3 -- .../org/fdroid/settings/SettingsManager.kt | 6 ---- app/src/main/kotlin/org/fdroid/ui/Main.kt | 1 - .../kotlin/org/fdroid/ui/MainPresenter.kt | 5 --- .../kotlin/org/fdroid/ui/MainViewModel.kt | 1 - .../org/fdroid/ui/navigation/BottomBar.kt | 36 ++----------------- .../kotlin/org/fdroid/ui/settings/Settings.kt | 13 +------ app/src/main/res/values-ar/strings.xml | 4 +-- app/src/main/res/values-it/strings.xml | 2 -- app/src/main/res/values-pl/strings.xml | 2 -- app/src/main/res/values-zh-rCN/strings.xml | 2 -- app/src/main/res/values/strings.xml | 2 -- .../kotlin/org/fdroid/ui/ScreenshotTest.kt | 2 -- .../org/fdroid/ui/discover/DiscoverTest.kt | 19 ---------- .../org/fdroid/ui/settings/SettingsTest.kt | 4 +-- .../DiscoverSmallBottomBarTest_1def2e7f_0.png | 3 -- .../SettingsNightTest_58c50acd_0.png | 4 +-- .../SettingsTest_4fcdc4d2_0.png | 4 +-- 19 files changed, 10 insertions(+), 104 deletions(-) delete mode 100644 app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/discover/DiscoverTestKt/DiscoverSmallBottomBarTest_1def2e7f_0.png diff --git a/app/src/androidTest/java/org/fdroid/ui/screenshots/LocalizedScreenshotTest.kt b/app/src/androidTest/java/org/fdroid/ui/screenshots/LocalizedScreenshotTest.kt index ec18e4ff6..72e416ef4 100644 --- a/app/src/androidTest/java/org/fdroid/ui/screenshots/LocalizedScreenshotTest.kt +++ b/app/src/androidTest/java/org/fdroid/ui/screenshots/LocalizedScreenshotTest.kt @@ -66,7 +66,6 @@ abstract class LocalizedScreenshotTest(val localeName: String) { model = MainModel( dynamicColors = false, - smallBottomBar = false, numUpdates = numUpdates, hasAppIssues = hasAppIssues, ), diff --git a/app/src/main/kotlin/org/fdroid/settings/SettingsConstants.kt b/app/src/main/kotlin/org/fdroid/settings/SettingsConstants.kt index 8eb181a7b..531b90735 100644 --- a/app/src/main/kotlin/org/fdroid/settings/SettingsConstants.kt +++ b/app/src/main/kotlin/org/fdroid/settings/SettingsConstants.kt @@ -17,9 +17,6 @@ object SettingsConstants { const val PREF_KEY_DYNAMIC_COLORS = "dynamicColors" const val PREF_DEFAULT_DYNAMIC_COLORS = false - const val PREF_KEY_SMALL_BOTTOM_BAR = "smallBottomBar" - const val PREF_DEFAULT_SMALL_BOTTOM_BAR = false - enum class AutoUpdateValues { OnlyWifi, Always, diff --git a/app/src/main/kotlin/org/fdroid/settings/SettingsManager.kt b/app/src/main/kotlin/org/fdroid/settings/SettingsManager.kt index dff3e549d..8aaa35e71 100644 --- a/app/src/main/kotlin/org/fdroid/settings/SettingsManager.kt +++ b/app/src/main/kotlin/org/fdroid/settings/SettingsManager.kt @@ -33,7 +33,6 @@ import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_PREVENT_SCREENSHOTS import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_PROXY import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_REPO_UPDATES import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_SHOW_INCOMPATIBLE -import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_SMALL_BOTTOM_BAR import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_THEME import org.fdroid.settings.SettingsConstants.PREF_DNS_CACHE import org.fdroid.settings.SettingsConstants.PREF_DNS_CACHE_DEFAULT @@ -50,7 +49,6 @@ import org.fdroid.settings.SettingsConstants.PREF_KEY_PREVENT_SCREENSHOTS import org.fdroid.settings.SettingsConstants.PREF_KEY_PROXY import org.fdroid.settings.SettingsConstants.PREF_KEY_REPO_UPDATES import org.fdroid.settings.SettingsConstants.PREF_KEY_SHOW_INCOMPATIBLE -import org.fdroid.settings.SettingsConstants.PREF_KEY_SMALL_BOTTOM_BAR import org.fdroid.settings.SettingsConstants.PREF_KEY_THEME import org.fdroid.settings.SettingsConstants.PREF_USE_DNS_CACHE import org.fdroid.settings.SettingsConstants.PREF_USE_DNS_CACHE_DEFAULT @@ -79,10 +77,6 @@ class SettingsManager @Inject constructor(@param:ApplicationContext private val prefsFlow .map { it.get(PREF_KEY_DYNAMIC_COLORS) ?: PREF_DEFAULT_DYNAMIC_COLORS } .distinctUntilChanged() - val smallBottomBarFlow: Flow = - prefsFlow - .map { it.get(PREF_KEY_SMALL_BOTTOM_BAR) ?: PREF_DEFAULT_SMALL_BOTTOM_BAR } - .distinctUntilChanged() val repoUpdates get() = prefs.getString(PREF_KEY_REPO_UPDATES, PREF_DEFAULT_REPO_UPDATES).toAutoUpdateValue() diff --git a/app/src/main/kotlin/org/fdroid/ui/Main.kt b/app/src/main/kotlin/org/fdroid/ui/Main.kt index 63879b795..59f4e0c30 100644 --- a/app/src/main/kotlin/org/fdroid/ui/Main.kt +++ b/app/src/main/kotlin/org/fdroid/ui/Main.kt @@ -82,7 +82,6 @@ fun Main(onListeningForIntent: () -> Unit = {}) { val viewModel = hiltViewModel() Settings( model = viewModel.model, - isBigScreen = isBigScreen, onSaveLogcat = { viewModel.onSaveLogcat(it) navigator.goBack() diff --git a/app/src/main/kotlin/org/fdroid/ui/MainPresenter.kt b/app/src/main/kotlin/org/fdroid/ui/MainPresenter.kt index 086624c55..8d6037763 100644 --- a/app/src/main/kotlin/org/fdroid/ui/MainPresenter.kt +++ b/app/src/main/kotlin/org/fdroid/ui/MainPresenter.kt @@ -5,12 +5,10 @@ import androidx.compose.runtime.collectAsState import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.StateFlow import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_DYNAMIC_COLORS -import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_SMALL_BOTTOM_BAR import org.fdroid.ui.apps.AppWithIssueItem data class MainModel( val dynamicColors: Boolean, - val smallBottomBar: Boolean, val numUpdates: Int, val hasAppIssues: Boolean, ) @@ -18,14 +16,11 @@ data class MainModel( @Composable fun MainPresenter( dynamicColorsFlow: Flow, - smallBottomBarFlow: Flow, numUpdatesFlow: StateFlow, appsWithIssuesFlow: StateFlow?>, ): MainModel { return MainModel( dynamicColors = dynamicColorsFlow.collectAsState(initial = PREF_DEFAULT_DYNAMIC_COLORS).value, - smallBottomBar = - smallBottomBarFlow.collectAsState(initial = PREF_DEFAULT_SMALL_BOTTOM_BAR).value, numUpdates = numUpdatesFlow.collectAsState().value, hasAppIssues = !appsWithIssuesFlow.collectAsState().value.isNullOrEmpty(), ) diff --git a/app/src/main/kotlin/org/fdroid/ui/MainViewModel.kt b/app/src/main/kotlin/org/fdroid/ui/MainViewModel.kt index a8ffc800f..874c05797 100644 --- a/app/src/main/kotlin/org/fdroid/ui/MainViewModel.kt +++ b/app/src/main/kotlin/org/fdroid/ui/MainViewModel.kt @@ -37,7 +37,6 @@ constructor( moleculeScope.launchMolecule(mode = ContextClock) { MainPresenter( dynamicColorsFlow = settingsManager.dynamicColorFlow, - smallBottomBarFlow = settingsManager.smallBottomBarFlow, numUpdatesFlow = updatesManager.numUpdates, appsWithIssuesFlow = updatesManager.appsWithIssues, ) diff --git a/app/src/main/kotlin/org/fdroid/ui/navigation/BottomBar.kt b/app/src/main/kotlin/org/fdroid/ui/navigation/BottomBar.kt index 5f2d0cdbc..ea5314991 100644 --- a/app/src/main/kotlin/org/fdroid/ui/navigation/BottomBar.kt +++ b/app/src/main/kotlin/org/fdroid/ui/navigation/BottomBar.kt @@ -3,13 +3,6 @@ package org.fdroid.ui.navigation import androidx.compose.foundation.layout.Arrangement.spacedBy import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.WindowInsets -import androidx.compose.foundation.layout.WindowInsetsSides -import androidx.compose.foundation.layout.consumeWindowInsets -import androidx.compose.foundation.layout.heightIn -import androidx.compose.foundation.layout.navigationBars -import androidx.compose.foundation.layout.only -import androidx.compose.foundation.layout.safeDrawing import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Error import androidx.compose.material3.Badge @@ -26,7 +19,6 @@ import androidx.compose.material3.Text import androidx.compose.material3.contentColorFor import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalResources import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.semantics @@ -41,23 +33,11 @@ import org.fdroid.ui.MainModel @Composable fun BottomBar(model: MainModel, currentNavKey: NavKey, onNav: (MainNavKey) -> Unit) { val res = LocalResources.current - val modifier = - Modifier.consumeWindowInsets( - WindowInsets.safeDrawing.only(WindowInsetsSides.Horizontal + WindowInsetsSides.Bottom) - ) - val bottom = with(LocalDensity.current) { WindowInsets.navigationBars.getBottom(this).toDp() } - NavigationBar( - modifier = if (model.smallBottomBar) modifier.heightIn(max = 48.dp + bottom) else modifier - ) { + NavigationBar { topLevelRoutes.forEach { dest -> NavigationBarItem( icon = { NavIcon(dest, model.numUpdates, model.hasAppIssues) }, - label = - if (model.smallBottomBar) { - null - } else { - { Text(stringResource(dest.label)) } - }, + label ={ Text(stringResource(dest.label)) }, selected = dest == currentNavKey, colors = NavigationBarItemDefaults.colors( @@ -156,16 +136,10 @@ private fun Preview() { val model = MainModel( dynamicColors = false, - smallBottomBar = false, numUpdates = 3, hasAppIssues = false, ) BottomBar(model = model, currentNavKey = NavigationKey.Discover, onNav = {}) - BottomBar( - model = model.copy(smallBottomBar = true), - currentNavKey = NavigationKey.Discover, - onNav = {}, - ) } } } @@ -186,16 +160,10 @@ private fun PreviewIssues() { val model = MainModel( dynamicColors = true, - smallBottomBar = false, numUpdates = 0, hasAppIssues = true, ) BottomBar(model = model, currentNavKey = NavigationKey.MyApps, onNav = {}) - BottomBar( - model = model.copy(smallBottomBar = true), - currentNavKey = NavigationKey.MyApps, - onNav = {}, - ) } } } diff --git a/app/src/main/kotlin/org/fdroid/ui/settings/Settings.kt b/app/src/main/kotlin/org/fdroid/ui/settings/Settings.kt index 50e2f1e37..b5c6c9ce8 100644 --- a/app/src/main/kotlin/org/fdroid/ui/settings/Settings.kt +++ b/app/src/main/kotlin/org/fdroid/ui/settings/Settings.kt @@ -65,7 +65,6 @@ import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_MIRROR_CHOOSER import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_PREVENT_SCREENSHOTS import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_PROXY import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_REPO_UPDATES -import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_SMALL_BOTTOM_BAR import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_THEME import org.fdroid.settings.SettingsConstants.PREF_KEY_AUTO_UPDATES import org.fdroid.settings.SettingsConstants.PREF_KEY_DYNAMIC_COLORS @@ -73,7 +72,6 @@ import org.fdroid.settings.SettingsConstants.PREF_KEY_MIRROR_CHOOSER import org.fdroid.settings.SettingsConstants.PREF_KEY_PREVENT_SCREENSHOTS import org.fdroid.settings.SettingsConstants.PREF_KEY_PROXY import org.fdroid.settings.SettingsConstants.PREF_KEY_REPO_UPDATES -import org.fdroid.settings.SettingsConstants.PREF_KEY_SMALL_BOTTOM_BAR import org.fdroid.settings.SettingsConstants.PREF_KEY_THEME import org.fdroid.settings.SettingsConstants.PREF_USE_DNS_CACHE import org.fdroid.settings.SettingsConstants.PREF_USE_DNS_CACHE_DEFAULT @@ -89,7 +87,6 @@ import org.fdroid.utils.getLogName @OptIn(ExperimentalMaterial3Api::class) fun Settings( model: SettingsModel, - isBigScreen: Boolean, onSaveLogcat: (Uri?) -> Unit, onBackClicked: () -> Unit, ) { @@ -193,14 +190,6 @@ fun Settings( context.startActivitySafe(intent) }, ) - if (!isBigScreen) - switchPreference( - key = PREF_KEY_SMALL_BOTTOM_BAR, - defaultValue = PREF_DEFAULT_SMALL_BOTTOM_BAR, - icon = {}, - title = { Text(stringResource(R.string.pref_compact_bottom_bar_title)) }, - summary = { Text(stringResource(R.string.pref_compact_bottom_bar_summary)) }, - ) preferenceCategory( key = "pref_category_updates", title = { Text(stringResource(R.string.updates)) }, @@ -404,6 +393,6 @@ fun SettingsPreview() { nextRepoUpdateFlow = MutableStateFlow(Long.MAX_VALUE), nextAppUpdateFlow = MutableStateFlow(currentTimeMillis() - HOURS.toMillis(12)), ) - Settings(model, true, {}, {}) + Settings(model, {}, {}) } } diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index b0e77ae2e..8d9fbd148 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -851,8 +851,6 @@ حُدِّث %1$d تطبيقًا حُدِّث %1$d تطبيق - شريط تنقل مضغوط - يقلل حجم شريط التنقل السفلي ويخفي تسمياته - ينزل ب %1$s +W ينزل ب %1$s %1$s متبقي diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index bc9cd1706..9d093ec01 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -714,8 +714,6 @@ Usa i colori di sistema Applica colori dinamici dalle impostazioni di sistema Apri le impostazioni di lingua del sistema - Barra di navigazione compatta - Riduci la dimensione e nascondi le etichette della barra inferiore di navigazione Solo con Wi-Fi Sempre (anche con connessione dati mobile) Mai diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index e8bd4c6f8..5a2dff6a1 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -826,8 +826,6 @@ Historia instalacji jest wyłączona\n\nInstalacje, aktualizacje i odinstalowania nie będą rejestrowane Usuń historię instalacji Czy usunąć historię instalacji? - Kompaktowy pasek nawigacyjny - Zmniejsz rozmiar i ukryj etykiety dolnego paska nawigacyjnego Pobieranie z prędkością %1$s Pozostało %1$s diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 6ea3db33f..290f184bf 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -768,8 +768,6 @@ 禁用了安装历史记录\n\n不会记录安装、更新和卸载 删除安装历史记录 要删除安装历史记录吗? - 紧凑式导航栏 - 缩小尺寸并隐藏底部导航栏的标签 实时下载速度 %1$s 剩余 %1$s diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9906b9abe..03b9a7125 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -167,8 +167,6 @@ Use system colors Apply dynamic colors from your system settings Open system language settings - Compact navigation bar - Reduces size and hides labels of navigation bottom bar Only on Wi-Fi Always (even on mobile data) Never diff --git a/app/src/screenshotTest/kotlin/org/fdroid/ui/ScreenshotTest.kt b/app/src/screenshotTest/kotlin/org/fdroid/ui/ScreenshotTest.kt index 426035a78..1336083ab 100644 --- a/app/src/screenshotTest/kotlin/org/fdroid/ui/ScreenshotTest.kt +++ b/app/src/screenshotTest/kotlin/org/fdroid/ui/ScreenshotTest.kt @@ -11,7 +11,6 @@ import org.fdroid.ui.navigation.NavigationKey fun ScreenshotTest( currentNavKey: NavKey = NavigationKey.Discover, showBottomBar: Boolean = currentNavKey is MainNavKey, - smallBottomBar: Boolean = false, numUpdates: Int = 3, hasAppIssues: Boolean = true, content: @Composable () -> Unit, @@ -20,7 +19,6 @@ fun ScreenshotTest( model = MainModel( dynamicColors = false, - smallBottomBar = smallBottomBar, numUpdates = numUpdates, hasAppIssues = hasAppIssues, ), diff --git a/app/src/screenshotTest/kotlin/org/fdroid/ui/discover/DiscoverTest.kt b/app/src/screenshotTest/kotlin/org/fdroid/ui/discover/DiscoverTest.kt index d046e370e..b5926d394 100644 --- a/app/src/screenshotTest/kotlin/org/fdroid/ui/discover/DiscoverTest.kt +++ b/app/src/screenshotTest/kotlin/org/fdroid/ui/discover/DiscoverTest.kt @@ -1,6 +1,5 @@ package org.fdroid.ui.discover -import android.content.res.Configuration import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview import com.android.tools.screenshot.PreviewTest @@ -42,24 +41,6 @@ private fun DiscoverTest() { } } -@Composable -@PreviewTest -@Preview( - showBackground = true, - showSystemUi = true, - uiMode = Configuration.UI_MODE_NIGHT_YES or Configuration.UI_MODE_TYPE_NORMAL, -) -private fun DiscoverSmallBottomBarTest() { - ScreenshotTest(smallBottomBar = true) { - Discover( - discoverModel = getLoadedModel().copy(hasRepoIssues = false), - onListTap = {}, - onAppTap = {}, - onNav = {}, - ) - } -} - private fun getLoadedModel(): LoadedDiscoverModel { val newApps = listOf( diff --git a/app/src/screenshotTest/kotlin/org/fdroid/ui/settings/SettingsTest.kt b/app/src/screenshotTest/kotlin/org/fdroid/ui/settings/SettingsTest.kt index 609757239..bd077c012 100644 --- a/app/src/screenshotTest/kotlin/org/fdroid/ui/settings/SettingsTest.kt +++ b/app/src/screenshotTest/kotlin/org/fdroid/ui/settings/SettingsTest.kt @@ -15,7 +15,7 @@ import org.fdroid.ui.ScreenshotTest @Preview(showBackground = true, showSystemUi = true, heightDp = 1400) fun SettingsTest() = ScreenshotTest(showBottomBar = false) { - Settings(model = getSettingsModel(), isBigScreen = false, onSaveLogcat = {}, onBackClicked = {}) + Settings(model = getSettingsModel(), onSaveLogcat = {}, onBackClicked = {}) } @Composable @@ -28,7 +28,7 @@ fun SettingsTest() = ) fun SettingsNightTest() = ScreenshotTest(showBottomBar = false) { - Settings(model = getSettingsModel(), isBigScreen = false, onSaveLogcat = {}, onBackClicked = {}) + Settings(model = getSettingsModel(), onSaveLogcat = {}, onBackClicked = {}) } private fun getSettingsModel( diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/discover/DiscoverTestKt/DiscoverSmallBottomBarTest_1def2e7f_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/discover/DiscoverTestKt/DiscoverSmallBottomBarTest_1def2e7f_0.png deleted file mode 100644 index e4aa7cda1..000000000 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/discover/DiscoverTestKt/DiscoverSmallBottomBarTest_1def2e7f_0.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3a9ece5ddf70e67cff5fdad716124b4c6fde77591ee1cf3c1811c881af63e17d -size 151099 diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/settings/SettingsTestKt/SettingsNightTest_58c50acd_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/settings/SettingsTestKt/SettingsNightTest_58c50acd_0.png index 1059e9767..eabf079a0 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/settings/SettingsTestKt/SettingsNightTest_58c50acd_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/settings/SettingsTestKt/SettingsNightTest_58c50acd_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:71f406a178f4a466d27c9a1483046a249688370daeb95b15878729934ccee8af -size 235934 +oid sha256:153ff37f2aab19d3ca55d158d1a0157a29981f3da8e89271fa9ca4ef3bdb5df3 +size 217052 diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/settings/SettingsTestKt/SettingsTest_4fcdc4d2_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/settings/SettingsTestKt/SettingsTest_4fcdc4d2_0.png index 80bddd955..4d5013430 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/settings/SettingsTestKt/SettingsTest_4fcdc4d2_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/settings/SettingsTestKt/SettingsTest_4fcdc4d2_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8ab1c8e0bdc1c1a148a287020d299b08d060dc8315068d3f9ca5fd412f21227e -size 235866 +oid sha256:081a2b6280f74393aae70752da97ce3e0629505d98dee69425095ec018140c27 +size 216908 From 4b6ffef7b3b1989223d048ae389f4f572c22a2ea Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 7 Apr 2026 12:35:52 -0300 Subject: [PATCH 07/30] Fix proguard issue with nearby --- app/proguard-rules.pro | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index b37172aee..2d269191a 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -13,5 +13,10 @@ -keep class kotlin.LazyKt -keep class kotlin.collections.CollectionsKt +# Used for full's nearby feature +-keep class kellinwood.security.zipsigner.** {*;} +-keep class org.bouncycastle.jcajce.provider.** { *; } +-keep class org.bouncycastle.jce.provider.** { *; } + # for debugging (comment in when needed) #-printconfiguration build/outputs/logs/r8-configuration.txt From e8cdae53a0e727c4382f27872a206d197493d360 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 7 Apr 2026 16:12:37 -0300 Subject: [PATCH 08/30] Move VersionLine into its own file --- .../org/fdroid/ui/nearby/SwapSuccessAppRow.kt | 2 +- .../org/fdroid/ui/apps/InstallingAppRow.kt | 1 + .../org/fdroid/ui/apps/UpdatableAppRow.kt | 68 +---------------- .../org/fdroid/ui/history/HistoryList.kt | 2 +- .../kotlin/org/fdroid/ui/utils/VersionLine.kt | 76 +++++++++++++++++++ 5 files changed, 80 insertions(+), 69 deletions(-) create mode 100644 app/src/main/kotlin/org/fdroid/ui/utils/VersionLine.kt diff --git a/app/src/full/kotlin/org/fdroid/ui/nearby/SwapSuccessAppRow.kt b/app/src/full/kotlin/org/fdroid/ui/nearby/SwapSuccessAppRow.kt index 52f663118..04637da92 100644 --- a/app/src/full/kotlin/org/fdroid/ui/nearby/SwapSuccessAppRow.kt +++ b/app/src/full/kotlin/org/fdroid/ui/nearby/SwapSuccessAppRow.kt @@ -24,8 +24,8 @@ import org.fdroid.R import org.fdroid.install.InstallState import org.fdroid.install.InstallStateWithInfo import org.fdroid.ui.FDroidContent -import org.fdroid.ui.apps.VersionLine import org.fdroid.ui.utils.AsyncShimmerImage +import org.fdroid.ui.utils.VersionLine @Composable fun SwapSuccessAppRow( diff --git a/app/src/main/kotlin/org/fdroid/ui/apps/InstallingAppRow.kt b/app/src/main/kotlin/org/fdroid/ui/apps/InstallingAppRow.kt index 12cbf1edd..9e73d2a91 100644 --- a/app/src/main/kotlin/org/fdroid/ui/apps/InstallingAppRow.kt +++ b/app/src/main/kotlin/org/fdroid/ui/apps/InstallingAppRow.kt @@ -23,6 +23,7 @@ import org.fdroid.R import org.fdroid.install.InstallState import org.fdroid.ui.FDroidContent import org.fdroid.ui.utils.AsyncShimmerImage +import org.fdroid.ui.utils.VersionLine @Composable fun InstallingAppRow(app: InstallingAppItem, isSelected: Boolean, modifier: Modifier = Modifier) { diff --git a/app/src/main/kotlin/org/fdroid/ui/apps/UpdatableAppRow.kt b/app/src/main/kotlin/org/fdroid/ui/apps/UpdatableAppRow.kt index 5a91bfae0..39815d8e6 100644 --- a/app/src/main/kotlin/org/fdroid/ui/apps/UpdatableAppRow.kt +++ b/app/src/main/kotlin/org/fdroid/ui/apps/UpdatableAppRow.kt @@ -1,19 +1,14 @@ package org.fdroid.ui.apps -import android.text.format.Formatter import androidx.compose.animation.AnimatedVisibility import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.foundation.text.InlineTextContent -import androidx.compose.foundation.text.appendInlineContent import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.ArrowRightAlt import androidx.compose.material.icons.filled.NewReleases import androidx.compose.material3.BadgedBox import androidx.compose.material3.Card -import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.ListItem import androidx.compose.material3.ListItemDefaults @@ -26,26 +21,20 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.LiveRegionMode import androidx.compose.ui.semantics.hideFromAccessibility import androidx.compose.ui.semantics.liveRegion import androidx.compose.ui.semantics.semantics -import androidx.compose.ui.text.Placeholder -import androidx.compose.ui.text.PlaceholderVerticalAlign -import androidx.compose.ui.text.buildAnnotatedString import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp import org.fdroid.R import org.fdroid.ui.FDroidContent import org.fdroid.ui.utils.AsyncShimmerImage import org.fdroid.ui.utils.BadgeIcon import org.fdroid.ui.utils.ExpandIconArrow +import org.fdroid.ui.utils.VersionLine import org.fdroid.ui.utils.getPreviewVersion @Composable @@ -103,61 +92,6 @@ fun UpdatableAppRow(app: AppUpdateItem, isSelected: Boolean, modifier: Modifier } } -/** - * Shows which is the installed version of the app and to which version it will upgrade. Takes into - * account the layout direction to show the correct order of versions and the arrow. - */ -@Composable -fun VersionLine(app: AppUpdateItem) { - VersionLineWithSize(app.installedVersionName, app.update.versionName, app.update.size) -} - -@Composable -fun VersionLineWithSize(fromVersion: String?, toVersion: String, numBytes: Long? = null) { - val size = numBytes?.let { Formatter.formatFileSize(LocalContext.current, it) } - VersionLine(fromVersion, toVersion, size) -} - -@Composable -fun VersionLine(fromVersion: String?, toVersion: String, extraText: String? = null) { - val test = buildAnnotatedString { - if (LocalLayoutDirection.current == LayoutDirection.Ltr) { - if (fromVersion != null) { - append(fromVersion) - } - } else { - append("\u202A${toVersion}\u202C") - } - if (fromVersion != null) appendInlineContent("arrowId", " → ") - if (LocalLayoutDirection.current == LayoutDirection.Ltr) { - append("\u202A${toVersion}\u202C") - } else if (fromVersion != null) { - append("\u202A${fromVersion}\u202C") - } - if (extraText != null) append(" • $extraText") - } - val inlineContent = - mapOf( - Pair( - "arrowId", - InlineTextContent( - Placeholder( - width = 24.sp, - height = 20.sp, - placeholderVerticalAlign = PlaceholderVerticalAlign.TextCenter, - ) - ) { - Icon( - Icons.AutoMirrored.Default.ArrowRightAlt, - contentDescription = null, - modifier = Modifier.padding(horizontal = 2.dp), - ) - }, - ) - ) - Text(test, inlineContent = if (fromVersion == null) mapOf() else inlineContent) -} - @Preview @Composable fun UpdatableAppRowPreview() { diff --git a/app/src/main/kotlin/org/fdroid/ui/history/HistoryList.kt b/app/src/main/kotlin/org/fdroid/ui/history/HistoryList.kt index 2b29eef04..c02ca9581 100644 --- a/app/src/main/kotlin/org/fdroid/ui/history/HistoryList.kt +++ b/app/src/main/kotlin/org/fdroid/ui/history/HistoryList.kt @@ -33,9 +33,9 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import org.fdroid.R import org.fdroid.history.InstallEvent -import org.fdroid.ui.apps.VersionLine import org.fdroid.ui.utils.AsyncShimmerImage import org.fdroid.ui.utils.BadgeIcon +import org.fdroid.ui.utils.VersionLine import org.fdroid.ui.utils.asRelativeTimeString @Composable diff --git a/app/src/main/kotlin/org/fdroid/ui/utils/VersionLine.kt b/app/src/main/kotlin/org/fdroid/ui/utils/VersionLine.kt new file mode 100644 index 000000000..ef557d504 --- /dev/null +++ b/app/src/main/kotlin/org/fdroid/ui/utils/VersionLine.kt @@ -0,0 +1,76 @@ +package org.fdroid.ui.utils + +import android.text.format.Formatter +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.text.InlineTextContent +import androidx.compose.foundation.text.appendInlineContent +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.ArrowRightAlt +import androidx.compose.material3.Icon +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalLayoutDirection +import androidx.compose.ui.text.Placeholder +import androidx.compose.ui.text.PlaceholderVerticalAlign +import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.unit.LayoutDirection +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import org.fdroid.ui.apps.AppUpdateItem + +/** + * Shows which is the installed version of the app and to which version it will upgrade. Takes into + * account the layout direction to show the correct order of versions and the arrow. + */ +@Composable +fun VersionLine(app: AppUpdateItem) { + VersionLineWithSize(app.installedVersionName, app.update.versionName, app.update.size) +} + +@Composable +fun VersionLineWithSize(fromVersion: String?, toVersion: String, numBytes: Long? = null) { + val size = numBytes?.let { Formatter.formatFileSize(LocalContext.current, it) } + VersionLine(fromVersion, toVersion, size) +} + +@Composable +fun VersionLine(fromVersion: String?, toVersion: String, extraText: String? = null) { + val test = buildAnnotatedString { + if (LocalLayoutDirection.current == LayoutDirection.Ltr) { + if (fromVersion != null) { + append(fromVersion) + } + } else { + append("\u202A${toVersion}\u202C") + } + if (fromVersion != null) appendInlineContent("arrowId", " → ") + if (LocalLayoutDirection.current == LayoutDirection.Ltr) { + append("\u202A${toVersion}\u202C") + } else if (fromVersion != null) { + append("\u202A${fromVersion}\u202C") + } + if (extraText != null) append(" • $extraText") + } + val inlineContent = + mapOf( + Pair( + "arrowId", + InlineTextContent( + Placeholder( + width = 24.sp, + height = 20.sp, + placeholderVerticalAlign = PlaceholderVerticalAlign.TextCenter, + ) + ) { + Icon( + Icons.AutoMirrored.Default.ArrowRightAlt, + contentDescription = null, + modifier = Modifier.padding(horizontal = 2.dp), + ) + }, + ) + ) + Text(test, inlineContent = if (fromVersion == null) mapOf() else inlineContent) +} From 5d38f68f94693d24756d71ec750cbba72280001a Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 7 Apr 2026 16:59:05 -0300 Subject: [PATCH 09/30] Fix discover icon loading for non-HTTP repos --- .../main/kotlin/org/fdroid/ui/discover/DiscoverPresenter.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverPresenter.kt b/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverPresenter.kt index 1645340a6..68a1c0f63 100644 --- a/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverPresenter.kt +++ b/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverPresenter.kt @@ -40,7 +40,7 @@ fun DiscoverPresenter( proxyConfig: ProxyConfig?, ): AppDiscoverItem { val isInstalled = installedApps.contains(packageName) - val imageModel = getIcon(localeList)?.getImageModel(repository, proxyConfig) as? DownloadRequest + val imageModel = getIcon(localeList)?.getImageModel(repository, proxyConfig) return AppDiscoverItem( packageName = packageName, name = getName(localeList) ?: "Unknown App", @@ -48,7 +48,7 @@ fun DiscoverPresenter( isInstalled = isInstalled, imageModel = if (isInstalled) { - PackageName(packageName, imageModel) + PackageName(packageName, imageModel as? DownloadRequest) } else { imageModel }, From 5d32a4d5d4ef86319e16974ed4f2735e60f8c4bf Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 7 Apr 2026 17:53:42 -0300 Subject: [PATCH 10/30] [db] More fixes to RepoAdder as it was still possible to add the same repo twice --- .../main/java/org/fdroid/repo/RepoAdder.kt | 35 +++++++++++++------ .../java/org/fdroid/repo/RepoAdderTest.kt | 5 +-- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/libs/database/src/main/java/org/fdroid/repo/RepoAdder.kt b/libs/database/src/main/java/org/fdroid/repo/RepoAdder.kt index db05d980b..c0ee209b7 100644 --- a/libs/database/src/main/java/org/fdroid/repo/RepoAdder.kt +++ b/libs/database/src/main/java/org/fdroid/repo/RepoAdder.kt @@ -19,6 +19,7 @@ import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.Job +import kotlinx.coroutines.cancelAndJoin import kotlinx.coroutines.currentCoroutineContext import kotlinx.coroutines.ensureActive import kotlinx.coroutines.flow.MutableStateFlow @@ -151,6 +152,7 @@ internal class RepoAdder( var receivedRepo: Repository? = null val apps = ArrayList() var fetchResult: FetchResult? = null + val activeContext = currentCoroutineContext() val receiver = object : RepoPreviewReceiver { @@ -164,18 +166,18 @@ internal class RepoAdder( ) } fetchResult = getFetchResult(fetchUrl, repo) - coroutineContext.ensureActive() // ensure active before updating state + activeContext.ensureActive() // ensure active before updating state addRepoState.value = Fetching(fetchUrl, receivedRepo, apps.toList(), fetchResult) } override fun onAppReceived(app: AppOverviewItem) { apps.add(app) - coroutineContext.ensureActive() // ensure active before updating state + activeContext.ensureActive() // ensure active before updating state addRepoState.value = Fetching(fetchUrl, receivedRepo, apps.toList(), fetchResult) } } // set a state early, so the ui can show progress animation - coroutineContext.ensureActive() // ensure active before updating state + activeContext.ensureActive() // ensure active before updating state addRepoState.value = Fetching(fetchUrl, receivedRepo, apps, fetchResult) // try fetching repo with v2 format first and fallback to v1 @@ -201,7 +203,7 @@ internal class RepoAdder( } // set final result val finalRepo = receivedRepo - coroutineContext.ensureActive() // ensure active before updating state + activeContext.ensureActive() // ensure active before updating state if (finalRepo == null) { onError(AddRepoError(INVALID_INDEX)) } else { @@ -280,18 +282,29 @@ internal class RepoAdder( } @WorkerThread - internal fun addFetchedRepository(): Repository? { + internal suspend fun addFetchedRepository(): Repository? { + return try { + addFetchedRepositoryInt() + } catch (e: Exception) { + addRepoState.value = AddRepoError(IO_ERROR, e) + return null + } + } + + @WorkerThread + private suspend fun addFetchedRepositoryInt(): Repository? { // first cancel fetch preview job, so it stops emitting new states, // screwing up the atomicity of getAndUpdate() below. - fetchJob?.cancel() + fetchJob?.cancelAndJoin() // get current state before changing it // prevent double calls (e.g. caused by double tapping a UI button) - val state = - addRepoState.getAndUpdate { - log.info { "Previous state was $it" } - Adding - } as? Fetching ?: error("Unexpected previous state") + val state = addRepoState.getAndUpdate { Adding } + if (state is Adding) { + log.warn { "Already adding a repo, ignoring call to addFetchedRepository()." } + return null + } + state as? Fetching ?: error("Unexpected previous state: $state") log.info { "Moved to state ${addRepoState.value}, cancelling preview job..." } val repo = state.receivedRepo ?: throw IllegalStateException("No repo: ${addRepoState.value}") diff --git a/libs/database/src/test/java/org/fdroid/repo/RepoAdderTest.kt b/libs/database/src/test/java/org/fdroid/repo/RepoAdderTest.kt index b4a94ab09..d851e3b49 100644 --- a/libs/database/src/test/java/org/fdroid/repo/RepoAdderTest.kt +++ b/libs/database/src/test/java/org/fdroid/repo/RepoAdderTest.kt @@ -24,7 +24,6 @@ import java.security.DigestInputStream import java.security.MessageDigest import java.util.concurrent.Callable import kotlin.test.assertEquals -import kotlin.test.assertFailsWith import kotlin.test.assertFalse import kotlin.test.assertIs import kotlin.test.assertNull @@ -429,7 +428,9 @@ internal class RepoAdderTest { expectMinRepoPreview(repoName, url, expectedFetchResult) - assertFailsWith { repoAdder.addFetchedRepository() } + assertNull(repoAdder.addFetchedRepository()) + assertIs(repoAdder.addRepoState.value) + assertIs((repoAdder.addRepoState.value as AddRepoError).exception) } @Test From 269f92573ceee58899dbcafb205758e1ee779853 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 7 Apr 2026 17:54:55 -0300 Subject: [PATCH 11/30] Don't let user escape from adding a repo so they wait until it is done and don't back out prematurely --- .../org/fdroid/ui/repositories/RepositoriesViewModel.kt | 9 ++++++--- .../kotlin/org/fdroid/ui/repositories/add/AddRepo.kt | 7 +++++-- .../fdroid/ui/repositories/add/AddRepoProgressScreen.kt | 8 +++++++- .../AddRepoTestKt/AddRepoAddingTest_2ed8e27d_0.png | 4 ++-- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/app/src/main/kotlin/org/fdroid/ui/repositories/RepositoriesViewModel.kt b/app/src/main/kotlin/org/fdroid/ui/repositories/RepositoriesViewModel.kt index b3e659e12..1bef2f631 100644 --- a/app/src/main/kotlin/org/fdroid/ui/repositories/RepositoriesViewModel.kt +++ b/app/src/main/kotlin/org/fdroid/ui/repositories/RepositoriesViewModel.kt @@ -72,9 +72,12 @@ constructor( private fun onRepositoriesChanged(repositories: List) { log.info("onRepositoriesChanged(${repositories.size})") repos.update { - repositories.mapNotNull { - if (it.isArchiveRepo) null else RepositoryItem(it, localeList, settingsManager.proxyConfig) - } + repositories + .mapNotNull { + if (it.isArchiveRepo) null + else RepositoryItem(it, localeList, settingsManager.proxyConfig) + } + .also { repos -> log.info { "Adding repos ${repos.map { it.address }}" } } } repoSortingMap.update { // just add repos to sortingMap, because they are already pre-sorted by weight diff --git a/app/src/main/kotlin/org/fdroid/ui/repositories/add/AddRepo.kt b/app/src/main/kotlin/org/fdroid/ui/repositories/add/AddRepo.kt index 698863149..42b09452c 100644 --- a/app/src/main/kotlin/org/fdroid/ui/repositories/add/AddRepo.kt +++ b/app/src/main/kotlin/org/fdroid/ui/repositories/add/AddRepo.kt @@ -46,8 +46,10 @@ fun AddRepo( topBar = { TopAppBar( navigationIcon = { - IconButton(onClick = onBackClicked) { - Icon(Icons.AutoMirrored.Filled.ArrowBack, stringResource(R.string.back)) + if (state !is Adding) { + IconButton(onClick = onBackClicked) { + Icon(Icons.AutoMirrored.Filled.ArrowBack, stringResource(R.string.back)) + } } }, title = { @@ -93,6 +95,7 @@ fun AddRepo( Adding -> AddRepoProgressScreen( text = stringResource(R.string.repo_state_adding), + backAllowed = false, modifier = Modifier.padding(paddingValues), ) is Added -> { diff --git a/app/src/main/kotlin/org/fdroid/ui/repositories/add/AddRepoProgressScreen.kt b/app/src/main/kotlin/org/fdroid/ui/repositories/add/AddRepoProgressScreen.kt index b2dfbc59d..7184f390b 100644 --- a/app/src/main/kotlin/org/fdroid/ui/repositories/add/AddRepoProgressScreen.kt +++ b/app/src/main/kotlin/org/fdroid/ui/repositories/add/AddRepoProgressScreen.kt @@ -1,5 +1,6 @@ package org.fdroid.ui.repositories.add +import androidx.activity.compose.BackHandler import androidx.compose.foundation.layout.Arrangement.spacedBy import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize @@ -21,7 +22,12 @@ import org.fdroid.ui.FDroidContent @Composable @OptIn(ExperimentalMaterial3ExpressiveApi::class) -fun AddRepoProgressScreen(text: String, modifier: Modifier = Modifier) { +fun AddRepoProgressScreen( + text: String, + modifier: Modifier = Modifier, + backAllowed: Boolean = true, +) { + BackHandler(!backAllowed) {} Column( verticalArrangement = spacedBy(16.dp, CenterVertically), horizontalAlignment = CenterHorizontally, diff --git a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/repositories/AddRepoTestKt/AddRepoAddingTest_2ed8e27d_0.png b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/repositories/AddRepoTestKt/AddRepoAddingTest_2ed8e27d_0.png index 0c05bbc51..7abd6885c 100644 --- a/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/repositories/AddRepoTestKt/AddRepoAddingTest_2ed8e27d_0.png +++ b/app/src/screenshotTestBasicDefaultDebug/reference/org/fdroid/ui/repositories/AddRepoTestKt/AddRepoAddingTest_2ed8e27d_0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ab9a82e0bd93768d3c97e151d8cd2b284d670cb82c2411d0a216dce2fab56e41 -size 36871 +oid sha256:d06c7114be1f155ddf57352ae00ded89e27022c1c685cd2a1fce1973a990e5b7 +size 36489 From 19e334e66baeb7ddb3da43dcbabbf90cb1f2da8e Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 8 Apr 2026 09:11:22 -0300 Subject: [PATCH 12/30] Use locales from locale_config.xml for localized screenshots --- .../ui/screenshots/LocalizedScreenshotTest.kt | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/app/src/androidTest/java/org/fdroid/ui/screenshots/LocalizedScreenshotTest.kt b/app/src/androidTest/java/org/fdroid/ui/screenshots/LocalizedScreenshotTest.kt index 72e416ef4..f0036444f 100644 --- a/app/src/androidTest/java/org/fdroid/ui/screenshots/LocalizedScreenshotTest.kt +++ b/app/src/androidTest/java/org/fdroid/ui/screenshots/LocalizedScreenshotTest.kt @@ -1,5 +1,7 @@ package org.fdroid.ui.screenshots +import android.app.LocaleConfig +import android.os.Build.VERSION.SDK_INT import androidx.compose.material3.adaptive.layout.PaneScaffoldDirective import androidx.compose.runtime.Composable import androidx.compose.ui.test.DeviceConfigurationOverride @@ -30,7 +32,22 @@ abstract class LocalizedScreenshotTest(val localeName: String) { @get:Rule val composeRule = createComposeRule() companion object { - val locales = listOf("en-US", "de-DE", "ar-SA", "he", "zh-CN") + val locales: List by lazy { + val fallback = listOf("en-US", "de-DE", "ar-SA", "he", "zh-CN") + if (SDK_INT >= 33) { + val localeConfig = LocaleConfig(InstrumentationRegistry.getInstrumentation().targetContext) + mutableListOf().apply { + localeConfig.supportedLocales?.let { localeList -> + for (i in 0 until localeList.size()) { + val locale = localeList.get(i) + add(locale.toLanguageTag()) + } + } ?: addAll(fallback) + } + } else { + fallback + } + } } private val context = InstrumentationRegistry.getInstrumentation().targetContext From a89b58782052fb1e7084d7850433ad72b2c36475 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 8 Apr 2026 10:50:50 -0300 Subject: [PATCH 13/30] Add localized screenshot for search and fix localization issue --- .../ui/screenshots/DetailsScreenshotTest.kt | 8 +- .../ui/screenshots/DiscoverScreenshotTest.kt | 4 +- .../ui/screenshots/LocalizedScreenshotTest.kt | 20 +- .../ui/screenshots/MyAppsScreenshotTest.kt | 10 +- .../org/fdroid/ui/screenshots/SearchItems.kt | 258 ++++++++++++++++++ .../ui/screenshots/SearchScreenshotTest.kt | 55 ++++ 6 files changed, 335 insertions(+), 20 deletions(-) create mode 100644 app/src/androidTest/java/org/fdroid/ui/screenshots/SearchItems.kt create mode 100644 app/src/androidTest/java/org/fdroid/ui/screenshots/SearchScreenshotTest.kt diff --git a/app/src/androidTest/java/org/fdroid/ui/screenshots/DetailsScreenshotTest.kt b/app/src/androidTest/java/org/fdroid/ui/screenshots/DetailsScreenshotTest.kt index d890c0748..16a249076 100644 --- a/app/src/androidTest/java/org/fdroid/ui/screenshots/DetailsScreenshotTest.kt +++ b/app/src/androidTest/java/org/fdroid/ui/screenshots/DetailsScreenshotTest.kt @@ -1,7 +1,5 @@ package org.fdroid.ui.screenshots -import androidx.compose.ui.platform.LocalLocaleList -import androidx.core.os.LocaleListCompat import org.fdroid.LocaleChooser.getBestLocale import org.fdroid.download.NetworkState import org.fdroid.install.InstallState @@ -23,11 +21,7 @@ class DetailsScreenshotTest(localeName: String) : LocalizedScreenshotTest(locale @Test fun appDetails() = - screenshotTest("3_Details", showBottomBar = false) { - val localeList = - LocaleListCompat.forLanguageTags( - LocalLocaleList.current.localeList.map { it.toLanguageTag() }.joinToString(",") - ) + screenshotTest("4_Details", showBottomBar = false, dark = true) { localeList -> val item = AppDetailsItem( app = appMetadata, diff --git a/app/src/androidTest/java/org/fdroid/ui/screenshots/DiscoverScreenshotTest.kt b/app/src/androidTest/java/org/fdroid/ui/screenshots/DiscoverScreenshotTest.kt index 32d88bb9d..fd7e553ff 100644 --- a/app/src/androidTest/java/org/fdroid/ui/screenshots/DiscoverScreenshotTest.kt +++ b/app/src/androidTest/java/org/fdroid/ui/screenshots/DiscoverScreenshotTest.kt @@ -1,6 +1,5 @@ package org.fdroid.ui.screenshots -import androidx.core.os.LocaleListCompat import org.fdroid.ui.discover.Discover import org.fdroid.ui.discover.LoadedDiscoverModel import org.junit.Test @@ -16,8 +15,7 @@ class DiscoverScreenshotTest(localeName: String) : LocalizedScreenshotTest(local @Test fun appDetails() = - screenshotTest("1_Discover") { - val localeList = LocaleListCompat.getDefault() + screenshotTest("1_Discover") { localeList -> val model = LoadedDiscoverModel( newApps = getNewApps(localeList), diff --git a/app/src/androidTest/java/org/fdroid/ui/screenshots/LocalizedScreenshotTest.kt b/app/src/androidTest/java/org/fdroid/ui/screenshots/LocalizedScreenshotTest.kt index f0036444f..2f3e153e3 100644 --- a/app/src/androidTest/java/org/fdroid/ui/screenshots/LocalizedScreenshotTest.kt +++ b/app/src/androidTest/java/org/fdroid/ui/screenshots/LocalizedScreenshotTest.kt @@ -4,10 +4,13 @@ import android.app.LocaleConfig import android.os.Build.VERSION.SDK_INT import androidx.compose.material3.adaptive.layout.PaneScaffoldDirective import androidx.compose.runtime.Composable +import androidx.compose.ui.test.DarkMode import androidx.compose.ui.test.DeviceConfigurationOverride import androidx.compose.ui.test.Locales import androidx.compose.ui.test.junit4.v2.createComposeRule +import androidx.compose.ui.test.then import androidx.compose.ui.text.intl.LocaleList +import androidx.core.os.LocaleListCompat import androidx.navigation3.runtime.NavEntry import androidx.navigation3.runtime.NavKey import androidx.test.platform.app.InstrumentationRegistry @@ -72,21 +75,23 @@ abstract class LocalizedScreenshotTest(val localeName: String) { currentNavKey: NavKey = NavigationKey.Discover, numUpdates: Int = 3, hasAppIssues: Boolean = true, - content: @Composable () -> Unit, + dark: Boolean = false, + content: @Composable (LocaleListCompat) -> Unit, ) { val localeList = LocaleList(localeName) composeRule.setContent { DeviceConfigurationOverride( - override = DeviceConfigurationOverride.Locales(locales = localeList) + override = + DeviceConfigurationOverride.Locales(locales = localeList) then + DeviceConfigurationOverride.DarkMode(dark) ) { MainContent( model = - MainModel( - dynamicColors = false, - numUpdates = numUpdates, - hasAppIssues = hasAppIssues, + MainModel(dynamicColors = false, numUpdates = numUpdates, hasAppIssues = hasAppIssues), + navEntries = + listOf( + NavEntry(currentNavKey) { content(LocaleListCompat.forLanguageTags(localeName)) } ), - navEntries = listOf(NavEntry(currentNavKey) { content() }), directive = PaneScaffoldDirective.Default, isBigScreen = false, showBottomBar = showBottomBar, @@ -106,6 +111,7 @@ abstract class LocalizedScreenshotTest(val localeName: String) { assertTrue(subDir.isDirectory) val file = File(subDir, "${screenName}.png") + println("Saving screenshot to ${file.absolutePath}") uiDevice.takeScreenshot(file) } } diff --git a/app/src/androidTest/java/org/fdroid/ui/screenshots/MyAppsScreenshotTest.kt b/app/src/androidTest/java/org/fdroid/ui/screenshots/MyAppsScreenshotTest.kt index 14dd20c13..26b2c952a 100644 --- a/app/src/androidTest/java/org/fdroid/ui/screenshots/MyAppsScreenshotTest.kt +++ b/app/src/androidTest/java/org/fdroid/ui/screenshots/MyAppsScreenshotTest.kt @@ -4,8 +4,8 @@ import androidx.core.os.LocaleListCompat import org.fdroid.download.NetworkState import org.fdroid.ui.apps.MyApps import org.fdroid.ui.apps.MyAppsModel +import org.fdroid.ui.navigation.NavigationKey import org.fdroid.ui.utils.getMyAppsInfo -import org.junit.Ignore import org.junit.Test import org.junit.runner.RunWith import org.junit.runners.Parameterized @@ -19,8 +19,12 @@ class MyAppsScreenshotTest(localeName: String) : LocalizedScreenshotTest(localeN @Test fun myApps() = - screenshotTest("2_My_Apps", numUpdates = getUpdates(LocaleListCompat.getDefault()).size) { - val localeList = LocaleListCompat.getDefault() + screenshotTest( + "3_My_Apps", + currentNavKey = NavigationKey.MyApps, + numUpdates = getUpdates(LocaleListCompat.getDefault()).size, + dark = true, + ) { localeList -> val model = MyAppsModel( appUpdates = getUpdates(localeList), diff --git a/app/src/androidTest/java/org/fdroid/ui/screenshots/SearchItems.kt b/app/src/androidTest/java/org/fdroid/ui/screenshots/SearchItems.kt new file mode 100644 index 000000000..38c5b4fac --- /dev/null +++ b/app/src/androidTest/java/org/fdroid/ui/screenshots/SearchItems.kt @@ -0,0 +1,258 @@ +package org.fdroid.ui.screenshots + +import org.fdroid.index.v2.FileV2 +import org.fdroid.index.v2.MetadataV2 + +val searchResultApps = + listOf( + "com.github.yeriomin.workoutlog" to + MetadataV2( + name = mapOf("en-US" to "WorkoutLog"), + summary = + mapOf( + "ar" to "تطبيق بسيط لتتبع التدريبات الخاصة بك", + "ba" to "Күнекмәләрегеҙҙе күҙәтеү өсөн минималистик ҡушымта", + "ca" to "Aplicació minimalista per a seguir els entrenaments", + "cs" to "Minimalistická aplikace pro sledování vašeho cvičení", + "de" to "Minimalistische Anwendung, um Workouts zu erfassen", + "en-US" to "A minimalistic app for tracking your workouts", + "es" to "Una aplicación minimalista para el seguimiento de tus entrenamientos", + "fr" to "App minimaliste pour suivre vos entraînements", + "ga" to "Aip íostach chun do chuid oibre a rianú", + "he" to "יישומון מזערי למעקב אחר האימונים שלך", + "id" to "Aplikasi minimalis untuk melacak latihan Anda", + "it" to "Un'app minimalista per monitorare i tuoi allenamenti", + "ja" to "ワークアウト追跡用の最小主義なアプリ", + "nb" to "En minimalistisk app for å spore treningene dine", + "pl" to "Aplikacja do śledzenia treningów", + "pt" to "Um app minimalista para rastrear seus treinos", + "pt-BR" to "Um aplicativo minimalista para monitorar seus treinos", + "pt-PT" to "Um app minimalista para rastrear seus treinos", + "ro" to "O aplicație minimalistă pentru a vă urmări antrenamentele", + "ru" to "Минималистичное приложение для отслеживания ваших тренировок", + "sr" to "Минималистичка апликација за праћење тренинга", + "sw" to "Apu ya minimalistic ya kufuatilia mazoezi yako", + "ta" to "உங்கள் உடற்பயிற்சிகளைக் கண்காணிப்பதற்கான மிகச்சிறிய பயன்பாடு", + "tr" to "Egzersizlerinizi izlemek için sadelikten yana bir uygulama", + "uk" to "Мінімалістичний застосунок для відстеження тренувань", + "zh-CN" to "用于跟踪锻炼的简约应用", + ), + icon = mapOf("en-US" to FileV2(name = "/icons/com.github.yeriomin.workoutlog.2.png")), + added = 23, + lastUpdated = 42, + ), + "com.gk.simpleworkoutjournal" to + MetadataV2( + name = mapOf("en-US" to "SWJournal"), + summary = + mapOf( + "ar" to "تتبع تمارينك", + "ba" to "Күнекмәләрегеҙҙе күҙәтегеҙ", + "ca" to "Fes un seguiment dels teus entrenaments", + "cs" to "Sledování tréninků", + "de" to "Workouts aufzeichnen", + "en-US" to "Track your workouts", + "es" to "Monitorea tus entrenamientos", + "fr" to "Suivre vos entraînements", + "ga" to "Rianaigh do workouts", + "he" to "מעקב אחר האימונים שלך", + "id" to "Lacak latihan Anda", + "it" to "Monitora i tuoi allenamenti", + "ja" to "ワークアウトを記録", + "pl" to "Monitoruj swoje treningi", + "pt" to "Rastreie seus treinos", + "pt-BR" to "Monitore seus treinos", + "pt-PT" to "Rastreie seus treinos", + "ro" to "Urmăriți-vă antrenamentele", + "ru" to "Следите за своими тренировками", + "sr" to "Прати своје тренинге", + "sw" to "Fuatilia mazoezi yako", + "ta" to "உங்கள் உடற்பயிற்சிகளையும் கண்காணிக்கவும்", + "tr" to "Egzersizlerinizi izleyin", + "uk" to "Відстежуйте свої тренування", + "zh-CN" to "跟踪你的锻炼", + ), + icon = mapOf("en-US" to FileV2(name = "/icons/com.gk.simpleworkoutjournal.3.png")), + added = 23, + lastUpdated = 42, + ), + "com.mcsnowflake.worktimer" to + MetadataV2( + name = mapOf("en-US" to "WorkTimer"), + summary = + mapOf( + "fr" to + "WorkTimer est un simple minuteur qui vous aide à structurer votre temps de trava", + "ru" to "Таймер продуктивности для техники управления временем по «методу помидора».", + "de" to + "WorkTimer ist ein einfacher Timer, der Ihnen hilft, Ihre Arbeitszeit zu struktur", + "en" to + "WorkTimer is a simple timer that helps you to structure your work time and to st", + "es" to + "WorkTimer es un temporizador simple que te ayuda a estructurar tu tiempo de trab", + ), + icon = + mapOf( + "en-US" to + FileV2( + name = + "/com.mcsnowflake.worktimer/en-US/icon_2ulxYoOyPvurF6rw-fHZdyx3Ys-_1ohNUVVvyih_wEM=.png" + ) + ), + added = 23, + lastUpdated = 42, + ), + "de.wger.flutter" to + MetadataV2( + name = mapOf("en-US" to "wger Workout Manager"), + summary = + mapOf( + "en-US" to "Fitness/workout, nutrition and weight tracker", + "ar" to "متتبع التمارين الرياضية، التغذية، ومراقبة الوزن", + "ca" to "Registre de la forma física, entrenament, nutrició i pes corporal", + "cs-CZ" to "Sledování fitness/tréninků, výživy a hmotnosti", + "de-DE" to "Fitness-, Ernährungs- und Gewichtstracker", + "el-GR" to "Καταγραφή φυσικής κατάστασης/προπόνησης, διατροφής και βάρους", + "es-ES" to "Monitor de entrenamiento, peso y nutrición", + "fa-IR" to "شمارنده تناسب اندام/ورزش، تغذیه و وزن", + "fr-FR" to "Fitness/entraînement, nutrition et traqueur de poids", + "hi-IN" to "फिटनेस/वर्कआउट, नुट्रिशन और वज़न ट्रैकर", + "hr" to "Praćenje fitnesa/treninga, prehrane i težine", + "it-IT" to "Monitoraggio fitness/workout, dieta e peso", + "iw-IL" to "מעקב אחר כושר גופני, תזונה ומשקל", + "ko-KR" to "피트니스/운동, 영양소, 몸무게 추적기, 영양소, 몸무게 추적기", + "nb-NO" to "Fitness/treningsøkt, ernæring og vektlogging", + "nl-NL" to "Fitness/workout, voeding- en gewichts tracker", + "pl-PL" to "Monitorowanie kondycji/treningu, odżywiania i wagi", + "pt-BR" to "Fitness/treino, nutrição e controle de peso", + "pt-PT" to "Gestor de treinos, nutrição e peso", + "ru-RU" to "Трекер фитнеса/тренировок, питания и веса", + "sr" to "Фитнес/тренинг, исхрана и праћење тежине", + "ta-IN" to "உடற்தகுதி/உடற்பயிற்சி, ஊட்டச்சத்து மற்றும் எடை கண்காணிப்பு", + "tr-TR" to "Fitness/egzersiz, beslenme ve kilo takibi", + "uk" to "Фітнес/тренування, харчування та відстеження ваги", + "zh-CN" to "健身/锻炼、营养和体重追踪器", + "zh-TW" to "健身、營養和體重紀錄器", + ), + icon = + mapOf( + "en-US" to + FileV2( + name = + "/de.wger.flutter/en-US/icon_yXwYQPVpjYOb_9wLe4BDR9YY9FCYY29RuuvMfGdIW68=.png", + sha256 = "c97c1840f5698d839bffdc0b7b804347d618f45098636f51baebcc7c67485baf", + size = 12181, + ) + ), + added = 23, + lastUpdated = 42, + ), + "es.ideotec.workouttime" to + MetadataV2( + name = mapOf("de-DE" to "Workout Time!"), + summary = + mapOf( + "de-DE" to "Eine App, um Trainings zu verwalten und durchzuführen", + "en-US" to "An app for managing and performing timed workouts", + "es-ES" to "App para gestionar y realizar entrenamientos cronometrados", + "fr-FR" to "Une application pour gérer et réaliser des entraînements chronométrés", + ), + icon = + mapOf( + "en-US" to + FileV2( + name = + "/es.ideotec.workouttime/en-US/icon_GmCBd-0I_HjZNdIMk10t7ceQ5yMtFnn_SrHYgnEsKvI=.png", + sha256 = "1a608177ed08fc78d935d20c935d2dedc790e7232d1679ff4ab1d882712c2af2", + size = 24900, + ) + ), + added = 23, + lastUpdated = 42, + ), + "me.ahmetcetinkaya.whph" to + MetadataV2( + name = mapOf("en-US" to "WHPH • Work Hard Play Hard"), + summary = + mapOf( + "cs-CZ" to "Aplikace pro správu úkolů, rozvoj návyků a optimalizaci vašeho času.", + "da-DK" to "Produktivitetsapp til opgavestyring, vaneudvikling og tidsoptimering.", + "de-DE" to + "Produktivitäts-App für Aufgabenmanagement, Gewohnheiten und Zeitoptimierung.", + "el-GR" to + "Εφαρμογή για διαχείριση εργασιών, ανάπτυξη συνηθειών και βελτιστοποίηση χρόνου.", + "en-GB" to + "A productivity app to manage tasks, develop new habits, and optimize your time.", + "en-US" to + "A productivity app to manage tasks, develop new habits, and optimize your time.", + "es-ES" to "App de productividad para gestionar tareas, hábitos y optimizar el tiempo.", + "fi-FI" to + "Tuottavuussovellus tehtävien hallintaan, tapoihin ja ajankäytön optimointiin.", + "fr-FR" to + "Une app de productivité pour gérer tâches, habitudes et optimiser votre temps.", + "it-IT" to + "App di produttività per gestire attività, abitudini e ottimizzare il tempo.", + "ja-JP" to "タスク管理、習慣形成、時間最適化のための包括的な生産性アプリ。", + "ko-KR" to "작업 관리, 습관 형성 및 시간 최적화를 위한 종합 생산성 앱.", + "nl-NL" to + "Productiviteitsapp voor taakbeheer, gewoonteontwikkeling en tijdoptimalisatie.", + "no-NO" to "Produktivitetsapp for oppgavestyring, vaneutvikling og tidsoptimalisering.", + "pl-PL" to "Aplikacja do zarządzania zadaniami, nawykami i optymalizacji czasu.", + "pt-PT" to "App de produtividade para gerir tarefas, criar hábitos e otimizar o tempo.", + "ro" to + "Aplicație pentru gestionarea sarcinilor, obiceiurilor și optimizarea timpului.", + "ru-RU" to "Приложение для управления задачами, привычками и оптимизации времени.", + "sl" to "Aplikacija za upravljanje nalog, razvoj navad in optimizacijo časa.", + "sv-SE" to "Produktivitetsapp för uppgiftshantering, vanor och tidsoptimering.", + "tr-TR" to + "Görev, alışkanlık geliştirme ve zaman optimizasyonu için verimlilik uygulaması.", + "uk" to "Додаток для управління завданнями, звичками та оптимізації вашого часу.", + "zh-CN" to "用于管理任务、培养习惯和优化时间的综合生产力应用。", + ), + icon = + mapOf( + "en-US" to + FileV2( + name = + "/me.ahmetcetinkaya.whph/en-US/icon_tpPTqqEGIdreAhCa15py36S-PiU0HDONw1S8SrfdG1s=.png" + ) + ), + added = 23, + lastUpdated = 42, + ), + "org.runnerup.free" to + MetadataV2( + name = mapOf("en-US" to "RunnerUp"), + summary = + mapOf( + "ar" to "تتبع نشاطاتك الرياضية باستخدام خدمة تحديد المواقع (GPS)", + "cs" to "Sledování sportovních aktivit pomocí GPS", + "de" to "Sportliche Aktivitäten mittels GPS aufzeichnen", + "en-US" to + "RunnerUp - an open source GPS tracker with advanced workout and audio cues.", + "es" to "Realiza un seguimiento de tus actividades deportivas usando GPS", + "fr" to "Suivez vos activités sportives à l'aide du GPS", + "he" to "מעקב אחר הפעילות הספורטיבית באמצעות GPS", + "it" to "Traccia le tue attività sportive con il GPS", + "ja" to "GPSを使用してあなたのスポーツ活動を追跡", + "pl" to "Śledzenie aktywności sportowej za pomocą GPS", + "pt" to "Rastreie as suas atividades desportivas usando GPS", + "pt-BR" to "Rastreie as suas atividades esportivas usando o GPS", + "ro" to "Urmăriți-vă activitățile sportive cu ajutorul GPS", + "ru" to "Отслеживайте свои занятия спортом с помощью GPS", + "tr" to "GPS kullanarak spor etkinliklerinizi izleyin", + "uk" to "Відстежуйте свої спортивні заняття за допомогою GPS", + "zh-CN" to "使用 GPS 跟踪您的体育活动", + ), + icon = + mapOf( + "en-US" to + FileV2( + name = + "/org.runnerup.free/en-US/icon_kN3i52l3-KVxE-yMinNc6g8JQTsMQeRFjWA2fW3M1uE=.png" + ) + ), + added = 23, + lastUpdated = 42, + ), + ) diff --git a/app/src/androidTest/java/org/fdroid/ui/screenshots/SearchScreenshotTest.kt b/app/src/androidTest/java/org/fdroid/ui/screenshots/SearchScreenshotTest.kt new file mode 100644 index 000000000..efba3c953 --- /dev/null +++ b/app/src/androidTest/java/org/fdroid/ui/screenshots/SearchScreenshotTest.kt @@ -0,0 +1,55 @@ +package org.fdroid.ui.screenshots + +import androidx.compose.foundation.text.input.rememberTextFieldState +import androidx.core.os.LocaleListCompat +import org.fdroid.LocaleChooser.getBestLocale +import org.fdroid.ui.lists.AppListItem +import org.fdroid.ui.navigation.NavigationKey +import org.fdroid.ui.search.GlobalSearch +import org.fdroid.ui.search.SearchResults +import org.junit.Test +import org.junit.runner.RunWith +import org.junit.runners.Parameterized + +@RunWith(Parameterized::class) +class SearchScreenshotTest(localeName: String) : LocalizedScreenshotTest(localeName) { + + companion object { + @JvmStatic @Parameterized.Parameters(name = "{0}") fun locales() = locales + } + + @Test + fun search() = + screenshotTest("2_Search", currentNavKey = NavigationKey.Search, numUpdates = 0) { localeList -> + val categories = setOf("Network Analyzer", "Social Network", "Workout") + val results = + SearchResults( + categories = getCategoryItems(localeList).filter { it.id in categories }, + apps = getSearchResultItems(localeList), + ) + GlobalSearch( + textFieldState = rememberTextFieldState("work"), + searchResults = results, + savedSearches = emptyList(), + onSearch = {}, + onClearSavedSearches = {}, + onNav = {}, + onBack = {}, + onSearchCleared = {}, + ) + } +} + +private fun getSearchResultItems(localeList: LocaleListCompat) = + searchResultApps.map { (packageName, metadata) -> + AppListItem( + repoId = 1L, + packageName = packageName, + name = metadata.name?.getBestLocale(localeList) ?: "Unknown", + summary = metadata.summary?.getBestLocale(localeList) ?: "", + lastUpdated = metadata.lastUpdated, + isInstalled = packageName.startsWith("de"), + isCompatible = true, + iconModel = "https://f-droid.org/repo${metadata.icon.getBestLocale(localeList)?.name}", + ) + } From 69a8dda75ad506045db7696be45f01b718d10149 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 8 Apr 2026 15:26:40 -0300 Subject: [PATCH 14/30] Add scripts for taking localized screenshots --- .../ui/screenshots/LocalizedScreenshotTest.kt | 9 ++-- tools/screenshot-demo-mode.sh | 31 ++++++++++++ tools/take-screenshots.py | 47 +++++++++++++++++++ 3 files changed, 83 insertions(+), 4 deletions(-) create mode 100755 tools/screenshot-demo-mode.sh create mode 100755 tools/take-screenshots.py diff --git a/app/src/androidTest/java/org/fdroid/ui/screenshots/LocalizedScreenshotTest.kt b/app/src/androidTest/java/org/fdroid/ui/screenshots/LocalizedScreenshotTest.kt index 2f3e153e3..645af2519 100644 --- a/app/src/androidTest/java/org/fdroid/ui/screenshots/LocalizedScreenshotTest.kt +++ b/app/src/androidTest/java/org/fdroid/ui/screenshots/LocalizedScreenshotTest.kt @@ -28,14 +28,13 @@ import org.junit.Assume.assumeTrue import org.junit.Before import org.junit.Rule -private const val ENABLED = false - @OptIn(DelicateCoilApi::class) abstract class LocalizedScreenshotTest(val localeName: String) { @get:Rule val composeRule = createComposeRule() companion object { val locales: List by lazy { + if (!enabled) return@lazy emptyList() val fallback = listOf("en-US", "de-DE", "ar-SA", "he", "zh-CN") if (SDK_INT >= 33) { val localeConfig = LocaleConfig(InstrumentationRegistry.getInstrumentation().targetContext) @@ -51,6 +50,8 @@ abstract class LocalizedScreenshotTest(val localeName: String) { fallback } } + val enabled: Boolean + get() = InstrumentationRegistry.getArguments().getString("fdroid_screenshots") == "true" } private val context = InstrumentationRegistry.getInstrumentation().targetContext @@ -66,7 +67,7 @@ abstract class LocalizedScreenshotTest(val localeName: String) { @Before fun before() { - assumeTrue(ENABLED) + assumeTrue(enabled) } protected fun screenshotTest( @@ -106,7 +107,7 @@ abstract class LocalizedScreenshotTest(val localeName: String) { val dir = context.getExternalFilesDir("screenshots") ?: fail("Could not create screenshots dir") assertTrue(dir.isDirectory) val subDir = - File(dir, "${FLAVOR_variant}/fastlane/metadata/$localeName/images/phoneScreenshots") + File(dir, "${FLAVOR_variant}/fastlane/metadata/android/$localeName/images/phoneScreenshots") subDir.mkdirs() assertTrue(subDir.isDirectory) diff --git a/tools/screenshot-demo-mode.sh b/tools/screenshot-demo-mode.sh new file mode 100755 index 000000000..c24959ab3 --- /dev/null +++ b/tools/screenshot-demo-mode.sh @@ -0,0 +1,31 @@ +#!/bin/sh +CMD=$1 + +if [[ $ADB == "" ]]; then + ADB=adb +fi + +if [[ $CMD != "on" && $CMD != "off" ]]; then + echo "Usage: $0 [on|off]" >&2 + exit +fi + +$ADB root || exit +$ADB wait-for-devices +$ADB shell settings put system time_12_24 24 +$ADB shell settings put global sysui_demo_allowed 1 + +if [ $CMD == "on" ]; then + $ADB shell settings put system screen_off_timeout 2147483647 + $ADB shell am broadcast -a com.android.systemui.demo -e command enter || exit + $ADB shell am broadcast -a com.android.systemui.demo -e command clock -e hhmm 1337 + $ADB shell am broadcast -a com.android.systemui.demo -e command battery -e plugged false + $ADB shell am broadcast -a com.android.systemui.demo -e command battery -e level 100 + $ADB shell am broadcast -a com.android.systemui.demo -e command network -e wifi show -e fully true -e level 4 + $ADB shell am broadcast -a com.android.systemui.demo -e command network -e mobile show -e fully true -e datatype none -e level 4 + $ADB shell am broadcast -a com.android.systemui.demo -e command notifications -e visible false +elif [ $CMD == "off" ]; then + $ADB shell am broadcast -a com.android.systemui.demo -e command exit + $ADB shell settings put system screen_off_timeout 30000 + $ADB shell settings put global sysui_demo_allowed 0 +fi diff --git a/tools/take-screenshots.py b/tools/take-screenshots.py new file mode 100755 index 000000000..1b988ab38 --- /dev/null +++ b/tools/take-screenshots.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +# +# Takes localized screenshots on a device and saves them to the proper directory. +# +# Careful: this removes ../screenshots folder if it exists. Also removes screenshots from device. +# +import shutil +import subprocess +from pathlib import Path + +script_dir = Path(__file__).parent.resolve() +screenshots_dir = script_dir.parent / 'screenshots' + +shutil.rmtree(screenshots_dir, ignore_errors=True) +subprocess.run(["adb", "shell", "rm", "-r", "/sdcard/Android/data/org.fdroid.basic.debug/files/screenshots"]) +subprocess.run(["./screenshot-demo-mode.sh", "on"], cwd=script_dir) +try: + print("Running connectedAndroidTest to take screenshots...") + subprocess.run(["./gradlew", ":app:connectedBasicDefaultDebugAndroidTest", + "-Pandroid.testInstrumentationRunnerArguments.fdroid_screenshots=true"], + cwd=script_dir.parent, check=True) + + print("Downloading screenshots...") + screenshots_dir = script_dir.parent / 'screenshots' + subprocess.run( + ["adb", "pull", "/sdcard/Android/data/org.fdroid.basic.debug/files/screenshots", script_dir.parent], + cwd=script_dir.parent, check=True) + + print("Running pngquant on screenshots...") + screenshots = [str(f) for f in screenshots_dir.glob('basic/fastlane/metadata/android/*/images/*/*')] + for screenshot in screenshots: + subprocess.run(["pngquant", "--force", "--ext", ".png", "--skip-if-larger", "--speed", "1", screenshot]) + + target_dir = script_dir.parent / 'src' + old_screenshots = [str(f) for f in target_dir.glob('basic/fastlane/metadata/android/*/images/phoneScreenshots/*')] + for s in old_screenshots: + print(f"Removing old screenshot {s}") + Path(s).unlink() + + print("Copying new screenshots to target directory...") + shutil.copytree(screenshots_dir, target_dir, dirs_exist_ok=True) + + subprocess.run(["git", "add", target_dir], cwd=script_dir.parent) + subprocess.run(["git", "status"], cwd=script_dir.parent) + +finally: + subprocess.run(["./screenshot-demo-mode.sh", "off"], cwd=script_dir) From 8672b510b8964730888e511dd523a35a2c6a4d89 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 8 Apr 2026 15:27:07 -0300 Subject: [PATCH 15/30] Disable DnsCacheTest for now as it is failing on at leastAndroid 15+ --- app/src/androidTest/java/org/fdroid/download/DnsCacheTest.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/androidTest/java/org/fdroid/download/DnsCacheTest.kt b/app/src/androidTest/java/org/fdroid/download/DnsCacheTest.kt index ddad92633..13bdd9eff 100644 --- a/app/src/androidTest/java/org/fdroid/download/DnsCacheTest.kt +++ b/app/src/androidTest/java/org/fdroid/download/DnsCacheTest.kt @@ -9,6 +9,7 @@ import kotlin.test.assertNotNull import kotlin.test.assertNull import kotlin.test.assertTrue import org.fdroid.settings.SettingsManager +import org.junit.Ignore import org.junit.Test import org.junit.runner.RunWith @@ -81,6 +82,7 @@ class DnsCacheTest { } @Test + @Ignore("failing") // TODO fun preloadCacheTest() { // test setup settings.useDnsCache = true From 4c5ccfc4c51f9196743cbec1461090deb1b82619 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 8 Apr 2026 15:38:12 -0300 Subject: [PATCH 16/30] Add localized screenshots for Basic 2.0 --- .gitattributes | 1 + .gitignore | 1 + .../ar/images/phoneScreenshots/1_Discover.png | 3 +++ .../ar/images/phoneScreenshots/2_Search.png | 3 +++ .../ar/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../ar/images/phoneScreenshots/4_Details.png | 3 +++ .../images/phoneScreenshots/1_Discover.png | 3 +++ .../ast/images/phoneScreenshots/2_Search.png | 3 +++ .../ast/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../ast/images/phoneScreenshots/4_Details.png | 3 +++ .../be/images/phoneScreenshots/1_Discover.png | 3 +++ .../be/images/phoneScreenshots/2_Search.png | 3 +++ .../be/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../be/images/phoneScreenshots/4_Details.png | 3 +++ .../bg/images/phoneScreenshots/1_Discover.png | 3 +++ .../bg/images/phoneScreenshots/2_Search.png | 3 +++ .../bg/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../bg/images/phoneScreenshots/4_Details.png | 3 +++ .../bn/images/phoneScreenshots/1_Discover.png | 3 +++ .../bn/images/phoneScreenshots/2_Search.png | 3 +++ .../bn/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../bn/images/phoneScreenshots/4_Details.png | 3 +++ .../ca/images/phoneScreenshots/1_Discover.png | 3 +++ .../ca/images/phoneScreenshots/2_Search.png | 3 +++ .../ca/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../ca/images/phoneScreenshots/4_Details.png | 3 +++ .../cs/images/phoneScreenshots/1_Discover.png | 3 +++ .../cs/images/phoneScreenshots/2_Search.png | 3 +++ .../cs/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../cs/images/phoneScreenshots/4_Details.png | 3 +++ .../cy/images/phoneScreenshots/1_Discover.png | 3 +++ .../cy/images/phoneScreenshots/2_Search.png | 3 +++ .../cy/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../cy/images/phoneScreenshots/4_Details.png | 3 +++ .../da/images/phoneScreenshots/1_Discover.png | 3 +++ .../da/images/phoneScreenshots/2_Search.png | 3 +++ .../da/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../da/images/phoneScreenshots/4_Details.png | 3 +++ .../de/images/phoneScreenshots/1_Discover.png | 3 +++ .../de/images/phoneScreenshots/2_Search.png | 3 +++ .../de/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../de/images/phoneScreenshots/4_Details.png | 3 +++ .../el/images/phoneScreenshots/1_Discover.png | 3 +++ .../el/images/phoneScreenshots/2_Search.png | 3 +++ .../el/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../el/images/phoneScreenshots/4_Details.png | 3 +++ .../images/phoneScreenshots/1_Discover.png | 3 +++ .../images/phoneScreenshots/2_Search.png | 3 +++ .../images/phoneScreenshots/3_My_Apps.png | 3 +++ .../images/phoneScreenshots/4_Details.png | 3 +++ .../metadata/android/en-US/images/icon.png | Bin 10211 -> 130 bytes .../images/phoneScreenshots/01-latest.png | Bin 203791 -> 0 bytes .../images/phoneScreenshots/02-categories.png | Bin 283065 -> 0 bytes .../images/phoneScreenshots/03-updates.png | Bin 41511 -> 0 bytes .../images/phoneScreenshots/04-settings.png | Bin 100772 -> 0 bytes .../images/phoneScreenshots/10-search.png | Bin 249396 -> 0 bytes .../phoneScreenshots/11-app-details.png | Bin 372399 -> 0 bytes .../images/phoneScreenshots/1_Discover.png | 3 +++ .../images/phoneScreenshots/20-repos.png | Bin 113870 -> 0 bytes .../phoneScreenshots/21-repo-details.png | Bin 79023 -> 0 bytes .../images/phoneScreenshots/2_Search.png | 3 +++ .../images/phoneScreenshots/3_My_Apps.png | 3 +++ .../images/phoneScreenshots/4_Details.png | 3 +++ .../eo/images/phoneScreenshots/1_Discover.png | 3 +++ .../eo/images/phoneScreenshots/2_Search.png | 3 +++ .../eo/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../eo/images/phoneScreenshots/4_Details.png | 3 +++ .../images/phoneScreenshots/1_Discover.png | 3 +++ .../images/phoneScreenshots/2_Search.png | 3 +++ .../images/phoneScreenshots/3_My_Apps.png | 3 +++ .../images/phoneScreenshots/4_Details.png | 3 +++ .../es/images/phoneScreenshots/1_Discover.png | 3 +++ .../es/images/phoneScreenshots/2_Search.png | 3 +++ .../es/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../es/images/phoneScreenshots/4_Details.png | 3 +++ .../et/images/phoneScreenshots/1_Discover.png | 3 +++ .../et/images/phoneScreenshots/2_Search.png | 3 +++ .../et/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../et/images/phoneScreenshots/4_Details.png | 3 +++ .../eu/images/phoneScreenshots/1_Discover.png | 3 +++ .../eu/images/phoneScreenshots/2_Search.png | 3 +++ .../eu/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../eu/images/phoneScreenshots/4_Details.png | 3 +++ .../fa/images/phoneScreenshots/1_Discover.png | 3 +++ .../fa/images/phoneScreenshots/2_Search.png | 3 +++ .../fa/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../fa/images/phoneScreenshots/4_Details.png | 3 +++ .../fi/images/phoneScreenshots/1_Discover.png | 3 +++ .../fi/images/phoneScreenshots/2_Search.png | 3 +++ .../fi/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../fi/images/phoneScreenshots/4_Details.png | 3 +++ .../images/phoneScreenshots/1_Discover.png | 3 +++ .../fil/images/phoneScreenshots/2_Search.png | 3 +++ .../fil/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../fil/images/phoneScreenshots/4_Details.png | 3 +++ .../fr/images/phoneScreenshots/1_Discover.png | 3 +++ .../fr/images/phoneScreenshots/2_Search.png | 3 +++ .../fr/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../fr/images/phoneScreenshots/4_Details.png | 3 +++ .../ga/images/phoneScreenshots/1_Discover.png | 3 +++ .../ga/images/phoneScreenshots/2_Search.png | 3 +++ .../ga/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../ga/images/phoneScreenshots/4_Details.png | 3 +++ .../gd/images/phoneScreenshots/1_Discover.png | 3 +++ .../gd/images/phoneScreenshots/2_Search.png | 3 +++ .../gd/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../gd/images/phoneScreenshots/4_Details.png | 3 +++ .../gl/images/phoneScreenshots/1_Discover.png | 3 +++ .../gl/images/phoneScreenshots/2_Search.png | 3 +++ .../gl/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../gl/images/phoneScreenshots/4_Details.png | 3 +++ .../he/images/phoneScreenshots/1_Discover.png | 3 +++ .../he/images/phoneScreenshots/2_Search.png | 3 +++ .../he/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../he/images/phoneScreenshots/4_Details.png | 3 +++ .../images/phoneScreenshots/1_Discover.png | 3 +++ .../images/phoneScreenshots/2_Search.png | 3 +++ .../images/phoneScreenshots/3_My_Apps.png | 3 +++ .../images/phoneScreenshots/4_Details.png | 3 +++ .../hi/images/phoneScreenshots/1_Discover.png | 3 +++ .../hi/images/phoneScreenshots/2_Search.png | 3 +++ .../hi/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../hi/images/phoneScreenshots/4_Details.png | 3 +++ .../hr/images/phoneScreenshots/1_Discover.png | 3 +++ .../hr/images/phoneScreenshots/2_Search.png | 3 +++ .../hr/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../hr/images/phoneScreenshots/4_Details.png | 3 +++ .../hu/images/phoneScreenshots/1_Discover.png | 3 +++ .../hu/images/phoneScreenshots/2_Search.png | 3 +++ .../hu/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../hu/images/phoneScreenshots/4_Details.png | 3 +++ .../id/images/phoneScreenshots/1_Discover.png | 3 +++ .../id/images/phoneScreenshots/2_Search.png | 3 +++ .../id/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../id/images/phoneScreenshots/4_Details.png | 3 +++ .../is/images/phoneScreenshots/1_Discover.png | 3 +++ .../is/images/phoneScreenshots/2_Search.png | 3 +++ .../is/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../is/images/phoneScreenshots/4_Details.png | 3 +++ .../it/images/phoneScreenshots/1_Discover.png | 3 +++ .../it/images/phoneScreenshots/2_Search.png | 3 +++ .../it/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../it/images/phoneScreenshots/4_Details.png | 3 +++ .../ja/images/phoneScreenshots/1_Discover.png | 3 +++ .../ja/images/phoneScreenshots/2_Search.png | 3 +++ .../ja/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../ja/images/phoneScreenshots/4_Details.png | 3 +++ .../kn/images/phoneScreenshots/1_Discover.png | 3 +++ .../kn/images/phoneScreenshots/2_Search.png | 3 +++ .../kn/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../kn/images/phoneScreenshots/4_Details.png | 3 +++ .../ko/images/phoneScreenshots/1_Discover.png | 3 +++ .../ko/images/phoneScreenshots/2_Search.png | 3 +++ .../ko/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../ko/images/phoneScreenshots/4_Details.png | 3 +++ .../lt/images/phoneScreenshots/1_Discover.png | 3 +++ .../lt/images/phoneScreenshots/2_Search.png | 3 +++ .../lt/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../lt/images/phoneScreenshots/4_Details.png | 3 +++ .../lv/images/phoneScreenshots/1_Discover.png | 3 +++ .../lv/images/phoneScreenshots/2_Search.png | 3 +++ .../lv/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../lv/images/phoneScreenshots/4_Details.png | 3 +++ .../ml/images/phoneScreenshots/1_Discover.png | 3 +++ .../ml/images/phoneScreenshots/2_Search.png | 3 +++ .../ml/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../ml/images/phoneScreenshots/4_Details.png | 3 +++ .../nb/images/phoneScreenshots/1_Discover.png | 3 +++ .../nb/images/phoneScreenshots/2_Search.png | 3 +++ .../nb/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../nb/images/phoneScreenshots/4_Details.png | 3 +++ .../nl/images/phoneScreenshots/1_Discover.png | 3 +++ .../nl/images/phoneScreenshots/2_Search.png | 3 +++ .../nl/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../nl/images/phoneScreenshots/4_Details.png | 3 +++ .../nn/images/phoneScreenshots/1_Discover.png | 3 +++ .../nn/images/phoneScreenshots/2_Search.png | 3 +++ .../nn/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../nn/images/phoneScreenshots/4_Details.png | 3 +++ .../pa/images/phoneScreenshots/1_Discover.png | 3 +++ .../pa/images/phoneScreenshots/2_Search.png | 3 +++ .../pa/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../pa/images/phoneScreenshots/4_Details.png | 3 +++ .../pl/images/phoneScreenshots/1_Discover.png | 3 +++ .../pl/images/phoneScreenshots/2_Search.png | 3 +++ .../pl/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../pl/images/phoneScreenshots/4_Details.png | 3 +++ .../images/phoneScreenshots/1_Discover.png | 3 +++ .../images/phoneScreenshots/2_Search.png | 3 +++ .../images/phoneScreenshots/3_My_Apps.png | 3 +++ .../images/phoneScreenshots/4_Details.png | 3 +++ .../images/phoneScreenshots/1_Discover.png | 3 +++ .../images/phoneScreenshots/2_Search.png | 3 +++ .../images/phoneScreenshots/3_My_Apps.png | 3 +++ .../images/phoneScreenshots/4_Details.png | 3 +++ .../pt/images/phoneScreenshots/1_Discover.png | 3 +++ .../pt/images/phoneScreenshots/2_Search.png | 3 +++ .../pt/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../pt/images/phoneScreenshots/4_Details.png | 3 +++ .../ro/images/phoneScreenshots/1_Discover.png | 3 +++ .../ro/images/phoneScreenshots/2_Search.png | 3 +++ .../ro/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../ro/images/phoneScreenshots/4_Details.png | 3 +++ .../ru/images/phoneScreenshots/1_Discover.png | 3 +++ .../ru/images/phoneScreenshots/2_Search.png | 3 +++ .../ru/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../ru/images/phoneScreenshots/4_Details.png | 3 +++ .../sc/images/phoneScreenshots/1_Discover.png | 3 +++ .../sc/images/phoneScreenshots/2_Search.png | 3 +++ .../sc/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../sc/images/phoneScreenshots/4_Details.png | 3 +++ .../sk/images/phoneScreenshots/1_Discover.png | 3 +++ .../sk/images/phoneScreenshots/2_Search.png | 3 +++ .../sk/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../sk/images/phoneScreenshots/4_Details.png | 3 +++ .../sl/images/phoneScreenshots/1_Discover.png | 3 +++ .../sl/images/phoneScreenshots/2_Search.png | 3 +++ .../sl/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../sl/images/phoneScreenshots/4_Details.png | 3 +++ .../sq/images/phoneScreenshots/1_Discover.png | 3 +++ .../sq/images/phoneScreenshots/2_Search.png | 3 +++ .../sq/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../sq/images/phoneScreenshots/4_Details.png | 3 +++ .../sr/images/phoneScreenshots/1_Discover.png | 3 +++ .../sr/images/phoneScreenshots/2_Search.png | 3 +++ .../sr/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../sr/images/phoneScreenshots/4_Details.png | 3 +++ .../sv/images/phoneScreenshots/1_Discover.png | 3 +++ .../sv/images/phoneScreenshots/2_Search.png | 3 +++ .../sv/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../sv/images/phoneScreenshots/4_Details.png | 3 +++ .../sw/images/phoneScreenshots/1_Discover.png | 3 +++ .../sw/images/phoneScreenshots/2_Search.png | 3 +++ .../sw/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../sw/images/phoneScreenshots/4_Details.png | 3 +++ .../ta/images/phoneScreenshots/1_Discover.png | 3 +++ .../ta/images/phoneScreenshots/2_Search.png | 3 +++ .../ta/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../ta/images/phoneScreenshots/4_Details.png | 3 +++ .../th/images/phoneScreenshots/1_Discover.png | 3 +++ .../th/images/phoneScreenshots/2_Search.png | 3 +++ .../th/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../th/images/phoneScreenshots/4_Details.png | 3 +++ .../tr/images/phoneScreenshots/1_Discover.png | 3 +++ .../tr/images/phoneScreenshots/2_Search.png | 3 +++ .../tr/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../tr/images/phoneScreenshots/4_Details.png | 3 +++ .../uk/images/phoneScreenshots/1_Discover.png | 3 +++ .../uk/images/phoneScreenshots/2_Search.png | 3 +++ .../uk/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../uk/images/phoneScreenshots/4_Details.png | 3 +++ .../vi/images/phoneScreenshots/1_Discover.png | 3 +++ .../vi/images/phoneScreenshots/2_Search.png | 3 +++ .../vi/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../vi/images/phoneScreenshots/4_Details.png | 3 +++ .../images/phoneScreenshots/1_Discover.png | 3 +++ .../yue/images/phoneScreenshots/2_Search.png | 3 +++ .../yue/images/phoneScreenshots/3_My_Apps.png | 3 +++ .../yue/images/phoneScreenshots/4_Details.png | 3 +++ .../images/phoneScreenshots/1_Discover.png | 3 +++ .../images/phoneScreenshots/2_Search.png | 3 +++ .../images/phoneScreenshots/3_My_Apps.png | 3 +++ .../images/phoneScreenshots/4_Details.png | 3 +++ .../images/phoneScreenshots/1_Discover.png | 3 +++ .../images/phoneScreenshots/2_Search.png | 3 +++ .../images/phoneScreenshots/3_My_Apps.png | 3 +++ .../images/phoneScreenshots/4_Details.png | 3 +++ .../images/phoneScreenshots/1_Discover.png | 3 +++ .../images/phoneScreenshots/2_Search.png | 3 +++ .../images/phoneScreenshots/3_My_Apps.png | 3 +++ .../images/phoneScreenshots/4_Details.png | 3 +++ 271 files changed, 782 insertions(+) create mode 100644 src/basic/fastlane/metadata/android/ar/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/ar/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/ar/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/ar/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/ast/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/ast/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/ast/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/ast/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/be/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/be/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/be/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/be/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/bg/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/bg/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/bg/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/bg/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/bn/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/bn/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/bn/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/bn/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/ca/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/ca/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/ca/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/ca/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/cs/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/cs/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/cs/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/cs/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/cy/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/cy/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/cy/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/cy/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/da/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/da/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/da/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/da/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/de/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/de/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/de/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/de/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/el/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/el/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/el/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/el/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/en-GB/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/en-GB/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/en-GB/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/en-GB/images/phoneScreenshots/4_Details.png delete mode 100644 src/basic/fastlane/metadata/android/en-US/images/phoneScreenshots/01-latest.png delete mode 100644 src/basic/fastlane/metadata/android/en-US/images/phoneScreenshots/02-categories.png delete mode 100644 src/basic/fastlane/metadata/android/en-US/images/phoneScreenshots/03-updates.png delete mode 100644 src/basic/fastlane/metadata/android/en-US/images/phoneScreenshots/04-settings.png delete mode 100644 src/basic/fastlane/metadata/android/en-US/images/phoneScreenshots/10-search.png delete mode 100644 src/basic/fastlane/metadata/android/en-US/images/phoneScreenshots/11-app-details.png create mode 100644 src/basic/fastlane/metadata/android/en-US/images/phoneScreenshots/1_Discover.png delete mode 100644 src/basic/fastlane/metadata/android/en-US/images/phoneScreenshots/20-repos.png delete mode 100644 src/basic/fastlane/metadata/android/en-US/images/phoneScreenshots/21-repo-details.png create mode 100644 src/basic/fastlane/metadata/android/en-US/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/en-US/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/en-US/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/eo/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/eo/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/eo/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/eo/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/es-AR/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/es-AR/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/es-AR/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/es-AR/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/es/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/es/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/es/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/es/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/et/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/et/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/et/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/et/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/eu/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/eu/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/eu/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/eu/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/fa/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/fa/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/fa/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/fa/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/fi/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/fi/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/fi/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/fi/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/fil/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/fil/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/fil/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/fil/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/fr/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/fr/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/fr/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/fr/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/ga/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/ga/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/ga/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/ga/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/gd/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/gd/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/gd/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/gd/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/gl/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/gl/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/gl/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/gl/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/he/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/he/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/he/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/he/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/hi-Latn/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/hi-Latn/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/hi-Latn/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/hi-Latn/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/hi/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/hi/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/hi/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/hi/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/hr/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/hr/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/hr/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/hr/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/hu/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/hu/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/hu/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/hu/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/id/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/id/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/id/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/id/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/is/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/is/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/is/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/is/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/it/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/it/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/it/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/it/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/ja/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/ja/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/ja/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/ja/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/kn/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/kn/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/kn/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/kn/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/ko/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/ko/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/ko/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/ko/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/lt/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/lt/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/lt/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/lt/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/lv/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/lv/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/lv/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/lv/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/ml/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/ml/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/ml/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/ml/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/nb/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/nb/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/nb/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/nb/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/nl/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/nl/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/nl/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/nl/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/nn/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/nn/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/nn/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/nn/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/pa/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/pa/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/pa/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/pa/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/pl/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/pl/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/pl/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/pl/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/pt-BR/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/pt-BR/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/pt-BR/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/pt-BR/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/pt-PT/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/pt-PT/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/pt-PT/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/pt-PT/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/pt/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/pt/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/pt/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/pt/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/ro/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/ro/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/ro/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/ro/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/ru/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/ru/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/ru/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/ru/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/sc/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/sc/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/sc/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/sc/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/sk/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/sk/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/sk/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/sk/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/sl/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/sl/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/sl/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/sl/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/sq/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/sq/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/sq/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/sq/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/sr/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/sr/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/sr/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/sr/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/sv/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/sv/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/sv/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/sv/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/sw/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/sw/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/sw/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/sw/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/ta/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/ta/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/ta/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/ta/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/th/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/th/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/th/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/th/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/tr/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/tr/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/tr/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/tr/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/uk/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/uk/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/uk/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/uk/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/vi/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/vi/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/vi/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/vi/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/yue/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/yue/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/yue/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/yue/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/zh-CN/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/zh-CN/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/zh-CN/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/zh-CN/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/zh-HK/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/zh-HK/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/zh-HK/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/zh-HK/images/phoneScreenshots/4_Details.png create mode 100644 src/basic/fastlane/metadata/android/zh-TW/images/phoneScreenshots/1_Discover.png create mode 100644 src/basic/fastlane/metadata/android/zh-TW/images/phoneScreenshots/2_Search.png create mode 100644 src/basic/fastlane/metadata/android/zh-TW/images/phoneScreenshots/3_My_Apps.png create mode 100644 src/basic/fastlane/metadata/android/zh-TW/images/phoneScreenshots/4_Details.png diff --git a/.gitattributes b/.gitattributes index e5773611f..305594ead 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,4 @@ *.gpg binary app/src/screenshotTestFullDefaultDebug/reference/** filter=lfs diff=lfs merge=lfs -text app/src/screenshotTestBasicDefaultDebug/reference/** filter=lfs diff=lfs merge=lfs -text +src/basic/fastlane/metadata/android/*/images/** filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore index 3862f236a..bcb6970c7 100644 --- a/.gitignore +++ b/.gitignore @@ -49,3 +49,4 @@ junit-report.xml captures/ /fdroid/ +/screenshots diff --git a/src/basic/fastlane/metadata/android/ar/images/phoneScreenshots/1_Discover.png b/src/basic/fastlane/metadata/android/ar/images/phoneScreenshots/1_Discover.png new file mode 100644 index 000000000..2ed186bf5 --- /dev/null +++ b/src/basic/fastlane/metadata/android/ar/images/phoneScreenshots/1_Discover.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2913d39b6abcccc680b6e7222ee54e352f8045027e6b94ba3ca748caf7aac46 +size 109126 diff --git a/src/basic/fastlane/metadata/android/ar/images/phoneScreenshots/2_Search.png b/src/basic/fastlane/metadata/android/ar/images/phoneScreenshots/2_Search.png new file mode 100644 index 000000000..85cf76dfd --- /dev/null +++ b/src/basic/fastlane/metadata/android/ar/images/phoneScreenshots/2_Search.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02e5843b1d64cd37f88dda07351a7c0b73eb963117eb3831336cb844d700033a +size 87015 diff --git a/src/basic/fastlane/metadata/android/ar/images/phoneScreenshots/3_My_Apps.png b/src/basic/fastlane/metadata/android/ar/images/phoneScreenshots/3_My_Apps.png new file mode 100644 index 000000000..6c71aaff4 --- /dev/null +++ b/src/basic/fastlane/metadata/android/ar/images/phoneScreenshots/3_My_Apps.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2efb23e2904db105ca379fa34ab9fd269d89da9fb5ccf0308bd8b3205a782101 +size 68273 diff --git a/src/basic/fastlane/metadata/android/ar/images/phoneScreenshots/4_Details.png b/src/basic/fastlane/metadata/android/ar/images/phoneScreenshots/4_Details.png new file mode 100644 index 000000000..280ebc818 --- /dev/null +++ b/src/basic/fastlane/metadata/android/ar/images/phoneScreenshots/4_Details.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfcb41128b9073adc03404d9377595fde2319a96d8700f09459540b2d2a31e65 +size 183860 diff --git a/src/basic/fastlane/metadata/android/ast/images/phoneScreenshots/1_Discover.png b/src/basic/fastlane/metadata/android/ast/images/phoneScreenshots/1_Discover.png new file mode 100644 index 000000000..072a33a05 --- /dev/null +++ b/src/basic/fastlane/metadata/android/ast/images/phoneScreenshots/1_Discover.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ebc819226abd72e308e85629b2648fb8988f0b04d69ceaed1a0b29b9e7e1cd4 +size 114041 diff --git a/src/basic/fastlane/metadata/android/ast/images/phoneScreenshots/2_Search.png b/src/basic/fastlane/metadata/android/ast/images/phoneScreenshots/2_Search.png new file mode 100644 index 000000000..e3551cff0 --- /dev/null +++ b/src/basic/fastlane/metadata/android/ast/images/phoneScreenshots/2_Search.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fc72cacc8d109a13aaf57dd4fe1c771fdc47c5af1e40f0b1067f10991aae3d7 +size 82989 diff --git a/src/basic/fastlane/metadata/android/ast/images/phoneScreenshots/3_My_Apps.png b/src/basic/fastlane/metadata/android/ast/images/phoneScreenshots/3_My_Apps.png new file mode 100644 index 000000000..800797903 --- /dev/null +++ b/src/basic/fastlane/metadata/android/ast/images/phoneScreenshots/3_My_Apps.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23d61581f306f61dee4dc2b0be0d55ee4b139383b30388f6027ef8257ba9fbdc +size 74477 diff --git a/src/basic/fastlane/metadata/android/ast/images/phoneScreenshots/4_Details.png b/src/basic/fastlane/metadata/android/ast/images/phoneScreenshots/4_Details.png new file mode 100644 index 000000000..afbe05de5 --- /dev/null +++ b/src/basic/fastlane/metadata/android/ast/images/phoneScreenshots/4_Details.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9e4a1070e68c6573a10374214d5e1856fd18598cf2497afcafd672669ff1e57 +size 183894 diff --git a/src/basic/fastlane/metadata/android/be/images/phoneScreenshots/1_Discover.png b/src/basic/fastlane/metadata/android/be/images/phoneScreenshots/1_Discover.png new file mode 100644 index 000000000..3d021d5a3 --- /dev/null +++ b/src/basic/fastlane/metadata/android/be/images/phoneScreenshots/1_Discover.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7763731dee15da6f7eacaa8eec42a224a973ccc47c686a6ca1686672197bf63 +size 113540 diff --git a/src/basic/fastlane/metadata/android/be/images/phoneScreenshots/2_Search.png b/src/basic/fastlane/metadata/android/be/images/phoneScreenshots/2_Search.png new file mode 100644 index 000000000..1b96981a1 --- /dev/null +++ b/src/basic/fastlane/metadata/android/be/images/phoneScreenshots/2_Search.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a8cc7a9659cf4402bded62c0b0a49617f895790b9a67249c22a329290613c6f +size 84207 diff --git a/src/basic/fastlane/metadata/android/be/images/phoneScreenshots/3_My_Apps.png b/src/basic/fastlane/metadata/android/be/images/phoneScreenshots/3_My_Apps.png new file mode 100644 index 000000000..5d680709e --- /dev/null +++ b/src/basic/fastlane/metadata/android/be/images/phoneScreenshots/3_My_Apps.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1580b1371098f9988eec12c417d89cd6a4e40d6cbd4320923552d0d675b98f1 +size 73194 diff --git a/src/basic/fastlane/metadata/android/be/images/phoneScreenshots/4_Details.png b/src/basic/fastlane/metadata/android/be/images/phoneScreenshots/4_Details.png new file mode 100644 index 000000000..2a84d5e87 --- /dev/null +++ b/src/basic/fastlane/metadata/android/be/images/phoneScreenshots/4_Details.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c1f807665c2498250e68b50e67f243ded5440b8f164a12f602e7cfdd25df2e6 +size 184778 diff --git a/src/basic/fastlane/metadata/android/bg/images/phoneScreenshots/1_Discover.png b/src/basic/fastlane/metadata/android/bg/images/phoneScreenshots/1_Discover.png new file mode 100644 index 000000000..3a24d332e --- /dev/null +++ b/src/basic/fastlane/metadata/android/bg/images/phoneScreenshots/1_Discover.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73306761f019d03bc3bd0cf774c8bd1b0f0200efc5f64e825ee39140cd29fe92 +size 114235 diff --git a/src/basic/fastlane/metadata/android/bg/images/phoneScreenshots/2_Search.png b/src/basic/fastlane/metadata/android/bg/images/phoneScreenshots/2_Search.png new file mode 100644 index 000000000..6c1c3f059 --- /dev/null +++ b/src/basic/fastlane/metadata/android/bg/images/phoneScreenshots/2_Search.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a48274f1b8d53c73d70f5e1aa0aeb7decc39ad1c6d239f0a396aab7867459ff8 +size 85570 diff --git a/src/basic/fastlane/metadata/android/bg/images/phoneScreenshots/3_My_Apps.png b/src/basic/fastlane/metadata/android/bg/images/phoneScreenshots/3_My_Apps.png new file mode 100644 index 000000000..ede2032a1 --- /dev/null +++ b/src/basic/fastlane/metadata/android/bg/images/phoneScreenshots/3_My_Apps.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e62bc29ccc5df088efb0d00cbdc9d5dac29b03ae90d1eb2d2f96443cc5747f29 +size 75460 diff --git a/src/basic/fastlane/metadata/android/bg/images/phoneScreenshots/4_Details.png b/src/basic/fastlane/metadata/android/bg/images/phoneScreenshots/4_Details.png new file mode 100644 index 000000000..d512e6ecc --- /dev/null +++ b/src/basic/fastlane/metadata/android/bg/images/phoneScreenshots/4_Details.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09d8c66e394d3dbd709a8267f7fc3c731514ca585c94b1749e6ee2313f9689e2 +size 186268 diff --git a/src/basic/fastlane/metadata/android/bn/images/phoneScreenshots/1_Discover.png b/src/basic/fastlane/metadata/android/bn/images/phoneScreenshots/1_Discover.png new file mode 100644 index 000000000..5d79ce0d8 --- /dev/null +++ b/src/basic/fastlane/metadata/android/bn/images/phoneScreenshots/1_Discover.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2702347828af531d4dfa410b941e9636af607fcd8ed4b6b32b8b8aea037dc108 +size 116040 diff --git a/src/basic/fastlane/metadata/android/bn/images/phoneScreenshots/2_Search.png b/src/basic/fastlane/metadata/android/bn/images/phoneScreenshots/2_Search.png new file mode 100644 index 000000000..0d9e01b57 --- /dev/null +++ b/src/basic/fastlane/metadata/android/bn/images/phoneScreenshots/2_Search.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0631347a6cddade40c5d51391235c326e7a0eb06a45e74942ae131b3b349767c +size 83749 diff --git a/src/basic/fastlane/metadata/android/bn/images/phoneScreenshots/3_My_Apps.png b/src/basic/fastlane/metadata/android/bn/images/phoneScreenshots/3_My_Apps.png new file mode 100644 index 000000000..28898aa92 --- /dev/null +++ b/src/basic/fastlane/metadata/android/bn/images/phoneScreenshots/3_My_Apps.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8e46ba9c90bd97553665f3b434113cea164a138b1951de13e4e84e18dce7ab3 +size 78853 diff --git a/src/basic/fastlane/metadata/android/bn/images/phoneScreenshots/4_Details.png b/src/basic/fastlane/metadata/android/bn/images/phoneScreenshots/4_Details.png new file mode 100644 index 000000000..d36febaaa --- /dev/null +++ b/src/basic/fastlane/metadata/android/bn/images/phoneScreenshots/4_Details.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:195fdef84ebbb83e548d93eb1359221cc4bf4c0d644f4ebb97efb0b377e89d7b +size 185169 diff --git a/src/basic/fastlane/metadata/android/ca/images/phoneScreenshots/1_Discover.png b/src/basic/fastlane/metadata/android/ca/images/phoneScreenshots/1_Discover.png new file mode 100644 index 000000000..9ac8017a6 --- /dev/null +++ b/src/basic/fastlane/metadata/android/ca/images/phoneScreenshots/1_Discover.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d56e8ee8c9d2dca0d2462ce460499deead92fc874fa5cf9c66a958453bfc1be2 +size 116144 diff --git a/src/basic/fastlane/metadata/android/ca/images/phoneScreenshots/2_Search.png b/src/basic/fastlane/metadata/android/ca/images/phoneScreenshots/2_Search.png new file mode 100644 index 000000000..d323de673 --- /dev/null +++ b/src/basic/fastlane/metadata/android/ca/images/phoneScreenshots/2_Search.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2cbff9775930cd78afe463db22724987166b647179c23ac4da1970038ed91be +size 85464 diff --git a/src/basic/fastlane/metadata/android/ca/images/phoneScreenshots/3_My_Apps.png b/src/basic/fastlane/metadata/android/ca/images/phoneScreenshots/3_My_Apps.png new file mode 100644 index 000000000..61d25fc15 --- /dev/null +++ b/src/basic/fastlane/metadata/android/ca/images/phoneScreenshots/3_My_Apps.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f92ed9cceed8101adf4fc839e58ca7b2e5ea2c77a6c8e693389d4a1d8ce3e55 +size 77192 diff --git a/src/basic/fastlane/metadata/android/ca/images/phoneScreenshots/4_Details.png b/src/basic/fastlane/metadata/android/ca/images/phoneScreenshots/4_Details.png new file mode 100644 index 000000000..42f5e86a1 --- /dev/null +++ b/src/basic/fastlane/metadata/android/ca/images/phoneScreenshots/4_Details.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92259d235549e2223fffa2436e226f28e0235538113d3597d51754f727e8dffe +size 185172 diff --git a/src/basic/fastlane/metadata/android/cs/images/phoneScreenshots/1_Discover.png b/src/basic/fastlane/metadata/android/cs/images/phoneScreenshots/1_Discover.png new file mode 100644 index 000000000..580ac91f1 --- /dev/null +++ b/src/basic/fastlane/metadata/android/cs/images/phoneScreenshots/1_Discover.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ce842c21001cbc9f78138436826ad8f31764f61db9c33765e6441112e431cda +size 115408 diff --git a/src/basic/fastlane/metadata/android/cs/images/phoneScreenshots/2_Search.png b/src/basic/fastlane/metadata/android/cs/images/phoneScreenshots/2_Search.png new file mode 100644 index 000000000..2c243501f --- /dev/null +++ b/src/basic/fastlane/metadata/android/cs/images/phoneScreenshots/2_Search.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:080b8907e2ef87723a0cc0be978e0959c6965f7c8aca705a6ec7fb1069a967d6 +size 90581 diff --git a/src/basic/fastlane/metadata/android/cs/images/phoneScreenshots/3_My_Apps.png b/src/basic/fastlane/metadata/android/cs/images/phoneScreenshots/3_My_Apps.png new file mode 100644 index 000000000..8820afc2e --- /dev/null +++ b/src/basic/fastlane/metadata/android/cs/images/phoneScreenshots/3_My_Apps.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a6d5f3b4885159f6c6b87685d25b2c393d5ee8b51fad7c2f04c0fb27157f006 +size 76068 diff --git a/src/basic/fastlane/metadata/android/cs/images/phoneScreenshots/4_Details.png b/src/basic/fastlane/metadata/android/cs/images/phoneScreenshots/4_Details.png new file mode 100644 index 000000000..8153e5216 --- /dev/null +++ b/src/basic/fastlane/metadata/android/cs/images/phoneScreenshots/4_Details.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7589a5c82ef78819eefc4ddae3df892e532fb4daea6b742ec39aced1d33279d4 +size 188131 diff --git a/src/basic/fastlane/metadata/android/cy/images/phoneScreenshots/1_Discover.png b/src/basic/fastlane/metadata/android/cy/images/phoneScreenshots/1_Discover.png new file mode 100644 index 000000000..e2a82c468 --- /dev/null +++ b/src/basic/fastlane/metadata/android/cy/images/phoneScreenshots/1_Discover.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80d4789b2554fa335b0cfcce133d14de5d3d6674ca2100efb19f031be7bcc218 +size 114416 diff --git a/src/basic/fastlane/metadata/android/cy/images/phoneScreenshots/2_Search.png b/src/basic/fastlane/metadata/android/cy/images/phoneScreenshots/2_Search.png new file mode 100644 index 000000000..461f303f7 --- /dev/null +++ b/src/basic/fastlane/metadata/android/cy/images/phoneScreenshots/2_Search.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc201db5f36d52f3eca7b97bb1260fa7c57cefd219c9b579e7db037deeea97b0 +size 84624 diff --git a/src/basic/fastlane/metadata/android/cy/images/phoneScreenshots/3_My_Apps.png b/src/basic/fastlane/metadata/android/cy/images/phoneScreenshots/3_My_Apps.png new file mode 100644 index 000000000..5d4ff8c57 --- /dev/null +++ b/src/basic/fastlane/metadata/android/cy/images/phoneScreenshots/3_My_Apps.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d28a47c0e1dc3189733765e3795d571fc0610e486d9ff3ca1905d7c2c1075332 +size 75259 diff --git a/src/basic/fastlane/metadata/android/cy/images/phoneScreenshots/4_Details.png b/src/basic/fastlane/metadata/android/cy/images/phoneScreenshots/4_Details.png new file mode 100644 index 000000000..351f86328 --- /dev/null +++ b/src/basic/fastlane/metadata/android/cy/images/phoneScreenshots/4_Details.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb6f0e0c901ecb0131055b8981b1f136acf4c7887a038ef46798a9aa05483094 +size 184508 diff --git a/src/basic/fastlane/metadata/android/da/images/phoneScreenshots/1_Discover.png b/src/basic/fastlane/metadata/android/da/images/phoneScreenshots/1_Discover.png new file mode 100644 index 000000000..7a27f6002 --- /dev/null +++ b/src/basic/fastlane/metadata/android/da/images/phoneScreenshots/1_Discover.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54c80ed9364b4c8cc83e5fa453ad4de296e6d69b2ef1b5b53a51ab0d21915d49 +size 110892 diff --git a/src/basic/fastlane/metadata/android/da/images/phoneScreenshots/2_Search.png b/src/basic/fastlane/metadata/android/da/images/phoneScreenshots/2_Search.png new file mode 100644 index 000000000..14793a801 --- /dev/null +++ b/src/basic/fastlane/metadata/android/da/images/phoneScreenshots/2_Search.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78c2d29ad3b839df0b10368c39f54e79506c6738ec8160feeb608705195bbc20 +size 81433 diff --git a/src/basic/fastlane/metadata/android/da/images/phoneScreenshots/3_My_Apps.png b/src/basic/fastlane/metadata/android/da/images/phoneScreenshots/3_My_Apps.png new file mode 100644 index 000000000..150d64774 --- /dev/null +++ b/src/basic/fastlane/metadata/android/da/images/phoneScreenshots/3_My_Apps.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1444a1cbee51f10c16f1e8aeca40d8c8e794c1da93ebe6f19ea23e4fb7b1f275 +size 74106 diff --git a/src/basic/fastlane/metadata/android/da/images/phoneScreenshots/4_Details.png b/src/basic/fastlane/metadata/android/da/images/phoneScreenshots/4_Details.png new file mode 100644 index 000000000..1b649c30e --- /dev/null +++ b/src/basic/fastlane/metadata/android/da/images/phoneScreenshots/4_Details.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:568d94bba7065139647fa504d4cba80b49aa294c2b68c3f632c28a703accc70e +size 186184 diff --git a/src/basic/fastlane/metadata/android/de/images/phoneScreenshots/1_Discover.png b/src/basic/fastlane/metadata/android/de/images/phoneScreenshots/1_Discover.png new file mode 100644 index 000000000..b510bd1d8 --- /dev/null +++ b/src/basic/fastlane/metadata/android/de/images/phoneScreenshots/1_Discover.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c82fc1bfda92b5f5b71fc8b28df99bfecb9f55298ad9debc9208ba9eae05f803 +size 116527 diff --git a/src/basic/fastlane/metadata/android/de/images/phoneScreenshots/2_Search.png b/src/basic/fastlane/metadata/android/de/images/phoneScreenshots/2_Search.png new file mode 100644 index 000000000..2760d2556 --- /dev/null +++ b/src/basic/fastlane/metadata/android/de/images/phoneScreenshots/2_Search.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5029f7ea6888b2146c4c9de0df3796542ccc79f48b6fdf42eb1fdf3cd98ccf1c +size 81861 diff --git a/src/basic/fastlane/metadata/android/de/images/phoneScreenshots/3_My_Apps.png b/src/basic/fastlane/metadata/android/de/images/phoneScreenshots/3_My_Apps.png new file mode 100644 index 000000000..187c22d62 --- /dev/null +++ b/src/basic/fastlane/metadata/android/de/images/phoneScreenshots/3_My_Apps.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8ca87a0fb1a5bdaa4c012566bdd18d238143c61c7776746a1d5fceb5c078414 +size 76512 diff --git a/src/basic/fastlane/metadata/android/de/images/phoneScreenshots/4_Details.png b/src/basic/fastlane/metadata/android/de/images/phoneScreenshots/4_Details.png new file mode 100644 index 000000000..3f91c4edc --- /dev/null +++ b/src/basic/fastlane/metadata/android/de/images/phoneScreenshots/4_Details.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:828b84453ccdc26206a6f3baf1d3fe0f63c0495fb80c6b37bcec80db1f1be9f2 +size 183156 diff --git a/src/basic/fastlane/metadata/android/el/images/phoneScreenshots/1_Discover.png b/src/basic/fastlane/metadata/android/el/images/phoneScreenshots/1_Discover.png new file mode 100644 index 000000000..f16913c40 --- /dev/null +++ b/src/basic/fastlane/metadata/android/el/images/phoneScreenshots/1_Discover.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:407e77801118827fcb85c1f3fdf4a888f58fa29b392039f00f0f00249c8e6cc4 +size 122745 diff --git a/src/basic/fastlane/metadata/android/el/images/phoneScreenshots/2_Search.png b/src/basic/fastlane/metadata/android/el/images/phoneScreenshots/2_Search.png new file mode 100644 index 000000000..a1479cb90 --- /dev/null +++ b/src/basic/fastlane/metadata/android/el/images/phoneScreenshots/2_Search.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17f738b4d84e69722a8aa5a339002b8e9d18313437dff1c68b3d394aadd62b74 +size 86634 diff --git a/src/basic/fastlane/metadata/android/el/images/phoneScreenshots/3_My_Apps.png b/src/basic/fastlane/metadata/android/el/images/phoneScreenshots/3_My_Apps.png new file mode 100644 index 000000000..5389267cb --- /dev/null +++ b/src/basic/fastlane/metadata/android/el/images/phoneScreenshots/3_My_Apps.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:811f09be6c59a1d9f0da2974268d6d864b01cd88d15d2f50c38cdcecf5fa2ee9 +size 81714 diff --git a/src/basic/fastlane/metadata/android/el/images/phoneScreenshots/4_Details.png b/src/basic/fastlane/metadata/android/el/images/phoneScreenshots/4_Details.png new file mode 100644 index 000000000..38647bff3 --- /dev/null +++ b/src/basic/fastlane/metadata/android/el/images/phoneScreenshots/4_Details.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07f91a1ebeac6d400ac50579194353a969367a66791bc02e57e885a1467862c2 +size 187155 diff --git a/src/basic/fastlane/metadata/android/en-GB/images/phoneScreenshots/1_Discover.png b/src/basic/fastlane/metadata/android/en-GB/images/phoneScreenshots/1_Discover.png new file mode 100644 index 000000000..36f88bf8d --- /dev/null +++ b/src/basic/fastlane/metadata/android/en-GB/images/phoneScreenshots/1_Discover.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4dc99f87d8f18447dfa4187eed68249abc77bb51e8b4622bd3d127a6a5713a24 +size 113488 diff --git a/src/basic/fastlane/metadata/android/en-GB/images/phoneScreenshots/2_Search.png b/src/basic/fastlane/metadata/android/en-GB/images/phoneScreenshots/2_Search.png new file mode 100644 index 000000000..da992b5a7 --- /dev/null +++ b/src/basic/fastlane/metadata/android/en-GB/images/phoneScreenshots/2_Search.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b562bc52a68c4fa7e16d17434a52589498ecb7641be11b317e89a476e2a05bb +size 84352 diff --git a/src/basic/fastlane/metadata/android/en-GB/images/phoneScreenshots/3_My_Apps.png b/src/basic/fastlane/metadata/android/en-GB/images/phoneScreenshots/3_My_Apps.png new file mode 100644 index 000000000..0c6bf0bbf --- /dev/null +++ b/src/basic/fastlane/metadata/android/en-GB/images/phoneScreenshots/3_My_Apps.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7e897a6a8247b05bd583ed67473a5b6120b851d2675ebcccc3ec8cba8eb41ba +size 71227 diff --git a/src/basic/fastlane/metadata/android/en-GB/images/phoneScreenshots/4_Details.png b/src/basic/fastlane/metadata/android/en-GB/images/phoneScreenshots/4_Details.png new file mode 100644 index 000000000..a7eaa36da --- /dev/null +++ b/src/basic/fastlane/metadata/android/en-GB/images/phoneScreenshots/4_Details.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f579affdbbe6c0f74af5762b50f51e56b466d9579f50d9dad570247ccaee8857 +size 184993 diff --git a/src/basic/fastlane/metadata/android/en-US/images/icon.png b/src/basic/fastlane/metadata/android/en-US/images/icon.png index 712af58d2ddc393d86e4e41570bc61771a7f21a2..0f1a49bf30fa70b305926c62645c0dbab0a65cca 100644 GIT binary patch literal 130 zcmWN_!41P83;@7CQ)Gb#3?f1FL9}`-y+pma9g@iy@o-jiAPAfhk+n)N!y3$C)<%a)iI^aHYqhhOy^p{K MNc8&S1(XI5fBLE?$N&HU literal 10211 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 O03|tf*(Pc8u>S`Xa1_V@ diff --git a/src/basic/fastlane/metadata/android/en-US/images/phoneScreenshots/01-latest.png b/src/basic/fastlane/metadata/android/en-US/images/phoneScreenshots/01-latest.png deleted file mode 100644 index 4c5f37af54e557dfbf4fc98f89624f0caf6f1c5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 203791 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‹zw4FPIL%K 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%0DA+u{*wx$gS1FZn!@T>U`GkLp^yE$yASxBcuYh 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 diff --git a/src/basic/fastlane/metadata/android/en-US/images/phoneScreenshots/02-categories.png b/src/basic/fastlane/metadata/android/en-US/images/phoneScreenshots/02-categories.png deleted file mode 100644 index f803f2d3291f33ec2bd9fff45c4e40ef783fc58c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 283065 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 z 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