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"> + + + +