diff --git a/app/src/main/java/foundation/e/apps/data/application/utils/CategoryUtils.kt b/app/src/main/java/foundation/e/apps/data/application/utils/CategoryUtils.kt index e8a4b5927c147805490ab4cbf5c15d5d7ec686f1..52f7b00b37f371663bbd1f48408a04ea8a92a1d5 100644 --- a/app/src/main/java/foundation/e/apps/data/application/utils/CategoryUtils.kt +++ b/app/src/main/java/foundation/e/apps/data/application/utils/CategoryUtils.kt @@ -105,6 +105,53 @@ object CategoryUtils { "pwa_business" to R.drawable.ic_business, "watch_face" to R.drawable.ic_watchface, "android_wear" to R.drawable.ic_watch_apps, + "ai-chat" to R.drawable.ic_cat_communication, + "app-store-updater" to R.drawable.ic_cat_tools, + "battery" to R.drawable.ic_cat_tools, + "bookmark" to R.drawable.ic_books_and_reference, + "browser" to R.drawable.ic_cat_browser, + "calculator" to R.drawable.ic_cat_tools, + "calendar-agenda" to R.drawable.ic_cat_events, + "clock" to R.drawable.ic_cat_time, + "cloud-storage-file-sync" to R.drawable.ic_cat_cloud, + "dns-hosts" to R.drawable.ic_cat_connectivity, + "draw" to R.drawable.ic_art_and_design, + "ebook-reader" to R.drawable.ic_books_and_reference, + "email" to R.drawable.ic_cat_communication, + "file-encryption-vault" to R.drawable.ic_cat_security, + "file-transfer" to R.drawable.ic_cat_connectivity, + "finance-manager" to R.drawable.ic_cat_finance, + "flashlight" to R.drawable.ic_cat_tools, + "forum" to R.drawable.ic_cat_social, + "gallery" to R.drawable.ic_cat_photography, + "habit-tracker" to R.drawable.ic_cat_productivity, + "icon-pack" to R.drawable.ic_cat_personalization, + "keyboard-ime" to R.drawable.ic_cat_personalization, + "launcher" to R.drawable.ic_cat_personalization, + "local-media-player" to R.drawable.ic_cat_video_players, + "location-tracker-sharer" to R.drawable.ic_cat_maps_and_navigation, + "messaging" to R.drawable.ic_cat_communication, + "music-practice-tool" to R.drawable.ic_cat_music_and_audio, + "network-analyzer" to R.drawable.ic_cat_connectivity, + "note" to R.drawable.ic_cat_productivity, + "online-media-player" to R.drawable.ic_cat_video_players, + "pass-wallet" to R.drawable.ic_cat_finance, + "password-2fa" to R.drawable.ic_cat_security, + "podcast" to R.drawable.ic_cat_music_and_audio, + "radio" to R.drawable.ic_cat_music_and_audio, + "recipe-manager" to R.drawable.ic_cat_food_and_drink, + "religion" to R.drawable.ic_cat_lifestyle, + "shopping-list" to R.drawable.ic_cat_shopping, + "social-network" to R.drawable.ic_cat_social, + "task" to R.drawable.ic_cat_productivity, + "text-editor" to R.drawable.ic_cat_productivity, + "translation-dictionary" to R.drawable.ic_cat_reference, + "unit-convertor" to R.drawable.ic_cat_tools, + "voice-video-chat" to R.drawable.ic_cat_communication, + "vpn-proxy" to R.drawable.ic_cat_security, + "wallet" to R.drawable.ic_cat_finance, + "wallpaper" to R.drawable.ic_cat_personalization, + "workout" to R.drawable.ic_cat_health_and_fitness, ) fun provideAppsCategoryIconResource(categoryId: String) = diff --git a/app/src/main/java/foundation/e/apps/data/application/utils/GplayApiExtensions.kt b/app/src/main/java/foundation/e/apps/data/application/utils/GplayApiExtensions.kt index a60bbd804d47f403319b63155631b2cb65edb7a4..b5564558b61a1819ff1901d34709eda71c80ebab 100644 --- a/app/src/main/java/foundation/e/apps/data/application/utils/GplayApiExtensions.kt +++ b/app/src/main/java/foundation/e/apps/data/application/utils/GplayApiExtensions.kt @@ -21,7 +21,6 @@ package foundation.e.apps.data.application.utils import android.content.Context import android.text.format.Formatter import com.aurora.gplayapi.data.models.App -import com.aurora.gplayapi.data.models.Artwork import com.aurora.gplayapi.data.models.Category import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.application.data.Ratings @@ -66,7 +65,7 @@ fun App.toApplication(context: Context): Application { } fun Category.toCategory(): AppLoungeCategory { - val id = this.browseUrl.substringAfter("cat=").substringBefore("&c=") + val id = getCategoryId(this.browseUrl) return AppLoungeCategory( id = id.lowercase(), title = this.title, @@ -75,10 +74,11 @@ fun Category.toCategory(): AppLoungeCategory { ) } -private fun MutableList.toList(): List { - val list = mutableListOf() - this.forEach { - list.add(it.url) +private fun getCategoryId(browseUrl: String): String { + val queryCategory = browseUrl.substringAfter("cat=", "").substringBefore("&") + if (queryCategory.isNotBlank()) { + return queryCategory } - return list + + return browseUrl.substringBefore("?").trimEnd('/').substringAfterLast('/') } diff --git a/app/src/main/res/drawable/ic_cat_browser.xml b/app/src/main/res/drawable/ic_cat_browser.xml new file mode 100644 index 0000000000000000000000000000000000000000..25cec913f1a2e81f6e5ceb85818c48996f5254c6 --- /dev/null +++ b/app/src/main/res/drawable/ic_cat_browser.xml @@ -0,0 +1,20 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_cat_cloud.xml b/app/src/main/res/drawable/ic_cat_cloud.xml new file mode 100644 index 0000000000000000000000000000000000000000..c8809f6431b5e5203d68eabad93c30d3c1e29536 --- /dev/null +++ b/app/src/main/res/drawable/ic_cat_cloud.xml @@ -0,0 +1,12 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_cat_time.xml b/app/src/main/res/drawable/ic_cat_time.xml new file mode 100644 index 0000000000000000000000000000000000000000..66dbd5095079d80c95e96806fbaae3d123156235 --- /dev/null +++ b/app/src/main/res/drawable/ic_cat_time.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_cat_travel.xml b/app/src/main/res/drawable/ic_cat_travel.xml index 061bf84e10d8951f1434fb80010b4e4b5bdfb4e5..53e9157be911761055dbdb50b466877585811a02 100644 --- a/app/src/main/res/drawable/ic_cat_travel.xml +++ b/app/src/main/res/drawable/ic_cat_travel.xml @@ -1,27 +1,48 @@ - - - + android:viewportWidth="32" + android:viewportHeight="32"> + + + + + + + + + + + + + + + + + + diff --git a/app/src/test/java/foundation/e/apps/data/application/utils/CategoryUtilsTest.kt b/app/src/test/java/foundation/e/apps/data/application/utils/CategoryUtilsTest.kt index c41e966f86e5f87a33d187d2b2d4aba70da4d5b6..f0ebe61e4d5aa12930673885862e0201da84df85 100644 --- a/app/src/test/java/foundation/e/apps/data/application/utils/CategoryUtilsTest.kt +++ b/app/src/test/java/foundation/e/apps/data/application/utils/CategoryUtilsTest.kt @@ -63,4 +63,32 @@ class CategoryUtilsTest { assertThat(iconName).isEqualTo("maps_and_navigation") } + + @Test + fun provideAppsCategoryIconResource_returnsAliasForBrowser() { + val icon = CategoryUtils.provideAppsCategoryIconResource("browser") + + assertThat(icon).isEqualTo(R.drawable.ic_cat_browser) + } + + @Test + fun provideAppsCategoryIconResource_returnsAliasForWallet() { + val icon = CategoryUtils.provideAppsCategoryIconResource("wallet") + + assertThat(icon).isEqualTo(R.drawable.ic_cat_finance) + } + + @Test + fun provideAppsCategoryIconResource_returnsAliasForVoiceVideoChat() { + val icon = CategoryUtils.provideAppsCategoryIconResource("voice-video-chat") + + assertThat(icon).isEqualTo(R.drawable.ic_cat_communication) + } + + @Test + fun provideAppsCategoryIconResource_returnsAliasForWorkout() { + val icon = CategoryUtils.provideAppsCategoryIconResource("workout") + + assertThat(icon).isEqualTo(R.drawable.ic_cat_health_and_fitness) + } }