Skip to content

Commit 0262782

Browse files
authored
Merge pull request #400 from wordpress-mobile/issue/371-add-toolbar-analytics
Issue/toolbar state triggers
2 parents d368ffc + 91acacc commit 0262782

File tree

3 files changed

+84
-15
lines changed

3 files changed

+84
-15
lines changed

app/src/main/kotlin/org/wordpress/aztec/demo/MainActivity.kt

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,7 @@ import android.widget.Toast
3030
import org.wordpress.android.util.AppLog
3131
import org.wordpress.android.util.PermissionUtils
3232
import org.wordpress.android.util.ToastUtils
33-
import org.wordpress.aztec.AztecAttributes
34-
import org.wordpress.aztec.AztecText
35-
import org.wordpress.aztec.HistoryListener
36-
import org.wordpress.aztec.Html
33+
import org.wordpress.aztec.*
3734
import org.wordpress.aztec.glideloader.GlideVideoThumbnailLoader
3835
import org.wordpress.aztec.picassoloader.PicassoImageLoader
3936
import org.wordpress.aztec.source.SourceViewEditText
@@ -656,7 +653,19 @@ class MainActivity : AppCompatActivity(),
656653
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
657654
}
658655

659-
override fun onToolbarHtmlModeClicked() {
656+
override fun onToolbarCollapseButtonClicked() {
657+
}
658+
659+
override fun onToolbarExpandButtonClicked() {
660+
}
661+
662+
override fun onToolbarFormatButtonClicked(format: TextFormat, isKeyboardShortcut: Boolean) {
663+
}
664+
665+
override fun onToolbarHeadingButtonClicked() {
666+
}
667+
668+
override fun onToolbarHtmlButtonClicked() {
660669
val uploadingPredicate = object : AztecText.AttributePredicate {
661670
override fun matches(attrs: Attributes): Boolean {
662671
return attrs.getIndex("uploading") > -1
@@ -672,7 +681,10 @@ class MainActivity : AppCompatActivity(),
672681
}
673682
}
674683

675-
override fun onToolbarAddMediaClicked() {
684+
override fun onToolbarListButtonClicked() {
685+
}
686+
687+
override fun onToolbarMediaButtonClicked() {
676688
mediaMenu = PopupMenu(this, formattingToolbar)
677689
mediaMenu?.setOnMenuItemClickListener(this)
678690
mediaMenu?.inflate(R.menu.media)

aztec/src/main/kotlin/org/wordpress/aztec/toolbar/AztecToolbar.kt

Lines changed: 57 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,60 +59,70 @@ class AztecToolbar : FrameLayout, OnMenuItemClickListener {
5959
when (keyCode) {
6060
KeyEvent.KEYCODE_1 -> {
6161
if (event.isAltPressed && event.isCtrlPressed) { // Heading 1 = Alt + Ctrl + 1
62+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_HEADING_1, true)
6263
editor?.toggleFormatting(TextFormat.FORMAT_HEADING_1)
6364
return true
6465
}
6566
}
6667
KeyEvent.KEYCODE_2 -> {
6768
if (event.isAltPressed && event.isCtrlPressed) { // Heading 2 = Alt + Ctrl + 2
69+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_HEADING_2, true)
6870
editor?.toggleFormatting(TextFormat.FORMAT_HEADING_2)
6971
return true
7072
}
7173
}
7274
KeyEvent.KEYCODE_3 -> {
7375
if (event.isAltPressed && event.isCtrlPressed) { // Heading 3 = Alt + Ctrl + 3
76+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_HEADING_3, true)
7477
editor?.toggleFormatting(TextFormat.FORMAT_HEADING_3)
7578
return true
7679
}
7780
}
7881
KeyEvent.KEYCODE_4 -> {
7982
if (event.isAltPressed && event.isCtrlPressed) { // Heading 4 = Alt + Ctrl + 4
83+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_HEADING_4, true)
8084
editor?.toggleFormatting(TextFormat.FORMAT_HEADING_4)
8185
return true
8286
}
8387
}
8488
KeyEvent.KEYCODE_5 -> {
8589
if (event.isAltPressed && event.isCtrlPressed) { // Heading 5 = Alt + Ctrl + 5
90+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_HEADING_5, true)
8691
editor?.toggleFormatting(TextFormat.FORMAT_HEADING_5)
8792
return true
8893
}
8994
}
9095
KeyEvent.KEYCODE_6 -> {
9196
if (event.isAltPressed && event.isCtrlPressed) { // Heading 6 = Alt + Ctrl + 6
97+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_HEADING_6, true)
9298
editor?.toggleFormatting(TextFormat.FORMAT_HEADING_6)
9399
return true
94100
}
95101
}
96102
KeyEvent.KEYCODE_7 -> {
97103
if (event.isAltPressed && event.isCtrlPressed) { // Heading 6 = Alt + Ctrl + 7
104+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_PARAGRAPH, true)
98105
editor?.toggleFormatting(TextFormat.FORMAT_PARAGRAPH)
99106
return true
100107
}
101108
}
102109
KeyEvent.KEYCODE_8 -> {
103110
if (event.isAltPressed && event.isCtrlPressed) { // Preformat = Alt + Ctrl + 8
111+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_PREFORMAT, true)
104112
editor?.toggleFormatting(TextFormat.FORMAT_PREFORMAT)
105113
return true
106114
}
107115
}
108116
KeyEvent.KEYCODE_B -> {
109117
if (event.isCtrlPressed) { // Bold = Ctrl + B
118+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_BOLD, true)
110119
findViewById(ToolbarAction.BOLD.buttonId).performClick()
111120
return true
112121
}
113122
}
114123
KeyEvent.KEYCODE_D -> {
115124
if (event.isCtrlPressed) { // Strikethrough = Ctrl + D
125+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_STRIKETHROUGH, true)
116126
findViewById(ToolbarAction.STRIKETHROUGH.buttonId).performClick()
117127
return true
118128
}
@@ -125,51 +135,60 @@ class AztecToolbar : FrameLayout, OnMenuItemClickListener {
125135
}
126136
KeyEvent.KEYCODE_I -> {
127137
if (event.isCtrlPressed) { // Italic = Ctrl + I
138+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_ITALIC, true)
128139
findViewById(ToolbarAction.ITALIC.buttonId).performClick()
129140
return true
130141
}
131142
}
132143
KeyEvent.KEYCODE_K -> {
133144
if (event.isCtrlPressed) { // Link = Ctrl + K
145+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_LINK, true)
134146
findViewById(ToolbarAction.LINK.buttonId).performClick()
135147
return true
136148
}
137149
}
138150
KeyEvent.KEYCODE_M -> {
139151
if (event.isAltPressed && event.isCtrlPressed) { // Media = Alt + Ctrl + M
152+
aztecToolbarListener?.onToolbarMediaButtonClicked()
140153
findViewById(ToolbarAction.ADD_MEDIA.buttonId).performClick()
141154
return true
142155
}
143156
}
144157
KeyEvent.KEYCODE_O -> {
145158
if (event.isAltPressed && event.isCtrlPressed) { // Ordered List = Alt + Ctrl + O
159+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_ORDERED_LIST, true)
146160
editor?.toggleFormatting(TextFormat.FORMAT_ORDERED_LIST)
147161
return true
148162
}
149163
}
150164
KeyEvent.KEYCODE_P -> {
151165
if (event.isAltPressed && event.isCtrlPressed) { // Page Break = Alt + Ctrl + P
166+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_PAGE, true)
152167
findViewById(ToolbarAction.PAGE.buttonId).performClick()
153168
return true
154169
}
155170
}
156171
KeyEvent.KEYCODE_Q -> {
157172
if (event.isAltPressed && event.isCtrlPressed) { // Quote = Alt + Ctrl + Q
173+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_QUOTE, true)
158174
findViewById(ToolbarAction.QUOTE.buttonId).performClick()
159175
return true
160176
}
161177
}
162178
KeyEvent.KEYCODE_T -> {
163179
if (event.isAltPressed && event.isCtrlPressed) { // Read More = Alt + Ctrl + T
180+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_MORE, true)
164181
findViewById(ToolbarAction.MORE.buttonId).performClick()
165182
return true
166183
}
167184
}
168185
KeyEvent.KEYCODE_U -> {
169186
if (event.isAltPressed && event.isCtrlPressed) { // Unordered List = Alt + Ctrl + U
187+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_UNORDERED_LIST, true)
170188
editor?.toggleFormatting(TextFormat.FORMAT_UNORDERED_LIST)
171189
return true
172190
} else if (event.isCtrlPressed) { // Underline = Ctrl + U
191+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_UNDERLINE, true)
173192
findViewById(ToolbarAction.UNDERLINE.buttonId).performClick()
174193
return true
175194
}
@@ -205,52 +224,62 @@ class AztecToolbar : FrameLayout, OnMenuItemClickListener {
205224
when (item?.itemId) {
206225
// Heading Menu
207226
R.id.paragraph -> {
227+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_PARAGRAPH, false)
208228
editor?.toggleFormatting(TextFormat.FORMAT_PARAGRAPH)
209229
setHeadingMenuSelector(TextFormat.FORMAT_PARAGRAPH)
210230
return true
211231
}
212232
R.id.heading_1 -> {
233+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_HEADING_1, false)
213234
editor?.toggleFormatting(TextFormat.FORMAT_HEADING_1)
214235
setHeadingMenuSelector(TextFormat.FORMAT_HEADING_1)
215236
return true
216237
}
217238
R.id.heading_2 -> {
239+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_HEADING_2, false)
218240
editor?.toggleFormatting(TextFormat.FORMAT_HEADING_2)
219241
setHeadingMenuSelector(TextFormat.FORMAT_HEADING_2)
220242
return true
221243
}
222244
R.id.heading_3 -> {
245+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_HEADING_3, false)
223246
editor?.toggleFormatting(TextFormat.FORMAT_HEADING_3)
224247
setHeadingMenuSelector(TextFormat.FORMAT_HEADING_3)
225248
return true
226249
}
227250
R.id.heading_4 -> {
251+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_HEADING_4, false)
228252
editor?.toggleFormatting(TextFormat.FORMAT_HEADING_4)
229253
setHeadingMenuSelector(TextFormat.FORMAT_HEADING_4)
230254
return true
231255
}
232256
R.id.heading_5 -> {
257+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_HEADING_5, false)
233258
editor?.toggleFormatting(TextFormat.FORMAT_HEADING_5)
234259
setHeadingMenuSelector(TextFormat.FORMAT_HEADING_5)
235260
return true
236261
}
237262
R.id.heading_6 -> {
263+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_HEADING_6, false)
238264
editor?.toggleFormatting(TextFormat.FORMAT_HEADING_6)
239265
setHeadingMenuSelector(TextFormat.FORMAT_HEADING_6)
240266
return true
241267
}
242268
// TODO: Uncomment when Preformat is to be added back as a feature
243269
// R.id.preformat -> {
270+
// aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_PREFORMAT, false)
244271
// editor?.toggleFormatting(TextFormat.FORMAT_PREFORMAT)
245272
// return true
246273
// }
247274
// List Menu
248275
R.id.list_ordered -> {
276+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_ORDERED_LIST, false)
249277
editor?.toggleFormatting(TextFormat.FORMAT_ORDERED_LIST)
250278
toggleListMenuSelection(item.itemId, checked)
251279
return true
252280
}
253281
R.id.list_unordered -> {
282+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_UNORDERED_LIST, false)
254283
editor?.toggleFormatting(TextFormat.FORMAT_UNORDERED_LIST)
255284
toggleListMenuSelection(item.itemId, checked)
256285
return true
@@ -382,23 +411,44 @@ class AztecToolbar : FrameLayout, OnMenuItemClickListener {
382411
textFormats.add(getSelectedListMenuItem()!!)
383412
}
384413

