Skip to content

Commit 02fa5e9

Browse files
authored
Merge pull request #570 from wordpress-mobile/feature/client-side-media-toolbar
Adding a media toolbar
2 parents 1209e75 + 0b76a25 commit 02fa5e9

File tree

46 files changed

+1050
-817
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+1050
-817
lines changed

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

Lines changed: 120 additions & 182 deletions
Large diffs are not rendered by default.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package org.wordpress.aztec.demo
2+
3+
import org.wordpress.aztec.AztecTextFormat
4+
import org.wordpress.aztec.ITextFormat
5+
import org.wordpress.aztec.toolbar.IToolbarAction
6+
import org.wordpress.aztec.toolbar.ToolbarActionType
7+
8+
enum class MediaToolbarAction constructor(override val buttonId: Int, override val actionType: ToolbarActionType,
9+
override val textFormat: ITextFormat) : IToolbarAction {
10+
GALLERY(R.id.media_bar_button_gallery, ToolbarActionType.OTHER, AztecTextFormat.FORMAT_NONE),
11+
CAMERA(R.id.media_bar_button_camera, ToolbarActionType.OTHER, AztecTextFormat.FORMAT_NONE)
12+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package org.wordpress.aztec.demo
2+
3+
import android.view.KeyEvent
4+
import android.view.LayoutInflater
5+
import android.view.View
6+
import android.view.ViewGroup
7+
import org.wordpress.aztec.plugins.IMediaToolbarButton
8+
import org.wordpress.aztec.toolbar.AztecToolbar
9+
import org.wordpress.aztec.toolbar.IToolbarAction
10+
11+
class MediaToolbarCameraButton(val toolbar: AztecToolbar) : IMediaToolbarButton {
12+
13+
private var clickListener: IMediaToolbarButton.IMediaToolbarClickListener? = null
14+
15+
override val action: IToolbarAction = MediaToolbarAction.CAMERA
16+
override val context = toolbar.context!!
17+
18+
override fun setMediaToolbarButtonClickListener(clickListener: IMediaToolbarButton.IMediaToolbarClickListener) {
19+
this.clickListener = clickListener
20+
}
21+
22+
override fun toggle() {
23+
clickListener?.onClick(toolbar.findViewById(action.buttonId))
24+
}
25+
26+
override fun matchesKeyShortcut(keyCode: Int, event: KeyEvent): Boolean {
27+
return false
28+
}
29+
30+
override fun inflateButton(parent: ViewGroup) {
31+
LayoutInflater.from(context).inflate(R.layout.media_toobar_camera_button, parent)
32+
}
33+
34+
override fun toolbarStateAboutToChange(toolbar: AztecToolbar, enable: Boolean) {
35+
toolbar.findViewById<View>(action.buttonId).isEnabled = enable
36+
}
37+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package org.wordpress.aztec.demo
2+
3+
import android.view.KeyEvent
4+
import android.view.LayoutInflater
5+
import android.view.View
6+
import android.view.ViewGroup
7+
import org.wordpress.aztec.plugins.IMediaToolbarButton
8+
import org.wordpress.aztec.toolbar.AztecToolbar
9+
import org.wordpress.aztec.toolbar.IToolbarAction
10+
11+
class MediaToolbarGalleryButton(val toolbar: AztecToolbar) : IMediaToolbarButton {
12+
13+
private var clickListener: IMediaToolbarButton.IMediaToolbarClickListener? = null
14+
15+
override val action: IToolbarAction = MediaToolbarAction.GALLERY
16+
override val context = toolbar.context!!
17+
18+
override fun setMediaToolbarButtonClickListener(clickListener: IMediaToolbarButton.IMediaToolbarClickListener) {
19+
this.clickListener = clickListener
20+
}
21+
22+
override fun toggle() {
23+
clickListener?.onClick(toolbar.findViewById(action.buttonId))
24+
}
25+
26+
override fun matchesKeyShortcut(keyCode: Int, event: KeyEvent): Boolean {
27+
return false
28+
}
29+
30+
override fun inflateButton(parent: ViewGroup) {
31+
LayoutInflater.from(context).inflate(R.layout.media_toobar_gallery_button, parent)
32+
}
33+
34+
override fun toolbarStateAboutToChange(toolbar: AztecToolbar, enable: Boolean) {
35+
toolbar.findViewById<View>(action.buttonId).isEnabled = enable
36+
}
37+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:width="48dp"
4+
android:height="48dp"
5+
android:viewportHeight="48"
6+
android:viewportWidth="48">
7+
8+
<!-- @color/grey_darken_20 -->
9+
<path
10+
android:fillColor="#ff4f748e"
11+
android:pathData="M29,24c0,1.7-1.3,3-3,3s-3-1.3-3-3s1.3-3,3-3S29,22.3,29,24zM34,19v11c0,1.1-0.9,2-2,2H16c-1.1,0-2-0.9-2-2V19c0-1.1,0.9-2,2-2v-1h4v1h2l1-2h6l1,2h2C33.1,17,34,17.9,34,19zM19.5,21c0-0.8-0.7-1.5-1.5-1.5s-1.5,0.7-1.5,1.5s0.7,1.5,1.5,1.5S19.5,21.8,19.5,21z M31,24c0-2.8-2.2-5-5-5s-5,2.2-5,5s2.2,5,5,5S31,26.8,31,24z">
12+
</path>
13+
14+
</vector>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:width="48dp"
4+
android:height="48dp"
5+
android:viewportHeight="48"
6+
android:viewportWidth="48">
7+
8+
<!-- @color/grey_lighten_20 -->
9+
<path
10+
android:fillColor="#ffc8d7e1"
11+
android:pathData="M29,24c0,1.7-1.3,3-3,3s-3-1.3-3-3s1.3-3,3-3S29,22.3,29,24zM34,19v11c0,1.1-0.9,2-2,2H16c-1.1,0-2-0.9-2-2V19c0-1.1,0.9-2,2-2v-1h4v1h2l1-2h6l1,2h2C33.1,17,34,17.9,34,19zM19.5,21c0-0.8-0.7-1.5-1.5-1.5s-1.5,0.7-1.5,1.5s0.7,1.5,1.5,1.5S19.5,21.8,19.5,21z M31,24c0-2.8-2.2-5-5-5s-5,2.2-5,5s2.2,5,5,5S31,26.8,31,24z">
12+
</path>
13+
14+
</vector>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:width="48dp"
4+
android:height="48dp"
5+
android:viewportHeight="48"
6+
android:viewportWidth="48">
7+
8+
<!-- @color/almost_black -->
9+
<path
10+
android:fillColor="#ff11181D"
11+
android:pathData="M29,24c0,1.7-1.3,3-3,3s-3-1.3-3-3s1.3-3,3-3S29,22.3,29,24zM34,19v11c0,1.1-0.9,2-2,2H16c-1.1,0-2-0.9-2-2V19c0-1.1,0.9-2,2-2v-1h4v1h2l1-2h6l1,2h2C33.1,17,34,17.9,34,19zM19.5,21c0-0.8-0.7-1.5-1.5-1.5s-1.5,0.7-1.5,1.5s0.7,1.5,1.5,1.5S19.5,21.8,19.5,21z M31,24c0-2.8-2.2-5-5-5s-5,2.2-5,5s2.2,5,5,5S31,26.8,31,24z">
12+
</path>
13+
14+
</vector>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<selector xmlns:android="http://schemas.android.com/apk/res/android">
3+
4+
<item android:drawable="@drawable/media_bar_button_camera_disabled" android:state_enabled="false"/>
5+
<item android:drawable="@drawable/media_bar_button_camera_highlighted" android:state_focused="true"/>
6+
<item android:drawable="@drawable/media_bar_button_camera"/>
7+
8+
</selector>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
3+
<vector
4+
xmlns:android="http://schemas.android.com/apk/res/android"
5+
android:height="48dp"
6+
android:width="48dp"
7+
android:viewportHeight="48"
8+
android:viewportWidth="48" >
9+
10+
<!-- @color/grey_darken_20 -->
11+
<path
12+
android:fillColor="#ff4f748e"
13+
android:pathData="M27,19.5c0-0.8,0.7-1.5,1.5-1.5s1.5,0.7,1.5,1.5S29.3,21,28.5,21S27,20.3,27,19.5z M16,32h14c0,1.1-0.9,2-2,2H16 c-1.1,0-2-0.9-2-2V20c0-1.1,0.9-2,2-2V32z M34,16v12c0,1.1-0.9,2-2,2H20c-1.1,0-2-0.9-2-2V16c0-1.1,0.9-2,2-2h12 C33.1,14,34,14.9,34,16z M20,16v6.3l3-3.3l4.9,5.4l0.7-0.7c0.8-0.9,2.2-0.9,3,0l0.5,0.6V16H20z" >
14+
</path>
15+
16+
</vector>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:width="48dp"
4+
android:height="48dp"
5+
android:viewportHeight="48"
6+
android:viewportWidth="48">
7+
8+
<!-- @color/grey_lighten_20 -->
9+
<path
10+
android:fillColor="#ffc8d7e1"
11+
android:pathData="M27,19.5c0-0.8,0.7-1.5,1.5-1.5s1.5,0.7,1.5,1.5S29.3,21,28.5,21S27,20.3,27,19.5z M16,32h14c0,1.1-0.9,2-2,2H16 c-1.1,0-2-0.9-2-2V20c0-1.1,0.9-2,2-2V32z M34,16v12c0,1.1-0.9,2-2,2H20c-1.1,0-2-0.9-2-2V16c0-1.1,0.9-2,2-2h12 C33.1,14,34,14.9,34,16z M20,16v6.3l3-3.3l4.9,5.4l0.7-0.7c0.8-0.9,2.2-0.9,3,0l0.5,0.6V16H20z">
12+
</path>
13+
14+
</vector>

0 commit comments

Comments
 (0)