Skip to content

Commit 79bdea0

Browse files
committed
Merge branch 'feature/delete-file-action'
2 parents ceb55d9 + 1759d08 commit 79bdea0

59 files changed

Lines changed: 675 additions & 465 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.idea/kotlinc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,6 @@ dependencies {
136136
implementation(libs.w2sv.simplestorage)
137137
implementation(libs.kotlinx.collections.immutable)
138138
lintChecks(libs.compose.lint.checks)
139-
implementation(libs.materialKolor)
140139
implementation(libs.textflow)
141140

142141
// Unit Test

app/src/main/kotlin/com/w2sv/filenavigator/MainActivity.kt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,12 @@ import com.ramcosta.composedestinations.DestinationsNavHost
3131
import com.ramcosta.composedestinations.generated.NavGraphs
3232
import com.ramcosta.composedestinations.generated.destinations.RequiredPermissionsScreenDestination
3333
import com.ramcosta.composedestinations.navigation.dependency
34-
import com.ramcosta.composedestinations.navigation.navigate
35-
import com.ramcosta.composedestinations.navigation.popUpTo
3634
import com.ramcosta.composedestinations.utils.isRouteOnBackStack
35+
import com.ramcosta.composedestinations.utils.rememberDestinationsNavigator
3736
import com.w2sv.composed.OnChange
3837
import com.w2sv.domain.model.Theme
38+
import com.w2sv.filenavigator.ui.LocalDestinationsNavigator
3939
import com.w2sv.filenavigator.ui.LocalMoveDestinationPathConverter
40-
import com.w2sv.filenavigator.ui.LocalNavHostController
4140
import com.w2sv.filenavigator.ui.LocalUseDarkTheme
4241
import com.w2sv.filenavigator.ui.state.rememberObservedPostNotificationsPermissionState
4342
import com.w2sv.filenavigator.ui.theme.AppTheme
@@ -85,6 +84,7 @@ class MainActivity : ComponentActivity() {
8584
)
8685
}
8786
val navController = rememberNavController()
87+
val destinationsNavController = navController.rememberDestinationsNavigator()
8888

