make the error reporting at ics file importing more verbose
This commit is contained in:
parent
d62e565874
commit
929dbf6e60
|
@ -264,7 +264,7 @@ class MainActivity : SimpleActivity(), NavigationListener {
|
||||||
val eventType = EventType(0, holidays, config.primaryColor)
|
val eventType = EventType(0, holidays, config.primaryColor)
|
||||||
eventTypeId = dbHelper.insertEventType(eventType)
|
eventTypeId = dbHelper.insertEventType(eventType)
|
||||||
}
|
}
|
||||||
val result = IcsImporter().importEvents(applicationContext, it as String, eventTypeId)
|
val result = IcsImporter().importEvents(this, it as String, eventTypeId)
|
||||||
handleParseResult(result)
|
handleParseResult(result)
|
||||||
}).start()
|
}).start()
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package com.simplemobiletools.calendar.dialogs
|
package com.simplemobiletools.calendar.dialogs
|
||||||
|
|
||||||
import android.app.Activity
|
|
||||||
import android.support.v7.app.AlertDialog
|
import android.support.v7.app.AlertDialog
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import com.simplemobiletools.calendar.R
|
import com.simplemobiletools.calendar.R
|
||||||
|
import com.simplemobiletools.calendar.activities.SimpleActivity
|
||||||
import com.simplemobiletools.calendar.extensions.config
|
import com.simplemobiletools.calendar.extensions.config
|
||||||
import com.simplemobiletools.calendar.extensions.dbHelper
|
import com.simplemobiletools.calendar.extensions.dbHelper
|
||||||
import com.simplemobiletools.calendar.helpers.DBHelper
|
import com.simplemobiletools.calendar.helpers.DBHelper
|
||||||
|
@ -14,7 +14,7 @@ import com.simplemobiletools.commons.extensions.setupDialogStuff
|
||||||
import com.simplemobiletools.commons.extensions.toast
|
import com.simplemobiletools.commons.extensions.toast
|
||||||
import kotlinx.android.synthetic.main.dialog_import_events.view.*
|
import kotlinx.android.synthetic.main.dialog_import_events.view.*
|
||||||
|
|
||||||
class ImportEventsDialog(val activity: Activity, val path: String, val callback: (refreshView: Boolean) -> Unit) : AlertDialog.Builder(activity) {
|
class ImportEventsDialog(val activity: SimpleActivity, val path: String, val callback: (refreshView: Boolean) -> Unit) : AlertDialog.Builder(activity) {
|
||||||
var currEventTypeId = DBHelper.REGULAR_EVENT_TYPE_ID
|
var currEventTypeId = DBHelper.REGULAR_EVENT_TYPE_ID
|
||||||
|
|
||||||
init {
|
init {
|
||||||
|
@ -36,7 +36,7 @@ class ImportEventsDialog(val activity: Activity, val path: String, val callback:
|
||||||
getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener({
|
getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener({
|
||||||
activity.toast(R.string.importing)
|
activity.toast(R.string.importing)
|
||||||
Thread({
|
Thread({
|
||||||
val result = IcsImporter().importEvents(context, path, currEventTypeId)
|
val result = IcsImporter().importEvents(activity, path, currEventTypeId)
|
||||||
handleParseResult(result)
|
handleParseResult(result)
|
||||||
dismiss()
|
dismiss()
|
||||||
}).start()
|
}).start()
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
package com.simplemobiletools.calendar.helpers
|
package com.simplemobiletools.calendar.helpers
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.widget.Toast
|
||||||
import com.simplemobiletools.calendar.R
|
import com.simplemobiletools.calendar.R
|
||||||
|
import com.simplemobiletools.calendar.activities.SimpleActivity
|
||||||
import com.simplemobiletools.calendar.extensions.dbHelper
|
import com.simplemobiletools.calendar.extensions.dbHelper
|
||||||
import com.simplemobiletools.calendar.helpers.IcsImporter.ImportResult.*
|
import com.simplemobiletools.calendar.helpers.IcsImporter.ImportResult.*
|
||||||
import com.simplemobiletools.calendar.models.Event
|
import com.simplemobiletools.calendar.models.Event
|
||||||
import com.simplemobiletools.calendar.models.EventType
|
import com.simplemobiletools.calendar.models.EventType
|
||||||
|
import com.simplemobiletools.commons.extensions.showErrorToast
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
class IcsImporter {
|
class IcsImporter {
|
||||||
|
@ -32,15 +35,15 @@ class IcsImporter {
|
||||||
var eventsImported = 0
|
var eventsImported = 0
|
||||||
var eventsFailed = 0
|
var eventsFailed = 0
|
||||||
|
|
||||||
fun importEvents(context: Context, path: String, defaultEventType: Int): ImportResult {
|
fun importEvents(activity: SimpleActivity, path: String, defaultEventType: Int): ImportResult {
|
||||||
try {
|
try {
|
||||||
val importIDs = context.dbHelper.getImportIds()
|
val importIDs = activity.dbHelper.getImportIds()
|
||||||
var prevLine = ""
|
var prevLine = ""
|
||||||
|
|
||||||
val inputStream = if (path.contains("/")) {
|
val inputStream = if (path.contains("/")) {
|
||||||
File(path).inputStream()
|
File(path).inputStream()
|
||||||
} else {
|
} else {
|
||||||
context.assets.open(path)
|
activity.assets.open(path)
|
||||||
}
|
}
|
||||||
|
|
||||||
inputStream.bufferedReader().use {
|
inputStream.bufferedReader().use {
|
||||||
|
@ -84,7 +87,7 @@ class IcsImporter {
|
||||||
curReminderMinutes.add(Parser().parseDurationSeconds(line.substring(TRIGGER.length)) / 60)
|
curReminderMinutes.add(Parser().parseDurationSeconds(line.substring(TRIGGER.length)) / 60)
|
||||||
} else if (line.startsWith(CATEGORIES)) {
|
} else if (line.startsWith(CATEGORIES)) {
|
||||||
val categories = line.substring(CATEGORIES.length)
|
val categories = line.substring(CATEGORIES.length)
|
||||||
tryAddCategories(categories, context)
|
tryAddCategories(categories, activity)
|
||||||
} else if (line.startsWith(LAST_MODIFIED)) {
|
} else if (line.startsWith(LAST_MODIFIED)) {
|
||||||
curLastModified = getTimestamp(line.substring(LAST_MODIFIED.length)) * 1000L
|
curLastModified = getTimestamp(line.substring(LAST_MODIFIED.length)) * 1000L
|
||||||
} else if (line.startsWith(EXDATE)) {
|
} else if (line.startsWith(EXDATE)) {
|
||||||
|
@ -105,9 +108,9 @@ class IcsImporter {
|
||||||
event.endTS -= DAY
|
event.endTS -= DAY
|
||||||
}
|
}
|
||||||
|
|
||||||
context.dbHelper.insert(event, true) {
|
activity.dbHelper.insert(event, true) {
|
||||||
for (exceptionTS in curRepeatExceptions) {
|
for (exceptionTS in curRepeatExceptions) {
|
||||||
context.dbHelper.addEventRepeatException(it, exceptionTS)
|
activity.dbHelper.addEventRepeatException(it, exceptionTS)
|
||||||
}
|
}
|
||||||
eventsImported++
|
eventsImported++
|
||||||
resetValues()
|
resetValues()
|
||||||
|
@ -117,6 +120,7 @@ class IcsImporter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
activity.showErrorToast(e.toString(), Toast.LENGTH_LONG)
|
||||||
eventsFailed++
|
eventsFailed++
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue