diff --git a/app/src/main/kotlin/com/d4rk/cleaner/ui/components/Buttons.kt b/app/src/main/kotlin/com/d4rk/cleaner/ui/components/Buttons.kt index 85a8215..437106e 100644 --- a/app/src/main/kotlin/com/d4rk/cleaner/ui/components/Buttons.kt +++ b/app/src/main/kotlin/com/d4rk/cleaner/ui/components/Buttons.kt @@ -15,7 +15,6 @@ import androidx.compose.material3.OutlinedButton import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp @@ -46,7 +45,6 @@ fun TwoRowButtons( modifier = Modifier .weight(1f) .bounceClick(), - colors = ButtonDefaults.outlinedButtonColors(contentColor = Color.Black) ) { Icon( imageVector = onStartButtonIcon, @@ -68,7 +66,6 @@ fun TwoRowButtons( modifier = Modifier .weight(1f) .bounceClick(), - colors = ButtonDefaults.buttonColors(contentColor = Color.White) ) { Icon( imageVector = onEndButtonIcon, diff --git a/app/src/main/kotlin/com/d4rk/cleaner/ui/components/dialogs/ConfirmationAlertDialog.kt b/app/src/main/kotlin/com/d4rk/cleaner/ui/components/dialogs/ConfirmationAlertDialog.kt new file mode 100644 index 0000000..87db6c5 --- /dev/null +++ b/app/src/main/kotlin/com/d4rk/cleaner/ui/components/dialogs/ConfirmationAlertDialog.kt @@ -0,0 +1,32 @@ +package com.d4rk.cleaner.ui.components.dialogs + +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.runtime.Composable + +@Composable +fun ConfirmationAlertDialog( + confirmationTitle: String, + confirmationMessage: String, + confirmationConfirmButtonText: String, + confirmationDismissButtonText: String, + onConfirm: () -> Unit, + onDismiss: () -> Unit +) { + AlertDialog( + onDismissRequest = onDismiss, + title = { Text(text = confirmationTitle) }, + text = { Text(confirmationMessage) }, + confirmButton = { + TextButton(onClick = onConfirm) { + Text(text = confirmationConfirmButtonText) + } + }, + dismissButton = { + TextButton(onClick = onDismiss) { + Text(text = confirmationDismissButtonText) + } + } + ) +} \ No newline at end of file diff --git a/app/src/main/kotlin/com/d4rk/cleaner/ui/screens/home/AnalyzeScreen.kt b/app/src/main/kotlin/com/d4rk/cleaner/ui/screens/analyze/AnalyzeScreen.kt similarity index 92% rename from app/src/main/kotlin/com/d4rk/cleaner/ui/screens/home/AnalyzeScreen.kt rename to app/src/main/kotlin/com/d4rk/cleaner/ui/screens/analyze/AnalyzeScreen.kt index f8b1024..8210a70 100644 --- a/app/src/main/kotlin/com/d4rk/cleaner/ui/screens/home/AnalyzeScreen.kt +++ b/app/src/main/kotlin/com/d4rk/cleaner/ui/screens/analyze/AnalyzeScreen.kt @@ -1,4 +1,4 @@ -package com.d4rk.cleaner.ui.screens.home +package com.d4rk.cleaner.ui.screens.analyze import android.content.Context import android.content.Intent @@ -15,11 +15,9 @@ import androidx.compose.foundation.layout.Arrangement 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.aspectRatio 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.lazy.LazyColumn @@ -33,9 +31,6 @@ import androidx.compose.material.icons.outlined.Close import androidx.compose.material.icons.outlined.Delete import androidx.compose.material.icons.outlined.DeleteForever import androidx.compose.material.icons.outlined.Folder -import androidx.compose.material.icons.outlined.FolderOff -import androidx.compose.material.icons.outlined.Refresh -import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Card import androidx.compose.material3.Checkbox import androidx.compose.material3.CircularProgressIndicator @@ -43,7 +38,6 @@ import androidx.compose.material3.FilterChip import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.OutlinedButton import androidx.compose.material3.OutlinedCard import androidx.compose.material3.ScrollableTabRow import androidx.compose.material3.Tab @@ -78,6 +72,8 @@ import com.d4rk.cleaner.ui.components.TwoRowButtons import com.d4rk.cleaner.ui.components.animations.bounceClick import com.d4rk.cleaner.ui.components.animations.hapticPagerSwipe import com.d4rk.cleaner.ui.components.dialogs.ConfirmationAlertDialog +import com.d4rk.cleaner.ui.screens.home.HomeViewModel +import com.d4rk.cleaner.ui.screens.nofilesfound.NoFilesFoundScreen import com.d4rk.cleaner.utils.TimeHelper import com.d4rk.cleaner.utils.cleaning.getFileIcon import com.google.common.io.Files.getFileExtension @@ -173,34 +169,7 @@ fun AnalyzeScreen( } groupedFiles.isEmpty() || data.analyzeState.isFileScanEmpty -> { - Box(modifier = Modifier.fillMaxSize() , contentAlignment = Alignment.Center) { - Column(horizontalAlignment = Alignment.CenterHorizontally) { - Icon( - imageVector = Icons.Outlined.FolderOff , - contentDescription = null , - modifier = Modifier.size(64.dp) , - tint = MaterialTheme.colorScheme.onSurface - ) - Spacer(modifier = Modifier.height(16.dp)) - Text( - text = stringResource(id = R.string.no_files_found) , - style = MaterialTheme.typography.bodyLarge , - color = MaterialTheme.colorScheme.onSurface - ) - - OutlinedButton(modifier = Modifier.bounceClick() , onClick = { - viewModel.rescanFiles() - }) { - Icon( - modifier = Modifier.size(ButtonDefaults.IconSize) , - imageVector = Icons.Outlined.Refresh , - contentDescription = "Close" - ) - Spacer(modifier = Modifier.size(ButtonDefaults.IconSpacing)) - Text(text = "Try again") - } - } - } + NoFilesFoundScreen(viewModel = viewModel) } else -> { diff --git a/app/src/main/kotlin/com/d4rk/cleaner/ui/screens/home/HomeScreen.kt b/app/src/main/kotlin/com/d4rk/cleaner/ui/screens/home/HomeScreen.kt index c1b809a..8fc0f03 100644 --- a/app/src/main/kotlin/com/d4rk/cleaner/ui/screens/home/HomeScreen.kt +++ b/app/src/main/kotlin/com/d4rk/cleaner/ui/screens/home/HomeScreen.kt @@ -29,6 +29,7 @@ import com.d4rk.cleaner.data.model.ui.error.UiErrorModel import com.d4rk.cleaner.data.model.ui.screens.UiHomeModel import com.d4rk.cleaner.ui.components.CircularDeterminateIndicator import com.d4rk.cleaner.ui.components.dialogs.ErrorAlertDialog +import com.d4rk.cleaner.ui.screens.analyze.AnalyzeScreen import com.d4rk.cleaner.utils.PermissionsUtils @Composable diff --git a/app/src/main/kotlin/com/d4rk/cleaner/ui/screens/nofilesfound/NoFilesFoundScreen.kt b/app/src/main/kotlin/com/d4rk/cleaner/ui/screens/nofilesfound/NoFilesFoundScreen.kt new file mode 100644 index 0000000..3faa862 --- /dev/null +++ b/app/src/main/kotlin/com/d4rk/cleaner/ui/screens/nofilesfound/NoFilesFoundScreen.kt @@ -0,0 +1,56 @@ +package com.d4rk.cleaner.ui.screens.nofilesfound + +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.size +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.FolderOff +import androidx.compose.material.icons.outlined.Refresh +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedButton +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp +import com.d4rk.cleaner.R +import com.d4rk.cleaner.ui.components.animations.bounceClick +import com.d4rk.cleaner.ui.screens.home.HomeViewModel + +@Composable +fun NoFilesFoundScreen(viewModel : HomeViewModel) { + Box(modifier = Modifier.fillMaxSize() , contentAlignment = Alignment.Center) { + Column(horizontalAlignment = Alignment.CenterHorizontally) { + Icon( + imageVector = Icons.Outlined.FolderOff , + contentDescription = null , + modifier = Modifier.size(64.dp) , + tint = MaterialTheme.colorScheme.onSurface + ) + Spacer(modifier = Modifier.height(16.dp)) + Text( + text = stringResource(id = R.string.no_files_found) , + style = MaterialTheme.typography.bodyLarge , + color = MaterialTheme.colorScheme.onSurface + ) + + OutlinedButton(modifier = Modifier.bounceClick() , onClick = { + viewModel.rescanFiles() + }) { + Icon( + modifier = Modifier.size(ButtonDefaults.IconSize) , + imageVector = Icons.Outlined.Refresh , + contentDescription = "Close" + ) + Spacer(modifier = Modifier.size(ButtonDefaults.IconSpacing)) + Text(text = stringResource(id = R.string.try_again)) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/com/d4rk/cleaner/ui/screens/trash/TrashScreen.kt b/app/src/main/kotlin/com/d4rk/cleaner/ui/screens/trash/TrashScreen.kt index f8838d3..6af735a 100644 --- a/app/src/main/kotlin/com/d4rk/cleaner/ui/screens/trash/TrashScreen.kt +++ b/app/src/main/kotlin/com/d4rk/cleaner/ui/screens/trash/TrashScreen.kt @@ -29,7 +29,7 @@ import com.d4rk.cleaner.R import com.d4rk.cleaner.data.model.ui.screens.UiTrashModel import com.d4rk.cleaner.ui.components.TwoRowButtons import com.d4rk.cleaner.ui.components.navigation.TopAppBarScaffoldWithBackButton -import com.d4rk.cleaner.ui.screens.home.FilesByDateSection +import com.d4rk.cleaner.ui.screens.analyze.FilesByDateSection import java.io.File import java.text.SimpleDateFormat import java.util.Date