8989
val postNotificationsPermissionState =
9090
rememberObservedPostNotificationsPermissionState(
@@ -101,9 +101,9 @@ class MainActivity : ComponentActivity() {
101101
RequiredPermissionsScreenDestination
102102
)
103103
) {
104-
navController.navigate(
104+
destinationsNavController.navigate(
105105
direction = RequiredPermissionsScreenDestination,
106-
navOptionsBuilder = {
106+
builder = {
107107
launchSingleTop = true
108108
popUpTo(RequiredPermissionsScreenDestination)
109109
}
@@ -113,7 +113,7 @@ class MainActivity : ComponentActivity() {
113113
}
114114

115115
CompositionLocalProvider(
116-
LocalNavHostController provides navController,
116+
LocalDestinationsNavigator provides destinationsNavController,
117117
LocalMoveDestinationPathConverter provides appVM.moveDestinationPathConverter
118118
) {
119119
Surface(modifier = Modifier.fillMaxSize()) {
@@ -133,7 +133,6 @@ class MainActivity : ComponentActivity() {
133133

134134
override fun onStart() {
135135
super.onStart()
136-
137136
appVM.updateManageAllFilesPermissionGranted()
138137
}
139138
}

app/src/main/kotlin/com/w2sv/filenavigator/ui/CompositionLocals.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ package com.w2sv.filenavigator.ui
22

33
import androidx.compose.runtime.compositionLocalOf
44
import androidx.compose.runtime.staticCompositionLocalOf
5-
import androidx.navigation.NavHostController
5+
import com.ramcosta.composedestinations.navigation.DestinationsNavigator
66
import com.w2sv.domain.usecase.MoveDestinationPathConverter
77

8-
val LocalNavHostController =
9-
staticCompositionLocalOf<NavHostController> {
8+
val LocalDestinationsNavigator =
9+
staticCompositionLocalOf<DestinationsNavigator> {
1010
throw UninitializedPropertyAccessException(
11-
"LocalRootNavHostController not yet provided"
11+
"LocalDestinationsNavigator not yet provided"
1212
)
1313
}
1414

app/src/main/kotlin/com/w2sv/filenavigator/ui/designsystem/drawer/NavigationDrawerSheetItemColumn.kt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,17 @@ import androidx.compose.ui.text.font.FontWeight
2828
import androidx.compose.ui.unit.dp
2929
import androidx.compose.ui.unit.sp
3030
import androidx.core.app.ShareCompat
31-
import androidx.navigation.NavController
3231
import com.ramcosta.composedestinations.generated.destinations.AppSettingsScreenDestination
3332
import com.ramcosta.composedestinations.generated.destinations.NavigatorSettingsScreenDestination
34-
import com.ramcosta.composedestinations.navigation.navigate
33+
import com.ramcosta.composedestinations.navigation.DestinationsNavigator
3534
import com.w2sv.androidutils.openUrl
3635
import com.w2sv.androidutils.packagePlayStoreUrl
3736
import com.w2sv.androidutils.startActivity
3837
import com.w2sv.androidutils.widget.showToast
3938
import com.w2sv.common.AppUrl
4039
import com.w2sv.composed.extensions.thenIfNotNull
4140
import com.w2sv.filenavigator.R
42-
import com.w2sv.filenavigator.ui.LocalNavHostController
41+
import com.w2sv.filenavigator.ui.LocalDestinationsNavigator
4342
import com.w2sv.filenavigator.ui.designsystem.IconSize
4443
import com.w2sv.filenavigator.ui.designsystem.ItemRowDefaults
4544
import com.w2sv.filenavigator.ui.designsystem.RightAligned
@@ -53,7 +52,7 @@ internal fun NavigationDrawerSheetItemColumn(
5352
modifier: Modifier = Modifier,
5453
scope: CoroutineScope = rememberCoroutineScope(),
5554
context: Context = LocalContext.current,
56-
navHostController: NavController = LocalNavHostController.current
55+
destinationsNavigator: DestinationsNavigator = LocalDestinationsNavigator.current
5756
) {
5857
Column(modifier = modifier) {
5958
remember {
@@ -68,7 +67,7 @@ internal fun NavigationDrawerSheetItemColumn(
6867
type = NavigationDrawerSheetElement.Item.Type.Clickable {
6968
scope.launch {
7069
closeDrawer()
71-
navHostController.navigate(AppSettingsScreenDestination)
70+
destinationsNavigator.navigate(AppSettingsScreenDestination)
7271
}
7372
}
7473
),
@@ -78,7 +77,7 @@ internal fun NavigationDrawerSheetItemColumn(
7877
type = NavigationDrawerSheetElement.Item.Type.Clickable {
7978
scope.launch {
8079
closeDrawer()
81-
navHostController.navigate(NavigatorSettingsScreenDestination)
80+
destinationsNavigator.navigate(NavigatorSettingsScreenDestination)
8281
}
8382
}
8483
),

app/src/main/kotlin/com/w2sv/filenavigator/ui/screen/appsettings/AppSettingsScreen.kt

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.w2sv.filenavigator.ui.screen.appsettings
22

33
import androidx.annotation.DrawableRes
4-
import androidx.compose.animation.AnimatedVisibility
4+
import androidx.compose.animation.animateContentSize
55
import androidx.compose.foundation.layout.Arrangement
66
import androidx.compose.foundation.layout.Column
77
import androidx.compose.foundation.layout.ColumnScope
@@ -84,7 +84,7 @@ private fun SettingsCardColumn(appPreferences: AppPreferences, modifier: Modifie
8484
)
8585
}
8686
SettingsCard(title = stringResource(id = R.string.appearance)) {
87-
Column(verticalArrangement = Arrangement.spacedBy(Spacing.VerticalItemRow)) {
87+
Column(verticalArrangement = Arrangement.spacedBy(Spacing.VerticalItemRow), modifier = Modifier.animateContentSize()) {
8888
ItemRow(
8989
icon = { ItemRowIcon(res = R.drawable.ic_nightlight_24) },
9090
labelRes = R.string.theme,
@@ -96,14 +96,6 @@ private fun SettingsCardColumn(appPreferences: AppPreferences, modifier: Modifie
9696
horizontalArrangement = Arrangement.spacedBy(24.dp)
9797
)
9898
}
99-
AnimatedVisibility(visible = LocalUseDarkTheme.current) {
100-
SwitchItemRow(
101-
icon = { ItemRowIcon(res = R.drawable.ic_contrast_24) },
102-
labelRes = R.string.amoled_black,
103-
checked = appPreferences.useAmoledBlackTheme(),
104-
onCheckedChange = appPreferences.setUseAmoledBlackTheme
105-
)
106-
}
10799
if (dynamicColorsSupported) {
108100
SwitchItemRow(
109101
icon = { ItemRowIcon(res = R.drawable.ic_palette_24) },
@@ -113,6 +105,16 @@ private fun SettingsCardColumn(appPreferences: AppPreferences, modifier: Modifie
113105
explanation = stringResource(id = R.string.use_colors_derived_from_your_wallpaper)
114106
)
115107
}
108+
// Leave at the end for Modifier.animateContentSize() to animate it in and out
109+
if (LocalUseDarkTheme.current) {
110+
SwitchItemRow(
111+
icon = { ItemRowIcon(res = R.drawable.ic_contrast_24) },
112+
labelRes = R.string.amoled_black,
113+
checked = appPreferences.useAmoledBlackTheme(),
114+
onCheckedChange = appPreferences.setUseAmoledBlackTheme,
115+
explanation = stringResource(R.string.amoled_black_explanation)
116+
)
117+
}
116118
}
117119
}
118120
}

app/src/main/kotlin/com/w2sv/filenavigator/ui/screen/home/components/statusdisplay/NavigatorStatusCard.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,10 @@ import androidx.compose.ui.text.font.FontWeight
3535
import androidx.compose.ui.unit.dp
3636
import androidx.compose.ui.unit.sp
3737
import androidx.lifecycle.compose.collectAsStateWithLifecycle
38-
import androidx.navigation.NavController
3938
import com.ramcosta.composedestinations.generated.destinations.NavigatorSettingsScreenDestination
40-
import com.ramcosta.composedestinations.navigation.navigate
39+
import com.ramcosta.composedestinations.navigation.DestinationsNavigator
4140
import com.w2sv.filenavigator.R
42-
import com.w2sv.filenavigator.ui.LocalNavHostController
41+
import com.w2sv.filenavigator.ui.LocalDestinationsNavigator
4342
import com.w2sv.filenavigator.ui.screen.home.components.HomeScreenCard
4443
import com.w2sv.filenavigator.ui.theme.AppColor
4544
import com.w2sv.filenavigator.ui.theme.DEFAULT_ANIMATION_DURATION
@@ -52,7 +51,7 @@ import com.w2sv.navigator.FileNavigator
5251
fun NavigatorStatusCard(
5352
modifier: Modifier = Modifier,
5453
navigatorVM: NavigatorViewModel = activityViewModel(),
55-
navController: NavController = LocalNavHostController.current,
54+
destinationsNavigator: DestinationsNavigator = LocalDestinationsNavigator.current,
5655
context: Context = LocalContext.current
5756
) {
5857
val navigatorIsRunning by navigatorVM.navigatorIsRunning.collectAsStateWithLifecycle()
@@ -117,7 +116,7 @@ fun NavigatorStatusCard(
117116
.width(180.dp)
118117
)
119118
FilledIconButton(
120-
onClick = { navController.navigate(NavigatorSettingsScreenDestination) }
119+
onClick = { destinationsNavigator.navigate(NavigatorSettingsScreenDestination) }
121120
) {
122121
Icon(
123122
painter = painterResource(id = com.w2sv.core.common.R.drawable.ic_settings_24),

app/src/main/kotlin/com/w2sv/filenavigator/ui/screen/missingpermissions/RequiredPermissionsScreen.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import com.ramcosta.composedestinations.annotation.Destination
2727
import com.ramcosta.composedestinations.annotation.RootGraph
2828
import com.ramcosta.composedestinations.generated.destinations.HomeScreenDestination
2929
import com.ramcosta.composedestinations.navigation.DestinationsNavigator
30-
import com.ramcosta.composedestinations.navigation.popUpTo
3130
import com.w2sv.androidutils.openAppSettings
3231
import com.w2sv.common.util.goToManageExternalStorageSettings
3332
import com.w2sv.composed.OnChange
@@ -49,14 +48,17 @@ private object RequiredPermissionsScreenDefaults {
4948

5049
@Destination<RootGraph>(style = NavigationTransitions::class)
5150
@Composable
52-
fun RequiredPermissionsScreen(postNotificationsPermissionState: PostNotificationsPermissionState, navigator: DestinationsNavigator) {
51+
fun RequiredPermissionsScreen(
52+
postNotificationsPermissionState: PostNotificationsPermissionState,
53+
destinationsNavigator: DestinationsNavigator
54+
) {
5355
val permissionCards =
5456
rememberMovablePermissionCards(postNotificationsPermissionState = postNotificationsPermissionState.state)
5557

5658
// Navigate to HomeScreenDestination if all permissions granted
5759
OnChange(value = permissionCards) {
5860
if (it.isEmpty()) {
59-
navigator.navigate(
61+
destinationsNavigator.navigate(
6062
direction = HomeScreenDestination,
6163
builder = {
6264
launchSingleTop = true

app/src/main/kotlin/com/w2sv/filenavigator/ui/screen/navigatorsettings/components/ConfigurationColumn.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ private fun MoreColumnItems(
253253
) {
254254
SwitchItemRow(
255255
icon = { DefaultItemRowIcon(res = com.w2sv.core.navigator.R.drawable.ic_files_24) },
256-
labelRes = R.string.batch_move_notification,
256+
labelRes = R.string.show_batch_move_notification,
257257
checked = showBatchMoveNotification,
258258
onCheckedChange = setShowBatchMoveNotification,
259259
explanation = stringResource(R.string.batch_move_explanation)

0 commit comments

Comments
 (0)