implement the database exporting functionality

This commit is contained in:
tibbi 2017-02-28 19:37:59 +01:00
parent 06e5375882
commit b8c7493beb
17 changed files with 59 additions and 1 deletions

View File

@ -36,6 +36,7 @@ import com.simplemobiletools.commons.helpers.LICENSE_STETHO
import com.simplemobiletools.commons.models.Release
import kotlinx.android.synthetic.main.activity_main.*
import org.joda.time.DateTime
import java.io.*
import java.util.*
class MainActivity : SimpleActivity(), NavigationListener {
@ -238,7 +239,49 @@ class MainActivity : SimpleActivity(), NavigationListener {
}
private fun exportDatabase() {
FilePickerDialog(this, pickFile = false) {
val source = getDatabasePath(DBHelper.DB_NAME)
val destination = File(it, DBHelper.DB_NAME)
if (isShowingPermDialog(destination)) {
return@FilePickerDialog
}
Thread({
if (source.exists()) {
val inputStream = FileInputStream(source)
val outputStream: OutputStream?
if (needsStupidWritePermissions(destination.absolutePath)) {
var document = getFileDocument(destination.absolutePath, config.treeUri)
if (!destination.exists()) {
document = document.createFile("", destination.name)
}
outputStream = contentResolver.openOutputStream(document.uri)
} else {
outputStream = FileOutputStream(destination)
}
copyStream(inputStream, outputStream)
inputStream.close()
outputStream?.close()
runOnUiThread {
toast(R.string.database_exported_successfully)
}
}
}).start()
}
}
private fun copyStream(inputStream: InputStream, out: OutputStream?) {
val buf = ByteArray(1024)
var len: Int
while (true) {
len = inputStream.read(buf)
if (len <= 0)
break
out?.write(buf, 0, len)
}
}
private fun launchSettings() {

View File

@ -49,8 +49,8 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
private val mDb: SQLiteDatabase = writableDatabase
companion object {
private val DB_NAME = "events.db"
private val DB_VERSION = 7
val DB_NAME = "events.db"
val REGULAR_EVENT_ID = 1
private var mEventsListener: EventUpdateListener? = null

View File

@ -97,6 +97,7 @@
<string name="importing_some_events_failed">Importing some events failed</string>
<string name="invalid_file_format">Invalid file format</string>
<string name="export_raw_database">Export raw database</string>
<string name="database_exported_successfully">Database exported successfully</string>
<!-- Event details -->
<string name="title">Título</string>

View File

@ -97,6 +97,7 @@
<string name="importing_some_events_failed">einige Termine wurden nicht erfolgreich importiert</string>
<string name="invalid_file_format">ungültiges Dateiformat</string>
<string name="export_raw_database">Export raw database</string>
<string name="database_exported_successfully">Database exported successfully</string>
<!-- Event details -->
<string name="title">Titel</string>

View File

@ -97,6 +97,7 @@
<string name="importing_some_events_failed">Importing some events failed</string>
<string name="invalid_file_format">Invalid file format</string>
<string name="export_raw_database">Export raw database</string>
<string name="database_exported_successfully">Database exported successfully</string>
<!-- Event details -->
<string name="title">Título</string>

View File

@ -97,6 +97,7 @@
<string name="importing_some_events_failed">Importing some events failed</string>
<string name="invalid_file_format">Invalid file format</string>
<string name="export_raw_database">Export raw database</string>
<string name="database_exported_successfully">Database exported successfully</string>
<!-- Event details -->
<string name="title">Titre</string>

View File

@ -97,6 +97,7 @@
<string name="importing_some_events_failed">Importing some events failed</string>
<string name="invalid_file_format">Invalid file format</string>
<string name="export_raw_database">Export raw database</string>
<string name="database_exported_successfully">Database exported successfully</string>
<!-- Event details -->
<string name="title">Título</string>

View File

@ -97,6 +97,7 @@
<string name="importing_some_events_failed">Importing some events failed</string>
<string name="invalid_file_format">Invalid file format</string>
<string name="export_raw_database">Export raw database</string>
<string name="database_exported_successfully">Database exported successfully</string>
<!-- Event details -->
<string name="title">शीर्षक</string>

View File

@ -97,6 +97,7 @@
<string name="importing_some_events_failed">Importing some events failed</string>
<string name="invalid_file_format">Invalid file format</string>
<string name="export_raw_database">Export raw database</string>
<string name="database_exported_successfully">Database exported successfully</string>
<!-- Event details -->
<string name="title">Név</string>

View File

@ -97,6 +97,7 @@
<string name="importing_some_events_failed">Importing some events failed</string>
<string name="invalid_file_format">Invalid file format</string>
<string name="export_raw_database">Export raw database</string>
<string name="database_exported_successfully">Database exported successfully</string>
<!-- Event details -->
<string name="title">Titolo</string>

View File

@ -97,6 +97,7 @@
<string name="importing_some_events_failed">Importing some events failed</string>
<string name="invalid_file_format">Invalid file format</string>
<string name="export_raw_database">Export raw database</string>
<string name="database_exported_successfully">Database exported successfully</string>
<!-- Event details -->
<string name="title">כותרת</string>

View File

@ -97,6 +97,7 @@
<string name="importing_some_events_failed">Importing some events failed</string>
<string name="invalid_file_format">Invalid file format</string>
<string name="export_raw_database">Export raw database</string>
<string name="database_exported_successfully">Database exported successfully</string>
<!-- Event details -->
<string name="title">タイトル</string>

View File

@ -97,6 +97,7 @@
<string name="importing_some_events_failed">Alguns eventos não foram importados</string>
<string name="invalid_file_format">Formato de ficheiro inválido</string>
<string name="export_raw_database">Export raw database</string>
<string name="database_exported_successfully">Database exported successfully</string>
<!-- Event details -->
<string name="title">Título</string>

View File

@ -97,6 +97,7 @@
<string name="importing_some_events_failed">Ошибка импорта</string>
<string name="invalid_file_format">Неправильный формат файла</string>
<string name="export_raw_database">Export raw database</string>
<string name="database_exported_successfully">Database exported successfully</string>
<!-- Event details -->
<string name="title">Заголовок</string>

View File

@ -104,6 +104,7 @@
<string name="importing_some_events_failed">Importovanie niektorých udalostí zlyhalo</string>
<string name="invalid_file_format">Nesprávny formát súboru</string>
<string name="export_raw_database">Exportovať surovú databázu</string>
<string name="database_exported_successfully">Databáza bola úspešne exportovaná</string>
<!-- Event details -->
<string name="title">Názov</string>

View File

@ -97,6 +97,7 @@
<string name="importing_some_events_failed">Importing some events failed</string>
<string name="invalid_file_format">Invalid file format</string>
<string name="export_raw_database">Export raw database</string>
<string name="database_exported_successfully">Database exported successfully</string>
<!-- Event details -->
<string name="title">Titel</string>

View File

@ -97,6 +97,7 @@
<string name="importing_some_events_failed">Importing some events failed</string>
<string name="invalid_file_format">Invalid file format</string>
<string name="export_raw_database">Export raw database</string>
<string name="database_exported_successfully">Database exported successfully</string>
<!-- Event details -->
<string name="title">Title</string>