diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
index ed76bea..d7cb58b 100644
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -5,6 +5,9 @@
+
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8b74500..375b6fa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,6 +3,13 @@
xmlns:tools="http://schemas.android.com/tools">
+
+
+
+
+
= Build.VERSION_CODES.TIRAMISU) {
- permissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS)
+ permissionLauncher.launch(
+ arrayOf(Manifest.permission.POST_NOTIFICATIONS, Manifest.permission.READ_MEDIA_IMAGES,
+ Manifest.permission.READ_EXTERNAL_STORAGE,
+ Manifest.permission.ACCESS_MEDIA_LOCATION)
+ )
}
setContent {
@@ -215,6 +220,7 @@ fun SetNavigationScreen(mainViewModel: MainViewModel) {
currencyScreen(navController)
backupScreens(navController)
driveBackupDest(navController)
+ deviceBackupDest(navController)
}
}
}
diff --git a/app/src/main/java/com/masrofy/Screens.kt b/app/src/main/java/com/masrofy/Screens.kt
index 906037a..cafdd55 100644
--- a/app/src/main/java/com/masrofy/Screens.kt
+++ b/app/src/main/java/com/masrofy/Screens.kt
@@ -14,6 +14,10 @@ const val ONBOARDING_SCREENS_ARGS = "onboarding_screens"
sealed class Screens(val route: String) {
abstract val args: List
+ data object DeviceBackup :Screens("device-backup-screen"){
+ override val args: List
+ get() = emptyList()
+ }
data object DriveBackupScreen:Screens("drive-backup-screen"){
override val args: List
get() = emptyList()
diff --git a/app/src/main/java/com/masrofy/component/ImportFilesDialog.kt b/app/src/main/java/com/masrofy/component/ImportFilesDialog.kt
index 8b58082..817ec50 100644
--- a/app/src/main/java/com/masrofy/component/ImportFilesDialog.kt
+++ b/app/src/main/java/com/masrofy/component/ImportFilesDialog.kt
@@ -38,7 +38,7 @@ import com.masrofy.ui.theme.MasrofyTheme
@Composable
fun ImportFilesDialog(
files:List,
- progressDownloadState: ProgressDownloadState,
+ progressDownloadState: ProgressDownloadState?,
onClickFile:(String)->Unit,
onDismiss:()->Unit
) {
@@ -53,7 +53,7 @@ fun ImportFilesDialog(
.padding(8.dp), horizontalArrangement = Arrangement.SpaceBetween) {
Icon(painter = painterResource(id = R.drawable.backup_icon), contentDescription = "")
Text(text = "${it.fileName} ", fontSize = 17.sp, maxLines = 1)
- if (progressDownloadState.fileId == it.idFile){
+ if (progressDownloadState?.fileId == it.idFile){
if (progressDownloadState.state == ProgressState.INITIATION_STARTED){
CircularProgressIndicator()
}else if (progressDownloadState.state == ProgressState.STARTED){
diff --git a/app/src/main/java/com/masrofy/component/MScaffoldBar.kt b/app/src/main/java/com/masrofy/component/MScaffoldBar.kt
new file mode 100644
index 0000000..3f714f5
--- /dev/null
+++ b/app/src/main/java/com/masrofy/component/MScaffoldBar.kt
@@ -0,0 +1,29 @@
+package com.masrofy.component
+
+import androidx.compose.foundation.layout.PaddingValues
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.filled.ArrowBack
+import androidx.compose.material3.Icon
+import androidx.compose.material3.IconButton
+import androidx.compose.material3.Scaffold
+import androidx.compose.runtime.Composable
+import com.masrofy.R
+import com.masrofy.screens.settings.backups.drive_backup.DriveBackupEvent
+
+@Composable
+fun MScaffoldBar(
+ title:TranslatableString,
+ onBack:() -> Unit,
+ menuItem: List