diff --git a/composeApp/src/commonMain/kotlin/com/derakkuma/App.kt b/composeApp/src/commonMain/kotlin/com/derakkuma/App.kt index e5ba5a6..efd2c81 100644 --- a/composeApp/src/commonMain/kotlin/com/derakkuma/App.kt +++ b/composeApp/src/commonMain/kotlin/com/derakkuma/App.kt @@ -13,9 +13,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.outlined.ReceiptLong -import androidx.compose.material.icons.outlined.* import androidx.compose.material3.* import androidx.compose.runtime.* import androidx.compose.ui.Alignment @@ -24,7 +21,6 @@ import androidx.compose.ui.draw.alpha import androidx.compose.ui.geometry.Offset import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.graphicsLayer -import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.unit.dp import androidx.navigation.NavGraph.Companion.findStartDestination @@ -64,7 +60,6 @@ import com.derakkuma.ui.components.MaintenanceBanner import com.derakkuma.ui.components.VerizonNetworkBanner import com.derakkuma.ui.components.expressiveNavigationBarItemColors import com.derakkuma.ui.components.expressiveScreenBackground -import com.derakkuma.ui.icons.Diversity3 import com.derakkuma.ui.images.BundledIcon import com.derakkuma.ui.images.BundledImage import com.derakkuma.ui.images.MaimaiAssets @@ -78,22 +73,19 @@ import kotlinx.coroutines.launch import kotlinx.serialization.Serializable import secrets.Secrets -private const val ICON_STYLE_FUN = "fun" -private const val ICON_STYLE_FLAT = "flat" private const val ONBOARDING_COMPLETE_KEY = "onboarding_complete_v1" enum class Tab( val route: String, val label: String, - val funIcon: BundledImage, - val flatIcon: ImageVector, + val icon: BundledImage, val funIconScale: Float = 1f, ) { - Home("home", "Home", BundledImage.NavHome, Icons.Outlined.Home), - Record("record", "Record", BundledImage.NavRecords, Icons.AutoMirrored.Outlined.ReceiptLong, funIconScale = 1.3f), - Friends("friends", "Friends", BundledImage.NavFriends, Diversity3, funIconScale = 1.2f), - Atmosphere("atmosphere", "Social", BundledImage.NavSocial, Icons.Outlined.Public), - More("more", "More", BundledImage.NavMore, Icons.Outlined.MoreHoriz), + Home("home", "Home", BundledImage.NavHome), + Record("record", "Record", BundledImage.NavRecords, funIconScale = 1.3f), + Friends("friends", "Friends", BundledImage.NavFriends, funIconScale = 1.2f), + Atmosphere("atmosphere", "Social", BundledImage.NavSocial), + More("more", "More", BundledImage.NavMore), } // Sub-routes under More @@ -302,8 +294,6 @@ fun App(authStore: AuthStore, cacheStore: CacheStore, playStore: PlayStore) { val navController = rememberNavController() val backStackEntry by navController.currentBackStackEntryAsState() val currentRoute = backStackEntry?.destination?.route - var iconStyle by remember { mutableStateOf(cacheStore.getSetting("iconStyle") ?: ICON_STYLE_FUN) } - val funIcons = iconStyle != ICON_STYLE_FLAT val pendingFriendScanCode = FriendScanDeepLink.pendingCode var pendingFriendRequestCount by remember { mutableStateOf(0) } var friendRequestBaselineLoaded by remember { mutableStateOf(false) } @@ -378,23 +368,14 @@ fun App(authStore: AuthStore, cacheStore: CacheStore, playStore: PlayStore) { } }, ) { - if (funIcons) { - BundledIcon( - image = tab.funIcon, - contentDescription = tab.label, - modifier = Modifier - .size(28.dp) - .graphicsLayer(scaleX = tab.funIconScale, scaleY = tab.funIconScale) - .alpha(if (selectedTab == tab) 1f else 0.6f), - ) - } else { - Icon( - imageVector = tab.flatIcon, - contentDescription = tab.label, - modifier = Modifier.size(26.dp).alpha(if (selectedTab == tab) 1f else 0.6f), - tint = navigationContentColor, - ) - } + BundledIcon( + image = tab.icon, + contentDescription = tab.label, + modifier = Modifier + .size(28.dp) + .graphicsLayer(scaleX = tab.funIconScale, scaleY = tab.funIconScale) + .alpha(if (selectedTab == tab) 1f else 0.6f), + ) } }, colors = expressiveNavigationBarItemColors( @@ -498,7 +479,6 @@ fun App(authStore: AuthStore, cacheStore: CacheStore, playStore: PlayStore) { onAppIcon = { navController.navigate(Routes.APP_ICON) }, onAppSettings = { navController.navigate(Routes.APP_SETTINGS) }, maintenanceMode = maintenanceMode, - funIcons = funIcons, ) } composable(Routes.PLAYER_DATA) { @@ -525,8 +505,6 @@ fun App(authStore: AuthStore, cacheStore: CacheStore, playStore: PlayStore) { composable(Routes.APP_SETTINGS) { AppSettingsTab( cacheStore = cacheStore, - iconStyle = iconStyle, - onIconStyleChanged = { iconStyle = it }, onLogout = { scope.launch { clearAuthWebViewSession() diff --git a/composeApp/src/commonMain/kotlin/com/derakkuma/ui/icons/MaterialSymbols.kt b/composeApp/src/commonMain/kotlin/com/derakkuma/ui/icons/MaterialSymbols.kt index 40adff3..bec5727 100644 --- a/composeApp/src/commonMain/kotlin/com/derakkuma/ui/icons/MaterialSymbols.kt +++ b/composeApp/src/commonMain/kotlin/com/derakkuma/ui/icons/MaterialSymbols.kt @@ -6,505 +6,6 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.path import androidx.compose.ui.unit.dp -/** Kamaitachi logo mark (from kamaitachi.xml) */ -val Kamaitachi: ImageVector by lazy { - ImageVector.Builder( - name = "Kamaitachi", - defaultWidth = 24.dp, - defaultHeight = 24.dp, - viewportWidth = 960f, - viewportHeight = 960f, - ).apply { - path(fill = SolidColor(Color.Black)) { - moveTo(79.71f, 579.018f) - lineTo(279.62f, 239.364f) - lineTo(771.781f, 239.43f) - lineTo(707.642f, 350.463f) - lineTo(376.952f, 350.331f) - lineTo(244.06f, 579.067f) - close() - } - path(fill = SolidColor(Color.Black)) { - moveTo(192.75f, 720.636f) - lineTo(392.79f, 377.98f) - lineTo(880.29f, 379.542f) - lineTo(817.946f, 492.355f) - lineTo(413.571f, 494.073f) - lineTo(457.321f, 552.98f) - lineTo(357.321f, 720.636f) - close() - } - }.build() -} - -/** Material Symbols Outlined: id_card (24px) */ -val IdCard: ImageVector by lazy { - ImageVector.Builder( - name = "IdCard", - defaultWidth = 24.dp, - defaultHeight = 24.dp, - viewportWidth = 960f, - viewportHeight = 960f, - ).apply { - path(fill = SolidColor(Color.Black)) { - moveTo(560f, 520f) - lineTo(760f, 520f) - lineTo(760f, 440f) - lineTo(560f, 440f) - lineTo(560f, 520f) - close() - moveTo(560f, 400f) - lineTo(760f, 400f) - lineTo(760f, 320f) - lineTo(560f, 320f) - lineTo(560f, 400f) - close() - moveTo(200f, 640f) - lineTo(520f, 640f) - lineTo(520f, 618f) - quadTo(520f, 573f, 476f, 546.5f) - quadTo(432f, 520f, 360f, 520f) - quadTo(288f, 520f, 244f, 546.5f) - quadTo(200f, 573f, 200f, 618f) - lineTo(200f, 640f) - close() - moveTo(416.5f, 456.5f) - quadTo(440f, 433f, 440f, 400f) - quadTo(440f, 367f, 416.5f, 343.5f) - quadTo(393f, 320f, 360f, 320f) - quadTo(327f, 320f, 303.5f, 343.5f) - quadTo(280f, 367f, 280f, 400f) - quadTo(280f, 433f, 303.5f, 456.5f) - quadTo(327f, 480f, 360f, 480f) - quadTo(393f, 480f, 416.5f, 456.5f) - close() - moveTo(160f, 800f) - quadTo(127f, 800f, 103.5f, 776.5f) - quadTo(80f, 753f, 80f, 720f) - lineTo(80f, 240f) - quadTo(80f, 207f, 103.5f, 183.5f) - quadTo(127f, 160f, 160f, 160f) - lineTo(800f, 160f) - quadTo(833f, 160f, 856.5f, 183.5f) - quadTo(880f, 207f, 880f, 240f) - lineTo(880f, 720f) - quadTo(880f, 753f, 856.5f, 776.5f) - quadTo(833f, 800f, 800f, 800f) - lineTo(160f, 800f) - close() - moveTo(160f, 720f) - lineTo(800f, 720f) - lineTo(800f, 240f) - lineTo(160f, 240f) - lineTo(160f, 720f) - close() - moveTo(160f, 720f) - lineTo(160f, 240f) - lineTo(160f, 720f) - close() - } - }.build() -} - -/** Material Symbols Outlined: license (24px) */ -val License: ImageVector by lazy { - ImageVector.Builder( - name = "License", - defaultWidth = 24.dp, - defaultHeight = 24.dp, - viewportWidth = 960f, - viewportHeight = 960f, - ).apply { - path(fill = SolidColor(Color.Black)) { - moveTo(395f, 485f) - quadTo(360f, 450f, 360f, 400f) - quadTo(360f, 350f, 395f, 315f) - quadTo(430f, 280f, 480f, 280f) - quadTo(530f, 280f, 565f, 315f) - quadTo(600f, 350f, 600f, 400f) - quadTo(600f, 450f, 565f, 485f) - quadTo(530f, 520f, 480f, 520f) - quadTo(430f, 520f, 395f, 485f) - close() - moveTo(240f, 920f) - lineTo(240f, 611f) - quadTo(202f, 569f, 181f, 515f) - quadTo(160f, 461f, 160f, 400f) - quadTo(160f, 266f, 253f, 173f) - quadTo(346f, 80f, 480f, 80f) - quadTo(614f, 80f, 707f, 173f) - quadTo(800f, 266f, 800f, 400f) - quadTo(800f, 461f, 779f, 515f) - quadTo(758f, 569f, 720f, 611f) - lineTo(720f, 920f) - lineTo(480f, 840f) - lineTo(240f, 920f) - close() - moveTo(650f, 570f) - quadTo(720f, 500f, 720f, 400f) - quadTo(720f, 300f, 650f, 230f) - quadTo(580f, 160f, 480f, 160f) - quadTo(380f, 160f, 310f, 230f) - quadTo(240f, 300f, 240f, 400f) - quadTo(240f, 500f, 310f, 570f) - quadTo(380f, 640f, 480f, 640f) - quadTo(580f, 640f, 650f, 570f) - close() - moveTo(320f, 801f) - lineTo(480f, 760f) - lineTo(640f, 801f) - lineTo(640f, 677f) - quadTo(605f, 697f, 564.5f, 708.5f) - quadTo(524f, 720f, 480f, 720f) - quadTo(436f, 720f, 395.5f, 708.5f) - quadTo(355f, 697f, 320f, 677f) - lineTo(320f, 801f) - close() - moveTo(480f, 739f) - close() - } - }.build() -} - -/** Material Symbols Outlined: signature (24px) */ -val Signature: ImageVector by lazy { - ImageVector.Builder( - name = "Signature", - defaultWidth = 24.dp, - defaultHeight = 24.dp, - viewportWidth = 960f, - viewportHeight = 960f, - ).apply { - path(fill = SolidColor(Color.Black)) { - moveTo(563f, 469f) - quadTo(636f, 415f, 677f, 350.5f) - quadTo(718f, 286f, 718f, 222f) - quadTo(718f, 190f, 707.5f, 175f) - quadTo(697f, 160f, 679f, 160f) - quadTo(632f, 160f, 596f, 239.5f) - quadTo(560f, 319f, 560f, 419f) - quadTo(560f, 433f, 560.5f, 445.5f) - quadTo(561f, 458f, 563f, 469f) - close() - moveTo(120f, 840f) - lineTo(120f, 760f) - lineTo(200f, 760f) - lineTo(200f, 840f) - lineTo(120f, 840f) - close() - moveTo(280f, 840f) - lineTo(280f, 760f) - lineTo(360f, 760f) - lineTo(360f, 840f) - lineTo(280f, 840f) - close() - moveTo(440f, 840f) - lineTo(440f, 760f) - lineTo(520f, 760f) - lineTo(520f, 840f) - lineTo(440f, 840f) - close() - moveTo(600f, 840f) - lineTo(600f, 760f) - lineTo(680f, 760f) - lineTo(680f, 840f) - lineTo(600f, 840f) - close() - moveTo(760f, 840f) - lineTo(760f, 760f) - lineTo(840f, 760f) - lineTo(840f, 840f) - lineTo(760f, 840f) - close() - moveTo(136f, 680f) - lineTo(80f, 624f) - lineTo(144f, 560f) - lineTo(80f, 496f) - lineTo(136f, 440f) - lineTo(200f, 504f) - lineTo(264f, 440f) - lineTo(320f, 496f) - lineTo(256f, 560f) - lineTo(320f, 624f) - lineTo(264f, 680f) - lineTo(200f, 616f) - lineTo(136f, 680f) - close() - moveTo(618f, 640f) - quadTo(588f, 640f, 563f, 628.5f) - quadTo(538f, 617f, 520f, 591f) - quadTo(495f, 605f, 468.5f, 616f) - quadTo(442f, 627f, 414f, 638f) - lineTo(386f, 563f) - quadTo(414f, 553f, 439.5f, 541.5f) - quadTo(465f, 530f, 489f, 517f) - quadTo(484f, 495f, 481.5f, 469f) - quadTo(479f, 443f, 479f, 413f) - quadTo(479f, 269f, 536f, 174.5f) - quadTo(593f, 80f, 679f, 80f) - quadTo(731f, 80f, 764f, 118.5f) - quadTo(797f, 157f, 797f, 226f) - quadTo(797f, 312f, 742.5f, 396f) - quadTo(688f, 480f, 591f, 547f) - quadTo(598f, 554f, 605.5f, 557.5f) - quadTo(613f, 561f, 621f, 561f) - quadTo(647f, 561f, 681.5f, 528f) - quadTo(716f, 495f, 744f, 441f) - lineTo(817f, 475f) - quadTo(810f, 492f, 806f, 516f) - quadTo(802f, 540f, 807f, 558f) - quadTo(817f, 553f, 830.5f, 541f) - quadTo(844f, 529f, 858f, 511f) - lineTo(921f, 560f) - quadTo(895f, 596f, 861f, 618f) - quadTo(827f, 640f, 798f, 640f) - quadTo(777f, 640f, 760.5f, 627.5f) - quadTo(744f, 615f, 733f, 589f) - quadTo(705f, 614f, 676f, 627f) - quadTo(647f, 640f, 618f, 640f) - close() - } - }.build() -} - -/** Material Symbols Outlined: map_search (24px) */ -val MapSearchOutlined: ImageVector by lazy { - ImageVector.Builder( - name = "MapSearchOutlined", - defaultWidth = 24.dp, - defaultHeight = 24.dp, - viewportWidth = 960f, - viewportHeight = 960f, - ).apply { - path(fill = SolidColor(Color.Black)) { - moveTo(640f, 400f) - lineTo(640f, 274f) - lineTo(640f, 400f) - close() - moveTo(174f, 828f) - quadTo(154f, 836f, 137f, 823.5f) - quadTo(120f, 811f, 120f, 790f) - lineTo(120f, 230f) - quadTo(120f, 217f, 127.5f, 207f) - quadTo(135f, 197f, 148f, 192f) - lineTo(360f, 120f) - lineTo(600f, 204f) - lineTo(786f, 132f) - quadTo(806f, 124f, 823f, 136.5f) - quadTo(840f, 149f, 840f, 170f) - lineTo(840f, 507f) - quadTo(825f, 484f, 804.5f, 465f) - quadTo(784f, 446f, 760f, 432f) - lineTo(760f, 228f) - lineTo(640f, 274f) - lineTo(640f, 400f) - quadTo(619f, 400f, 599f, 403.5f) - quadTo(579f, 407f, 560f, 414f) - lineTo(560f, 274f) - lineTo(400f, 218f) - lineTo(400f, 741f) - lineTo(174f, 828f) - close() - moveTo(200f, 732f) - lineTo(320f, 686f) - lineTo(320f, 218f) - lineTo(200f, 258f) - lineTo(200f, 732f) - close() - moveTo(696.5f, 700f) - quadTo(719f, 680f, 720f, 640f) - quadTo(721f, 606f, 697.5f, 583f) - quadTo(674f, 560f, 640f, 560f) - quadTo(606f, 560f, 583f, 583f) - quadTo(560f, 606f, 560f, 640f) - quadTo(560f, 674f, 583f, 697f) - quadTo(606f, 720f, 640f, 720f) - quadTo(674f, 720f, 696.5f, 700f) - close() - moveTo(640f, 800f) - quadTo(574f, 800f, 527f, 753f) - quadTo(480f, 706f, 480f, 640f) - quadTo(480f, 574f, 527f, 527f) - quadTo(574f, 480f, 640f, 480f) - quadTo(706f, 480f, 753f, 527f) - quadTo(800f, 574f, 800f, 640f) - quadTo(800f, 663f, 794.5f, 683.5f) - quadTo(789f, 704f, 778f, 722f) - lineTo(880f, 824f) - lineTo(824f, 880f) - lineTo(722f, 778f) - quadTo(704f, 789f, 683.5f, 794.5f) - quadTo(663f, 800f, 640f, 800f) - close() - moveTo(320f, 218f) - lineTo(320f, 686f) - lineTo(320f, 218f) - close() - } - }.build() -} - -/** Material Symbols Outlined: person_pin_circle (24px) */ -val PersonPinCircleOutlined: ImageVector by lazy { - ImageVector.Builder( - name = "PersonPinCircleOutlined", - defaultWidth = 24.dp, - defaultHeight = 24.dp, - viewportWidth = 960f, - viewportHeight = 960f, - ).apply { - path(fill = SolidColor(Color.Black)) { - moveTo(581f, 572.5f) - quadTo(626f, 545f, 652f, 500f) - quadTo(617f, 471f, 573f, 455.5f) - quadTo(529f, 440f, 480f, 440f) - quadTo(431f, 440f, 387f, 455.5f) - quadTo(343f, 471f, 308f, 500f) - quadTo(334f, 545f, 379f, 572.5f) - quadTo(424f, 600f, 480f, 600f) - quadTo(536f, 600f, 581f, 572.5f) - close() - moveTo(480f, 400f) - quadTo(513f, 400f, 536.5f, 376.5f) - quadTo(560f, 353f, 560f, 320f) - quadTo(560f, 287f, 536.5f, 263.5f) - quadTo(513f, 240f, 480f, 240f) - quadTo(447f, 240f, 423.5f, 263.5f) - quadTo(400f, 287f, 400f, 320f) - quadTo(400f, 353f, 423.5f, 376.5f) - quadTo(447f, 400f, 480f, 400f) - close() - moveTo(480f, 774f) - quadTo(602f, 662f, 661f, 570.5f) - quadTo(720f, 479f, 720f, 408f) - quadTo(720f, 299f, 650.5f, 229.5f) - quadTo(581f, 160f, 480f, 160f) - quadTo(379f, 160f, 309.5f, 229.5f) - quadTo(240f, 299f, 240f, 408f) - quadTo(240f, 479f, 299f, 570.5f) - quadTo(358f, 662f, 480f, 774f) - close() - moveTo(480f, 880f) - quadTo(319f, 743f, 239.5f, 625.5f) - quadTo(160f, 508f, 160f, 408f) - quadTo(160f, 258f, 256.5f, 169f) - quadTo(353f, 80f, 480f, 80f) - quadTo(607f, 80f, 703.5f, 169f) - quadTo(800f, 258f, 800f, 408f) - quadTo(800f, 508f, 720.5f, 625.5f) - quadTo(641f, 743f, 480f, 880f) - close() - moveTo(480f, 400f) - close() - } - }.build() -} - -/** Material Symbols Outlined: social_leaderboard (24px) */ -val SocialLeaderboardOutlined: ImageVector by lazy { - ImageVector.Builder( - name = "SocialLeaderboardOutlined", - defaultWidth = 24.dp, - defaultHeight = 24.dp, - viewportWidth = 960f, - viewportHeight = 960f, - ).apply { - path(fill = SolidColor(Color.Black)) { - moveTo(607.5f, 747.5f) - quadTo(660f, 695f, 660f, 620f) - quadTo(660f, 545f, 607.5f, 492.5f) - quadTo(555f, 440f, 480f, 440f) - quadTo(405f, 440f, 352.5f, 492.5f) - quadTo(300f, 545f, 300f, 620f) - quadTo(300f, 695f, 352.5f, 747.5f) - quadTo(405f, 800f, 480f, 800f) - quadTo(555f, 800f, 607.5f, 747.5f) - close() - moveTo(363f, 388f) - quadTo(383f, 377f, 405.5f, 370.5f) - quadTo(428f, 364f, 451f, 362f) - lineTo(350f, 160f) - lineTo(250f, 160f) - lineTo(363f, 388f) - close() - moveTo(597f, 388f) - lineTo(711f, 160f) - lineTo(610f, 160f) - lineTo(525f, 330f) - lineTo(544f, 368f) - quadTo(558f, 372f, 571f, 376.5f) - quadTo(584f, 381f, 597f, 388f) - close() - moveTo(256f, 752f) - quadTo(239f, 723f, 229.5f, 689.5f) - quadTo(220f, 656f, 220f, 620f) - quadTo(220f, 584f, 229.5f, 550.5f) - quadTo(239f, 517f, 256f, 488f) - quadTo(214f, 502f, 187f, 537.5f) - quadTo(160f, 573f, 160f, 620f) - quadTo(160f, 667f, 187f, 702.5f) - quadTo(214f, 738f, 256f, 752f) - close() - moveTo(704f, 752f) - quadTo(746f, 738f, 773f, 702.5f) - quadTo(800f, 667f, 800f, 620f) - quadTo(800f, 573f, 773f, 537.5f) - quadTo(746f, 502f, 704f, 488f) - quadTo(721f, 517f, 730.5f, 550.5f) - quadTo(740f, 584f, 740f, 620f) - quadTo(740f, 656f, 730.5f, 689.5f) - quadTo(721f, 723f, 704f, 752f) - close() - moveTo(403.5f, 868.5f) - quadTo(367f, 857f, 336f, 837f) - quadTo(327f, 839f, 318f, 839.5f) - quadTo(309f, 840f, 299f, 840f) - quadTo(208f, 840f, 144f, 776f) - quadTo(80f, 712f, 80f, 621f) - quadTo(80f, 534f, 138f, 472f) - quadTo(196f, 410f, 281f, 403f) - lineTo(120f, 80f) - lineTo(400f, 80f) - lineTo(480f, 240f) - lineTo(560f, 80f) - lineTo(840f, 80f) - lineTo(680f, 401f) - quadTo(765f, 409f, 822.5f, 471f) - quadTo(880f, 533f, 880f, 620f) - quadTo(880f, 712f, 816f, 776f) - quadTo(752f, 840f, 660f, 840f) - quadTo(651f, 840f, 641.5f, 839.5f) - quadTo(632f, 839f, 623f, 837f) - quadTo(592f, 857f, 556f, 868.5f) - quadTo(520f, 880f, 480f, 880f) - quadTo(440f, 880f, 403.5f, 868.5f) - close() - moveTo(480f, 620f) - close() - moveTo(363f, 388f) - lineTo(250f, 160f) - lineTo(363f, 388f) - close() - moveTo(597f, 388f) - lineTo(711f, 160f) - lineTo(597f, 388f) - close() - moveTo(406f, 730f) - lineTo(434f, 639f) - lineTo(360f, 586f) - lineTo(451f, 586f) - lineTo(480f, 490f) - lineTo(509f, 586f) - lineTo(600f, 586f) - lineTo(526f, 639f) - lineTo(554f, 730f) - lineTo(480f, 674f) - lineTo(406f, 730f) - close() - } - }.build() -} - /** Material Symbols: person_pin_circle (filled, 24px) */ val PersonPinCircle: ImageVector by lazy { ImageVector.Builder( @@ -855,92 +356,3 @@ val ReplayFlipped: ImageVector by lazy { } }.build() } - -/** Material Symbols: diversity_3 (filled, 24px, wght400) — converted from Google Fonts SVG */ -val Diversity3: ImageVector by lazy { - ImageVector.Builder( - name = "Diversity3", - defaultWidth = 24.dp, - defaultHeight = 24.dp, - viewportWidth = 960f, - viewportHeight = 960f, - ).apply { - path(fill = SolidColor(Color.Black)) { - // Top bar with 3 people silhouettes - moveTo(40f, 800f) - lineTo(40f, 640f) - quadTo(40f, 606f, 63.5f, 583f) - quadTo(87f, 560f, 120f, 560f) - lineTo(251f, 560f) - quadTo(271f, 560f, 289f, 570f) - quadTo(307f, 580f, 318f, 597f) - quadTo(347f, 636f, 389.5f, 658f) - quadTo(432f, 680f, 480f, 680f) - quadTo(529f, 680f, 571.5f, 658f) - quadTo(614f, 636f, 642f, 597f) - quadTo(655f, 580f, 672.5f, 570f) - quadTo(690f, 560f, 709f, 560f) - lineTo(840f, 560f) - quadTo(874f, 560f, 897f, 583f) - quadTo(920f, 606f, 920f, 640f) - lineTo(920f, 800f) - lineTo(640f, 800f) - lineTo(640f, 709f) - quadTo(605f, 734f, 564.5f, 747f) - quadTo(524f, 760f, 480f, 760f) - quadTo(437f, 760f, 396f, 746.5f) - quadTo(355f, 733f, 320f, 708f) - lineTo(320f, 800f) - lineTo(40f, 800f) - close() - // Middle person - moveTo(480f, 640f) - quadTo(442f, 640f, 408f, 622.5f) - quadTo(374f, 605f, 351f, 574f) - quadTo(334f, 549f, 308.5f, 534.5f) - quadTo(283f, 520f, 253f, 520f) - quadTo(275f, 483f, 346f, 461.5f) - quadTo(417f, 440f, 480f, 440f) - quadTo(543f, 440f, 614f, 461.5f) - quadTo(685f, 483f, 707f, 520f) - quadTo(678f, 520f, 652f, 534.5f) - quadTo(626f, 549f, 609f, 574f) - quadTo(587f, 606f, 553f, 623f) - quadTo(519f, 640f, 480f, 640f) - close() - // Left bottom person - moveTo(160f, 520f) - quadTo(110f, 520f, 75f, 485f) - quadTo(40f, 450f, 40f, 400f) - quadTo(40f, 349f, 75f, 314.5f) - quadTo(110f, 280f, 160f, 280f) - quadTo(211f, 280f, 245.5f, 314.5f) - quadTo(280f, 349f, 280f, 400f) - quadTo(280f, 450f, 245.5f, 485f) - quadTo(211f, 520f, 160f, 520f) - close() - // Right bottom person - moveTo(800f, 520f) - quadTo(750f, 520f, 715f, 485f) - quadTo(680f, 450f, 680f, 400f) - quadTo(680f, 349f, 715f, 314.5f) - quadTo(750f, 280f, 800f, 280f) - quadTo(851f, 280f, 885.5f, 314.5f) - quadTo(920f, 349f, 920f, 400f) - quadTo(920f, 450f, 885.5f, 485f) - quadTo(851f, 520f, 800f, 520f) - close() - // Top person - moveTo(480f, 400f) - quadTo(430f, 400f, 395f, 365f) - quadTo(360f, 330f, 360f, 280f) - quadTo(360f, 229f, 395f, 194.5f) - quadTo(430f, 160f, 480f, 160f) - quadTo(531f, 160f, 565.5f, 194.5f) - quadTo(600f, 229f, 600f, 280f) - quadTo(600f, 330f, 565.5f, 365f) - quadTo(531f, 400f, 480f, 400f) - close() - } - }.build() -} diff --git a/composeApp/src/commonMain/kotlin/com/derakkuma/ui/tabs/AppSettingsTab.kt b/composeApp/src/commonMain/kotlin/com/derakkuma/ui/tabs/AppSettingsTab.kt index 3702008..f7a4ba3 100644 --- a/composeApp/src/commonMain/kotlin/com/derakkuma/ui/tabs/AppSettingsTab.kt +++ b/composeApp/src/commonMain/kotlin/com/derakkuma/ui/tabs/AppSettingsTab.kt @@ -22,7 +22,6 @@ import com.derakkuma.ui.components.ExpressiveScaffold import com.derakkuma.ui.components.ExpressiveSnackbar import com.derakkuma.ui.components.ExpressiveSwitch import com.derakkuma.ui.components.ExpressiveTextButton -import com.derakkuma.ui.components.SplitButtonRow import com.derakkuma.ui.theme.* import io.github.samuolis.posthog.PostHog import secrets.Secrets @@ -30,8 +29,6 @@ import secrets.Secrets @Composable fun AppSettingsTab( cacheStore: CacheStore, - iconStyle: String = "fun", - onIconStyleChanged: (String) -> Unit = {}, onLogout: () -> Unit, onCacheCleared: () -> Unit = {}, ) { @@ -82,19 +79,6 @@ fun AppSettingsTab( Text("Customize Derakkuma's look and feel", fontSize = 12.sp, color = MaterialTheme.colorScheme.onSurfaceVariant) } - var selectedIconStyle by remember(iconStyle) { mutableStateOf(iconStyle.takeIf { it == "flat" } ?: "fun") } - SplitButtonRow( - label = "Interface icons", - description = "", - options = listOf("fun" to "Fun", "flat" to "Flat"), - selected = selectedIconStyle, - onSelect = { - selectedIconStyle = it - cacheStore.putSetting("iconStyle", it) - onIconStyleChanged(it) - }, - ) - Row( modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween, diff --git a/composeApp/src/commonMain/kotlin/com/derakkuma/ui/tabs/MoreTab.kt b/composeApp/src/commonMain/kotlin/com/derakkuma/ui/tabs/MoreTab.kt index 964452d..6d2b5f3 100644 --- a/composeApp/src/commonMain/kotlin/com/derakkuma/ui/tabs/MoreTab.kt +++ b/composeApp/src/commonMain/kotlin/com/derakkuma/ui/tabs/MoreTab.kt @@ -13,8 +13,6 @@ import androidx.compose.foundation.interaction.collectIsPressedAsState import androidx.compose.foundation.layout.* import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.outlined.* import androidx.compose.material3.* import androidx.compose.runtime.* import androidx.compose.ui.Alignment @@ -23,7 +21,6 @@ import androidx.compose.ui.draw.alpha import androidx.compose.ui.draw.scale import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.compositeOver -import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp @@ -31,13 +28,6 @@ import androidx.compose.ui.unit.sp import com.derakkuma.atproto.openOAuthUrl import com.derakkuma.ui.components.ExpressiveGlassCard import com.derakkuma.ui.components.ExpressiveTextButton -import com.derakkuma.ui.icons.IdCard -import com.derakkuma.ui.icons.Kamaitachi -import com.derakkuma.ui.icons.License -import com.derakkuma.ui.icons.MapSearchOutlined -import com.derakkuma.ui.icons.PersonPinCircleOutlined -import com.derakkuma.ui.icons.Signature -import com.derakkuma.ui.icons.SocialLeaderboardOutlined import com.derakkuma.ui.images.BundledIcon import com.derakkuma.ui.images.BundledImage import com.derakkuma.ui.theme.* @@ -58,7 +48,6 @@ fun MoreMenu( onAppIcon: () -> Unit, onAppSettings: () -> Unit, maintenanceMode: Boolean = false, - funIcons: Boolean = true, ) { val rainbowTransition = rememberInfiniteTransition(label = "app-icon-rainbow") val appIconHue by rainbowTransition.animateFloat( @@ -90,8 +79,7 @@ fun MoreMenu( Text("More", fontSize = 20.sp, fontWeight = FontWeight.Bold, color = MaterialTheme.colorScheme.onSurface, modifier = Modifier.padding(bottom = 4.dp)) BentoCard( - icon = Icons.Outlined.Settings, - imageIcon = BundledImage.NavSettings.takeIf { funIcons }, + imageIcon = BundledImage.NavSettings, title = "Game Settings", description = "Note speed, timing, sound, display options, friend registration, etc.", onClick = onSettings, @@ -102,8 +90,7 @@ fun MoreMenu( BentoRow { BentoCard( - icon = License, - imageIcon = BundledImage.NavCollection.takeIf { funIcons }, + imageIcon = BundledImage.NavCollection, title = "Collection", description = "", onClick = onCollection, @@ -112,8 +99,7 @@ fun MoreMenu( modifier = Modifier.weight(1f).fillMaxHeight(), ) BentoCard( - icon = Icons.Outlined.ShoppingCart, - imageIcon = BundledImage.NavShop.takeIf { funIcons }, + imageIcon = BundledImage.NavShop, title = "Shop", description = "maimile shop", descriptionIcon = BundledImage.Maimile, @@ -127,8 +113,7 @@ fun MoreMenu( BentoRow { BentoCard( - icon = IdCard, - imageIcon = BundledImage.NavPlayData.takeIf { funIcons }, + imageIcon = BundledImage.NavPlayData, title = "Player Data", onClick = onPlayerData, compact = true, @@ -136,8 +121,7 @@ fun MoreMenu( modifier = Modifier.weight(1f).fillMaxHeight(), ) BentoCard( - icon = Icons.Outlined.Bookmarks, - imageIcon = BundledImage.NavStamp.takeIf { funIcons }, + imageIcon = BundledImage.NavStamp, title = "Stamp Cards", description = "", onClick = onStampCard, @@ -146,8 +130,7 @@ fun MoreMenu( modifier = Modifier.weight(1f).fillMaxHeight(), ) BentoCard( - icon = Icons.Outlined.PhotoAlbum, - imageIcon = BundledImage.NavAlbum.takeIf { funIcons }, + imageIcon = BundledImage.NavAlbum, title = "Album", description = "", onClick = onAlbum, @@ -159,8 +142,7 @@ fun MoreMenu( BentoRow { BentoCard( - icon = Icons.Outlined.Favorite, - imageIcon = BundledImage.NavFavorites.takeIf { funIcons }, + imageIcon = BundledImage.NavFavorites, title = "Favorite Songs", onClick = onFavorites, disabled = maintenanceMode, @@ -169,8 +151,7 @@ fun MoreMenu( modifier = Modifier.weight(1f).fillMaxHeight(), ) BentoCard( - icon = Signature, - imageIcon = BundledImage.NavPlayerName.takeIf { funIcons }, + imageIcon = BundledImage.NavPlayerName, title = "Player Name", onClick = onPlayerName, disabled = maintenanceMode, @@ -182,8 +163,7 @@ fun MoreMenu( BentoRow { BentoCard( - icon = SocialLeaderboardOutlined, - imageIcon = BundledImage.NavRanking.takeIf { funIcons }, + imageIcon = BundledImage.NavRanking, title = "Leaderboards", onClick = onRanking, disabled = maintenanceMode, @@ -191,8 +171,7 @@ fun MoreMenu( modifier = Modifier.weight(1f).fillMaxHeight(), ) BentoCard( - icon = Icons.Outlined.Event, - imageIcon = BundledImage.NavEvent.takeIf { funIcons }, + imageIcon = BundledImage.NavEvent, title = "Events", onClick = {}, disabled = true, @@ -204,8 +183,7 @@ fun MoreMenu( BentoRow { BentoCard( - icon = MapSearchOutlined, - imageIcon = BundledImage.NavMap.takeIf { funIcons }, + imageIcon = BundledImage.NavMap, title = "Cab Map", description = "", onClick = onMap, @@ -213,8 +191,7 @@ fun MoreMenu( modifier = Modifier.weight(1f).fillMaxHeight(), ) BentoCard( - icon = PersonPinCircleOutlined, - imageIcon = BundledImage.NavBubble.takeIf { funIcons }, + imageIcon = BundledImage.NavBubble, title = "Bubble", description = "", onClick = onBubble, @@ -225,8 +202,7 @@ fun MoreMenu( BentoRow { BentoCard( - icon = Icons.Outlined.Build, - imageIcon = BundledImage.NavAppSettings.takeIf { funIcons }, + imageIcon = BundledImage.NavAppSettings, title = "App Settings", description = "Cache, account, about", onClick = onAppSettings, @@ -234,8 +210,7 @@ fun MoreMenu( modifier = Modifier.weight(1f).fillMaxHeight(), ) BentoCard( - icon = Kamaitachi, - imageIcon = BundledImage.NavKamaitachi.takeIf { funIcons }, + imageIcon = BundledImage.NavKamaitachi, title = "Kamaitachi", description = "Sync records", onClick = onKamaitachi, @@ -247,7 +222,6 @@ fun MoreMenu( BentoRow { BentoCard( - icon = Icons.Outlined.AppShortcut, backgroundStartImage = BundledImage.Shama, backgroundEndImage = BundledImage.Milk, hideIcon = true, @@ -284,7 +258,6 @@ private fun BentoRow(content: @Composable RowScope.() -> Unit) { @Composable private fun BentoCard( - icon: ImageVector, imageIcon: BundledImage? = null, backgroundStartImage: BundledImage? = null, backgroundEndImage: BundledImage? = null, @@ -342,14 +315,12 @@ private fun BentoCard( ) { Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(8.dp)) { if (!hideIcon) { - if (imageIcon != null) { + imageIcon?.let { image -> BundledIcon( - image = imageIcon, + image = image, contentDescription = null, modifier = Modifier.size(26.dp).alpha(if (disabled) 0.45f else 1f), ) - } else { - Icon(icon, contentDescription = null, modifier = Modifier.size(26.dp), tint = if (disabled) MaterialTheme.colorScheme.onSurfaceVariant.copy(alpha = 0.4f) else MaterialTheme.colorScheme.primary) } } Text(title, fontSize = if (compact) 13.sp else 15.sp, fontWeight = FontWeight.SemiBold, color = if (disabled) MaterialTheme.colorScheme.onSurfaceVariant else MaterialTheme.colorScheme.onSurface)