Skip to content

Commit 37369f8

Browse files
committed
chore: update demo usage
1 parent 3eaa7dd commit 37369f8

File tree

6 files changed

+126
-35
lines changed

6 files changed

+126
-35
lines changed

app/src/main/java/com/yoimerdr/android/virtualjoystick/MainActivity.kt

Lines changed: 64 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.yoimerdr.android.virtualjoystick
22

33
import android.graphics.Color
4-
import android.graphics.drawable.VectorDrawable
54
import android.os.Bundle
65
import android.view.View
76
import android.widget.AdapterView
@@ -13,10 +12,10 @@ import androidx.appcompat.app.AppCompatActivity
1312
import com.google.android.material.floatingactionbutton.FloatingActionButton
1413
import com.yoimerdr.android.virtualjoystick.databinding.ActivityMainBinding
1514
import com.yoimerdr.android.virtualjoystick.control.Control
16-
import com.yoimerdr.android.virtualjoystick.control.drawer.ControlDrawer
17-
import com.yoimerdr.android.virtualjoystick.control.drawer.DrawableControlDrawer
18-
import com.yoimerdr.android.virtualjoystick.control.drawer.HighlightControlDrawer
19-
import com.yoimerdr.android.virtualjoystick.utils.log.Logger
15+
import com.yoimerdr.android.virtualjoystick.drawer.core.ControlDrawer
16+
import com.yoimerdr.android.virtualjoystick.api.log.LoggerSupplier.DefaultLogger
17+
import com.yoimerdr.android.virtualjoystick.drawer.drawable.DrawableDrawer
18+
import com.yoimerdr.android.virtualjoystick.drawer.drawable.DirectionalDrawableDrawer
2019
import com.yoimerdr.android.virtualjoystick.views.JoystickView
2120

