From 18d2a4fb139aa784e348d42058c94a13a2d1a4d8 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 13 Apr 2018 10:12:52 +0200 Subject: [PATCH] fix #383, allow exporting files in an SD card --- .../calendar/activities/MainActivity.kt | 3 +-- .../simplemobiletools/calendar/extensions/Activity.kt | 2 +- .../simplemobiletools/calendar/helpers/IcsExporter.kt | 10 ++++++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt index fa577228f..3617d07d5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt @@ -662,8 +662,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener { if (events.isEmpty()) { toast(R.string.no_entries_for_exporting) } else { - toast(R.string.exporting) - IcsExporter().exportEvents(this, file, events as ArrayList) { + IcsExporter().exportEvents(this, file, events as ArrayList, true) { toast(when (it) { IcsExporter.ExportResult.EXPORT_OK -> R.string.exporting_successful IcsExporter.ExportResult.EXPORT_PARTIAL -> R.string.exporting_some_entries_failed diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/Activity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/Activity.kt index 4acabf970..600770afb 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/Activity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/Activity.kt @@ -23,7 +23,7 @@ fun BaseSimpleActivity.shareEvents(ids: List) { } val events = dbHelper.getEventsWithIds(ids) - IcsExporter().exportEvents(this, file, events) { + IcsExporter().exportEvents(this, file, events, false) { if (it == IcsExporter.ExportResult.EXPORT_OK) { sharePathIntent(file.absolutePath, BuildConfig.APPLICATION_ID) } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/IcsExporter.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/IcsExporter.kt index b5f72072b..472c967f6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/IcsExporter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/IcsExporter.kt @@ -1,10 +1,12 @@ package com.simplemobiletools.calendar.helpers +import com.simplemobiletools.calendar.R import com.simplemobiletools.calendar.extensions.dbHelper import com.simplemobiletools.calendar.helpers.IcsExporter.ExportResult.* import com.simplemobiletools.calendar.models.Event import com.simplemobiletools.commons.activities.BaseSimpleActivity import com.simplemobiletools.commons.extensions.getFileOutputStream +import com.simplemobiletools.commons.extensions.toast import com.simplemobiletools.commons.extensions.writeLn import com.simplemobiletools.commons.models.FileDirItem import java.io.BufferedWriter @@ -18,14 +20,18 @@ class IcsExporter { private var eventsExported = 0 private var eventsFailed = 0 - fun exportEvents(activity: BaseSimpleActivity, file: File, events: ArrayList, callback: (result: ExportResult) -> Unit) { + fun exportEvents(activity: BaseSimpleActivity, file: File, events: ArrayList, showExportingToast: Boolean, callback: (result: ExportResult) -> Unit) { val fileDirItem = FileDirItem(file.absolutePath, file.name) - activity.getFileOutputStream(fileDirItem) { + activity.getFileOutputStream(fileDirItem, true) { if (it == null) { callback(EXPORT_FAIL) return@getFileOutputStream } + if (showExportingToast) { + activity.toast(R.string.exporting) + } + it.bufferedWriter().use { out -> out.writeLn(BEGIN_CALENDAR) out.writeLn(CALENDAR_PRODID)