Skip to content

Commit efcf788

Browse files
sentinelwebsentinelweb
authored andcommitted
#496 - save state in argument for filebrowser
1 parent ed6a8fc commit efcf788

File tree

12 files changed

+154
-74
lines changed

12 files changed

+154
-74
lines changed

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

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,30 @@ class FileBrowserFragment : Fragment(), AndroidScopeComponent {
8686

8787
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
8888
super.onViewCreated(view, savedInstanceState)
89+
90+
8991
binding.composeView.setContent {
9092
FilesComposeables.FileBrowserAppUi(
9193
viewModel = viewModel
9294
)
9395
}
96+
// fixme not working
9497
statusBarColor.setStatusBarColorResource(R.color.black)
98+
log.d("onViewCreated - state: ${savedInstanceState?.getString(STATE_KEY)}")
99+
// bit hacky stores the state in args (saveState Not called?)
100+
arguments
101+
?.getString(STATE_KEY, null)
102+
?.let { serializedState -> viewModel.onRestoreState(serializedState) }
103+
?: savedInstanceState
104+
?.getString(STATE_KEY)
105+
?.let { serializedState -> viewModel.onRestoreState(serializedState) }
106+
?: run {
107+
log.d("onViewCreated - remoteIdArg: $remoteIdArg, filePathArg: $filePathArg")
108+
remoteIdArg?.apply { viewModel.init(this, filePathArg) }
109+
}
110+
95111
bindFlow(viewModel.effects, ::observeLabels)
96-
remoteIdArg?.apply { viewModel.init(this, filePathArg) }
112+
97113
}
98114

