feat: Add open folder for custom folders in SaveFolderTile

This commit is contained in:
Myzel394 2024-01-05 20:17:12 +01:00
parent 60ee8d9395
commit 986bf1d98a
No known key found for this signature in database
GPG Key ID: 79CC92F37B3E1A2B
2 changed files with 36 additions and 0 deletions

View File

@ -50,6 +50,8 @@ import androidx.compose.ui.semantics.contentDescription
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.core.net.toUri
import androidx.documentfile.provider.DocumentFile
import app.myzel394.alibi.R
import app.myzel394.alibi.dataStore
import app.myzel394.alibi.db.AppSettings
@ -61,6 +63,7 @@ import app.myzel394.alibi.ui.components.atoms.MessageBox
import app.myzel394.alibi.ui.components.atoms.MessageType
import app.myzel394.alibi.ui.components.atoms.PermissionRequester
import app.myzel394.alibi.ui.components.atoms.SettingsTile
import app.myzel394.alibi.ui.effects.rememberOpenUri
import app.myzel394.alibi.ui.utils.PermissionHelper
import app.myzel394.alibi.ui.utils.rememberFolderSelectorDialog
import kotlinx.coroutines.launch
@ -172,6 +175,38 @@ fun SaveFolderTile(
textAlign = TextAlign.Center,
modifier = Modifier.fillMaxWidth(),
)
val openFolder = rememberOpenUri()
when (settings.saveFolder) {
null -> {}
RECORDER_MEDIA_SELECTED_VALUE -> {}
// Custom folder
else ->
Button(
onClick = {
openFolder(
DocumentFile.fromTreeUri(
context,
settings.saveFolder.toUri(),
)!!.uri
)
},
shape = MaterialTheme.shapes.small,
// TODO: Adjust padding everywhere
contentPadding = ButtonDefaults.TextButtonContentPadding,
colors = ButtonDefaults.filledTonalButtonColors(
contentColor = MaterialTheme.colorScheme.onTertiaryContainer,
containerColor = MaterialTheme.colorScheme.tertiaryContainer,
),
) {
Text(
stringResource(R.string.ui_settings_option_saveFolder_openFolder_label),
fontSize = MaterialTheme.typography.bodySmall.fontSize,
)
}
}
}
}
)

View File

@ -182,4 +182,5 @@
<string name="ui_severeError_fileSaverUnavailable_title">File Manager app not found</string>
<string name="ui_severeError_fileSaverUnavailable_text">Alibi couldn\'t find a file manager app on your phone. Please install a file manager app and try again. If this message still appears, you can try using a custom batches folder in the advanced settings section. Alibi may not fully work on your device.</string>
<string name="ui_videoRecorder_state_recording_title">Recording Video</string>
<string name="ui_settings_option_saveFolder_openFolder_label">Open Folder in Files</string>
</resources>