Skip to content

Commit 816d15b

Browse files
authored
Merge pull request #656 from kcotugno/fix-json-import-partial-export
Fix import for partial exports
2 parents abedc2a + e475069 commit 816d15b

File tree

1 file changed

+31
-31
lines changed

1 file changed

+31
-31
lines changed

app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/MessagesImporter.kt

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
package com.simplemobiletools.smsmessenger.helpers
22

33
import android.content.Context
4+
import android.util.JsonToken
45
import com.google.gson.Gson
56
import com.google.gson.reflect.TypeToken
67
import com.simplemobiletools.commons.extensions.showErrorToast
78
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
8-
import com.simplemobiletools.smsmessenger.extensions.*
9-
import com.simplemobiletools.smsmessenger.helpers.MessagesImporter.ImportResult.*
9+
import com.simplemobiletools.smsmessenger.extensions.config
10+
import com.simplemobiletools.smsmessenger.helpers.MessagesImporter.ImportResult.IMPORT_FAIL
11+
import com.simplemobiletools.smsmessenger.helpers.MessagesImporter.ImportResult.IMPORT_NOTHING_NEW
12+
import com.simplemobiletools.smsmessenger.helpers.MessagesImporter.ImportResult.IMPORT_OK
13+
import com.simplemobiletools.smsmessenger.helpers.MessagesImporter.ImportResult.IMPORT_PARTIAL
1014
import com.simplemobiletools.smsmessenger.models.MmsBackup
1115
import com.simplemobiletools.smsmessenger.models.SmsBackup
1216
import java.io.File
@@ -40,43 +44,39 @@ class MessagesImporter(private val context: Context) {
4044
while (jsonReader.hasNext()) {
4145
jsonReader.beginObject()
4246
while (jsonReader.hasNext()) {
43-
if (jsonReader.nextName().equals("sms")) {
44-
if (config.importSms) {
45-
jsonReader.beginArray()
46-
while (jsonReader.hasNext()) {
47-
try {
48-
val message = gson.fromJson<SmsBackup>(jsonReader, smsMessageType)
49-
messageWriter.writeSmsMessage(message)
50-
messagesImported++
51-
} catch (e: Exception) {
52-
context.showErrorToast(e)
53-
messagesFailed++
54-
}
55-
}
56-
jsonReader.endArray()
57-
} else {
47+
val nextToken = jsonReader.peek()
48+
if (nextToken.ordinal == JsonToken.NAME.ordinal) {
49+
val msgType = jsonReader.nextName()
50+
51+
if ((!msgType.equals("sms") && !msgType.equals("mms")) ||
52+
(msgType.equals("sms") && !config.importSms) ||
53+
(msgType.equals("mms") && !config.importMms)
54+
) {
5855
jsonReader.skipValue()
56+
continue
5957
}
60-
}
6158

62-
if (jsonReader.nextName().equals("mms")) {
63-
if (config.importMms) {
64-
jsonReader.beginArray()
65-
66-
while (jsonReader.hasNext()) {
67-
try {
59+
jsonReader.beginArray()
60+
while (jsonReader.hasNext()) {
61+
try {
62+
if (msgType.equals("sms")) {
63+
val message = gson.fromJson<SmsBackup>(jsonReader, smsMessageType)
64+
messageWriter.writeSmsMessage(message)
65+
} else {
6866
val message = gson.fromJson<MmsBackup>(jsonReader, mmsMessageType)
6967
messageWriter.writeMmsMessage(message)
70-
messagesImported++
71-
} catch (e: Exception) {
72-
context.showErrorToast(e)
73-
messagesFailed++
7468
}
69+
70+
messagesImported++
71+
} catch (e: Exception) {
72+
context.showErrorToast(e)
73+
messagesFailed++
74+
7575
}
76-
jsonReader.endArray()
77-
} else {
78-
jsonReader.skipValue()
7976
}
77+
jsonReader.endArray()
78+
} else {
79+
jsonReader.skipValue()
8080
}
8181
}
8282

0 commit comments

Comments
 (0)