update
This commit is contained in:
parent
8bb1993570
commit
fd46deeaaa
@ -7,6 +7,7 @@ import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.view.*
|
||||
import android.widget.Button
|
||||
import android.widget.ImageView
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
@ -67,7 +68,6 @@ enum class TypeOption(
|
||||
}
|
||||
|
||||
class ControlActivity : AppCompatActivity() {
|
||||
private var pxMargin = 0f
|
||||
private var width = 0
|
||||
private var height = 0
|
||||
private var radius = 0f
|
||||
@ -81,6 +81,14 @@ class ControlActivity : AppCompatActivity() {
|
||||
private var currentState: String = "standby"
|
||||
private lateinit var progressBar: ConstraintLayout
|
||||
|
||||
private var controlImage: ImageView? = null
|
||||
|
||||
private var buttonRotateX: Button? = null
|
||||
private var buttonRotateY: Button? = null
|
||||
private var buttonRotateZ: Button? = null
|
||||
private var buttonClimb: Button? = null
|
||||
private var buttonTwist: Button? = null
|
||||
|
||||
|
||||
@SuppressLint("ClickableViewAccessibility")
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
@ -94,22 +102,29 @@ class ControlActivity : AppCompatActivity() {
|
||||
|
||||
controlWindowInsets(true)
|
||||
|
||||
val controlCircle = findViewById<ImageView>(R.id.control_image)
|
||||
controlImage = findViewById<ImageView>(R.id.control_image)
|
||||
progressBar = findViewById<ConstraintLayout>(R.id.progressBar)
|
||||
|
||||
val vto: ViewTreeObserver = controlCircle.viewTreeObserver
|
||||
buttonRotateX = findViewById(R.id.button_rotatex)
|
||||
// buttonRotateX!!.backgroundTintList = applicationContext.getColorStateList(R.color.purple_500)
|
||||
buttonRotateY = findViewById(R.id.button_rotatey)
|
||||
buttonRotateZ = findViewById(R.id.button_rotatez)
|
||||
buttonClimb = findViewById(R.id.button_climb)
|
||||
buttonTwist = findViewById(R.id.button_twist)
|
||||
|
||||
val vto: ViewTreeObserver = controlImage!!.viewTreeObserver
|
||||
vto.addOnPreDrawListener(object : ViewTreeObserver.OnPreDrawListener {
|
||||
override fun onPreDraw(): Boolean {
|
||||
controlCircle.viewTreeObserver.removeOnPreDrawListener(this)
|
||||
height = controlCircle.measuredHeight
|
||||
width = controlCircle.measuredWidth
|
||||
controlImage!!.viewTreeObserver.removeOnPreDrawListener(this)
|
||||
height = controlImage!!.measuredHeight
|
||||
width = controlImage!!.measuredWidth
|
||||
radius = width.coerceAtMost(height) / 2f
|
||||
println(radius)
|
||||
return true
|
||||
}
|
||||
})
|
||||
|
||||
controlCircle.setOnTouchListener(
|
||||
controlImage!!.setOnTouchListener(
|
||||
object : View.OnTouchListener {
|
||||
override fun onTouch(view: View, motionEvent: MotionEvent): Boolean {
|
||||
val touchX = motionEvent.x
|
||||
@ -130,6 +145,13 @@ class ControlActivity : AppCompatActivity() {
|
||||
println("Standby")
|
||||
sendMessageAsync("standby")
|
||||
currentState = "standby"
|
||||
controlImage!!.setImageResource(R.drawable.ic_control_circle_standby)
|
||||
|
||||
buttonRotateX!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonRotateY!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonRotateZ!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonClimb!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonTwist!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
}
|
||||
} else if (length >= radius / 3 && length < 2 * radius / 3) {
|
||||
val angle = atan2(coorY, coorX)
|
||||
@ -138,26 +160,35 @@ class ControlActivity : AppCompatActivity() {
|
||||
println("Move right")
|
||||
sendMessageAsync("shiftright")
|
||||
currentState = "shiftright"
|
||||
controlImage!!.setImageResource(R.drawable.ic_control_circle_right)
|
||||
}
|
||||
} else if (angle > PI / 4 && angle <= 3 * PI / 4) {
|
||||
if (currentState != "backward") {
|
||||
println("Move back")
|
||||
sendMessageAsync("backward")
|
||||
currentState = "backward"
|
||||
controlImage!!.setImageResource(R.drawable.ic_control_circle_backward)
|
||||
}
|
||||
} else if (angle > -3 * PI / 4 && angle < -PI / 4) {
|
||||
if (currentState != "forward") {
|
||||
println("Move forward")
|
||||
sendMessageAsync("forward")
|
||||
currentState = "forward"
|
||||
controlImage!!.setImageResource(R.drawable.ic_control_circle_forward)
|
||||
}
|
||||
} else {
|
||||
if (currentState != "shiftleft") {
|
||||
println("Move left")
|
||||
sendMessageAsync("shiftleft")
|
||||
currentState = "shiftleft"
|
||||
controlImage!!.setImageResource(R.drawable.ic_control_circle_left)
|
||||
}
|
||||
}
|
||||
buttonRotateX!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonRotateY!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonRotateZ!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonClimb!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonTwist!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
} else if (length >= 2 * radius / 3 && length < radius) {
|
||||
val angle = atan2(coorY, coorX)
|
||||
if (angle > -PI / 4 && angle <= PI / 4) {
|
||||
@ -165,58 +196,105 @@ class ControlActivity : AppCompatActivity() {
|
||||
println("Turn right")
|
||||
sendMessageAsync("rightturn")
|
||||
currentState = "rightturn"
|
||||
controlImage!!.setImageResource(R.drawable.ic_control_circle_turnright)
|
||||
}
|
||||
} else if (angle > PI / 4 && angle <= 3 * PI / 4) {
|
||||
if (currentState != "fastback") {
|
||||
println("Fast back")
|
||||
// sendMessageAsync("Fast back")
|
||||
currentState = "fastback"
|
||||
controlImage!!.setImageResource(R.drawable.ic_control_circle_fastbackward)
|
||||
}
|
||||
} else if (angle > -3 * PI / 4 && angle < -PI / 4) {
|
||||
if (currentState != "fastforward") {
|
||||
println("Fast forward")
|
||||
sendMessageAsync("fastforward")
|
||||
currentState = "fastforward"
|
||||
controlImage!!.setImageResource(R.drawable.ic_control_circle_fastforward)
|
||||
}
|
||||
} else {
|
||||
if (currentState != "leftturn") {
|
||||
println("Turn left")
|
||||
sendMessageAsync("leftturn")
|
||||
currentState = "leftturn"
|
||||
controlImage!!.setImageResource(R.drawable.ic_control_circle_turnleft)
|
||||
}
|
||||
}
|
||||
buttonRotateX!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonRotateY!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonRotateZ!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonClimb!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonTwist!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
}
|
||||
return true
|
||||
}
|
||||
}
|
||||
)
|
||||
// this.tcpClient = TCPClient(this, ip, port, object : OnMessageReceived {
|
||||
// override fun messageReceived(message: String?) {
|
||||
// if (message == null) {
|
||||
//// alertDialog(DISCONNECTED)
|
||||
// println("no message")
|
||||
// }
|
||||
// }
|
||||
// }, object : OnConnectEstablished {
|
||||
// override fun onConnected() {
|
||||
//// udpClient.start()
|
||||
// println("connected")
|
||||
// Handler(Looper.getMainLooper()).post {
|
||||
// progressBar.visibility = View.GONE
|
||||
// }
|
||||
// }
|
||||
// }, object : OnDisconnected{
|
||||
// override fun onDisconnected() {
|
||||
// Handler(Looper.getMainLooper()).post {
|
||||
// progressBar.visibility = View.GONE
|
||||
// alertDialog(0)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// )
|
||||
// this.tcpClient!!.start()
|
||||
|
||||
// alertDialog(0)
|
||||
buttonRotateX!!.setOnClickListener{
|
||||
if (currentState != "rotatex"){
|
||||
sendMessageAsync("rotatex")
|
||||
currentState = "rotatex"
|
||||
controlImage!!.setImageResource(R.drawable.ic_control_circle)
|
||||
buttonRotateX!!.backgroundTintList = applicationContext.getColorStateList(R.color.purple_500)
|
||||
buttonRotateY!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonRotateZ!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonClimb!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonTwist!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
}
|
||||
}
|
||||
|
||||
buttonRotateY!!.setOnClickListener{
|
||||
if (currentState != "rotatey"){
|
||||
sendMessageAsync("rotatey")
|
||||
currentState = "rotatey"
|
||||
controlImage!!.setImageResource(R.drawable.ic_control_circle)
|
||||
buttonRotateX!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonRotateY!!.backgroundTintList = applicationContext.getColorStateList(R.color.purple_500)
|
||||
buttonRotateZ!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonClimb!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonTwist!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
}
|
||||
}
|
||||
|
||||
buttonRotateZ!!.setOnClickListener{
|
||||
if (currentState != "rotatez"){
|
||||
sendMessageAsync("rotatez")
|
||||
currentState = "rotatez"
|
||||
controlImage!!.setImageResource(R.drawable.ic_control_circle)
|
||||
buttonRotateX!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonRotateY!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonRotateZ!!.backgroundTintList = applicationContext.getColorStateList(R.color.purple_500)
|
||||
buttonClimb!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonTwist!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
}
|
||||
}
|
||||
|
||||
buttonClimb!!.setOnClickListener{
|
||||
if (currentState != "climb"){
|
||||
sendMessageAsync("climb")
|
||||
currentState = "climb"
|
||||
controlImage!!.setImageResource(R.drawable.ic_control_circle)
|
||||
buttonRotateX!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonRotateY!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonRotateZ!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonClimb!!.backgroundTintList = applicationContext.getColorStateList(R.color.purple_500)
|
||||
buttonTwist!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
}
|
||||
}
|
||||
|
||||
buttonTwist!!.setOnClickListener{
|
||||
if (currentState != "twist"){
|
||||
sendMessageAsync("twist")
|
||||
currentState = "twist"
|
||||
controlImage!!.setImageResource(R.drawable.ic_control_circle)
|
||||
buttonRotateX!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonRotateY!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonRotateZ!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonClimb!!.backgroundTintList = applicationContext.getColorStateList(R.color.grey_500)
|
||||
buttonTwist!!.backgroundTintList = applicationContext.getColorStateList(R.color.purple_500)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
|
@ -37,11 +37,11 @@ class MainActivity : AppCompatActivity() {
|
||||
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {}
|
||||
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
|
||||
override fun afterTextChanged(s: Editable) {
|
||||
if (isNumericAddress(s.toString())) {
|
||||
Toast.makeText(this@MainActivity, "Correct", Toast.LENGTH_SHORT).show()
|
||||
} else {
|
||||
Toast.makeText(this@MainActivity, "Wrong", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
// if (isNumericAddress(s.toString())) {
|
||||
// Toast.makeText(this@MainActivity, "Correct", Toast.LENGTH_SHORT).show()
|
||||
// } else {
|
||||
// Toast.makeText(this@MainActivity, "Wrong", Toast.LENGTH_SHORT).show()
|
||||
// }
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -46,6 +46,9 @@ class TCPClient(
|
||||
} catch (e: SocketTimeoutException) {
|
||||
println(e)
|
||||
onDisconnected!!.onDisconnected()
|
||||
} catch (e: ConnectException) {
|
||||
println(e)
|
||||
onDisconnected!!.onDisconnected()
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user