Skip to content

Commit f4e30de

Browse files
committed
properly handle saving on sd card
1 parent 767dd60 commit f4e30de

4 files changed

Lines changed: 21 additions & 21 deletions

File tree

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ android {
3232
}
3333

3434
dependencies {
35-
compile 'com.simplemobiletools:commons:2.16.2'
35+
compile 'com.simplemobiletools:commons:2.16.3'
3636
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
3737
}
3838

app/src/main/kotlin/com/simplemobiletools/draw/Svg.kt

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,23 @@ import android.graphics.Color
44
import android.graphics.drawable.ColorDrawable
55
import android.sax.RootElement
66
import android.util.Xml
7+
import com.simplemobiletools.commons.extensions.getFileOutputStream
8+
import com.simplemobiletools.commons.extensions.toast
79
import com.simplemobiletools.draw.activities.MainActivity
10+
import com.simplemobiletools.draw.activities.SimpleActivity
811
import java.io.*
912
import java.util.*
1013

1114
object Svg {
12-
fun saveSvg(file: File, canvas: MyCanvas) {
15+
fun saveSvg(activity: SimpleActivity, file: File, canvas: MyCanvas) {
1316
val backgroundColor = (canvas.background as ColorDrawable).color
1417

15-
val out = FileOutputStream(file)
16-
val writer = BufferedWriter(OutputStreamWriter(out))
17-
writeSvg(writer, backgroundColor, canvas.mPaths, canvas.width, canvas.height)
18-
writer.close()
18+
activity.getFileOutputStream(file) {
19+
val writer = BufferedWriter(OutputStreamWriter(it))
20+
writeSvg(writer, backgroundColor, canvas.mPaths, canvas.width, canvas.height)
21+
writer.close()
22+
activity.toast(R.string.file_saved)
23+
}
1924
}
2025

2126
private fun writeSvg(writer: Writer, backgroundColor: Int, paths: Map<MyPath, PaintOptions>, width: Int, height: Int) {

app/src/main/kotlin/com/simplemobiletools/draw/dialogs/SaveImageDialog.kt

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,8 @@ import com.simplemobiletools.draw.MyCanvas
88
import com.simplemobiletools.draw.R
99
import com.simplemobiletools.draw.Svg
1010
import com.simplemobiletools.draw.activities.SimpleActivity
11-
import com.simplemobiletools.draw.extensions.config
1211
import kotlinx.android.synthetic.main.dialog_save_image.view.*
1312
import java.io.File
14-
import java.io.FileOutputStream
1513
import java.io.OutputStream
1614

1715
class SaveImageDialog(val activity: SimpleActivity, val curPath: String, val canvas: MyCanvas, callback: (path: String) -> Unit) {
@@ -62,7 +60,6 @@ class SaveImageDialog(val activity: SimpleActivity, val curPath: String, val can
6260
}
6361

6462
if (saveFile(newFile)) {
65-
activity.toast(R.string.file_saved)
6663
callback(newFile.absolutePath)
6764
dismiss()
6865
} else {
@@ -80,25 +77,17 @@ class SaveImageDialog(val activity: SimpleActivity, val curPath: String, val can
8077
}
8178

8279
when (file.extension) {
83-
SVG -> Svg.saveSvg(file, canvas)
80+
SVG -> Svg.saveSvg(activity, file, canvas)
8481
else -> saveImageFile(file)
8582
}
8683
activity.scanFile(file) {}
8784
return true
8885
}
8986

9087
private fun saveImageFile(file: File) {
91-
if (activity.needsStupidWritePermissions(file.absolutePath)) {
92-
activity.handleSAFDialog(file) {
93-
var document = activity.getFileDocument(file.absolutePath, activity.config.treeUri) ?: return@handleSAFDialog
94-
if (!file.exists()) {
95-
document = document.createFile("", file.name)
96-
}
97-
val out = activity.contentResolver.openOutputStream(document.uri)
98-
writeToOutputStream(file, out)
99-
}
100-
} else {
101-
writeToOutputStream(file, FileOutputStream(file))
88+
activity.getFileOutputStream(file) {
89+
writeToOutputStream(file, it)
90+
activity.toast(R.string.file_saved)
10291
}
10392
}
10493

app/src/main/res/layout/dialog_save_image.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,24 @@
5050
android:id="@+id/save_image_radio_png"
5151
android:layout_width="match_parent"
5252
android:layout_height="wrap_content"
53+
android:paddingBottom="@dimen/medium_margin"
54+
android:paddingTop="@dimen/medium_margin"
5355
android:text=".png"/>
5456

5557
<com.simplemobiletools.commons.views.MyCompatRadioButton
5658
android:id="@+id/save_image_radio_svg"
5759
android:layout_width="match_parent"
5860
android:layout_height="wrap_content"
61+
android:paddingBottom="@dimen/medium_margin"
62+
android:paddingTop="@dimen/medium_margin"
5963
android:text=".svg"/>
6064

6165
<com.simplemobiletools.commons.views.MyCompatRadioButton
6266
android:id="@+id/save_image_radio_jpg"
6367
android:layout_width="match_parent"
6468
android:layout_height="wrap_content"
69+
android:paddingBottom="@dimen/medium_margin"
70+
android:paddingTop="@dimen/medium_margin"
6571
android:text=".jpg"/>
6672

6773
</RadioGroup>

0 commit comments

Comments
 (0)