Skip to content

Commit 85db275

Browse files
sentinelwebsentinelweb
authored andcommitted
#496 - transfers back nav
1 parent 33e10b0 commit 85db275

File tree

10 files changed

+56
-35
lines changed

10 files changed

+56
-35
lines changed

app/src/main/java/uk/co/sentinelweb/cuer/app/ui/filebrowser/FileBrowserFragment.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ class FileBrowserFragment : Fragment(), AndroidScopeComponent {
7171
// saves the data on back press (enabled in onResume)
7272
private val backCallback = object : OnBackPressedCallback(true) {
7373
override fun handleOnBackPressed() {
74-
//remotesMviView.dispatch(OnUpClicked)
7574
viewModel.onBackClick()
7675
}
7776
}
@@ -100,8 +99,13 @@ class FileBrowserFragment : Fragment(), AndroidScopeComponent {
10099
private fun observeLabels(label: Effect) {
101100
when (label) {
102101
Effect.Init -> {}
103-
Effect.Up -> {
104-
navRouter.navigate(NavigationModel(NAV_BACK, mapOf(BACK_PARAMS to R.id.navigation_remotes)))
102+
Effect.Back -> {
103+
navRouter.navigate(
104+
NavigationModel(
105+
NAV_BACK,
106+
mapOf(BACK_PARAMS to R.id.navigation_remotes)
107+
)
108+
)
105109
}
106110

107111
Effect.Settings -> navigationProvider.navigate(R.id.navigation_settings_root)

app/src/main/java/uk/co/sentinelweb/cuer/app/ui/filebrowser/transfers/TransfersFragment.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import uk.co.sentinelweb.cuer.app.R
1717
import uk.co.sentinelweb.cuer.app.databinding.FragmentComposeBinding
1818
import uk.co.sentinelweb.cuer.app.ui.common.ktx.bindFlow
1919
import uk.co.sentinelweb.cuer.app.ui.common.navigation.*
20-
import uk.co.sentinelweb.cuer.app.ui.common.navigation.NavigationModel.Param.BACK_PARAMS
2120
import uk.co.sentinelweb.cuer.app.ui.common.navigation.NavigationModel.Target.NAV_BACK
2221
import uk.co.sentinelweb.cuer.app.ui.common.viewmodel.ViewModelEffects
2322
import uk.co.sentinelweb.cuer.app.ui.filebrowser.transfers.TransfersContract.Effect
@@ -89,9 +88,8 @@ class TransfersFragment : Fragment(), AndroidScopeComponent {
8988
private fun observeLabels(label: Effect) {
9089
when (label) {
9190
Effect.Back -> {
92-
navRouter.navigate(NavigationModel(NAV_BACK, mapOf(BACK_PARAMS to R.id.navigation_folders)))
91+
navRouter.navigate(NavigationModel(NAV_BACK))
9392
}
94-
9593
Effect.Settings -> navigationProvider.navigate(R.id.navigation_settings_root)
9694
else -> Unit
9795
}

app/src/main/java/uk/co/sentinelweb/cuer/app/ui/remotes/RemotesFragment.kt

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -155,18 +155,12 @@ class RemotesFragment : Fragment(), AndroidScopeComponent {
155155
)
156156

157157
is ActionLocalFolders -> navigationProvider.navigate(
158-
NavigationModel(
159-
FOLDER_LIST,
160-
mapOf()
161-
)
158+
NavigationModel(FOLDER_LIST)
162159
)
163160

164161
is ActionTransfers -> navigationProvider.navigate(
165-
NavigationModel(
166-
TRANSFERS,
167-
mapOf()
168-
)
169-
)
162+
NavigationModel(TRANSFERS)
163+
).apply { log.d("gotoTransfers.fragment") }
170164

171165
is CuerConnected ->
172166
snackbarWrapper.make(

hub/src/main/kotlin/uk/co/sentinelweb/cuer/net/wifi/PlatformWifiInfo.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class PlatformWifiInfo {
5050
var line: String?
5151
while (reader.readLine().also { line = it } != null) {
5252
if (line!!.trim { it <= ' ' }.startsWith("SSID")) {
53-
return line!!.split(":")[1].trim { it <= ' ' }
53+
return line.split(":")[1].trim { it <= ' ' }
5454
}
5555
}
5656
}

shared/src/commonMain/kotlin/uk/co/sentinelweb/cuer/app/ui/common/tag/Tag.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ import uk.co.sentinelweb.cuer.app.ui.common.resources.scale
1616

1717
@Composable
1818
fun Tag(
19-
source: String,
19+
text: String,
2020
color: Color = colorScaler(MaterialTheme.colorScheme.surface, 1.8f, 0.9f),
2121
modifier: Modifier = Modifier,
2222
style: TextStyle = MaterialTheme.typography.labelSmall,
2323
textColor: Color = MaterialTheme.colorScheme.onSurface,
2424
) {
2525
Text(
26-
source,
26+
text,
2727
color = textColor,
2828
style = style,
2929
fontWeight = Bold,

shared/src/commonMain/kotlin/uk/co/sentinelweb/cuer/app/ui/filebrowser/FilesContract.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ interface FilesContract {
9797
sealed class Effect {
9898
object None : Effect()
9999
object Init : Effect()
100-
object Up : Effect()
100+
object Back : Effect()
101101
data class Transfers(
102102
val id: OrchestratorContract.Identifier<GUID>? = null
103103
) : Effect()

shared/src/commonMain/kotlin/uk/co/sentinelweb/cuer/app/ui/filebrowser/FilesViewModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,11 @@ class FilesViewModel(
113113
override fun onBackClick() {
114114
_stateObservable.value.upListItem
115115
?.also { onClickFolder(it.second) }
116-
?: run { _effects.emit(Effect.Up, viewModelScope) }
116+
?: run { _effects.emit(Effect.Back, viewModelScope) }
117117
}
118118

119119
override fun onUpClick() {
120-
_effects.emit(Effect.Up, viewModelScope)
120+
_effects.emit(Effect.Back, viewModelScope)
121121
}
122122

123123
override fun onClickFolder(folder: PlaylistDomain) {

shared/src/commonMain/kotlin/uk/co/sentinelweb/cuer/app/ui/filebrowser/transfers/TransfersComposeables.kt

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -245,24 +245,31 @@ object TransfersComposeables {
245245

246246
Text(
247247
text = transfer.directionText,
248-
style = MaterialTheme.typography.titleMedium,
248+
style = MaterialTheme.typography.titleSmall,
249249
modifier = Modifier
250250
.padding(4.dp)
251251
)
252252

253-
Text(
253+
// Text(
254+
// text = transfer.statusText,
255+
// style = MaterialTheme.typography.titleSmall,
256+
// modifier = Modifier
257+
// .padding(4.dp)
258+
// )
259+
Tag(
254260
text = transfer.statusText,
255-
style = MaterialTheme.typography.titleMedium,
261+
color = Color.DarkGray,
256262
modifier = Modifier
257-
.padding(4.dp)
263+
.padding(4.dp),
264+
style = MaterialTheme.typography.bodySmall,
265+
textColor = Color.White
258266
)
259267

260268
Text(
261269
text = transfer.progress,
262-
style = MaterialTheme.typography.titleMedium,
270+
style = MaterialTheme.typography.titleSmall,
263271
modifier = Modifier
264-
.weight(1f)
265-
.padding(horizontal = 8.dp)
272+
.padding(horizontal = 4.dp)
266273
)
267274
}
268275
}

shared/src/commonMain/kotlin/uk/co/sentinelweb/cuer/app/ui/filebrowser/transfers/TransfersViewModel.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ class TransfersViewModel(
3636
.map { it.copy(validation = it.selectedTransfer?.let { transferValidator.validate(it) }) }
3737
.map { mapper.map(it) }
3838

39+
private val selectedTransfer: TransferDomain?
40+
get() = _stateObservable.value.selectedTransfer
41+
3942
private val log: LogWrapper by createLogger()
4043

4144
override val effects: Flow<Effect>
@@ -60,7 +63,11 @@ class TransfersViewModel(
6063
}
6164

6265
override fun onBackClick() {
63-
_effects.emit(Effect.Back, viewModelScope)
66+
if (selectedTransfer != null) {
67+
onSelectTransfer(null)
68+
} else {
69+
_effects.emit(Effect.Back, viewModelScope)
70+
}
6471
}
6572

6673
override fun onDelete(id: OrchestratorContract.Identifier<GUID>?) {

shared/src/commonMain/kotlin/uk/co/sentinelweb/cuer/app/ui/remotes/RemotesStoreFactory.kt

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -105,15 +105,15 @@ class RemotesStoreFactory(
105105
is Intent.RemoteDelete -> deleteRemote(intent)
106106
is Intent.RemoteSync -> syncRemote(intent)
107107
is Intent.RemotePlaylists -> getRemotePlaylists(intent)
108-
is Intent.RemoteFolders -> getRemoteFolders(intent)
108+
is Intent.RemoteFolders -> gotoRemoteFolders(intent)
109109
is Intent.LocalUpdate -> dispatch(Result.UpdateServerState)
110110
is Intent.CuerConnect -> cuerConnect(intent)
111111
is Intent.CuerConnectScreen -> cuerConnectScreen(intent)
112112
is Intent.ActionSendTo -> sendTo(intent)
113113
is Intent.ActionSendToSelected -> sendToSelected(intent)
114114
is Intent.EditAddress -> editAddress(intent)
115-
Intent.ActionFolders -> publish(Label.ActionLocalFolders)
116-
Intent.ActionTransfers -> publish(Label.ActionTransfers)
115+
Intent.ActionFolders -> gotoLocalFolders()
116+
Intent.ActionTransfers -> gotoTransfers()
117117
}
118118

119119
private fun editAddress(intent: Intent.EditAddress) {
@@ -257,10 +257,21 @@ class RemotesStoreFactory(
257257
}
258258
}
259259

260-
private fun getRemoteFolders(intent: Intent.RemoteFolders) {
260+
private fun gotoRemoteFolders(intent: Intent.RemoteFolders) {
261261
intent.remote
262-
.run { publish(Label.ActionFolders(this)) }
263-
.run { publish(Label.None) } // stops label re-firing on back from folders
262+
.apply { publish(Label.ActionFolders(this)) }
263+
.also { publish(Label.None) } // stops label re-firing on back from folders
264+
}
265+
266+
private fun gotoLocalFolders() {
267+
publish(Label.ActionLocalFolders)
268+
.also { publish(Label.None) } // stops label re-firing on back from folders
269+
}
270+
271+
private fun gotoTransfers() {
272+
log.d("gotoTransfers")
273+
publish(Label.ActionTransfers)
274+
.also { publish(Label.None) } // stops label re-firing on back from folders
264275
}
265276
}
266277

0 commit comments

Comments
 (0)