[+] Store config on scan complete

This commit is contained in:
Azalea Gui
2023-01-23 16:49:50 -05:00
parent b0e8fc0c6f
commit 4a190c88e3
2 changed files with 26 additions and 2 deletions
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.view.View
import android.widget.ArrayAdapter
import androidx.appcompat.app.AppCompatActivity
import com.welie.blessed.BluetoothPeripheral
@@ -14,11 +15,13 @@ import java.util.*
class ActivityScan : AppCompatActivity() {
lateinit var binding: ActivityScanBinding
lateinit var view: View
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityScanBinding.inflate(layoutInflater)
setContentView(binding.root)
view = binding.root
initBluetoothHandler()
}
@@ -27,6 +30,12 @@ class ActivityScan : AppCompatActivity() {
private fun initBluetoothHandler() {
println("OnCreate called, Initializing...")
// Device exists
chosenDevice?.let { addr ->
ble.connectAddress(addr) { connected(addr) }
return
}
// List bonded device addresses
val pairedDevices = blueMan().adapter.bondedDevices.toList()
val pairedAddresses = pairedDevices.map { it.address }.toSet()
@@ -51,7 +60,7 @@ class ActivityScan : AppCompatActivity() {
binding.lvScanned.setOnItemClickListener { parent, view, position, id ->
ble.central.stopScan()
ble.connectPeripheral(scannedDevices[position]) {
view.snack("✅ Connected.")
connected(scannedDevices[position].address)
}
}
@@ -69,8 +78,15 @@ class ActivityScan : AppCompatActivity() {
// Scan for the device with the MAC address
ble.connectAddress(dev.address) {
view.snack("✅ Connected.")
connected(dev.address)
}
}
}
fun connected(address: String)
{
view.snack("✅ Connected.")
chosenDevice = address
finish()
}
}
@@ -1,12 +1,20 @@
package org.hydev.wearsync
import android.app.Activity
import android.bluetooth.BluetoothManager
import android.content.Context
import android.content.Intent
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.edit
import com.google.android.material.snackbar.Snackbar
fun View.snack(msg: String) = Snackbar.make(this, msg, Snackbar.LENGTH_LONG)
.setAction("Action", null).show()
fun Context.blueMan() = getSystemService(AppCompatActivity.BLUETOOTH_SERVICE) as BluetoothManager
val Context.pref get() = getSharedPreferences("settings", Context.MODE_PRIVATE)
var Context.chosenDevice: String?
get() = pref.getString("mac", null)
set(value) = pref.edit { putString("mac", value) }