diff --git a/app/src/main/java/com/aiosman/ravenow/ui/index/Index.kt b/app/src/main/java/com/aiosman/ravenow/ui/index/Index.kt index bbf07a2..6f3b64a 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/index/Index.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/index/Index.kt @@ -1,6 +1,12 @@ package com.aiosman.ravenow.ui.index import androidx.compose.animation.animateColorAsState +import androidx.compose.animation.core.animateFloatAsState +import androidx.compose.animation.core.FastOutLinearInEasing +import androidx.compose.animation.core.LinearOutSlowInEasing +import androidx.compose.animation.core.updateTransition +import androidx.compose.animation.core.animateFloat +import androidx.compose.animation.core.FastOutSlowInEasing import androidx.compose.animation.core.tween import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.Image @@ -11,15 +17,21 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.asPaddingValues +import androidx.compose.foundation.layout.systemBars import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.navigationBars +import androidx.compose.foundation.layout.requiredHeight import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.requiredWidth import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.rememberPagerState @@ -42,8 +54,10 @@ import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha @@ -59,7 +73,11 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import androidx.compose.ui.zIndex import com.aiosman.ravenow.AppState +import java.text.SimpleDateFormat +import java.util.Date +import java.util.Locale import com.aiosman.ravenow.AppStore import com.aiosman.ravenow.GuestLoginCheckOut import com.aiosman.ravenow.GuestLoginCheckOutScene @@ -123,151 +141,16 @@ fun IndexScreen() { gesturesEnabled = drawerState.isOpen, drawerContent = { CompositionLocalProvider(LocalLayoutDirection provides LayoutDirection.Ltr) { - Column( - modifier = Modifier - .requiredWidth(250.dp) - .fillMaxHeight() - .background( - AppColors.background - ) - ) { - Spacer(modifier = Modifier.height(88.dp)) - NavItem( - iconRes = R.drawable.rave_now_nav_account, - label = stringResource(R.string.account_and_security), - modifier = Modifier.noRippleClickable { - coroutineScope.launch { - drawerState.close() - navController.navigate(NavigationRoute.AccountSetting.route) - } - + SideMenuContent( + onClose = { + coroutineScope.launch { + drawerState.close() } - ) - Spacer(modifier = Modifier.height(16.dp)) - NavItem( - iconRes = R.drawable.rider_pro_favourited, - label = stringResource(R.string.favourites), - modifier = Modifier.noRippleClickable { - coroutineScope.launch { - drawerState.close() - navController.navigate(NavigationRoute.FavouriteList.route) - } - - } - ) - - NavItem( - iconRes = R.drawable.rave_now_nav_night, - label = stringResource(R.string.dark_mode), - rightContent = { - Switch( - checked = AppState.darkMode, - onCheckedChange = { - AppState.switchTheme() - }, - - colors = SwitchDefaults.colors( - checkedThumbColor = Color.White, - checkedTrackColor = AppColors.main, - uncheckedThumbColor = Color.White, - uncheckedTrackColor = AppColors.main.copy(alpha = 0.5f), - uncheckedBorderColor = Color.Transparent - ), - modifier = Modifier.scale(0.8f) - ) - } - ) - // divider - Box( - modifier = Modifier - .fillMaxWidth() - .padding(top = 16.dp, bottom = 16.dp, start = 16.dp, end = 16.dp) - ) { - Box( - modifier = Modifier - .fillMaxWidth() - .height(1.dp) - .background(AppColors.divider) - ) - } - NavItem( - iconRes = R.drawable.rave_now_nav_about, - label = stringResource(R.string.blocked), - modifier = Modifier.noRippleClickable { - coroutineScope.launch { - drawerState.close() - navController.navigate(NavigationRoute.AboutScreen.route) - } - } - ) - NavItem( - iconRes = R.drawable.rave_now_nav_about, - label = stringResource(R.string.feedback), - modifier = Modifier.noRippleClickable { - coroutineScope.launch { - drawerState.close() - navController.navigate(NavigationRoute.AboutScreen.route) - } - } - ) - NavItem( - iconRes = R.drawable.rave_now_nav_about, - label = stringResource(R.string.about_rave_now), - modifier = Modifier.noRippleClickable { - coroutineScope.launch { - drawerState.close() - navController.navigate(NavigationRoute.AboutScreen.route) - } - } - ) - // divider - Box( - modifier = Modifier - .fillMaxWidth() - .padding(top = 16.dp, bottom = 16.dp, start = 16.dp, end = 16.dp) - ) { - Box( - modifier = Modifier - .fillMaxWidth() - .height(1.dp) - .background(AppColors.divider) - ) - } - -// NavItem( -// iconRes = R.drawable.rave_now_nav_switch, -// label = "Switch Account" -// ) -// Spacer(modifier = Modifier.height(16.dp)) - NavItem( - iconRes = R.drawable.rave_now_nav_logout, - label = stringResource(R.string.logout), - modifier = Modifier.noRippleClickable { - coroutineScope.launch { - drawerState.close() - // 只有非游客用户才需要取消注册推送设备 - if (!AppStore.isGuest) { - Messaging.unregisterDevice(context) - } - AppStore.apply { - token = null - rememberMe = false - isGuest = false // 清除游客状态 - saveData() - } - // 删除推送渠道 - - navController.navigate(NavigationRoute.Login.route) { - popUpTo(NavigationRoute.Login.route) { - inclusive = true - } - } - AppState.ReloadAppState(context) - } - } - ) - - } + }, + navController = navController, + context = context, + isDrawerOpen = drawerState.isOpen + ) } } ) { @@ -447,7 +330,6 @@ fun IndexScreen() { ) } } - } @Composable @@ -623,4 +505,344 @@ fun NavItem( } } +} + +@Composable +fun SideMenuContent( + onClose: () -> Unit, + navController: androidx.navigation.NavController, + context: android.content.Context, + isDrawerOpen: Boolean +) { + val appColors = LocalAppTheme.current + val coroutineScope = rememberCoroutineScope() + var messageNotificationEnabled by remember { mutableStateOf(true) } + var darkModeEnabled by remember { mutableStateOf(AppState.darkMode) } + + // 菜单背景色 #FAF9FB + val menuBackgroundColor = Color(0xFFFAF9FB) + // 遮罩颜色 黑色透明度0.6 + val overlayColor = Color.Black.copy(alpha = 0.6f) + // 卡片背景色 白色 + val cardBackgroundColor = Color.White + // 跟随系统文字颜色 #979499 + val followSystemTextColor = Color(0xFF979499) + // 开关开启颜色 #7C45ED + val switchActiveColor = Color(0xFF7C45ED) + + Box( + modifier = Modifier + .fillMaxSize() + ) { + // 左侧半透明遮罩(平滑淡入淡出) + val overlayTransition = updateTransition(targetState = isDrawerOpen, label = "overlay") + val overlayAlpha by overlayTransition.animateFloat( + transitionSpec = { + if (targetState) { + tween(durationMillis = 400, easing = LinearOutSlowInEasing) + } else { + tween(durationMillis = 300, easing = FastOutLinearInEasing) + } + }, + label = "overlayAlpha" + ) { open -> if (open) 0.6f else 0f } + Box( + modifier = Modifier + .fillMaxSize() + .background(Color.Black.copy(alpha = overlayAlpha)) + ) + + // 右侧菜单面板 + Box( + modifier = Modifier + .requiredWidth(302.dp) + .requiredHeight(874.dp) + .align(Alignment.CenterEnd) + .background(menuBackgroundColor) + ) { + // 顶部状态栏间距 + val statusBarHeight = WindowInsets.systemBars.asPaddingValues().calculateTopPadding() + + // 扫一扫功能入口 - 右边距离右边66pt + Row( + modifier = Modifier + .align(Alignment.TopEnd) + .offset(x = (-112).dp, y = 88.dp) + .noRippleClickable { + // TODO: 实现扫一扫功能 + }, + horizontalArrangement = Arrangement.spacedBy(16.dp), + verticalAlignment = Alignment.CenterVertically + ) { + // 扫一扫图标(使用现有图标或占位) + Image( + painter = painterResource(id = R.mipmap.sao), + contentDescription = null, + modifier = Modifier.size(24.dp), + colorFilter = ColorFilter.tint(Color.Black) + ) + } +// 绝对定位的"扫一扫"文字:上方71.5dp,右侧66dp + Text( + text = stringResource(R.string.scan_qr), + fontSize = 14.sp, + color = Color.Black, + modifier = Modifier + .align(Alignment.TopEnd) + .offset(x = (-66).dp, y = 91.5.dp) + ) +// QR码图标 - 右边距离右边112dp,上边距离上边68pt + Image( + painter = painterResource(id = R.mipmap.qr_code_icon), + contentDescription = null, + modifier = Modifier + .size(24.dp) + .align(Alignment.TopEnd) + .offset(x = (-26).dp, y = 88.dp) + .noRippleClickable { + // TODO: 实现QR码功能 + }, + colorFilter = ColorFilter.tint(Color.Black) + ) + + // 菜单选项卡片组 - 第一组卡片上方距离上方108pt(绝对定位) + Column( + modifier = Modifier + .fillMaxWidth() + .offset(y = 128.dp) // 直接距离顶部128dp(整体下移20dp) + .padding(horizontal = 16.dp), + verticalArrangement = Arrangement.spacedBy(8.dp) + ) { + // 第一组卡片:编辑资料、账号安全、收藏 + MenuCard( + backgroundColor = cardBackgroundColor, + width = 270.dp, + height = 164.dp, + items = listOf( + MenuItem( + icon = R.mipmap.icons_edited_data, + label = stringResource(R.string.edit_profile_info), + onClick = { + coroutineScope.launch { + onClose() + navController.navigate(NavigationRoute.AccountEdit.route) + } + } + ), + MenuItem( + icon = R.mipmap.icons_account_and_security, + label = stringResource(R.string.account_and_security), + onClick = { + coroutineScope.launch { + onClose() + navController.navigate(NavigationRoute.AccountSetting.route) + } + } + ), + MenuItem( + icon = R.mipmap.collect, + label = stringResource(R.string.favourites), + onClick = { + coroutineScope.launch { + onClose() + navController.navigate(NavigationRoute.FavouriteList.route) + } + } + ) + ) + ) + + // 第二组卡片:暗色模式、消息通知 + MenuCard( + backgroundColor = cardBackgroundColor, + width = 270.dp, + height = 112.dp, // 根据设计图,第二组卡片高度为112dp + items = listOf( + MenuItem( + icon = R.mipmap.icons_dark_mode, + label = stringResource(R.string.dark_mode), + rightContent = { + Switch( + checked = darkModeEnabled, + onCheckedChange = { + darkModeEnabled = it + AppState.darkMode = it + AppState.appTheme = if (it) { + com.aiosman.ravenow.DarkThemeColors() + } else { + com.aiosman.ravenow.LightThemeColors() + } + AppStore.saveDarkMode(it) + }, + colors = SwitchDefaults.colors( + checkedThumbColor = Color.White, + checkedTrackColor = switchActiveColor, + uncheckedThumbColor = Color.White, + uncheckedTrackColor = switchActiveColor.copy(alpha = 0.5f), + uncheckedBorderColor = Color.Transparent + ), + modifier = Modifier.size(width = 64.dp, height = 28.dp) + ) + } + ), + MenuItem( + icon = R.mipmap.icons_bell, + label = stringResource(R.string.message_notification), + rightContent = { + Switch( + checked = messageNotificationEnabled, + onCheckedChange = { messageNotificationEnabled = it }, + colors = SwitchDefaults.colors( + checkedThumbColor = Color.White, + checkedTrackColor = switchActiveColor, + uncheckedThumbColor = Color.White, + uncheckedTrackColor = switchActiveColor.copy(alpha = 0.5f), + uncheckedBorderColor = Color.Transparent + ), + modifier = Modifier.size(width = 64.dp, height = 28.dp) + ) + } + ) + ) + ) + + // 第三组卡片:关于派派、反馈、退出登录 + MenuCard( + backgroundColor = cardBackgroundColor, + width = 270.dp, + height = 164.dp, + items = listOf( + MenuItem( + icon = R.mipmap.icons_about, + label = stringResource(R.string.about_paipai), + onClick = { + coroutineScope.launch { + onClose() + navController.navigate(NavigationRoute.AboutScreen.route) + } + } + ), + MenuItem( + icon = R.mipmap.feedback_icon, + label = stringResource(R.string.feedback), + onClick = { + coroutineScope.launch { + onClose() + navController.navigate(NavigationRoute.AboutScreen.route) + } + } + ), + MenuItem( + icon = R.mipmap.log_out_icon, + label = stringResource(R.string.logout_confirm), + onClick = { + coroutineScope.launch { + onClose() + // 只有非游客用户才需要取消注册推送设备 + if (!AppStore.isGuest) { + Messaging.unregisterDevice(context) + } + AppStore.apply { + token = null + rememberMe = false + isGuest = false + saveData() + } + navController.navigate(NavigationRoute.Login.route) { + popUpTo(NavigationRoute.Login.route) { + inclusive = true + } + } + AppState.ReloadAppState(context) + } + }, + showRightArrow = false + ) + ) + ) + } + } + } +} + +data class MenuItem( + val icon: Int, + val label: String, + val onClick: (() -> Unit)? = null, + val rightContent: @Composable (() -> Unit)? = null, + val showRightArrow: Boolean = true +) + +@Composable +fun MenuCard( + backgroundColor: Color, + items: List, + width: androidx.compose.ui.unit.Dp? = null, + height: androidx.compose.ui.unit.Dp? = null +) { + Column( + modifier = Modifier + .then(if (width != null) Modifier.requiredWidth(width) else Modifier.fillMaxWidth()) + .then(if (height != null) Modifier.requiredHeight(height) else Modifier) + .background(backgroundColor, RoundedCornerShape(16.dp)) + .padding(horizontal = 16.dp), + verticalArrangement = if (height != null) Arrangement.SpaceEvenly else Arrangement.spacedBy(8.dp) // 固定高度时均匀分布 + ) { + items.forEachIndexed { index, item -> + Box( + modifier = Modifier + .then(if (height != null) Modifier.weight(1f) else Modifier), + contentAlignment = Alignment.Center + ) { + MenuItemRow(item = item, compact = height != null) // 传递compact参数 + } + } + } +} + +@Composable +fun MenuItemRow(item: MenuItem, compact: Boolean = false) { + Row( + modifier = Modifier + .fillMaxWidth() + .then( + if (item.onClick != null) { + Modifier.noRippleClickable { item.onClick?.invoke() } + } else { + Modifier + } + ) + .padding(vertical = if (compact) 4.dp else 8.dp), // 紧凑模式下减少垂直padding + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically + ) { + Row( + horizontalArrangement = Arrangement.spacedBy(12.dp), + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier.weight(1f) + ) { + Image( + painter = painterResource(id = item.icon), + contentDescription = null, + modifier = Modifier.size(24.dp), + colorFilter = ColorFilter.tint(Color.Black) + ) + Text( + text = item.label, + fontSize = 14.sp, + color = Color.Black + ) + } + + if (item.rightContent != null) { + item.rightContent?.invoke() + } else if (item.showRightArrow) { + Image( + painter = painterResource(id = R.drawable.rave_now_nav_right), + contentDescription = null, + modifier = Modifier.size(24.dp), + colorFilter = ColorFilter.tint(Color(0xFF111213)) + ) + } + } } \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/bi.png b/app/src/main/res/mipmap-hdpi/bi.png new file mode 100644 index 0000000..a9ac2f7 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/bi.png differ diff --git a/app/src/main/res/mipmap-hdpi/collect.png b/app/src/main/res/mipmap-hdpi/collect.png new file mode 100644 index 0000000..980e928 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/collect.png differ diff --git a/app/src/main/res/mipmap-hdpi/feedback_icon.png b/app/src/main/res/mipmap-hdpi/feedback_icon.png new file mode 100644 index 0000000..cf730e3 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/feedback_icon.png differ diff --git a/app/src/main/res/mipmap-hdpi/fengm.png b/app/src/main/res/mipmap-hdpi/fengm.png new file mode 100644 index 0000000..a9ac2f7 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/fengm.png differ diff --git a/app/src/main/res/mipmap-hdpi/icons_about.png b/app/src/main/res/mipmap-hdpi/icons_about.png new file mode 100644 index 0000000..d7a63ce Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/icons_about.png differ diff --git a/app/src/main/res/mipmap-hdpi/icons_account_and_security.png b/app/src/main/res/mipmap-hdpi/icons_account_and_security.png new file mode 100644 index 0000000..1594cc3 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/icons_account_and_security.png differ diff --git a/app/src/main/res/mipmap-hdpi/icons_bell.png b/app/src/main/res/mipmap-hdpi/icons_bell.png new file mode 100644 index 0000000..28193ca Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/icons_bell.png differ diff --git a/app/src/main/res/mipmap-hdpi/icons_dark_mode.png b/app/src/main/res/mipmap-hdpi/icons_dark_mode.png new file mode 100644 index 0000000..2ab67d2 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/icons_dark_mode.png differ diff --git a/app/src/main/res/mipmap-hdpi/icons_edited_data.png b/app/src/main/res/mipmap-hdpi/icons_edited_data.png new file mode 100644 index 0000000..37dd5bd Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/icons_edited_data.png differ diff --git a/app/src/main/res/mipmap-hdpi/log_out_icon.png b/app/src/main/res/mipmap-hdpi/log_out_icon.png new file mode 100644 index 0000000..a0f253b Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/log_out_icon.png differ diff --git a/app/src/main/res/mipmap-hdpi/menu_ico.png b/app/src/main/res/mipmap-hdpi/menu_ico.png new file mode 100644 index 0000000..2156726 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/menu_ico.png differ diff --git a/app/src/main/res/mipmap-hdpi/menu_icon.png b/app/src/main/res/mipmap-hdpi/menu_icon.png new file mode 100644 index 0000000..ca7055e Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/menu_icon.png differ diff --git a/app/src/main/res/mipmap-hdpi/naoz.png b/app/src/main/res/mipmap-hdpi/naoz.png new file mode 100644 index 0000000..0e45348 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/naoz.png differ diff --git a/app/src/main/res/mipmap-hdpi/paip_coin_img.png b/app/src/main/res/mipmap-hdpi/paip_coin_img.png new file mode 100644 index 0000000..ed87fc8 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/paip_coin_img.png differ diff --git a/app/src/main/res/mipmap-hdpi/qr_code_icon.png b/app/src/main/res/mipmap-hdpi/qr_code_icon.png new file mode 100644 index 0000000..337b664 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/qr_code_icon.png differ diff --git a/app/src/main/res/mipmap-hdpi/sao.png b/app/src/main/res/mipmap-hdpi/sao.png new file mode 100644 index 0000000..e24ca83 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/sao.png differ diff --git a/app/src/main/res/mipmap-hdpi/xingzuo.png b/app/src/main/res/mipmap-hdpi/xingzuo.png new file mode 100644 index 0000000..cea7570 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/xingzuo.png differ diff --git a/app/src/main/res/mipmap-mdpi/bi.png b/app/src/main/res/mipmap-mdpi/bi.png new file mode 100644 index 0000000..de27731 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/bi.png differ diff --git a/app/src/main/res/mipmap-mdpi/collect.png b/app/src/main/res/mipmap-mdpi/collect.png new file mode 100644 index 0000000..cf8944e Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/collect.png differ diff --git a/app/src/main/res/mipmap-mdpi/feedback_icon.png b/app/src/main/res/mipmap-mdpi/feedback_icon.png new file mode 100644 index 0000000..b24206d Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/feedback_icon.png differ diff --git a/app/src/main/res/mipmap-mdpi/fengm.png b/app/src/main/res/mipmap-mdpi/fengm.png new file mode 100644 index 0000000..de27731 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/fengm.png differ diff --git a/app/src/main/res/mipmap-mdpi/icons_about.png b/app/src/main/res/mipmap-mdpi/icons_about.png new file mode 100644 index 0000000..82958f6 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/icons_about.png differ diff --git a/app/src/main/res/mipmap-mdpi/icons_account_and_security.png b/app/src/main/res/mipmap-mdpi/icons_account_and_security.png new file mode 100644 index 0000000..eaea4ad Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/icons_account_and_security.png differ diff --git a/app/src/main/res/mipmap-mdpi/icons_bell.png b/app/src/main/res/mipmap-mdpi/icons_bell.png new file mode 100644 index 0000000..77f33cf Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/icons_bell.png differ diff --git a/app/src/main/res/mipmap-mdpi/icons_dark_mode.png b/app/src/main/res/mipmap-mdpi/icons_dark_mode.png new file mode 100644 index 0000000..7913789 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/icons_dark_mode.png differ diff --git a/app/src/main/res/mipmap-mdpi/icons_edited_data.png b/app/src/main/res/mipmap-mdpi/icons_edited_data.png new file mode 100644 index 0000000..9729324 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/icons_edited_data.png differ diff --git a/app/src/main/res/mipmap-mdpi/log_out_icon.png b/app/src/main/res/mipmap-mdpi/log_out_icon.png new file mode 100644 index 0000000..e10ff62 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/log_out_icon.png differ diff --git a/app/src/main/res/mipmap-mdpi/menu_ico.png b/app/src/main/res/mipmap-mdpi/menu_ico.png new file mode 100644 index 0000000..d018831 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/menu_ico.png differ diff --git a/app/src/main/res/mipmap-mdpi/menu_icon.png b/app/src/main/res/mipmap-mdpi/menu_icon.png new file mode 100644 index 0000000..5cc29fe Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/menu_icon.png differ diff --git a/app/src/main/res/mipmap-mdpi/naoz.png b/app/src/main/res/mipmap-mdpi/naoz.png new file mode 100644 index 0000000..61c2529 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/naoz.png differ diff --git a/app/src/main/res/mipmap-mdpi/paip_coin_img.png b/app/src/main/res/mipmap-mdpi/paip_coin_img.png new file mode 100644 index 0000000..285be2a Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/paip_coin_img.png differ diff --git a/app/src/main/res/mipmap-mdpi/qr_code_icon.png b/app/src/main/res/mipmap-mdpi/qr_code_icon.png new file mode 100644 index 0000000..cc65ba3 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/qr_code_icon.png differ diff --git a/app/src/main/res/mipmap-mdpi/sao.png b/app/src/main/res/mipmap-mdpi/sao.png new file mode 100644 index 0000000..e032865 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/sao.png differ diff --git a/app/src/main/res/mipmap-mdpi/xingzuo.png b/app/src/main/res/mipmap-mdpi/xingzuo.png new file mode 100644 index 0000000..bcc1e12 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/xingzuo.png differ diff --git a/app/src/main/res/mipmap-xhdpi/bi.png b/app/src/main/res/mipmap-xhdpi/bi.png new file mode 100644 index 0000000..a010e6c Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/bi.png differ diff --git a/app/src/main/res/mipmap-xhdpi/collect.png b/app/src/main/res/mipmap-xhdpi/collect.png new file mode 100644 index 0000000..446cfdd Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/collect.png differ diff --git a/app/src/main/res/mipmap-xhdpi/feedback_icon.png b/app/src/main/res/mipmap-xhdpi/feedback_icon.png new file mode 100644 index 0000000..245f6e2 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/feedback_icon.png differ diff --git a/app/src/main/res/mipmap-xhdpi/fengm.png b/app/src/main/res/mipmap-xhdpi/fengm.png new file mode 100644 index 0000000..a010e6c Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/fengm.png differ diff --git a/app/src/main/res/mipmap-xhdpi/icons_about.png b/app/src/main/res/mipmap-xhdpi/icons_about.png new file mode 100644 index 0000000..3daad99 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/icons_about.png differ diff --git a/app/src/main/res/mipmap-xhdpi/icons_account_and_security.png b/app/src/main/res/mipmap-xhdpi/icons_account_and_security.png new file mode 100644 index 0000000..b5e2bc4 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/icons_account_and_security.png differ diff --git a/app/src/main/res/mipmap-xhdpi/icons_bell.png b/app/src/main/res/mipmap-xhdpi/icons_bell.png new file mode 100644 index 0000000..c4111ad Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/icons_bell.png differ diff --git a/app/src/main/res/mipmap-xhdpi/icons_dark_mode.png b/app/src/main/res/mipmap-xhdpi/icons_dark_mode.png new file mode 100644 index 0000000..6ede1dc Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/icons_dark_mode.png differ diff --git a/app/src/main/res/mipmap-xhdpi/icons_edited_data.png b/app/src/main/res/mipmap-xhdpi/icons_edited_data.png new file mode 100644 index 0000000..4138ab7 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/icons_edited_data.png differ diff --git a/app/src/main/res/mipmap-xhdpi/log_out_icon.png b/app/src/main/res/mipmap-xhdpi/log_out_icon.png new file mode 100644 index 0000000..e32a698 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/log_out_icon.png differ diff --git a/app/src/main/res/mipmap-xhdpi/menu_ico.png b/app/src/main/res/mipmap-xhdpi/menu_ico.png new file mode 100644 index 0000000..8fa72d1 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/menu_ico.png differ diff --git a/app/src/main/res/mipmap-xhdpi/menu_icon.png b/app/src/main/res/mipmap-xhdpi/menu_icon.png new file mode 100644 index 0000000..dfb8818 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/menu_icon.png differ diff --git a/app/src/main/res/mipmap-xhdpi/naoz.png b/app/src/main/res/mipmap-xhdpi/naoz.png new file mode 100644 index 0000000..817c287 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/naoz.png differ diff --git a/app/src/main/res/mipmap-xhdpi/paip_coin_img.png b/app/src/main/res/mipmap-xhdpi/paip_coin_img.png new file mode 100644 index 0000000..050108b Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/paip_coin_img.png differ diff --git a/app/src/main/res/mipmap-xhdpi/qr_code_icon.png b/app/src/main/res/mipmap-xhdpi/qr_code_icon.png new file mode 100644 index 0000000..d5c139b Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/qr_code_icon.png differ diff --git a/app/src/main/res/mipmap-xhdpi/sao.png b/app/src/main/res/mipmap-xhdpi/sao.png new file mode 100644 index 0000000..1d199d0 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/sao.png differ diff --git a/app/src/main/res/mipmap-xhdpi/xingzuo.png b/app/src/main/res/mipmap-xhdpi/xingzuo.png new file mode 100644 index 0000000..83fbb1a Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/xingzuo.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/bi.png b/app/src/main/res/mipmap-xxhdpi/bi.png new file mode 100644 index 0000000..1232d0e Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/bi.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/collect.png b/app/src/main/res/mipmap-xxhdpi/collect.png new file mode 100644 index 0000000..2bdb011 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/collect.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/feedback_icon.png b/app/src/main/res/mipmap-xxhdpi/feedback_icon.png new file mode 100644 index 0000000..a39fb0f Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/feedback_icon.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/fengm.png b/app/src/main/res/mipmap-xxhdpi/fengm.png new file mode 100644 index 0000000..1232d0e Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/fengm.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icons_about.png b/app/src/main/res/mipmap-xxhdpi/icons_about.png new file mode 100644 index 0000000..0049cd3 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icons_about.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icons_account_and_security.png b/app/src/main/res/mipmap-xxhdpi/icons_account_and_security.png new file mode 100644 index 0000000..33c0f44 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icons_account_and_security.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icons_bell.png b/app/src/main/res/mipmap-xxhdpi/icons_bell.png new file mode 100644 index 0000000..80aaf28 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icons_bell.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icons_dark_mode.png b/app/src/main/res/mipmap-xxhdpi/icons_dark_mode.png new file mode 100644 index 0000000..0b77746 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icons_dark_mode.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icons_edited_data.png b/app/src/main/res/mipmap-xxhdpi/icons_edited_data.png new file mode 100644 index 0000000..77cf523 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icons_edited_data.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/log_out_icon.png b/app/src/main/res/mipmap-xxhdpi/log_out_icon.png new file mode 100644 index 0000000..df69674 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/log_out_icon.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/menu_ico.png b/app/src/main/res/mipmap-xxhdpi/menu_ico.png new file mode 100644 index 0000000..3aaf9bc Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/menu_ico.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/menu_icon.png b/app/src/main/res/mipmap-xxhdpi/menu_icon.png new file mode 100644 index 0000000..6eff62c Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/menu_icon.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/naoz.png b/app/src/main/res/mipmap-xxhdpi/naoz.png new file mode 100644 index 0000000..1555215 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/naoz.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/paip_coin_img.png b/app/src/main/res/mipmap-xxhdpi/paip_coin_img.png new file mode 100644 index 0000000..f7a9942 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/paip_coin_img.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/qr_code_icon.png b/app/src/main/res/mipmap-xxhdpi/qr_code_icon.png new file mode 100644 index 0000000..a72f4b1 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/qr_code_icon.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/sao.png b/app/src/main/res/mipmap-xxhdpi/sao.png new file mode 100644 index 0000000..a3f4c77 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/sao.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/xingzuo.png b/app/src/main/res/mipmap-xxhdpi/xingzuo.png new file mode 100644 index 0000000..ff8f71f Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/xingzuo.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/bi.png b/app/src/main/res/mipmap-xxxhdpi/bi.png new file mode 100644 index 0000000..028e23b Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/bi.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/collect.png b/app/src/main/res/mipmap-xxxhdpi/collect.png new file mode 100644 index 0000000..5be481e Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/collect.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/feedback_icon.png b/app/src/main/res/mipmap-xxxhdpi/feedback_icon.png new file mode 100644 index 0000000..bb4212b Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/feedback_icon.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/fengm.png b/app/src/main/res/mipmap-xxxhdpi/fengm.png new file mode 100644 index 0000000..028e23b Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/fengm.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/icons_about.png b/app/src/main/res/mipmap-xxxhdpi/icons_about.png new file mode 100644 index 0000000..fe99270 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/icons_about.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/icons_account_and_security.png b/app/src/main/res/mipmap-xxxhdpi/icons_account_and_security.png new file mode 100644 index 0000000..0f78135 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/icons_account_and_security.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/icons_bell.png b/app/src/main/res/mipmap-xxxhdpi/icons_bell.png new file mode 100644 index 0000000..9196797 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/icons_bell.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/icons_dark_mode.png b/app/src/main/res/mipmap-xxxhdpi/icons_dark_mode.png new file mode 100644 index 0000000..bd67d43 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/icons_dark_mode.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/icons_edited_data.png b/app/src/main/res/mipmap-xxxhdpi/icons_edited_data.png new file mode 100644 index 0000000..0c9e9b6 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/icons_edited_data.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/log_out_icon.png b/app/src/main/res/mipmap-xxxhdpi/log_out_icon.png new file mode 100644 index 0000000..2bdb56f Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/log_out_icon.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/menu_ico.png b/app/src/main/res/mipmap-xxxhdpi/menu_ico.png new file mode 100644 index 0000000..fb3b25a Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/menu_ico.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/menu_icon.png b/app/src/main/res/mipmap-xxxhdpi/menu_icon.png new file mode 100644 index 0000000..a1670ef Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/menu_icon.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/naoz.png b/app/src/main/res/mipmap-xxxhdpi/naoz.png new file mode 100644 index 0000000..ce622c7 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/naoz.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/paip_coin_img.png b/app/src/main/res/mipmap-xxxhdpi/paip_coin_img.png new file mode 100644 index 0000000..d85c046 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/paip_coin_img.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/qr_code_icon.png b/app/src/main/res/mipmap-xxxhdpi/qr_code_icon.png new file mode 100644 index 0000000..e390d33 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/qr_code_icon.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/sao.png b/app/src/main/res/mipmap-xxxhdpi/sao.png new file mode 100644 index 0000000..576f340 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/sao.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/xingzuo.png b/app/src/main/res/mipmap-xxxhdpi/xingzuo.png new file mode 100644 index 0000000..b9e0b15 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/xingzuo.png differ diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index d849e3a..3810cf6 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -248,5 +248,19 @@ 「適用」を選択してこのテーマを使用 「キャンセル」をタップして他のテーマをプレビュー + + MBTIタイプ + 星座 + 保存 + MBTIを選択 + 星座を選択 + + + さっと動かす + データの編集 + パイパイについて + フォローアップシステム + メッセージ通知 + ログアウト diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index addcf44..460c656 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -75,7 +75,7 @@ 下载 原始图片 收藏 - 暗黑模式 + 暗色模式 明亮模式 发现新版本 立即更新 @@ -257,4 +257,12 @@ 保存 选择 MBTI 选择星座 + + + 扫一扫 + 编辑资料 + 关于派派 + 跟随系统 + 消息通知 + 退出登录 \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index de4cc53..f076573 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -254,4 +254,12 @@ Choose MBTI Choose Zodiac + + Scan QR + Edit Profile + About Paipai + Follow System + Message Notification + Logout + \ No newline at end of file