diff --git a/app/src/main/java/com/starry/greenstash/ui/navigation/DrawerScreens.kt b/app/src/main/java/com/starry/greenstash/ui/navigation/DrawerScreens.kt index 577b535..7ce7e06 100644 --- a/app/src/main/java/com/starry/greenstash/ui/navigation/DrawerScreens.kt +++ b/app/src/main/java/com/starry/greenstash/ui/navigation/DrawerScreens.kt @@ -39,7 +39,7 @@ sealed class DrawerScreens(val route: String, val nameResId: Int, val iconResId: DrawerScreens("archive", R.string.drawer_archive, R.drawable.ic_nav_archive) data object Backups : - DrawerScreens("backups", R.string.drawer_backups, R.drawable.ic_nav_backups) + DrawerScreens("backups", R.string.drawer_backup, R.drawable.ic_nav_backups) data object Settings : DrawerScreens("settings", R.string.drawer_settings, R.drawable.ic_nav_settings) diff --git a/app/src/main/java/com/starry/greenstash/ui/navigation/NavGraph.kt b/app/src/main/java/com/starry/greenstash/ui/navigation/NavGraph.kt index 6053387..5e46af8 100644 --- a/app/src/main/java/com/starry/greenstash/ui/navigation/NavGraph.kt +++ b/app/src/main/java/com/starry/greenstash/ui/navigation/NavGraph.kt @@ -34,6 +34,7 @@ import androidx.navigation.NavType import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.navArgument +import com.starry.greenstash.ui.screens.archive.composables.ArchiveScreen import com.starry.greenstash.ui.screens.backups.composables.BackupScreen import com.starry.greenstash.ui.screens.dwscreen.composables.DWScreen import com.starry.greenstash.ui.screens.home.composables.HomeScreen @@ -144,6 +145,17 @@ fun NavGraph( CongratsScreen(navController = navController) } + /** Archive Screen */ + composable( + route = DrawerScreens.Archive.route, + enterTransition = { enterTransition() }, + exitTransition = { exitTransition() }, + popEnterTransition = { popEnterTransition() }, + popExitTransition = { popExitTransition() }, + ) { + ArchiveScreen(navController = navController) + } + /** Backup Screen */ composable( route = DrawerScreens.Backups.route, diff --git a/app/src/main/java/com/starry/greenstash/ui/screens/archive/composables/ArchiveScreen.kt b/app/src/main/java/com/starry/greenstash/ui/screens/archive/composables/ArchiveScreen.kt index b0ead73..a8ffb3e 100644 --- a/app/src/main/java/com/starry/greenstash/ui/screens/archive/composables/ArchiveScreen.kt +++ b/app/src/main/java/com/starry/greenstash/ui/screens/archive/composables/ArchiveScreen.kt @@ -25,14 +25,156 @@ package com.starry.greenstash.ui.screens.archive.composables +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +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.foundation.layout.width +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Face2 +import androidx.compose.material.icons.filled.Image +import androidx.compose.material.icons.filled.Refresh +import androidx.compose.material.icons.outlined.Delete +import androidx.compose.material3.Card +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp import androidx.hilt.navigation.compose.hiltViewModel import androidx.navigation.NavController import com.starry.greenstash.ui.screens.archive.ArchiveViewModel +import com.starry.greenstash.ui.theme.greenstashFont +import com.starry.greenstash.ui.theme.greenstashNumberFont @Composable fun ArchiveScreen(navController: NavController) { val viewModel: ArchiveViewModel = hiltViewModel() + ArchivedGoalItem( + title = "Home Decorations", + icon = Icons.Filled.Face2, + savedAmount = "₹10,000", + onRestoreClicked = {}, + onDeleteClicked = {} + ) +} + +@Composable +fun ArchivedGoalItem( + title: String, + icon: ImageVector?, + savedAmount: String, + onRestoreClicked: () -> Unit, + onDeleteClicked: () -> Unit +) { + Card( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 12.dp, vertical = 8.dp) + ) { + Column( + Modifier + .fillMaxWidth() + .padding(12.dp) + ) { + Row( + modifier = Modifier + .fillMaxWidth() + ) { + Icon( + imageVector = icon ?: Icons.Filled.Image, + contentDescription = title, + modifier = Modifier.size(40.dp) + ) + + Spacer(modifier = Modifier.weight(1f)) + + Box( + modifier = Modifier + .size(40.dp) + .background( + color = MaterialTheme.colorScheme.primaryContainer, + shape = CircleShape + ) + .clip(CircleShape) + .clickable { onRestoreClicked() } + ) { + Icon( + imageVector = Icons.Filled.Refresh, + contentDescription = title, + modifier = Modifier + .fillMaxSize() + .padding(10.dp), + ) + } + Spacer(modifier = Modifier.width(16.dp)) + + Box( + modifier = Modifier + .size(40.dp) + .background( + color = MaterialTheme.colorScheme.primaryContainer, + shape = CircleShape + ) + .clip(CircleShape) + .clickable { onDeleteClicked() } + ) { + Icon( + imageVector = Icons.Outlined.Delete, + contentDescription = title, + modifier = Modifier + .fillMaxSize() + .padding(10.dp), + ) + } + } + + Spacer(modifier = Modifier.height(14.dp)) + + Text( + text = title, + fontWeight = FontWeight.Medium, + fontFamily = greenstashFont, + fontSize = 18.sp, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + ) + + Text( + text = savedAmount, + fontSize = 22.sp, + fontFamily = greenstashNumberFont, + fontWeight = FontWeight.Bold, + maxLines = 2, + ) + } + } +} + +@Preview +@Composable +fun ArchiveItemPV() { + ArchivedGoalItem( + title = "Home Decorations", + icon = Icons.Filled.Face2, + savedAmount = "₹10,000", + onRestoreClicked = {}, + onDeleteClicked = {} + ) +} - // TODO: Implement the Archive Screen -} \ No newline at end of file diff --git a/app/src/main/java/com/starry/greenstash/ui/screens/home/composables/GoalItems.kt b/app/src/main/java/com/starry/greenstash/ui/screens/home/composables/GoalItems.kt index acec502..e80f22b 100644 --- a/app/src/main/java/com/starry/greenstash/ui/screens/home/composables/GoalItems.kt +++ b/app/src/main/java/com/starry/greenstash/ui/screens/home/composables/GoalItems.kt @@ -477,7 +477,7 @@ fun GoalItemsPV() { savedAmount = "$1,000.00", daysLeftText = "Goal Achieved! 🎉", goalProgress = 0.8f, - goalIcon = ImageVector.vectorResource(id = R.drawable.ic_nav_backups), + goalIcon = ImageVector.vectorResource(id = R.drawable.ic_nav_rating), onDepositClicked = {}, onWithdrawClicked = {}, onInfoClicked = {}, diff --git a/app/src/main/java/com/starry/greenstash/ui/screens/home/composables/GoalLazyItem.kt b/app/src/main/java/com/starry/greenstash/ui/screens/home/composables/GoalLazyItem.kt index cba270d..b574c9a 100644 --- a/app/src/main/java/com/starry/greenstash/ui/screens/home/composables/GoalLazyItem.kt +++ b/app/src/main/java/com/starry/greenstash/ui/screens/home/composables/GoalLazyItem.kt @@ -230,9 +230,9 @@ fun GoalLazyColumnItem( openDeleteDialog = openDeleteDialog, onDeleteConfirmed = { viewModel.deleteGoal(item.goal) - coroutineScope.launch { + /*coroutineScope.launch { snackBarHostState.showSnackbar(context.getString(R.string.goal_delete_success)) - } + }*/ } ) } diff --git a/app/src/main/res/drawable/ic_nav_archive.xml b/app/src/main/res/drawable/ic_nav_archive.xml index 65bc34f..6be2cff 100644 --- a/app/src/main/res/drawable/ic_nav_archive.xml +++ b/app/src/main/res/drawable/ic_nav_archive.xml @@ -7,9 +7,9 @@ + android:fillType="evenOdd" + android:pathData="M2.54497 8.73005C2 9.79961 2 11.1997 2 14C2 16.8003 2 18.2004 2.54497 19.27C3.02433 20.2108 3.78924 20.9757 4.73005 21.455C5.79961 22 7.19974 22 10 22H14C16.8003 22 18.2004 22 19.27 21.455C20.2108 20.9757 20.9757 20.2108 21.455 19.27C22 18.2004 22 16.8003 22 14C22 11.1997 22 9.79961 21.455 8.73005C20.9757 7.78924 20.2108 7.02433 19.27 6.54497C18.2004 6 16.8003 6 14 6H10C7.19974 6 5.79961 6 4.73005 6.54497C3.78924 7.02433 3.02433 7.78924 2.54497 8.73005ZM15.0595 12.4995C15.3353 12.1905 15.3085 11.7164 14.9995 11.4406C14.6905 11.1647 14.2164 11.1915 13.9406 11.5005L10.9286 14.8739L10.0595 13.9005C9.78359 13.5915 9.30947 13.5647 9.0005 13.8406C8.69152 14.1164 8.66468 14.5905 8.94055 14.8995L10.3691 16.4995C10.5114 16.6589 10.7149 16.75 10.9286 16.75C11.1422 16.75 11.3457 16.6589 11.488 16.4995L15.0595 12.4995Z" /> + android:pathData="M20.5348 3.46447C19.0704 2 16.7133 2 11.9993 2C7.28525 2 4.92823 2 3.46377 3.46447C2.70628 4.22195 2.3406 5.21824 2.16406 6.65598C2.69473 6.06532 3.33236 5.57328 4.04836 5.20846C4.82984 4.81027 5.66664 4.6488 6.59316 4.5731C7.48829 4.49997 8.58971 4.49998 9.93646 4.5H14.0621C15.4089 4.49998 16.5103 4.49997 17.4054 4.5731C18.332 4.6488 19.1688 4.81027 19.9502 5.20846C20.6662 5.57328 21.3039 6.06532 21.8345 6.65598C21.658 5.21824 21.2923 4.22195 20.5348 3.46447Z" /> \ No newline at end of file diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index de44a5d..1951437 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -9,7 +9,8 @@ Inicio - Respaldo + Archivo + Respaldo Ajustes Calificarnos Compartir @@ -70,6 +71,9 @@ Ya has completado esta meta. Retirar No has depositado nada aún. + Archivar + ¿Quieres archivar esta meta? + Archivado correctamente. ¿Estás seguro/a? Eliminación exitosa. Ver información de la meta. diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 16c6908..bc9a879 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -10,7 +10,8 @@ Главная - Резервные копии + Архив + Резервные копии Настройки Оценить нас Поделиться @@ -71,6 +72,9 @@ Вы уже достигли этой цели. Вывести Вы еще не вносили никакой суммы. + Архивировать + Хотите ли вы архивировать эту цель? + Успешно архивировано. Вы уверены? Удалено успешно. Просмотр информации о цели. diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index e97e915..7dd071a 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -9,7 +9,8 @@ Ana Sayfa - Yedekler + Arşiv + Yedekler Ayarlar Bizi Değerlendir Paylaş @@ -70,6 +71,9 @@ Birikim hedefine zaten ulaştın. çek Henüz herhangi bir tutar yatırmadın. + Arşivle + Bu hedefi arşivlemek istiyor musunuz? + Başarıyla arşivlendi. Emin misin? Başarıyla Silindi. Hedef bilgilerini görüntüle. diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 951c680..83480e7 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -9,7 +9,8 @@ 主页 - 备份 + 存档 + 备份 设置 给我们评分 分享 @@ -69,6 +70,9 @@ 您已经实现了此目标。 取钱 您尚未存入任何金额。 + 存档 + 您要存档此目标吗? + 已成功存档。 确定吗? 删除成功。 查看目标信息。 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 130cb65..7f289a8 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -9,7 +9,8 @@ 首頁 - 備份 + 存檔 + 備份 設定 給我們評分 分享 @@ -68,6 +69,9 @@ 您已達成此目標。 提款 您尚未存入任何金額。 + 存檔 + 您要將此目標存檔嗎? + 已成功存檔。 您確定嗎? 成功刪除。 檢視目標資訊。 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0844b31..c9ea536 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -10,7 +10,7 @@ Home Archive - Backups + Backup Settings Rate Us Share @@ -70,6 +70,9 @@ You\'ve already achieved this goal. Withdraw You haven\'t deposited any amount yet. + Archive + Do you want to archive this goal? + Archived Successfully. Are you sure? Deleted Successfully. View goal information.