diff --git a/app/build.gradle b/app/build.gradle
index 0394a26..e1af775 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -63,6 +63,6 @@ android {
}
dependencies {
- implementation 'com.github.SimpleMobileTools:Simple-Commons:faa6a972c2'
+ implementation 'com.github.SimpleMobileTools:Simple-Commons:c05de1687e'
implementation "androidx.print:print:1.0.0"
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/draw/pro/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/draw/pro/activities/MainActivity.kt
index 856acd7..0094cf3 100644
--- a/app/src/main/kotlin/com/simplemobiletools/draw/pro/activities/MainActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/draw/pro/activities/MainActivity.kt
@@ -10,8 +10,6 @@ import android.graphics.drawable.GradientDrawable
import android.net.Uri
import android.os.Bundle
import android.provider.MediaStore
-import android.view.Menu
-import android.view.MenuItem
import android.view.WindowManager
import android.webkit.MimeTypeMap
import android.widget.SeekBar
@@ -72,6 +70,8 @@ class MainActivity : SimpleActivity(), CanvasListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
+ setupOptionsMenu()
+ refreshMenuItems()
appLaunched(BuildConfig.APPLICATION_ID)
eyeDropper = EyeDropper(my_canvas) { selectedColor ->
@@ -113,6 +113,7 @@ class MainActivity : SimpleActivity(), CanvasListener {
override fun onResume() {
super.onResume()
+ setupToolbar(main_toolbar)
val isShowBrushSizeEnabled = config.showBrushSize
stroke_width_bar.beVisibleIf(isShowBrushSizeEnabled)
@@ -128,7 +129,7 @@ class MainActivity : SimpleActivity(), CanvasListener {
}
requestedOrientation = if (config.forcePortraitMode) ActivityInfo.SCREEN_ORIENTATION_PORTRAIT else ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
- invalidateOptionsMenu()
+ refreshMenuItems()
}
override fun onPause() {
@@ -145,33 +146,31 @@ class MainActivity : SimpleActivity(), CanvasListener {
my_canvas.mListener = null
}
- override fun onCreateOptionsMenu(menu: Menu): Boolean {
- menuInflater.inflate(R.menu.menu, menu)
- menu.apply {
+ private fun refreshMenuItems() {
+ main_toolbar.menu.apply {
findItem(R.id.menu_confirm).isVisible = isImageCaptureIntent || isEditIntent
findItem(R.id.menu_save).isVisible = !isImageCaptureIntent && !isEditIntent
findItem(R.id.menu_share).isVisible = !isImageCaptureIntent && !isEditIntent
findItem(R.id.open_file).isVisible = !isEditIntent
}
-
- updateMenuItemColors(menu)
- return true
}
- override fun onOptionsItemSelected(item: MenuItem): Boolean {
- when (item.itemId) {
- R.id.menu_confirm -> confirmImage()
- R.id.menu_save -> trySaveImage()
- R.id.menu_share -> shareImage()
- R.id.clear -> clearCanvas()
- R.id.open_file -> tryOpenFile()
- R.id.change_background -> changeBackgroundClicked()
- R.id.menu_print -> printImage()
- R.id.settings -> launchSettings()
- R.id.about -> launchAbout()
- else -> return super.onOptionsItemSelected(item)
+ private fun setupOptionsMenu() {
+ main_toolbar.setOnMenuItemClickListener { menuItem ->
+ when (menuItem.itemId) {
+ R.id.menu_confirm -> confirmImage()
+ R.id.menu_save -> trySaveImage()
+ R.id.menu_share -> shareImage()
+ R.id.clear -> clearCanvas()
+ R.id.open_file -> tryOpenFile()
+ R.id.change_background -> changeBackgroundClicked()
+ R.id.menu_print -> printImage()
+ R.id.settings -> launchSettings()
+ R.id.about -> launchAbout()
+ else -> return@setOnMenuItemClickListener false
+ }
+ return@setOnMenuItemClickListener true
}
- return true
}
override fun onBackPressed() {
@@ -261,7 +260,7 @@ class MainActivity : SimpleActivity(), CanvasListener {
isImageCaptureIntent = true
intentUri = output
defaultPath = output.path!!
- invalidateOptionsMenu()
+ refreshMenuItems()
}
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/draw/pro/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/draw/pro/activities/SettingsActivity.kt
index 7113939..b276d7b 100644
--- a/app/src/main/kotlin/com/simplemobiletools/draw/pro/activities/SettingsActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/draw/pro/activities/SettingsActivity.kt
@@ -1,8 +1,8 @@
package com.simplemobiletools.draw.pro.activities
import android.os.Bundle
-import android.view.Menu
import com.simplemobiletools.commons.extensions.*
+import com.simplemobiletools.commons.helpers.NavigationIcon
import com.simplemobiletools.draw.pro.R
import com.simplemobiletools.draw.pro.extensions.config
import kotlinx.android.synthetic.main.activity_settings.*
@@ -16,6 +16,7 @@ class SettingsActivity : SimpleActivity() {
override fun onResume() {
super.onResume()
+ setupToolbar(settings_toolbar, NavigationIcon.Arrow)
setupCustomizeColors()
setupUseEnglish()
@@ -24,7 +25,6 @@ class SettingsActivity : SimpleActivity() {
setupAllowZoomingCanvas()
setupForcePortraitMode()
updateTextColors(settings_holder)
- invalidateOptionsMenu()
arrayOf(settings_color_customization_label, settings_general_settings_label).forEach {
it.setTextColor(getProperPrimaryColor())
@@ -35,11 +35,6 @@ class SettingsActivity : SimpleActivity() {
}
}
- override fun onCreateOptionsMenu(menu: Menu): Boolean {
- updateMenuItemColors(menu)
- return super.onCreateOptionsMenu(menu)
- }
-
private fun setupCustomizeColors() {
settings_customize_colors_holder.setOnClickListener {
startCustomizationActivity()
diff --git a/app/src/main/kotlin/com/simplemobiletools/draw/pro/dialogs/SaveImageDialog.kt b/app/src/main/kotlin/com/simplemobiletools/draw/pro/dialogs/SaveImageDialog.kt
index 20321c4..9aac720 100644
--- a/app/src/main/kotlin/com/simplemobiletools/draw/pro/dialogs/SaveImageDialog.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/draw/pro/dialogs/SaveImageDialog.kt
@@ -12,8 +12,10 @@ import com.simplemobiletools.draw.pro.helpers.SVG
import kotlinx.android.synthetic.main.dialog_save_image.view.*
import java.io.File
-class SaveImageDialog(val activity: SimpleActivity, val defaultPath: String, val defaultFilename: String, val defaultExtension: String,
- val hidePath: Boolean, callback: (fullPath: String, filename: String, extension: String) -> Unit) {
+class SaveImageDialog(
+ val activity: SimpleActivity, val defaultPath: String, val defaultFilename: String, val defaultExtension: String,
+ val hidePath: Boolean, callback: (fullPath: String, filename: String, extension: String) -> Unit
+) {
private val SIMPLE_DRAW = "Simple Draw"
init {
@@ -21,11 +23,13 @@ class SaveImageDialog(val activity: SimpleActivity, val defaultPath: String, val
var folder = if (defaultPath.isEmpty()) "${activity.internalStoragePath}/$SIMPLE_DRAW" else defaultPath
val view = activity.layoutInflater.inflate(R.layout.dialog_save_image, null).apply {
save_image_filename.setText(initialFilename)
- save_image_radio_group.check(when (defaultExtension) {
- JPG -> R.id.save_image_radio_jpg
- SVG -> R.id.save_image_radio_svg
- else -> R.id.save_image_radio_png
- })
+ save_image_radio_group.check(
+ when (defaultExtension) {
+ JPG -> R.id.save_image_radio_jpg
+ SVG -> R.id.save_image_radio_svg
+ else -> R.id.save_image_radio_png
+ }
+ )
if (hidePath) {
save_image_path_label.beGone()
@@ -41,13 +45,13 @@ class SaveImageDialog(val activity: SimpleActivity, val defaultPath: String, val
}
}
- AlertDialog.Builder(activity)
+ activity.getAlertDialogBuilder()
.setPositiveButton(R.string.ok, null)
.setNegativeButton(R.string.cancel, null)
- .create().apply {
- activity.setupDialogStuff(view, this, R.string.save_as) {
- showKeyboard(view.save_image_filename)
- getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener {
+ .apply {
+ activity.setupDialogStuff(view, this, R.string.save_as) { alertDialog ->
+ alertDialog.showKeyboard(view.save_image_filename)
+ alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener {
val filename = view.save_image_filename.value
if (filename.isEmpty()) {
activity.toast(R.string.filename_cannot_be_empty)
@@ -70,11 +74,11 @@ class SaveImageDialog(val activity: SimpleActivity, val defaultPath: String, val
val title = String.format(activity.getString(R.string.file_already_exists_overwrite), newPath.getFilenameFromPath())
ConfirmationDialog(activity, title) {
callback(newPath, filename, extension)
- dismiss()
+ alertDialog.dismiss()
}
} else {
callback(newPath, filename, extension)
- dismiss()
+ alertDialog.dismiss()
}
}
}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index cd3b8e3..39b1faa 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,75 +1,107 @@
-
-
+
+
+
+
+
+
+ android:fillViewport="true"
+ android:scrollbars="none"
+ app:layout_behavior="@string/appbar_scrolling_view_behavior">
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index 1301bc0..aa82294 100644
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -1,141 +1,166 @@
-
+ android:layout_height="match_parent">
-
+ android:layout_height="wrap_content">
-
+ android:layout_height="?attr/actionBarSize"
+ android:background="@color/color_primary"
+ app:title="@string/settings"
+ app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" />
+
+
+
+
-
+ android:text="@string/color_customization" />
-
+
+
+ android:background="@drawable/ripple_all_corners">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
diff --git a/app/src/main/res/layout/dialog_save_image.xml b/app/src/main/res/layout/dialog_save_image.xml
index 22abccf..c876045 100644
--- a/app/src/main/res/layout/dialog_save_image.xml
+++ b/app/src/main/res/layout/dialog_save_image.xml
@@ -31,14 +31,22 @@
android:paddingEnd="@dimen/small_margin"
android:paddingBottom="@dimen/activity_margin" />
-
+ android:layout_marginEnd="@dimen/activity_margin"
+ android:layout_marginBottom="@dimen/medium_margin"
+ android:hint="@string/filename">
+
+
+
+