99115
private fun observeLabels(label: Effect) {
@@ -138,12 +154,28 @@ class FileBrowserFragment : Fragment(), AndroidScopeComponent {
138154
// controller.onRefresh()
139155
}
140156

157+
override fun onStop() {
158+
super.onStop()
159+
160+
arguments?.putString(STATE_KEY, viewModel.onSaveState())
161+
}
162+
141163
override fun onDestroyView() {
142164
_binding = null
143165
super.onDestroyView()
144166
}
145167

168+
override fun onSaveInstanceState(outState: Bundle) {
169+
super.onSaveInstanceState(outState)
170+
val serializedState = viewModel.onSaveState()
171+
log.d("savestate: $serializedState")
172+
outState.putString(STATE_KEY, serializedState)
173+
}
174+
175+
146176
companion object {
177+
private const val STATE_KEY = "file_browser_state"
178+
147179
@JvmStatic
148180
val fragmentModule = module {
149181
scope(named<FileBrowserFragment>()) {

app/src/main/java/uk/co/sentinelweb/cuer/app/ui/playlist_edit/PlaylistEditViewModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -317,10 +317,10 @@ class PlaylistEditViewModel constructor(
317317
}
318318

319319
fun serializeState(): String =
320-
domainJsonSerializer.encodeToString(PlaylistEditContract.State.serializer(), state)
320+
domainJson.encodeToString(PlaylistEditContract.State.serializer(), state)
321321

322322
fun restoreState(s: String) {
323-
domainJsonSerializer.decodeFromString(PlaylistEditContract.State.serializer(), s)
323+
domainJson.decodeFromString(PlaylistEditContract.State.serializer(), s)
324324
.also { restored ->
325325
state.apply {
326326
isCreate = restored.isCreate

app/src/main/java/uk/co/sentinelweb/cuer/app/ui/playlist_item_edit/PlaylistItemEditViewModel.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ import uk.co.sentinelweb.cuer.core.wrapper.LogWrapper
4545
import uk.co.sentinelweb.cuer.domain.*
4646
import uk.co.sentinelweb.cuer.domain.creator.PlaylistItemCreator
4747
import uk.co.sentinelweb.cuer.domain.ext.deserialiseGuidIdentifier
48-
import uk.co.sentinelweb.cuer.domain.ext.domainJsonSerializer
48+
import uk.co.sentinelweb.cuer.domain.ext.domainJson
4949
import uk.co.sentinelweb.cuer.domain.mappers.PlaylistAndItemMapper
5050

5151

@@ -517,10 +517,10 @@ class PlaylistItemEditViewModel constructor(
517517
}
518518

519519
fun serializeState(): String =
520-
domainJsonSerializer.encodeToString(PlaylistItemEditContract.State.serializer(), state)
520+
domainJson.encodeToString(PlaylistItemEditContract.State.serializer(), state)
521521

522522
fun restoreState(s: String) {
523-
domainJsonSerializer.decodeFromString(PlaylistItemEditContract.State.serializer(), s)
523+
domainJson.decodeFromString(PlaylistItemEditContract.State.serializer(), s)
524524
.also { restored ->
525525
state.apply {
526526
media = restored.media

app/src/main/java/uk/co/sentinelweb/cuer/app/ui/share/SharePresenter.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import uk.co.sentinelweb.cuer.core.providers.TimeProvider
2424
import uk.co.sentinelweb.cuer.core.wrapper.LogWrapper
2525
import uk.co.sentinelweb.cuer.domain.*
2626
import uk.co.sentinelweb.cuer.domain.ObjectTypeDomain.*
27-
import uk.co.sentinelweb.cuer.domain.ext.domainJsonSerializer
27+
import uk.co.sentinelweb.cuer.domain.ext.domainJson
2828

2929
class SharePresenter constructor(
3030
private val view: ShareContract.View,
@@ -172,10 +172,10 @@ class SharePresenter constructor(
172172
}
173173

174174
override fun serializeState(): String =
175-
domainJsonSerializer.encodeToString(ShareContract.State.serializer(), state)
175+
domainJson.encodeToString(ShareContract.State.serializer(), state)
176176

177177
override fun restoreState(s: String) {
178-
domainJsonSerializer.decodeFromString(ShareContract.State.serializer(), s)
178+
domainJson.decodeFromString(ShareContract.State.serializer(), s)
179179
.apply {
180180
state.parentPlaylistId = parentPlaylistId
181181
state.ready = ready
@@ -274,4 +274,4 @@ class SharePresenter constructor(
274274
data.get(0)
275275
.let { it.playlistId!! to it.id }
276276

277-
}
277+
}

domain/src/commonMain/kotlin/uk/co/sentinelweb/cuer/domain/ext/SerializationExt.kt

Lines changed: 54 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -21,129 +21,129 @@ import uk.co.sentinelweb.cuer.domain.system.ResponseDomain
2121
import uk.co.sentinelweb.cuer.remote.server.messageSerializersModule
2222

2323
// channel
24-
fun ChannelDomain.serialise() = domainJsonSerializer.encodeToString(ChannelDomain.serializer(), this)
24+
fun ChannelDomain.serialise() = domainJson.encodeToString(ChannelDomain.serializer(), this)
2525

26-
fun deserialiseChannel(input: String) = domainJsonSerializer.decodeFromString(ChannelDomain.serializer(), input)
26+
fun deserialiseChannel(input: String) = domainJson.decodeFromString(ChannelDomain.serializer(), input)
2727

2828
// media
29-
fun MediaDomain.serialise() = domainJsonSerializer.encodeToString(MediaDomain.serializer(), this)
29+
fun MediaDomain.serialise() = domainJson.encodeToString(MediaDomain.serializer(), this)
3030

3131
fun List<MediaDomain>.serialiseMedias() =
32-
domainJsonSerializer.encodeToString(ListSerializer(MediaDomain.serializer()), this)
32+
domainJson.encodeToString(ListSerializer(MediaDomain.serializer()), this)
3333

34-
fun deserialiseMedia(input: String) = domainJsonSerializer.decodeFromString(MediaDomain.serializer(), input)
34+
fun deserialiseMedia(input: String) = domainJson.decodeFromString(MediaDomain.serializer(), input)
3535

36-
fun deserialiseMediaList(input: String) = domainJsonSerializer.decodeFromString(MediaDomain.serializer(), input)
36+
fun deserialiseMediaList(input: String) = domainJson.decodeFromString(MediaDomain.serializer(), input)
3737

3838
// playlist
39-
fun PlaylistDomain.serialise() = domainJsonSerializer.encodeToString(
39+
fun PlaylistDomain.serialise() = domainJson.encodeToString(
4040
PlaylistDomain.serializer(), this
4141
)
4242

4343
fun List<PlaylistDomain>.serialisePlaylists() =
44-
domainJsonSerializer.encodeToString(ListSerializer(PlaylistDomain.serializer()), this)
44+
domainJson.encodeToString(ListSerializer(PlaylistDomain.serializer()), this)
4545

4646
fun PlaylistDomain.PlaylistConfigDomain.serialise() =
47-
domainJsonSerializer.encodeToString(PlaylistDomain.PlaylistConfigDomain.serializer(), this)
47+
domainJson.encodeToString(PlaylistDomain.PlaylistConfigDomain.serializer(), this)
4848

49-
fun deserialisePlaylist(input: String) = domainJsonSerializer.decodeFromString(PlaylistDomain.serializer(), input)
49+
fun deserialisePlaylist(input: String) = domainJson.decodeFromString(PlaylistDomain.serializer(), input)
5050

51-
fun deserialisePlaylistList(input: String) = domainJsonSerializer.decodeFromString(PlaylistDomain.serializer(), input)
51+
fun deserialisePlaylistList(input: String) = domainJson.decodeFromString(PlaylistDomain.serializer(), input)
5252

5353
fun deserialisePlaylistConfig(input: String) =
54-
domainJsonSerializer.decodeFromString(PlaylistDomain.PlaylistConfigDomain.serializer(), input)
54+
domainJson.decodeFromString(PlaylistDomain.PlaylistConfigDomain.serializer(), input)
5555

5656
// playlist item
57-
fun PlaylistItemDomain.serialise() = domainJsonSerializer.encodeToString(PlaylistItemDomain.serializer(), this)
57+
fun PlaylistItemDomain.serialise() = domainJson.encodeToString(PlaylistItemDomain.serializer(), this)
5858

5959
fun deserialisePlaylistItem(input: String) =
60-
domainJsonSerializer.decodeFromString(PlaylistItemDomain.serializer(), input)
60+
domainJson.decodeFromString(PlaylistItemDomain.serializer(), input)
6161

6262
// playlist AND item
63-
fun PlaylistAndItemDomain.serialise() = domainJsonSerializer.encodeToString(PlaylistAndItemDomain.serializer(), this)
63+
fun PlaylistAndItemDomain.serialise() = domainJson.encodeToString(PlaylistAndItemDomain.serializer(), this)
6464

6565
fun deserialisePlaylistAndItem(input: String) =
66-
domainJsonSerializer.decodeFromString(PlaylistAndItemDomain.serializer(), input)
66+
domainJson.decodeFromString(PlaylistAndItemDomain.serializer(), input)
6767

6868
// image
69-
fun ImageDomain.serialise() = domainJsonSerializer.encodeToString(ImageDomain.serializer(), this)
69+
fun ImageDomain.serialise() = domainJson.encodeToString(ImageDomain.serializer(), this)
7070

71-
fun deserialiseImage(input: String) = domainJsonSerializer.decodeFromString(ImageDomain.serializer(), input)
71+
fun deserialiseImage(input: String) = domainJson.decodeFromString(ImageDomain.serializer(), input)
7272

7373
/// search
74-
fun SearchLocalDomain.serialise() = domainJsonSerializer.encodeToString(SearchLocalDomain.serializer(), this)
74+
fun SearchLocalDomain.serialise() = domainJson.encodeToString(SearchLocalDomain.serializer(), this)
7575

76-
fun deserialiseSearchLocal(input: String) = domainJsonSerializer.decodeFromString(SearchLocalDomain.serializer(), input)
76+
fun deserialiseSearchLocal(input: String) = domainJson.decodeFromString(SearchLocalDomain.serializer(), input)
7777

78-
fun SearchRemoteDomain.serialise() = domainJsonSerializer.encodeToString(SearchRemoteDomain.serializer(), this)
78+
fun SearchRemoteDomain.serialise() = domainJson.encodeToString(SearchRemoteDomain.serializer(), this)
7979

8080
fun deserialiseSearchRemote(input: String) =
81-
domainJsonSerializer.decodeFromString(SearchRemoteDomain.serializer(), input)
81+
domainJson.decodeFromString(SearchRemoteDomain.serializer(), input)
8282

8383
// category
84-
fun CategoryDomain.serialise() = domainJsonSerializer.encodeToString(CategoryDomain.serializer(), this)
84+
fun CategoryDomain.serialise() = domainJson.encodeToString(CategoryDomain.serializer(), this)
8585

86-
fun Identifier<GUID>.serialise() = domainJsonSerializer.encodeToString(Identifier.serializer(GUID.serializer()), this)
86+
fun Identifier<GUID>.serialise() = domainJson.encodeToString(Identifier.serializer(GUID.serializer()), this)
8787

8888
fun deserialiseGuidIdentifier(input: String) =
89-
domainJsonSerializer.decodeFromString(Identifier.serializer(GUID.serializer()), input)
89+
domainJson.decodeFromString(Identifier.serializer(GUID.serializer()), input)
9090

91-
fun GUID.serialise() = domainJsonSerializer.encodeToString(GUID.serializer(), this)
91+
fun GUID.serialise() = domainJson.encodeToString(GUID.serializer(), this)
9292

93-
fun deserialiseGuid(input: String) = domainJsonSerializer.decodeFromString(GUID.serializer(), input)
93+
fun deserialiseGuid(input: String) = domainJson.decodeFromString(GUID.serializer(), input)
9494

9595
// backup
96-
fun BackupFileModel.serialise() = domainJsonSerializer.encodeToString(BackupFileModel.serializer(), this)
96+
fun BackupFileModel.serialise() = domainJson.encodeToString(BackupFileModel.serializer(), this)
9797

9898
fun deserialiseBackupFileModel(input: String) =
99-
domainJsonSerializer.decodeFromString(BackupFileModel.serializer(), input)
99+
domainJson.decodeFromString(BackupFileModel.serializer(), input)
100100

101101
// response
102-
fun ResponseDomain.serialise() = domainJsonSerializer.encodeToString(ResponseDomain.serializer(), this)
103-
fun RequestDomain.serialise() = domainJsonSerializer.encodeToString(RequestDomain.serializer(), this)
102+
fun ResponseDomain.serialise() = domainJson.encodeToString(ResponseDomain.serializer(), this)
103+
fun RequestDomain.serialise() = domainJson.encodeToString(RequestDomain.serializer(), this)
104104

105-
fun deserialiseResponse(input: String) = domainJsonSerializer.decodeFromString(ResponseDomain.serializer(), input)
105+
fun deserialiseResponse(input: String) = domainJson.decodeFromString(ResponseDomain.serializer(), input)
106106

107-
fun deserialiseCategory(input: String) = domainJsonSerializer.decodeFromString(CategoryDomain.serializer(), input)
107+
fun deserialiseCategory(input: String) = domainJson.decodeFromString(CategoryDomain.serializer(), input)
108108

109109
// AppDetailsDomain
110110
fun List<AppDetailsDomain>.serialiseAppList() =
111-
domainJsonSerializer.encodeToString(ListSerializer(AppDetailsDomain.serializer()), this)
111+
domainJson.encodeToString(ListSerializer(AppDetailsDomain.serializer()), this)
112112

113113
fun deserialiseAppList(input: String) =
114-
domainJsonSerializer.decodeFromString(ListSerializer(AppDetailsDomain.serializer()), input)
114+
domainJson.decodeFromString(ListSerializer(AppDetailsDomain.serializer()), input)
115115

116116
// LocalNodeDomain
117-
fun LocalNodeDomain.serialise() = domainJsonSerializer.encodeToString(LocalNodeDomain.serializer(), this)
118-
fun deserialiseLocalNode(input: String) = domainJsonSerializer.decodeFromString(LocalNodeDomain.serializer(), input)
117+
fun LocalNodeDomain.serialise() = domainJson.encodeToString(LocalNodeDomain.serializer(), this)
118+
fun deserialiseLocalNode(input: String) = domainJson.decodeFromString(LocalNodeDomain.serializer(), input)
119119

120120
// RemoteNodeDomain
121-
fun RemoteNodeDomain.serialise() = domainJsonSerializer.encodeToString(RemoteNodeDomain.serializer(), this)
122-
fun deserialiseRemoteNode(input: String) = domainJsonSerializer.decodeFromString(RemoteNodeDomain.serializer(), input)
121+
fun RemoteNodeDomain.serialise() = domainJson.encodeToString(RemoteNodeDomain.serializer(), this)
122+
fun deserialiseRemoteNode(input: String) = domainJson.decodeFromString(RemoteNodeDomain.serializer(), input)
123123

124-
fun PlayerNodeDomain.serialise() = domainJsonSerializer.encodeToString(PlayerNodeDomain.serializer(), this)
125-
fun deserialisePlayerNode(input: String) = domainJsonSerializer.decodeFromString(PlayerNodeDomain.serializer(), input)
124+
fun PlayerNodeDomain.serialise() = domainJson.encodeToString(PlayerNodeDomain.serializer(), this)
125+
fun deserialisePlayerNode(input: String) = domainJson.decodeFromString(PlayerNodeDomain.serializer(), input)
126126

127-
fun TransferDomain.serialise() = domainJsonSerializer.encodeToString(TransferDomain.serializer(), this)
128-
fun deserialiseTransfer(input: String) = domainJsonSerializer.decodeFromString(TransferDomain.serializer(), input)
127+
fun TransferDomain.serialise() = domainJson.encodeToString(TransferDomain.serializer(), this)
128+
fun deserialiseTransfer(input: String) = domainJson.decodeFromString(TransferDomain.serializer(), input)
129129

130130
fun List<TransferDomain>.serialiseTransferList() =
131-
domainJsonSerializer.encodeToString(ListSerializer(TransferDomain.serializer()), this)
131+
domainJson.encodeToString(ListSerializer(TransferDomain.serializer()), this)
132132

133133
fun deserialiseTransferList(input: String) =
134-
domainJsonSerializer.decodeFromString(ListSerializer(TransferDomain.serializer()), input)
134+
domainJson.decodeFromString(ListSerializer(TransferDomain.serializer()), input)
135135

136-
fun AddressDomain.serialise() = domainJsonSerializer.encodeToString(AddressDomain.serializer(), this)
137-
fun deserialiseAddress(input: String) = domainJsonSerializer.decodeFromString(AddressDomain.serializer(), input)
136+
fun AddressDomain.serialise() = domainJson.encodeToString(AddressDomain.serializer(), this)
137+
fun deserialiseAddress(input: String) = domainJson.decodeFromString(AddressDomain.serializer(), input)
138138

139139
fun List<RemoteNodeDomain>.serialiseRemoteList() =
140-
domainJsonSerializer.encodeToString(ListSerializer(RemoteNodeDomain.serializer()), this)
140+
domainJson.encodeToString(ListSerializer(RemoteNodeDomain.serializer()), this)
141141

142142
fun deserialiseRemoteNodeList(input: String) =
143-
domainJsonSerializer.decodeFromString(ListSerializer(RemoteNodeDomain.serializer()), input)
143+
domainJson.decodeFromString(ListSerializer(RemoteNodeDomain.serializer()), input)
144144

145145
fun deserialisePlaylistAndSubs(input: String) =
146-
domainJsonSerializer.decodeFromString(ListSerializer(PlaylistAndChildrenDomain.serializer()), input)
146+
domainJson.decodeFromString(ListSerializer(PlaylistAndChildrenDomain.serializer()), input)
147147

148148
val domainClassDiscriminator = "domainType"
149149
val domainSerializersModule = SerializersModule {
@@ -211,20 +211,21 @@ val domainSerializersModule = SerializersModule {
211211
contextual(LocalDateTime::class, LocalDateTimeIso8601Serializer)
212212
})
213213

214-
val domainJsonSerializer = Json {
214+
val domainJson = Json {
215215
prettyPrint = true
216216
isLenient = true
217217
ignoreUnknownKeys = true
218218
classDiscriminator = domainClassDiscriminator
219219
serializersModule = domainSerializersModule
220220
}
221221

222-
val domainMessageJsonSerializer = Json {
222+
val domainMessageJson = Json {
223223
prettyPrint = true
224224
isLenient = true
225225
ignoreUnknownKeys = true
226226
classDiscriminator = domainClassDiscriminator//"classTypeDiscriminator"
227-
serializersModule = domainSerializersModule.plus(messageSerializersModule)
227+
serializersModule = domainSerializersModule
228+
.plus(messageSerializersModule)
228229
}
229230

230231

net/src/commonMain/kotlin/uk/co/sentinelweb/cuer/net/client/KtorClientBuilder.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import io.ktor.client.plugins.contentnegotiation.*
77
import io.ktor.client.plugins.logging.*
88
import io.ktor.serialization.kotlinx.json.*
99
import uk.co.sentinelweb.cuer.core.wrapper.LogWrapper
10-
import uk.co.sentinelweb.cuer.domain.ext.domainMessageJsonSerializer
10+
import uk.co.sentinelweb.cuer.domain.ext.domainMessageJson
1111
import uk.co.sentinelweb.cuer.net.NetModuleConfig
1212

1313
expect val defaultPlatformEngine: HttpClientEngine
@@ -17,7 +17,7 @@ class KtorClientBuilder {
1717
fun build(config: NetModuleConfig, log: LogWrapper) = HttpClient(defaultPlatformEngine) {
1818
expectSuccess = false
1919
install(ContentNegotiation) {
20-
json(domainMessageJsonSerializer)
20+
json(domainMessageJson)
2121
}
2222
install(HttpTimeout) {
2323
this.connectTimeoutMillis = config.timeoutMs
@@ -35,4 +35,4 @@ class KtorClientBuilder {
3535
}
3636
}
3737
}
38-
}
38+
}

remote/src/jvmAndAndroid/kotlin/uk/co/sentinelweb/cuer/remote/server/JvmRemoteWebServer.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import org.koin.core.component.KoinComponent
1515
import org.koin.core.component.inject
1616
import org.slf4j.event.Level
1717
import uk.co.sentinelweb.cuer.core.wrapper.LogWrapper
18-
import uk.co.sentinelweb.cuer.domain.ext.domainMessageJsonSerializer
18+
import uk.co.sentinelweb.cuer.domain.ext.domainMessageJson
1919
import uk.co.sentinelweb.cuer.remote.server.controller.*
2020
import java.util.*
2121

@@ -61,7 +61,7 @@ class JvmRemoteWebServer(
6161
private fun buildServer(): ApplicationEngine =
6262
embeddedServer(CIO, port) {
6363
install(ContentNegotiation) {
64-
json(domainMessageJsonSerializer)
64+
json(domainMessageJson)
6565
}
6666
install(CORS) {
6767
allowMethod(HttpMethod.Get)

shared/src/commonMain/kotlin/uk/co/sentinelweb/cuer/app/service/transfers/JsonFileTransfersDataStore.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import uk.co.sentinelweb.cuer.app.db.repository.file.AFile
55
import uk.co.sentinelweb.cuer.app.db.repository.file.PlatformFileOperation
66
import uk.co.sentinelweb.cuer.app.ui.filebrowser.transfers.TransfersContract
77
import uk.co.sentinelweb.cuer.core.wrapper.LogWrapper
8-
import uk.co.sentinelweb.cuer.domain.ext.domainJsonSerializer
8+
import uk.co.sentinelweb.cuer.domain.ext.domainJson
99

1010
class JsonFileTransfersDataStore(
1111
private val file: AFile,
@@ -24,7 +24,7 @@ class JsonFileTransfersDataStore(
2424
return try {
2525
fileOperations.readBytes(file)
2626
.decodeToString()
27-
.let { jsonString -> domainJsonSerializer.decodeFromString<TransfersContract.Service.State>(jsonString) }
27+
.let { jsonString -> domainJson.decodeFromString<TransfersContract.Service.State>(jsonString) }
2828
.also { state = it }
2929
} catch (e: Exception) {
3030
log.e("Couldn't load state: ${e.message}")
@@ -35,7 +35,7 @@ class JsonFileTransfersDataStore(
3535
override fun save(state: TransfersContract.Service.State) {
3636
if (this.state != state) {
3737
log.d("save transfers state")
38-
val jsonString = domainJsonSerializer.encodeToString(state)
38+
val jsonString = domainJson.encodeToString(state)
3939
fileOperations.writeBytes(file, jsonString.toByteArray(Charset.forName("UTF-8")))
4040
this.state = state
4141
}

0 commit comments

Comments
 (0)