Skip to content

Commit 32fcf70

Browse files
committed
try suggesting a proper file extension at saving
1 parent f4e30de commit 32fcf70

3 files changed

Lines changed: 27 additions & 7 deletions

File tree

app/src/main/kotlin/com/simplemobiletools/draw/activities/MainActivity.kt

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ import com.simplemobiletools.draw.R
2323
import com.simplemobiletools.draw.Svg
2424
import com.simplemobiletools.draw.dialogs.SaveImageDialog
2525
import com.simplemobiletools.draw.extensions.config
26+
import com.simplemobiletools.draw.helpers.JPG
27+
import com.simplemobiletools.draw.helpers.PNG
28+
import com.simplemobiletools.draw.helpers.SVG
2629
import kotlinx.android.synthetic.main.activity_main.*
2730
import java.io.ByteArrayOutputStream
2831
import java.io.File
@@ -37,6 +40,7 @@ class MainActivity : SimpleActivity(), MyCanvas.PathsChangedListener {
3740
private var curPath = ""
3841
private var color = 0
3942
private var strokeWidth = 0f
43+
private var suggestedFileExtension = PNG
4044

4145
override fun onCreate(savedInstanceState: Bundle?) {
4246
super.onCreate(savedInstanceState)
@@ -78,7 +82,7 @@ class MainActivity : SimpleActivity(), MyCanvas.PathsChangedListener {
7882
when (item.itemId) {
7983
R.id.menu_save -> trySaveImage()
8084
R.id.menu_share -> shareImage()
81-
R.id.clear -> my_canvas.clearCanvas()
85+
R.id.clear -> clearCanvas()
8286
R.id.open_file -> tryOpenFile()
8387
R.id.change_background -> changeBackgroundClicked()
8488
R.id.settings -> launchSettings()
@@ -128,8 +132,10 @@ class MainActivity : SimpleActivity(), MyCanvas.PathsChangedListener {
128132
if (path.endsWith(".svg")) {
129133
my_canvas.mBackgroundBitmap = null
130134
Svg.loadSvg(this, File(path), my_canvas)
135+
suggestedFileExtension = SVG
131136
} else if (File(path).isImageSlow()) {
132137
my_canvas.drawBitmap(this, path)
138+
suggestedFileExtension = JPG
133139
} else {
134140
toast(R.string.invalid_file_format)
135141
}
@@ -152,7 +158,7 @@ class MainActivity : SimpleActivity(), MyCanvas.PathsChangedListener {
152158
}
153159

154160
private fun saveImage() {
155-
SaveImageDialog(this, curPath, my_canvas) {
161+
SaveImageDialog(this, suggestedFileExtension, curPath, my_canvas) {
156162
curPath = it
157163
}
158164
}
@@ -197,6 +203,11 @@ class MainActivity : SimpleActivity(), MyCanvas.PathsChangedListener {
197203
return FileProvider.getUriForFile(this, "com.simplemobiletools.draw.fileprovider", file)
198204
}
199205

206+
private fun clearCanvas() {
207+
my_canvas.clearCanvas()
208+
suggestedFileExtension = PNG
209+
}
210+
200211
fun pickColor() {
201212
ColorPickerDialog(this, color) {
202213
setColor(it)
@@ -207,6 +218,7 @@ class MainActivity : SimpleActivity(), MyCanvas.PathsChangedListener {
207218
undo.setColorFilter(pickedColor.getContrastColor(), PorterDuff.Mode.SRC_IN)
208219
my_canvas.setBackgroundColor(pickedColor)
209220
my_canvas.mBackgroundBitmap = null
221+
suggestedFileExtension = PNG
210222
}
211223

212224
private fun setColor(pickedColor: Int) {

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

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,26 @@ 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.helpers.JPG
12+
import com.simplemobiletools.draw.helpers.PNG
13+
import com.simplemobiletools.draw.helpers.SVG
1114
import kotlinx.android.synthetic.main.dialog_save_image.view.*
1215
import java.io.File
1316
import java.io.OutputStream
1417

15-
class SaveImageDialog(val activity: SimpleActivity, val curPath: String, val canvas: MyCanvas, callback: (path: String) -> Unit) {
16-
private val PNG = "png"
17-
private val SVG = "svg"
18-
private val JPG = "jpg"
18+
class SaveImageDialog(val activity: SimpleActivity, val suggestedExtension: String, val curPath: String, val canvas: MyCanvas, callback: (path: String) -> Unit) {
1919
private val SIMPLE_DRAW = "Simple Draw"
2020

2121
init {
2222
val initialFilename = getInitialFilename()
2323
var realPath = if (curPath.isEmpty()) "${activity.internalStoragePath}/$SIMPLE_DRAW" else File(curPath).parent.trimEnd('/')
2424
val view = activity.layoutInflater.inflate(R.layout.dialog_save_image, null).apply {
2525
save_image_filename.setText(initialFilename)
26-
save_image_radio_group.check(if (curPath.endsWith(SVG)) R.id.save_image_radio_svg else R.id.save_image_radio_png)
26+
save_image_radio_group.check(when (suggestedExtension) {
27+
JPG -> R.id.save_image_radio_jpg
28+
SVG -> R.id.save_image_radio_svg
29+
else -> R.id.save_image_radio_png
30+
})
2731

2832
save_image_path.text = activity.humanizePath(realPath)
2933
save_image_path.setOnClickListener {

app/src/main/kotlin/com/simplemobiletools/draw/helpers/Constants.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,7 @@ val BRUSH_COLOR = "brush_color"
44
val CANVAS_BACKGROUND_COLOR = "canvas_background_color"
55
val SHOW_BRUSH_SIZE = "show_brush_size"
66
val BRUSH_SIZE = "brush_size"
7+
8+
val PNG = "png"
9+
val SVG = "svg"
10+
val JPG = "jpg"

0 commit comments

Comments
 (0)