414+
aztecToolbarListener?.onToolbarFormatButtonClicked(action.textFormat!!, false)
385415
return editor!!.setSelectedStyles(textFormats)
386416
}
387417

388418
//if text is selected and action is styling - toggle the style
389419
if (action.isStylingAction() && action != ToolbarAction.HEADING && action != ToolbarAction.LIST) {
420+
aztecToolbarListener?.onToolbarFormatButtonClicked(action.textFormat!!, false)
390421
return editor!!.toggleFormatting(action.textFormat!!)
391422
}
392423

393424
//other toolbar action
394425
when (action) {
395-
ToolbarAction.ADD_MEDIA -> aztecToolbarListener?.onToolbarAddMediaClicked()
396-
ToolbarAction.HEADING -> headingMenu?.show()
397-
ToolbarAction.LIST -> listMenu?.show()
398-
ToolbarAction.LINK -> editor!!.showLinkDialog()
399-
ToolbarAction.HTML -> aztecToolbarListener?.onToolbarHtmlModeClicked()
400-
ToolbarAction.ELLIPSIS_COLLAPSE -> animateToolbarCollapse()
401-
ToolbarAction.ELLIPSIS_EXPAND -> animateToolbarExpand()
426+
ToolbarAction.ADD_MEDIA -> {
427+
aztecToolbarListener?.onToolbarMediaButtonClicked()
428+
}
429+
ToolbarAction.HEADING -> {
430+
aztecToolbarListener?.onToolbarHeadingButtonClicked()
431+
headingMenu?.show()
432+
}
433+
ToolbarAction.LIST -> {
434+
aztecToolbarListener?.onToolbarListButtonClicked()
435+
listMenu?.show()
436+
}
437+
ToolbarAction.LINK -> {
438+
aztecToolbarListener?.onToolbarFormatButtonClicked(TextFormat.FORMAT_LINK, false)
439+
editor!!.showLinkDialog()
440+
}
441+
ToolbarAction.HTML -> {
442+
aztecToolbarListener?.onToolbarHtmlButtonClicked()
443+
}
444+
ToolbarAction.ELLIPSIS_COLLAPSE -> {
445+
aztecToolbarListener?.onToolbarCollapseButtonClicked()
446+
animateToolbarCollapse()
447+
}
448+
ToolbarAction.ELLIPSIS_EXPAND -> {
449+
aztecToolbarListener?.onToolbarExpandButtonClicked()
450+
animateToolbarExpand()
451+
}
402452
else -> {
403453
Toast.makeText(context, "Unsupported action", Toast.LENGTH_SHORT).show()
404454
}
Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
package org.wordpress.aztec.toolbar
22

3+
import org.wordpress.aztec.TextFormat
4+
35
interface AztecToolbarClickListener {
4-
fun onToolbarAddMediaClicked()
5-
fun onToolbarHtmlModeClicked()
6+
fun onToolbarCollapseButtonClicked()
7+
fun onToolbarExpandButtonClicked()
8+
fun onToolbarFormatButtonClicked(format: TextFormat, isKeyboardShortcut: Boolean)
9+
fun onToolbarHeadingButtonClicked()
10+
fun onToolbarHtmlButtonClicked()
11+
fun onToolbarListButtonClicked()
12+
fun onToolbarMediaButtonClicked()
613
}

0 commit comments

Comments
 (0)