Update ControlActivity.kt

master
Zhengyu Peng 3 years ago
parent 989a0bacc8
commit 5707a5235c

@ -2,9 +2,6 @@ package com.rookiedev.hexapod
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.AlertDialog import android.app.AlertDialog
import android.bluetooth.BluetoothAdapter
import android.bluetooth.BluetoothManager
import android.bluetooth.BluetoothSocket
import android.content.Context import android.content.Context
import android.content.DialogInterface import android.content.DialogInterface
import android.os.Bundle import android.os.Bundle
@ -15,14 +12,9 @@ import android.widget.Button
import android.widget.ImageView import android.widget.ImageView
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import com.rookiedev.hexapod.network.BluetoothService import com.rookiedev.hexapod.network.BluetoothClient
import com.rookiedev.hexapod.network.TCPClient import com.rookiedev.hexapod.network.TCPClient
import com.rookiedev.hexapod.network.TCPClient.*
import kotlinx.coroutines.* import kotlinx.coroutines.*
import java.io.*
import java.lang.reflect.InvocationTargetException
import java.lang.reflect.Method
import java.util.*
import kotlin.math.PI import kotlin.math.PI
import kotlin.math.atan2 import kotlin.math.atan2
import kotlin.math.pow import kotlin.math.pow
@ -85,15 +77,14 @@ class ControlActivity : AppCompatActivity() {
private var mContext: Context? = null private var mContext: Context? = null
private var mac: String = ""
// private val mBluetoothAdapter: BluetoothAdapter? = null
private var tcpClient: TCPClient? = null private var tcpClient: TCPClient? = null
private var ip: String = "" private var ip: String = ""
private var port = 0 private var port = 0
private var btClient: BluetoothClient? = null
private var mac: String = ""
private val scope = CoroutineScope(Job() + Dispatchers.IO) private val scope = CoroutineScope(Job() + Dispatchers.IO)
private var currentState: String = "standby" private var currentState: String = "standby"
@ -368,14 +359,14 @@ class ControlActivity : AppCompatActivity() {
progressBar.visibility = View.VISIBLE progressBar.visibility = View.VISIBLE
if (connectInterface == "WiFi") { if (connectInterface == "WiFi") {
this.tcpClient = TCPClient(ip, port, object : OnMessageReceived { this.tcpClient = TCPClient(ip, port, object : TCPClient.OnMessageReceived {
override fun messageReceived(message: String?) { override fun messageReceived(message: String?) {
if (message == null) { if (message == null) {
// alertDialog(DISCONNECTED) // alertDialog(DISCONNECTED)
println("no message") println("no message")
} }
} }
}, object : OnConnectEstablished { }, object : TCPClient.OnConnectEstablished {
override fun onConnected() { override fun onConnected() {
// udpClient.start() // udpClient.start()
println("connected") println("connected")
@ -383,7 +374,7 @@ class ControlActivity : AppCompatActivity() {
progressBar.visibility = View.GONE progressBar.visibility = View.GONE
} }
} }
}, object : OnDisconnected { }, object : TCPClient.OnDisconnected {
override fun onDisconnected() { override fun onDisconnected() {
Handler(Looper.getMainLooper()).post { Handler(Looper.getMainLooper()).post {
progressBar.visibility = View.GONE progressBar.visibility = View.GONE
@ -395,6 +386,31 @@ class ControlActivity : AppCompatActivity() {
this.tcpClient!!.start() this.tcpClient!!.start()
} else if (connectInterface == "Bluetooth") { } else if (connectInterface == "Bluetooth") {
println("Bluetooth") println("Bluetooth")
this.btClient = BluetoothClient(mContext, mac, object : BluetoothClient.OnMessageReceived {
override fun messageReceived(message: String?) {
if (message == null) {
// alertDialog(DISCONNECTED)
println("no message")
}
}
}, object : BluetoothClient.OnConnectEstablished {
override fun onConnected() {
// udpClient.start()
println("connected")
Handler(Looper.getMainLooper()).post {
progressBar.visibility = View.GONE
}
}
}, object : BluetoothClient.OnDisconnected {
override fun onDisconnected() {
Handler(Looper.getMainLooper()).post {
progressBar.visibility = View.GONE
alertDialog(0)
}
}
}
)
this.btClient!!.start()
} }
@ -419,8 +435,13 @@ class ControlActivity : AppCompatActivity() {
println("on Pause") println("on Pause")
// saveSharedPref() // saveSharedPref()
tcpClient!!.stopClient() if (connectInterface == "WiFi") {
tcpClient!!.interrupt() tcpClient!!.stopClient()
tcpClient!!.interrupt()
}else if (connectInterface == "Bluetooth"){
btClient!!.stopClient()
btClient!!.interrupt()
}
} }
@ -444,8 +465,13 @@ class ControlActivity : AppCompatActivity() {
// Starts a new coroutine within the scope // Starts a new coroutine within the scope
scope.launch { scope.launch {
// New coroutine that can call suspend functions // New coroutine that can call suspend functions
withContext(Dispatchers.IO) { // Dispatchers.IO (main-safety block) withContext(Dispatchers.IO) { // Dispatchers.IO (main-safety block)
tcpClient?.sendMessage(message) if (connectInterface == "WiFi") {
tcpClient?.sendMessage(message)
}else if(connectInterface == "Bluetooth"){
btClient?.sendMessage(message)
}
} }
} }
} }

Loading…
Cancel
Save