From e0b333f3c576f226cb7fcf342d2f49e07f4842af Mon Sep 17 00:00:00 2001 From: wiiznokes <78230769+wiiznokes@users.noreply.github.com> Date: Wed, 10 Dec 2025 16:45:44 +0100 Subject: [PATCH] show log in clone page --- .../ui/destination/RemoteDestination.kt | 2 ++ .../gitnote/ui/screen/settings/LogsScreen.kt | 9 ++++---- .../gitnote/ui/screen/settings/SettingsNav.kt | 1 - .../ui/screen/setup/remote/CloningScreen.kt | 21 +++++++++++++++++-- .../ui/screen/setup/remote/RemoteNav.kt | 14 +++++++++++++ app/src/main/res/values/strings.xml | 2 ++ 6 files changed, 41 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/io/github/wiiznokes/gitnote/ui/destination/RemoteDestination.kt b/app/src/main/java/io/github/wiiznokes/gitnote/ui/destination/RemoteDestination.kt index 7e1d4818..5ae02cdc 100644 --- a/app/src/main/java/io/github/wiiznokes/gitnote/ui/destination/RemoteDestination.kt +++ b/app/src/main/java/io/github/wiiznokes/gitnote/ui/destination/RemoteDestination.kt @@ -48,4 +48,6 @@ sealed interface RemoteDestination : Parcelable { val url: String ) : RemoteDestination + @Parcelize + data object Logs: RemoteDestination } diff --git a/app/src/main/java/io/github/wiiznokes/gitnote/ui/screen/settings/LogsScreen.kt b/app/src/main/java/io/github/wiiznokes/gitnote/ui/screen/settings/LogsScreen.kt index f15c05e8..88566d04 100644 --- a/app/src/main/java/io/github/wiiznokes/gitnote/ui/screen/settings/LogsScreen.kt +++ b/app/src/main/java/io/github/wiiznokes/gitnote/ui/screen/settings/LogsScreen.kt @@ -28,14 +28,12 @@ import androidx.compose.ui.platform.LocalClipboard import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.unit.dp -import androidx.lifecycle.viewModelScope import io.github.wiiznokes.gitnote.BuildConfig import io.github.wiiznokes.gitnote.R import io.github.wiiznokes.gitnote.ui.component.AppPage import io.github.wiiznokes.gitnote.ui.component.CustomDropDown import io.github.wiiznokes.gitnote.ui.component.CustomDropDownModel import io.github.wiiznokes.gitnote.ui.component.SimpleIcon -import io.github.wiiznokes.gitnote.ui.viewmodel.SettingsViewModel import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -71,15 +69,16 @@ private fun getTextStyleFromInt(id: Int): TextStyle { @Composable fun LogsScreen( onBackClick: () -> Unit, - vm: SettingsViewModel ) { val logLevel = remember { mutableStateOf(LogLevel.ERROR) } + val initTextValue = stringResource(R.string.loading) + val logState: MutableState = remember { - mutableStateOf(vm.uiHelper.getString(R.string.loading)) + mutableStateOf(initTextValue) } @@ -141,7 +140,7 @@ fun LogsScreen( ClipData.Item(logState.value) ) - vm.viewModelScope.launch { + CoroutineScope(Dispatchers.IO).launch { clipboardManager.setClipEntry(ClipEntry(data)) } diff --git a/app/src/main/java/io/github/wiiznokes/gitnote/ui/screen/settings/SettingsNav.kt b/app/src/main/java/io/github/wiiznokes/gitnote/ui/screen/settings/SettingsNav.kt index ea82325b..38650e99 100644 --- a/app/src/main/java/io/github/wiiznokes/gitnote/ui/screen/settings/SettingsNav.kt +++ b/app/src/main/java/io/github/wiiznokes/gitnote/ui/screen/settings/SettingsNav.kt @@ -53,7 +53,6 @@ fun SettingsNav( onBackClick = { navController.pop() }, - vm = vm ) } diff --git a/app/src/main/java/io/github/wiiznokes/gitnote/ui/screen/setup/remote/CloningScreen.kt b/app/src/main/java/io/github/wiiznokes/gitnote/ui/screen/setup/remote/CloningScreen.kt index 52088434..6d913193 100644 --- a/app/src/main/java/io/github/wiiznokes/gitnote/ui/screen/setup/remote/CloningScreen.kt +++ b/app/src/main/java/io/github/wiiznokes/gitnote/ui/screen/setup/remote/CloningScreen.kt @@ -8,8 +8,10 @@ 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.tooling.preview.Preview import androidx.compose.ui.unit.dp +import io.github.wiiznokes.gitnote.R import io.github.wiiznokes.gitnote.ui.component.AppPage import io.github.wiiznokes.gitnote.ui.viewmodel.InitState @@ -20,6 +22,7 @@ private const val TAG = "CloningScreen" fun CloningScreen( cloneState: InitState, onCancel: () -> Unit, + onShowLogs: () -> Unit, ) { AppPage( title = "Clone", @@ -31,11 +34,24 @@ fun CloningScreen( Spacer(Modifier.height(20.dp)) + if (cloneState is InitState.Error) { + Button( + onClick = onShowLogs + ) { + Text(stringResource(R.string.show_logs)) + } + } + Button( onClick = onCancel, enabled = cloneState !is InitState.CalculatingTimestamps && cloneState !is InitState.GeneratingDatabase ) { - Text("Cancel") + Text( + if (cloneState is InitState.Error) { + stringResource(R.string.go_back) + + } else stringResource(R.string.cancel) + ) } } } @@ -45,7 +61,8 @@ fun CloningScreen( private fun PickRepoScreenPreview() { CloningScreen( - cloneState = InitState.Cloning(50), + cloneState = InitState.Error("Can't clone repo"), onCancel = {}, + onShowLogs = {} ) } \ No newline at end of file diff --git a/app/src/main/java/io/github/wiiznokes/gitnote/ui/screen/setup/remote/RemoteNav.kt b/app/src/main/java/io/github/wiiznokes/gitnote/ui/screen/setup/remote/RemoteNav.kt index f2fb9948..5475816e 100644 --- a/app/src/main/java/io/github/wiiznokes/gitnote/ui/screen/setup/remote/RemoteNav.kt +++ b/app/src/main/java/io/github/wiiznokes/gitnote/ui/screen/setup/remote/RemoteNav.kt @@ -22,7 +22,9 @@ import io.github.wiiznokes.gitnote.ui.destination.RemoteDestination.PickRepo import io.github.wiiznokes.gitnote.ui.destination.RemoteDestination.SelectGenerateNewSshKeys import io.github.wiiznokes.gitnote.ui.destination.RemoteDestination.SelectProvider import io.github.wiiznokes.gitnote.ui.destination.RemoteDestination.SelectSetupAutomatically +import io.github.wiiznokes.gitnote.ui.destination.SettingsDestination import io.github.wiiznokes.gitnote.ui.model.StorageConfiguration +import io.github.wiiznokes.gitnote.ui.screen.settings.LogsScreen import io.github.wiiznokes.gitnote.ui.utils.slide import io.github.wiiznokes.gitnote.ui.viewmodel.SetupViewModel @@ -177,8 +179,20 @@ fun RemoteScreen( onCancel = { if (vm.cancelClone()) navController.pop() + }, + onShowLogs = { + navController.navigate(RemoteDestination.Logs) } + ) + + RemoteDestination.Logs -> { + LogsScreen( + onBackClick = { + navController.pop() + }, + ) + } } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 88a605f8..f0862756 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -163,5 +163,7 @@ Load from file Private key Private key password + Cancel + Go back