Skip to content

Commit e3b84d7

Browse files
committed
updating commons with some theming improvements
1 parent 7cec5cc commit e3b84d7

File tree

7 files changed

+269
-206
lines changed

7 files changed

+269
-206
lines changed

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,6 @@ android {
6363
}
6464

6565
dependencies {
66-
implementation 'com.github.SimpleMobileTools:Simple-Commons:faa6a972c2'
66+
implementation 'com.github.SimpleMobileTools:Simple-Commons:c05de1687e'
6767
implementation "androidx.print:print:1.0.0"
6868
}

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

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ import android.graphics.drawable.GradientDrawable
1010
import android.net.Uri
1111
import android.os.Bundle
1212
import android.provider.MediaStore
13-
import android.view.Menu
14-
import android.view.MenuItem
1513
import android.view.WindowManager
1614
import android.webkit.MimeTypeMap
1715
import android.widget.SeekBar
@@ -72,6 +70,8 @@ class MainActivity : SimpleActivity(), CanvasListener {
7270
override fun onCreate(savedInstanceState: Bundle?) {
7371
super.onCreate(savedInstanceState)
7472
setContentView(R.layout.activity_main)
73+
setupOptionsMenu()
74+
refreshMenuItems()
7575
appLaunched(BuildConfig.APPLICATION_ID)
7676

7777
eyeDropper = EyeDropper(my_canvas) { selectedColor ->
@@ -113,6 +113,7 @@ class MainActivity : SimpleActivity(), CanvasListener {
113113

114114
override fun onResume() {
115115
super.onResume()
116+
setupToolbar(main_toolbar)
116117

117118
val isShowBrushSizeEnabled = config.showBrushSize
118119
stroke_width_bar.beVisibleIf(isShowBrushSizeEnabled)
@@ -128,7 +129,7 @@ class MainActivity : SimpleActivity(), CanvasListener {
128129
}
129130

130131
requestedOrientation = if (config.forcePortraitMode) ActivityInfo.SCREEN_ORIENTATION_PORTRAIT else ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
131-
invalidateOptionsMenu()
132+
refreshMenuItems()
132133
}
133134

134135
override fun onPause() {
@@ -145,33 +146,31 @@ class MainActivity : SimpleActivity(), CanvasListener {
145146
my_canvas.mListener = null
146147
}
147148

148-
override fun onCreateOptionsMenu(menu: Menu): Boolean {
149-
menuInflater.inflate(R.menu.menu, menu)
150-
menu.apply {
149+
private fun refreshMenuItems() {
150+
main_toolbar.menu.apply {
151151
findItem(R.id.menu_confirm).isVisible = isImageCaptureIntent || isEditIntent
152152
findItem(R.id.menu_save).isVisible = !isImageCaptureIntent && !isEditIntent
153153
findItem(R.id.menu_share).isVisible = !isImageCaptureIntent && !isEditIntent
154154
findItem(R.id.open_file).isVisible = !isEditIntent
155155
}
156-
157-
updateMenuItemColors(menu)
158-
return true
159156
}
160157

161-
override fun onOptionsItemSelected(item: MenuItem): Boolean {
162-
when (item.itemId) {
163-
R.id.menu_confirm -> confirmImage()
164-
R.id.menu_save -> trySaveImage()
165-
R.id.menu_share -> shareImage()
166-
R.id.clear -> clearCanvas()
167-
R.id.open_file -> tryOpenFile()
168-
R.id.change_background -> changeBackgroundClicked()
169-
R.id.menu_print -> printImage()
170-
R.id.settings -> launchSettings()
171-
R.id.about -> launchAbout()
172-
else -> return super.onOptionsItemSelected(item)
158+
private fun setupOptionsMenu() {
159+
main_toolbar.setOnMenuItemClickListener { menuItem ->
160+
when (menuItem.itemId) {
161+
R.id.menu_confirm -> confirmImage()
162+
R.id.menu_save -> trySaveImage()
163+
R.id.menu_share -> shareImage()
164+
R.id.clear -> clearCanvas()
165+
R.id.open_file -> tryOpenFile()
166+
R.id.change_background -> changeBackgroundClicked()
167+
R.id.menu_print -> printImage()
168+
R.id.settings -> launchSettings()
169+
R.id.about -> launchAbout()
170+
else -> return@setOnMenuItemClickListener false
171+
}
172+
return@setOnMenuItemClickListener true
173173
}
174-
return true
175174
}
176175

177176
override fun onBackPressed() {
@@ -261,7 +260,7 @@ class MainActivity : SimpleActivity(), CanvasListener {
261260
isImageCaptureIntent = true
262261
intentUri = output
263262
defaultPath = output.path!!
264-
invalidateOptionsMenu()
263+
refreshMenuItems()
265264
}
266265
}
267266

app/src/main/kotlin/com/simplemobiletools/draw/pro/activities/SettingsActivity.kt

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.simplemobiletools.draw.pro.activities
22

33
import android.os.Bundle
4-
import android.view.Menu
54
import com.simplemobiletools.commons.extensions.*
5+
import com.simplemobiletools.commons.helpers.NavigationIcon
66
import com.simplemobiletools.draw.pro.R
77
import com.simplemobiletools.draw.pro.extensions.config
88
import kotlinx.android.synthetic.main.activity_settings.*
@@ -16,6 +16,7 @@ class SettingsActivity : SimpleActivity() {
1616

1717
override fun onResume() {
1818
super.onResume()
19+
setupToolbar(settings_toolbar, NavigationIcon.Arrow)
1920

2021
setupCustomizeColors()
2122
setupUseEnglish()
@@ -24,7 +25,6 @@ class SettingsActivity : SimpleActivity() {
2425
setupAllowZoomingCanvas()
2526
setupForcePortraitMode()
2627
updateTextColors(settings_holder)
27-
invalidateOptionsMenu()
2828

2929
arrayOf(settings_color_customization_label, settings_general_settings_label).forEach {
3030
it.setTextColor(getProperPrimaryColor())
@@ -35,11 +35,6 @@ class SettingsActivity : SimpleActivity() {
3535
}
3636
}
3737

38-
override fun onCreateOptionsMenu(menu: Menu): Boolean {
39-
updateMenuItemColors(menu)
40-
return super.onCreateOptionsMenu(menu)
41-
}
42-
4338
private fun setupCustomizeColors() {
4439
settings_customize_colors_holder.setOnClickListener {
4540
startCustomizationActivity()

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

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,24 @@ import com.simplemobiletools.draw.pro.helpers.SVG
1212
import kotlinx.android.synthetic.main.dialog_save_image.view.*
1313
import java.io.File
1414

15-
class SaveImageDialog(val activity: SimpleActivity, val defaultPath: String, val defaultFilename: String, val defaultExtension: String,
16-
val hidePath: Boolean, callback: (fullPath: String, filename: String, extension: String) -> Unit) {
15+
class SaveImageDialog(
16+
val activity: SimpleActivity, val defaultPath: String, val defaultFilename: String, val defaultExtension: String,
17+
val hidePath: Boolean, callback: (fullPath: String, filename: String, extension: String) -> Unit
18+
) {
1719
private val SIMPLE_DRAW = "Simple Draw"
1820

1921
init {
2022
val initialFilename = getInitialFilename()
2123
var folder = if (defaultPath.isEmpty()) "${activity.internalStoragePath}/$SIMPLE_DRAW" else defaultPath
2224
val view = activity.layoutInflater.inflate(R.layout.dialog_save_image, null).apply {
2325
save_image_filename.setText(initialFilename)
24-
save_image_radio_group.check(when (defaultExtension) {
25-
JPG -> R.id.save_image_radio_jpg
26-
SVG -> R.id.save_image_radio_svg
27-
else -> R.id.save_image_radio_png
28-
})
26+
save_image_radio_group.check(
27+
when (defaultExtension) {
28+
JPG -> R.id.save_image_radio_jpg
29+
SVG -> R.id.save_image_radio_svg
30+
else -> R.id.save_image_radio_png
31+
}
32+
)
2933

3034
if (hidePath) {
3135
save_image_path_label.beGone()
@@ -41,13 +45,13 @@ class SaveImageDialog(val activity: SimpleActivity, val defaultPath: String, val
4145
}
4246
}
4347

44-
AlertDialog.Builder(activity)
48+
activity.getAlertDialogBuilder()
4549
.setPositiveButton(R.string.ok, null)
4650
.setNegativeButton(R.string.cancel, null)
47-
.create().apply {
48-
activity.setupDialogStuff(view, this, R.string.save_as) {
49-
showKeyboard(view.save_image_filename)
50-
getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener {
51+
.apply {
52+
activity.setupDialogStuff(view, this, R.string.save_as) { alertDialog ->
53+
alertDialog.showKeyboard(view.save_image_filename)
54+
alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener {
5155
val filename = view.save_image_filename.value
5256
if (filename.isEmpty()) {
5357
activity.toast(R.string.filename_cannot_be_empty)
@@ -70,11 +74,11 @@ class SaveImageDialog(val activity: SimpleActivity, val defaultPath: String, val
7074
val title = String.format(activity.getString(R.string.file_already_exists_overwrite), newPath.getFilenameFromPath())
7175
ConfirmationDialog(activity, title) {
7276
callback(newPath, filename, extension)
73-
dismiss()
77+
alertDialog.dismiss()
7478
}
7579
} else {
7680
callback(newPath, filename, extension)
77-
dismiss()
81+
alertDialog.dismiss()
7882
}
7983
}
8084
}
Lines changed: 93 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,107 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3-
android:id="@+id/main_holder"
2+
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto"
4+
android:id="@+id/main_coordinator"
45
android:layout_width="match_parent"
56
android:layout_height="match_parent">
67

7-
<com.simplemobiletools.draw.pro.views.MyCanvas
8-
android:id="@+id/my_canvas"
8+
<com.google.android.material.appbar.AppBarLayout
9+
android:id="@+id/main_app_bar_layout"
10+
android:layout_width="match_parent"
11+
android:layout_height="wrap_content">
12+
13+
<com.google.android.material.appbar.MaterialToolbar
14+
android:id="@+id/main_toolbar"
15+
android:layout_width="match_parent"
16+
android:layout_height="?attr/actionBarSize"
17+
android:background="@color/color_primary"
18+
app:menu="@menu/menu"
19+
app:title="@string/app_launcher_name"
20+
app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" />
21+
22+
</com.google.android.material.appbar.AppBarLayout>
23+
24+
<com.simplemobiletools.commons.views.MyScrollView
25+
android:id="@+id/main_scrollview"
926
android:layout_width="match_parent"
1027
android:layout_height="match_parent"
11-
android:background="@android:color/white" />
28+
android:fillViewport="true"
29+
android:scrollbars="none"
30+
app:layout_behavior="@string/appbar_scrolling_view_behavior">
31+
32+
<RelativeLayout
33+
android:id="@+id/main_holder"
34+
android:layout_width="match_parent"
35+
android:layout_height="match_parent">
36+
37+
<com.simplemobiletools.draw.pro.views.MyCanvas
38+
android:id="@+id/my_canvas"
39+
android:layout_width="match_parent"
40+
android:layout_height="match_parent"
41+
android:background="@android:color/white" />
1242

13-
<ImageView
14-
android:id="@+id/redo"
15-
android:layout_width="@dimen/normal_icon_size"
16-
android:layout_height="@dimen/normal_icon_size"
17-
android:layout_toStartOf="@+id/eraser"
18-
android:padding="@dimen/medium_margin"
19-
android:src="@drawable/ic_redo_vector"
20-
android:visibility="gone" />
43+
<ImageView
44+
android:id="@+id/redo"
45+
android:layout_width="@dimen/normal_icon_size"
46+
android:layout_height="@dimen/normal_icon_size"
47+
android:layout_toStartOf="@+id/eraser"
48+
android:padding="@dimen/medium_margin"
49+
android:src="@drawable/ic_redo_vector"
50+
android:visibility="gone" />
2151

22-
<ImageView
23-
android:id="@+id/eraser"
24-
android:layout_width="@dimen/normal_icon_size"
25-
android:layout_height="@dimen/normal_icon_size"
26-
android:layout_toStartOf="@+id/eye_dropper"
27-
android:padding="@dimen/medium_margin"
28-
android:src="@drawable/ic_eraser_on_vector" />
52+
<ImageView
53+
android:id="@+id/eraser"
54+
android:layout_width="@dimen/normal_icon_size"
55+
android:layout_height="@dimen/normal_icon_size"
56+
android:layout_toStartOf="@+id/eye_dropper"
57+
android:padding="@dimen/medium_margin"
58+
android:src="@drawable/ic_eraser_on_vector" />
2959

30-
<ImageView
31-
android:id="@+id/eye_dropper"
32-
android:layout_width="@dimen/normal_icon_size"
33-
android:layout_height="@dimen/normal_icon_size"
34-
android:layout_toStartOf="@+id/color_picker"
35-
android:padding="@dimen/medium_margin"
36-
android:src="@drawable/ic_colorize_on_vector"
37-
android:visibility="visible" />
60+
<ImageView
61+
android:id="@+id/eye_dropper"
62+
android:layout_width="@dimen/normal_icon_size"
63+
android:layout_height="@dimen/normal_icon_size"
64+
android:layout_toStartOf="@+id/color_picker"
65+
android:padding="@dimen/medium_margin"
66+
android:src="@drawable/ic_colorize_on_vector"
67+
android:visibility="visible" />
3868

39-
<ImageView
40-
android:id="@+id/color_picker"
41-
android:layout_width="@dimen/normal_icon_size"
42-
android:layout_height="@dimen/normal_icon_size"
43-
android:layout_alignParentEnd="true" />
69+
<ImageView
70+
android:id="@+id/color_picker"
71+
android:layout_width="@dimen/normal_icon_size"
72+
android:layout_height="@dimen/normal_icon_size"
73+
android:layout_alignParentEnd="true" />
4474

45-
<ImageView
46-
android:id="@+id/undo"
47-
android:layout_width="@dimen/normal_icon_size"
48-
android:layout_height="@dimen/normal_icon_size"
49-
android:layout_below="@id/color_picker"
50-
android:layout_alignParentEnd="true"
51-
android:padding="@dimen/medium_margin"
52-
android:src="@drawable/ic_undo_vector"
53-
android:visibility="gone" />
75+
<ImageView
76+
android:id="@+id/undo"
77+
android:layout_width="@dimen/normal_icon_size"
78+
android:layout_height="@dimen/normal_icon_size"
79+
android:layout_below="@id/color_picker"
80+
android:layout_alignParentEnd="true"
81+
android:padding="@dimen/medium_margin"
82+
android:src="@drawable/ic_undo_vector"
83+
android:visibility="gone" />
5484

55-
<ImageView
56-
android:id="@+id/stroke_width_preview"
57-
android:layout_width="@dimen/full_brush_size"
58-
android:layout_height="@dimen/full_brush_size"
59-
android:layout_above="@+id/stroke_width_bar"
60-
android:layout_centerHorizontal="true"
61-
android:layout_marginBottom="@dimen/medium_margin"
62-
android:background="@drawable/circle_background" />
85+
<ImageView
86+
android:id="@+id/stroke_width_preview"
87+
android:layout_width="@dimen/full_brush_size"
88+
android:layout_height="@dimen/full_brush_size"
89+
android:layout_above="@+id/stroke_width_bar"
90+
android:layout_centerHorizontal="true"
91+
android:layout_marginBottom="@dimen/medium_margin"
92+
android:background="@drawable/circle_background" />
6393

64-
<com.simplemobiletools.commons.views.MySeekBar
65-
android:id="@+id/stroke_width_bar"
66-
android:layout_width="@dimen/stroke_bar_size"
67-
android:layout_height="wrap_content"
68-
android:layout_alignParentBottom="true"
69-
android:layout_centerHorizontal="true"
70-
android:layout_marginBottom="12dp"
71-
android:max="100"
72-
android:padding="@dimen/medium_margin"
73-
android:progress="50" />
94+
<com.simplemobiletools.commons.views.MySeekBar
95+
android:id="@+id/stroke_width_bar"
96+
android:layout_width="@dimen/stroke_bar_size"
97+
android:layout_height="wrap_content"
98+
android:layout_alignParentBottom="true"
99+
android:layout_centerHorizontal="true"
100+
android:layout_marginBottom="12dp"
101+
android:max="100"
102+
android:padding="@dimen/medium_margin"
103+
android:progress="50" />
74104

75-
</RelativeLayout>
105+
</RelativeLayout>
106+
</com.simplemobiletools.commons.views.MyScrollView>
107+
</androidx.coordinatorlayout.widget.CoordinatorLayout>

0 commit comments

Comments
 (0)