@@ -15,8 +15,10 @@ import kotlinx.serialization.SerialName
15
15
import kotlinx.serialization.Serializable
16
16
import kotlinx.serialization.SerializationException
17
17
import kotlinx.serialization.json.Json
18
- import kotlinx.serialization.json.decodeFromStream
19
18
import kotlinx.serialization.json.encodeToStream
19
+ import kotlinx.serialization.json.okio.decodeFromBufferedSource
20
+ import okio.buffer
21
+ import okio.source
20
22
import org.equeim.tremotesf.common.DefaultTremotesfDispatchers
21
23
import org.equeim.tremotesf.common.TremotesfDispatchers
22
24
import timber.log.Timber
@@ -63,19 +65,21 @@ abstract class Servers(
63
65
@OptIn(ExperimentalSerializationApi ::class )
64
66
private fun load () {
65
67
try {
66
- val (servers, changed) = context.openFileInput(FILE_NAME ).buffered(). use {
67
- json.decodeFromStream (ServersState .serializer(), it)
68
+ val (servers, changed) = context.openFileInput(FILE_NAME ).use {
69
+ json.decodeFromBufferedSource (ServersState .serializer(), it.source().buffer() )
68
70
}.validateLoaded()
69
71
_serversState .value = servers
70
72
if (changed) {
71
73
save()
72
74
}
73
75
} catch (error: FileNotFoundException ) {
74
- Timber .w(error, " Servers file does not exist" )
76
+ Timber .d( " Servers file does not exist" )
75
77
} catch (error: IOException ) {
76
78
Timber .e(error, " Error reading servers file" )
77
79
} catch (error: SerializationException ) {
78
80
Timber .e(error, " Error parsing servers file" )
81
+ } catch (error: Exception ) {
82
+ Timber .e(error, " Unexpected error when parsing error file" )
79
83
}
80
84
}
81
85
0 commit comments