2221
class MainActivity : AppCompatActivity() {
@@ -47,17 +46,17 @@ class MainActivity : AppCompatActivity() {
4746
"Yellow" to Color.YELLOW
4847
)
4948

50-
private val drawers = mapOf(
51-
"Circle" to Control.DrawerType.CIRCLE.ordinal,
52-
"Arc" to Control.DrawerType.ARC.ordinal,
53-
"Circle Arc" to Control.DrawerType.CIRCLE_ARC.ordinal,
54-
"Highlight" to -1, "Drawable" to -2
49+
private val drawers = Control.DrawerType.entries.associate {
50+
it.titleName() to it.ordinal
51+
} + mapOf(
52+
"Drawable" to -1,
53+
"State Drawable" to -2,
5554
)
5655

57-
private val directionTypes = mapOf(
58-
"Complete" to Control.DirectionType.COMPLETE,
59-
"Simple" to Control.DirectionType.SIMPLE
60-
)
56+
57+
private val directionTypes = Control.DirectionType.entries.associateBy {
58+
it.titleName()
59+
}
6160

6261
private val boundedTypes = mapOf(
6362
"True" to true,
@@ -76,6 +75,23 @@ class MainActivity : AppCompatActivity() {
7675
private lateinit var magnitudeFormat: String
7776
private lateinit var ndcPositionFormat: String
7877

78+
companion object {
79+
fun String.capitalize(): String {
80+
return this.replaceFirstChar { char -> if (char.isLowerCase()) char.titlecase() else char.toString() }
81+
}
82+
83+
fun Enum<*>.titleName(): String {
84+
val name = name
85+
.lowercase()
86+
.split("_")
87+
.joinToString(separator = " ") {
88+
it.capitalize()
89+
}
90+
91+
return name.capitalize()
92+
}
93+
}
94+
7995
override fun onCreate(savedInstanceState: Bundle?) {
8096
super.onCreate(savedInstanceState)
8197
binding = ActivityMainBinding.inflate(layoutInflater)
@@ -112,14 +128,6 @@ class MainActivity : AppCompatActivity() {
112128
val selected = parent?.getItemAtPosition(position) ?: return
113129
val color = colors[selected] ?: return
114130

115-
val drawer = drawer
116-
if (drawer != null && drawer is DrawableControlDrawer) {
117-
if (drawer.drawable is VectorDrawable)
118-
drawer.drawable = drawer.drawable.apply {
119-
setTint(color)
120-
}
121-
}
122-
123131
vJoystick.setPrimaryColor(color)
124132
}
125133

@@ -246,17 +254,17 @@ class MainActivity : AppCompatActivity() {
246254
vJoystick.apply {
247255
setMoveStartListener {
248256
onMovement(it)
249-
Logger.log("START: $it")
257+
DefaultLogger.log("START: $it")
250258
}
251259

252260
setMoveEndListener {
253261
onMovement(Control.Direction.NONE)
254-
Logger.log("END")
262+
DefaultLogger.log("END")
255263
}
256264

257265
setMoveListener {
258266
onMovement(it)
259-
Logger.log("MOVE: $it")
267+
DefaultLogger.log("MOVE: $it")
260268
}
261269
}
262270
}
@@ -265,17 +273,27 @@ class MainActivity : AppCompatActivity() {
265273
val typeId = drawers[drawerSelected] ?: return
266274
if (typeId < 0) {
267275
val color = colors[spnPrimaryColor.selectedItem] ?: return
276+
tvDirection.isPressed
268277
drawer = when (typeId) {
269-
-1 -> HighlightControlDrawer(color, 0.48f)
270-
-2 -> {
271-
272-
DrawableControlDrawer.fromDrawableRes(
273-
this@MainActivity,
274-
R.drawable.baseline_adb_24,
275-
color,
276-
bounded
277-
)
278-
}
278+
-1 -> DrawableDrawer.fromDrawableRes(
279+
this@MainActivity,
280+
R.drawable.baseline_adb_24,
281+
color,
282+
)
283+
-2 -> DirectionalDrawableDrawer(
284+
listOf<Pair<Control.Direction, Int>>(
285+
Control.Direction.RIGHT to R.drawable.dpad_modern_r,
286+
Control.Direction.UP to R.drawable.dpad_modern_u,
287+
Control.Direction.LEFT to R.drawable.dpad_modern_l,
288+
Control.Direction.DOWN to R.drawable.dpad_modern_d,
289+
).map {
290+
it.first to DrawableDrawer.getDrawable(
291+
this@MainActivity,
292+
it.second
293+
)
294+
}
295+
296+
)
279297

280298
else -> null
281299
}
@@ -288,6 +306,16 @@ class MainActivity : AppCompatActivity() {
288306
Control.DrawerBuilder()
289307
else Control.DrawerBuilder.from(drawer!!)
290308

309+
val drawerType = Control.DrawerType
310+
.fromId(typeId)
311+
312+
if (drawerType in listOf(
313+
Control.DrawerType.WEDGE,
314+
)
315+
)
316+
builder.circleRadiusRatio(0.43f)
317+
// .circleRadius(DrawerRadius.Zero)
318+
291319
drawer = builder
292320
.colors(
293321
colors[spnPrimaryColor.selectedItem] ?: Color.RED,
@@ -303,6 +331,7 @@ class MainActivity : AppCompatActivity() {
303331
vJoystick.setControlDrawer(
304332
drawer!!
305333
)
334+
// vJoystick.setInvalidRadius(0f)
306335
}
307336
}
308337

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="100dp"
3+
android:height="100dp"
4+
android:viewportWidth="24"
5+
android:viewportHeight="24">
6+
<path
7+
android:pathData="m9.421,23.76l5.16,-0l0.84,-0.84l0,-7.14l-3.42,-3.42 -3.42,3.42l0,7.14z"
8+
android:fillColor="#33888888"/>
9+
<path
10+
android:pathData="m9.511,23.64l4.979,-0l0.811,-0.822l0,-6.99l-3.3,-3.348 -3.3,3.348l0,6.99z"
11+
android:fillColor="#33CCCCCC"/>
12+
<path
13+
android:pathData="m10.86,19.98 l1.2,2.28 1.2,-2.28l0,-0.72l-2.4,-0z"
14+
android:fillColor="#33888888"/>
15+
</vector>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="100dp"
3+
android:height="100dp"
4+
android:viewportWidth="24"
5+
android:viewportHeight="24">
6+
<path
7+
android:pathData="m0.24,14.579l0,-5.16l0.84,-0.84l7.14,-0l3.42,3.42 -3.42,3.42l-7.14,-0z"
8+
android:fillColor="#33888888"/>
9+
<path
10+
android:pathData="m0.36,14.489l0,-4.979l0.822,-0.811l6.99,-0l3.348,3.3 -3.348,3.3l-6.99,-0z"
11+
android:fillColor="#33CCCCCC"/>
12+
<path
13+
android:pathData="m4.02,13.14 l-2.28,-1.2 2.28,-1.2l0.72,-0l0,2.4z"
14+
android:fillColor="#33888888"/>
15+
</vector>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="100dp"
3+
android:height="100dp"
4+
android:viewportWidth="24"
5+
android:viewportHeight="24">
6+
<path
7+
android:pathData="m23.76,14.579l-0,-5.16l-0.84,-0.84l-7.14,-0l-3.42,3.42 3.42,3.42l7.14,-0z"
8+
android:fillColor="#33888888"/>
9+
<path
10+
android:pathData="m23.64,14.489l-0,-4.979l-0.822,-0.811l-6.99,-0l-3.348,3.3 3.348,3.3l6.99,-0z"
11+
android:fillColor="#33CCCCCC"/>
12+
<path
13+
android:pathData="m19.98,13.14 l2.28,-1.2 -2.28,-1.2l-0.72,-0l-0,2.4z"
14+
android:fillColor="#33888888"/>
15+
</vector>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="100dp"
3+
android:height="100dp"
4+
android:fillColor="@color/drawer_primary"
5+
android:viewportWidth="24"
6+
android:viewportHeight="24">
7+
<path
8+
android:pathData="m9.421,0.24l5.16,0l0.84,0.84l0,7.14l-3.42,3.42 -3.42,-3.42l0,-7.14z"
9+
android:fillColor="#33888888"/>
10+
<path
11+
android:pathData="m9.511,0.36l4.979,0l0.811,0.822l0,6.99l-3.3,3.348 -3.3,-3.348l0,-6.99z"
12+
android:fillColor="#33CCCCCC"/>
13+
<path
14+
android:pathData="m10.86,4.02 l1.2,-2.28 1.2,2.28l0,0.72l-2.4,0z"
15+
android:fillColor="#33888888"/>
16+
</vector>

app/src/main/res/layout/activity_main.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
android:layout_marginStart="16dp"
5959
android:layout_marginBottom="32dp"
6060
app:arcControlDrawer_sweepAngle="100"
61+
app:aspect="dpad_modern"
6162
app:controlDrawer_accentColor="#FFFFFF"
6263
app:controlDrawer_bounded="false"
6364
app:controlDrawer_primaryColor="#FF0000"

0 commit comments

Comments
 (0)