diff --git a/app/src/main/kotlin/org/fdroid/ui/categories/CategoryGroup.kt b/app/src/main/kotlin/org/fdroid/ui/categories/CategoryGroup.kt
index dc9959a73..adba266ef 100644
--- a/app/src/main/kotlin/org/fdroid/ui/categories/CategoryGroup.kt
+++ b/app/src/main/kotlin/org/fdroid/ui/categories/CategoryGroup.kt
@@ -10,6 +10,7 @@ import androidx.compose.material.icons.filled.Forum
import androidx.compose.material.icons.filled.NetworkCheck
import androidx.compose.material.icons.filled.PhoneAndroid
import androidx.compose.material.icons.filled.SdStorage
+import androidx.compose.material.icons.filled.SportsEsports
import androidx.compose.material.icons.filled.VideogameAsset
import androidx.compose.material.icons.filled.Wallet
import androidx.compose.ui.graphics.vector.ImageVector
@@ -23,6 +24,54 @@ data class CategoryGroup(
)
object CategoryGroups {
+ val communication =
+ CategoryGroup(
+ id = "communication",
+ name = R.string.category_group_communication,
+ summary = R.string.category_group_summary_communication,
+ imageVector = Icons.Default.Forum,
+ )
+ val device =
+ CategoryGroup(
+ id = "device",
+ name = R.string.category_group_device,
+ summary = R.string.category_group_summary_device,
+ imageVector = Icons.Default.PhoneAndroid,
+ )
+ val games = CategoryGroup(
+ id = "games",
+ name = R.string.category_group_games,
+ summary = R.string.category_group_summary_games,
+ imageVector = Icons.Default.SportsEsports,
+ )
+ val interests =
+ CategoryGroup(
+ id = "interests",
+ name = R.string.category_group_interests,
+ summary = R.string.category_group_summary_interests,
+ imageVector = Icons.Default.FavoriteBorder,
+ )
+ val media =
+ CategoryGroup(
+ id = "media",
+ name = R.string.category_group_media,
+ summary = R.string.category_group_summary_media,
+ imageVector = Icons.Default.VideogameAsset,
+ )
+ val misc =
+ CategoryGroup(
+ id = "misc",
+ name = R.string.category_group_misc,
+ summary = R.string.category_group_summary_misc,
+ imageVector = Icons.Default.Category,
+ )
+ val network =
+ CategoryGroup(
+ id = "network",
+ name = R.string.category_group_network,
+ summary = R.string.category_group_summary_network,
+ imageVector = Icons.Default.NetworkCheck,
+ )
val productivity =
CategoryGroup(
id = "productivity",
@@ -30,6 +79,13 @@ object CategoryGroups {
summary = R.string.category_group_summary_productivity,
imageVector = Icons.Default.Factory,
)
+ val storage =
+ CategoryGroup(
+ id = "storage",
+ name = R.string.category_group_storage,
+ summary = R.string.category_group_summary_storage,
+ imageVector = Icons.Default.SdStorage,
+ )
val tools =
CategoryGroup(
id = "tools",
@@ -44,53 +100,4 @@ object CategoryGroups {
summary = R.string.category_group_summary_wallets,
imageVector = Icons.Default.Wallet,
)
- val media =
- CategoryGroup(
- id = "media",
- name = R.string.category_group_media,
- summary = R.string.category_group_summary_media,
- imageVector = Icons.Default.VideogameAsset,
- )
- val communication =
- CategoryGroup(
- id = "communication",
- name = R.string.category_group_communication,
- summary = R.string.category_group_summary_communication,
- imageVector = Icons.Default.Forum,
- )
- val device =
- CategoryGroup(
- id = "device",
- name = R.string.category_group_device,
- summary = R.string.category_group_summary_device,
- imageVector = Icons.Default.PhoneAndroid,
- )
- val network =
- CategoryGroup(
- id = "network",
- name = R.string.category_group_network,
- summary = R.string.category_group_summary_network,
- imageVector = Icons.Default.NetworkCheck,
- )
- val storage =
- CategoryGroup(
- id = "storage",
- name = R.string.category_group_storage,
- summary = R.string.category_group_summary_storage,
- imageVector = Icons.Default.SdStorage,
- )
- val interests =
- CategoryGroup(
- id = "interests",
- name = R.string.category_group_interests,
- summary = R.string.category_group_summary_interests,
- imageVector = Icons.Default.FavoriteBorder,
- )
- val misc =
- CategoryGroup(
- id = "misc",
- name = R.string.category_group_misc,
- summary = R.string.category_group_summary_misc,
- imageVector = Icons.Default.Category,
- )
}
diff --git a/app/src/main/kotlin/org/fdroid/ui/categories/CategoryItem.kt b/app/src/main/kotlin/org/fdroid/ui/categories/CategoryItem.kt
index 5278f77f8..cc26b6830 100644
--- a/app/src/main/kotlin/org/fdroid/ui/categories/CategoryItem.kt
+++ b/app/src/main/kotlin/org/fdroid/ui/categories/CategoryItem.kt
@@ -17,29 +17,38 @@ import androidx.compose.material.icons.filled.BrowserUpdated
import androidx.compose.material.icons.filled.Brush
import androidx.compose.material.icons.filled.Calculate
import androidx.compose.material.icons.filled.CalendarMonth
+import androidx.compose.material.icons.filled.Casino
+import androidx.compose.material.icons.filled.Castle
import androidx.compose.material.icons.filled.Category
+import androidx.compose.material.icons.filled.Celebration
+import androidx.compose.material.icons.filled.CenterFocusWeak
import androidx.compose.material.icons.filled.Church
import androidx.compose.material.icons.filled.Cloud
import androidx.compose.material.icons.filled.Collections
import androidx.compose.material.icons.filled.Contacts
+import androidx.compose.material.icons.filled.CrueltyFree
import androidx.compose.material.icons.filled.CurrencyExchange
+import androidx.compose.material.icons.filled.DeveloperBoard
import androidx.compose.material.icons.filled.DeveloperMode
import androidx.compose.material.icons.filled.DirectionsBus
+import androidx.compose.material.icons.filled.Diversity3
import androidx.compose.material.icons.filled.Dns
import androidx.compose.material.icons.filled.Draw
import androidx.compose.material.icons.filled.EditNote
import androidx.compose.material.icons.filled.EnhancedEncryption
+import androidx.compose.material.icons.filled.Extension
import androidx.compose.material.icons.filled.Fastfood
import androidx.compose.material.icons.filled.FitnessCenter
import androidx.compose.material.icons.filled.FlashlightOn
-import androidx.compose.material.icons.filled.Games
import androidx.compose.material.icons.filled.Groups
+import androidx.compose.material.icons.filled.Handyman
import androidx.compose.material.icons.filled.HealthAndSafety
import androidx.compose.material.icons.filled.Home
import androidx.compose.material.icons.filled.Image
import androidx.compose.material.icons.filled.Keyboard
import androidx.compose.material.icons.filled.Language
import androidx.compose.material.icons.filled.LocalPlay
+import androidx.compose.material.icons.filled.ModeComment
import androidx.compose.material.icons.filled.MonetizationOn
import androidx.compose.material.icons.filled.Money
import androidx.compose.material.icons.filled.MusicNote
@@ -57,6 +66,7 @@ import androidx.compose.material.icons.filled.Podcasts
import androidx.compose.material.icons.filled.Radio
import androidx.compose.material.icons.filled.RecordVoiceOver
import androidx.compose.material.icons.filled.RestaurantMenu
+import androidx.compose.material.icons.filled.School
import androidx.compose.material.icons.filled.Science
import androidx.compose.material.icons.filled.Security
import androidx.compose.material.icons.filled.SelfImprovement
@@ -64,6 +74,9 @@ import androidx.compose.material.icons.filled.Settings
import androidx.compose.material.icons.filled.SettingsRemote
import androidx.compose.material.icons.filled.ShoppingCart
import androidx.compose.material.icons.filled.SignalCellularAlt
+import androidx.compose.material.icons.filled.Sos
+import androidx.compose.material.icons.filled.SportsMartialArts
+import androidx.compose.material.icons.filled.SportsSoccer
import androidx.compose.material.icons.filled.Storefront
import androidx.compose.material.icons.filled.Style
import androidx.compose.material.icons.filled.TaskAlt
@@ -72,6 +85,7 @@ import androidx.compose.material.icons.filled.TrackChanges
import androidx.compose.material.icons.filled.Translate
import androidx.compose.material.icons.filled.UploadFile
import androidx.compose.material.icons.filled.VideoChat
+import androidx.compose.material.icons.filled.VideogameAsset
import androidx.compose.material.icons.filled.VoiceChat
import androidx.compose.material.icons.filled.VpnLock
import androidx.compose.material.icons.filled.Wallet
@@ -86,21 +100,27 @@ data class CategoryItem(val id: String, val name: String, val description: Strin
"AI Chat" -> Icons.Default.VoiceChat
"App Manager" -> Icons.Default.Apps
"App Store & Updater" -> Icons.Default.Storefront
+ "Action Game" -> Icons.Default.SportsMartialArts
"Battery" -> Icons.Default.BatteryChargingFull
+ "Board Game" -> Icons.Default.DeveloperBoard
"Bookmark" -> Icons.Default.Bookmarks
"Browser" -> Icons.Default.OpenInBrowser
"Calculator" -> Icons.Default.Calculate
"Calendar & Agenda" -> Icons.Default.CalendarMonth
+ "Card Game" -> Icons.Default.Style
"Clock" -> Icons.Default.AccessTime
"Cloud Storage & File Sync" -> Icons.Default.Cloud
"Connectivity" -> Icons.Default.SignalCellularAlt
"Contact" -> Icons.Default.Contacts
"Development" -> Icons.Default.DeveloperMode
+ "Dice" -> Icons.Default.Casino
"Diet" -> Icons.Default.Fastfood
"DNS & Hosts" -> Icons.Default.Dns
"Draw" -> Icons.Default.Draw
"Ebook Reader" -> AutoMirrored.Default.MenuBook
+ "Educational Game" -> Icons.Default.School
"Email" -> Icons.Default.AlternateEmail
+ "Emulator" -> Icons.Default.VideogameAsset
"File Encryption & Vault" -> Icons.Default.EnhancedEncryption
"File Transfer" -> Icons.Default.UploadFile
"Finance Manager" -> Icons.Default.MonetizationOn
@@ -108,7 +128,7 @@ data class CategoryItem(val id: String, val name: String, val description: Strin
"Flashlight" -> Icons.Default.FlashlightOn
"Forum" -> Icons.Default.Image
"Gallery" -> Icons.Default.PhotoSizeSelectActual
- "Games" -> Icons.Default.Games
+ "Game Helper" -> Icons.Default.Handyman
"Graphics" -> Icons.Default.Brush
"Habit Tracker" -> Icons.Default.TrackChanges
"Health Manager" -> Icons.Default.HealthAndSafety
@@ -129,22 +149,29 @@ data class CategoryItem(val id: String, val name: String, val description: Strin
"News" -> Icons.Default.Newspaper
"Note" -> Icons.Default.NoteAlt
"Online Media Player" -> Icons.Default.Airplay
+ "Party Game" -> Icons.Default.Celebration
"Pass Wallet" -> Icons.Default.AccountBalanceWallet
"Password & 2FA" -> Icons.Default.Password
"Phone & SMS" -> Icons.Default.PermPhoneMsg
+ "Platform Game" -> Icons.Default.CrueltyFree
"Podcast" -> Icons.Default.Podcasts
"Public Transport" -> Icons.Default.DirectionsBus
+ "Puzzle Game" -> Icons.Default.Extension
"Radio" -> Icons.Default.Radio
"Reading" -> AutoMirrored.Default.MenuBook
"Recipe Manager" -> Icons.Default.RestaurantMenu
"Religion" -> Icons.Default.Church
+ "Role-Playing Game" -> Icons.Default.Diversity3
"Remote Access" -> Icons.Default.BrowserUpdated
"Remote Controller" -> Icons.Default.SettingsRemote
"Schedule" -> Icons.Default.CalendarMonth
"Science & Education" -> Icons.Default.Science
"Security" -> Icons.Default.Security
+ "Shooter Game" -> Icons.Default.CenterFocusWeak
+ "Strategy Game" -> Icons.Default.Castle
"Shopping List" -> Icons.Default.ShoppingCart
"Social Network" -> Icons.Default.Groups
+ "Sport Game" -> Icons.Default.SportsSoccer
"Sports & Health" -> Icons.Default.HealthAndSafety
"System" -> Icons.Default.Settings
"Task" -> Icons.Default.TaskAlt
@@ -154,12 +181,14 @@ data class CategoryItem(val id: String, val name: String, val description: Strin
"Time" -> Icons.Default.AccessTime
"Time Tracker" -> Icons.Default.Timer
"Translation & Dictionary" -> Icons.Default.Translate
+ "Visual Novel" -> Icons.Default.ModeComment
"Voice & Video Chat" -> Icons.Default.VideoChat
"Unit Convertor" -> Icons.Default.CurrencyExchange
"VPN & Proxy" -> Icons.Default.VpnLock
"Wallet" -> Icons.Default.Wallet
"Wallpaper" -> Icons.Default.Wallpaper
"Weather" -> Icons.Default.WbSunny
+ "Word Game" -> Icons.Default.Sos
"Workout" -> Icons.Default.FitnessCenter
"Writing" -> Icons.Default.EditNote
else -> Icons.Default.Category
@@ -171,21 +200,27 @@ data class CategoryItem(val id: String, val name: String, val description: Strin
"AI Chat" -> CategoryGroups.tools
"App Manager" -> CategoryGroups.device
"App Store & Updater" -> CategoryGroups.device
+ "Action Game" -> CategoryGroups.games
"Battery" -> CategoryGroups.device
+ "Board Game" -> CategoryGroups.games
"Bookmark" -> CategoryGroups.storage
"Browser" -> CategoryGroups.network
"Calculator" -> CategoryGroups.tools
"Calendar & Agenda" -> CategoryGroups.productivity
+ "Card Game" -> CategoryGroups.games
"Clock" -> CategoryGroups.productivity
"Cloud Storage & File Sync" -> CategoryGroups.storage
"Connectivity" -> CategoryGroups.network
"Contact" -> CategoryGroups.communication
"Development" -> CategoryGroups.interests
+ "Dice" -> CategoryGroups.games
"Diet" -> CategoryGroups.interests
"DNS & Hosts" -> CategoryGroups.network
"Draw" -> CategoryGroups.interests
"Ebook Reader" -> CategoryGroups.media
+ "Educational Game" -> CategoryGroups.games
"Email" -> CategoryGroups.communication
+ "Emulator" -> CategoryGroups.games
"File Encryption & Vault" -> CategoryGroups.storage
"File Transfer" -> CategoryGroups.storage
"Finance Manager" -> CategoryGroups.wallets
@@ -193,7 +228,7 @@ data class CategoryItem(val id: String, val name: String, val description: Strin
"Flashlight" -> CategoryGroups.tools
"Forum" -> CategoryGroups.communication
"Gallery" -> CategoryGroups.storage
- "Games" -> CategoryGroups.media
+ "Game Helper" -> CategoryGroups.games
"Graphics" -> CategoryGroups.interests
"Habit Tracker" -> CategoryGroups.productivity
"Health Manager" -> CategoryGroups.productivity
@@ -214,22 +249,29 @@ data class CategoryItem(val id: String, val name: String, val description: Strin
"News" -> CategoryGroups.interests
"Note" -> CategoryGroups.storage
"Online Media Player" -> CategoryGroups.media
+ "Party Game" -> CategoryGroups.games
"Pass Wallet" -> CategoryGroups.wallets
"Password & 2FA" -> CategoryGroups.device
"Phone & SMS" -> CategoryGroups.communication
+ "Platform Game" -> CategoryGroups.games
"Podcast" -> CategoryGroups.media
"Public Transport" -> CategoryGroups.tools
+ "Puzzle Game" -> CategoryGroups.games
"Radio" -> CategoryGroups.media
"Reading" -> CategoryGroups.media
"Recipe Manager" -> CategoryGroups.interests
"Religion" -> CategoryGroups.interests
+ "Role-Playing Game" -> CategoryGroups.games
"Remote Access" -> CategoryGroups.network
"Remote Controller" -> CategoryGroups.tools
"Schedule" -> CategoryGroups.productivity
"Science & Education" -> CategoryGroups.interests
"Security" -> CategoryGroups.device
+ "Shooter Game" -> CategoryGroups.games
+ "Strategy Game" -> CategoryGroups.games
"Shopping List" -> CategoryGroups.tools
"Social Network" -> CategoryGroups.communication
+ "Sport Game" -> CategoryGroups.games
"Sports & Health" -> CategoryGroups.interests
"System" -> CategoryGroups.device
"Task" -> CategoryGroups.productivity
@@ -239,12 +281,14 @@ data class CategoryItem(val id: String, val name: String, val description: Strin
"Time" -> CategoryGroups.productivity
"Time Tracker" -> CategoryGroups.productivity
"Translation & Dictionary" -> CategoryGroups.tools
+ "Visual Novel" -> CategoryGroups.games
"Voice & Video Chat" -> CategoryGroups.communication
"Unit Convertor" -> CategoryGroups.tools
"VPN & Proxy" -> CategoryGroups.network
"Wallet" -> CategoryGroups.wallets
"Wallpaper" -> CategoryGroups.device
"Weather" -> CategoryGroups.tools
+ "Word Game" -> CategoryGroups.games
"Workout" -> CategoryGroups.interests
"Writing" -> CategoryGroups.productivity
else -> CategoryGroups.misc
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 6f9956f0f..8655621e2 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -62,28 +62,30 @@
Clear all
Hide
- Calendars, tasks, clocks & notes
- Navigation, weather, calculators & converters
- Finance, money & pass managers
- Music, podcasts, games & ebook readers
- Email, messaging & social networks
- Launcher, keyboard, security & theming
- Browser, VPNs, proxies & firewall
- Files, gallery, cloud sync & encryption
- Science, sports, drawing & recipes
- Uncategorized
-
Productivity
Tools
Finances & Wallets
Entertainment & Media
Communication
Device
+ Games
Network
Files & Storage
Interests
Miscellaneous
+ Calendars, tasks, clocks & notes
+ Navigation, weather, calculators & converters
+ Finance, money & pass managers
+ Music, podcasts, games & ebook readers
+ Email, messaging & social networks
+ Launcher, keyboard, security & theming
+ Board, card & party games
+ Browser, VPNs, proxies & firewall
+ Files, gallery, cloud sync & encryption
+ Science, sports, drawing & recipes
+ Uncategorized
+
Last updated: %1$s
Last updated: %1$s (%2$s)