mirror of https://github.com/etesync/android
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
3.0 KiB
91 lines
3.0 KiB
package com.etesync.syncadapter.ui.importlocal
|
|
|
|
import android.app.Dialog
|
|
import android.content.DialogInterface
|
|
import android.os.Bundle
|
|
import androidx.appcompat.app.AlertDialog
|
|
import androidx.fragment.app.DialogFragment
|
|
import com.etesync.syncadapter.R
|
|
import org.acra.ACRA
|
|
import java.io.Serializable
|
|
|
|
/**
|
|
* Created by tal on 30/03/17.
|
|
*/
|
|
|
|
class ResultFragment : DialogFragment() {
|
|
private var result: ImportResult? = null
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
super.onCreate(savedInstanceState)
|
|
|
|
result = arguments!!.getSerializable(KEY_RESULT) as ImportResult
|
|
}
|
|
|
|
override fun onDismiss(dialog: DialogInterface) {
|
|
super.onDismiss(dialog)
|
|
val activity = activity
|
|
if (activity is DialogInterface) {
|
|
(activity as DialogInterface).dismiss()
|
|
}
|
|
}
|
|
|
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
|
if (result!!.isFailed) {
|
|
return AlertDialog.Builder(activity!!)
|
|
.setTitle(R.string.import_dialog_failed_title)
|
|
.setIcon(R.drawable.ic_error_dark)
|
|
.setMessage(getString(R.string.import_dialog_failed_body, result!!.e!!.localizedMessage))
|
|
.setNegativeButton(android.R.string.no) { dialog, which ->
|
|
// dismiss
|
|
}
|
|
.setPositiveButton(android.R.string.yes) { dialog, which ->
|
|
ACRA.getErrorReporter().handleSilentException(result!!.e)
|
|
}
|
|
.create()
|
|
} else {
|
|
return AlertDialog.Builder(activity!!)
|
|
.setTitle(R.string.import_dialog_title)
|
|
.setIcon(R.drawable.ic_import_export_black)
|
|
.setMessage(getString(R.string.import_dialog_success, result!!.total, result!!.added, result!!.updated, result!!.skipped))
|
|
.setPositiveButton(android.R.string.ok) { dialog, which ->
|
|
// dismiss
|
|
}
|
|
.create()
|
|
}
|
|
}
|
|
|
|
class ImportResult : Serializable {
|
|
var total: Long = 0
|
|
var added: Long = 0
|
|
var updated: Long = 0
|
|
var e: Exception? = null
|
|
|
|
val isFailed: Boolean
|
|
get() = e != null
|
|
|
|
val skipped: Long
|
|
get() = total - (added + updated)
|
|
|
|
override fun toString(): String {
|
|
return "ResultFragment.ImportResult(total=" + this.total + ", added=" + this.added + ", updated=" + this.updated + ", e=" + this.e + ")"
|
|
}
|
|
}
|
|
|
|
interface OnImportCallback {
|
|
fun onImportResult(importResult: ImportResult)
|
|
}
|
|
|
|
companion object {
|
|
private val KEY_RESULT = "result"
|
|
|
|
fun newInstance(result: ImportResult): ResultFragment {
|
|
val args = Bundle()
|
|
args.putSerializable(KEY_RESULT, result)
|
|
val fragment = ResultFragment()
|
|
fragment.arguments = args
|
|
return fragment
|
|
}
|
|
}
|
|
}
|