[O] Do things in order
This commit is contained in:
@@ -8,8 +8,7 @@ import android.view.Menu
|
|||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import androidx.activity.result.contract.ActivityResultContracts
|
import androidx.activity.result.contract.ActivityResultContracts
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import com.influxdb.client.domain.WritePrecision
|
import com.influxdb.client.kotlin.InfluxDBClientKotlin
|
||||||
import com.influxdb.client.kotlin.InfluxDBClientKotlinFactory
|
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
import kotlinx.coroutines.flow.consumeAsFlow
|
import kotlinx.coroutines.flow.consumeAsFlow
|
||||||
import org.hydev.wearsync.ActivityPermissions.Companion.hasPermissions
|
import org.hydev.wearsync.ActivityPermissions.Companion.hasPermissions
|
||||||
@@ -24,6 +23,7 @@ import java.util.*
|
|||||||
class MainActivity : AppCompatActivity()
|
class MainActivity : AppCompatActivity()
|
||||||
{
|
{
|
||||||
lateinit var binding: ActivityMainBinding
|
lateinit var binding: ActivityMainBinding
|
||||||
|
lateinit var influx: InfluxDBClientKotlin
|
||||||
|
|
||||||
val enableBluetoothRequest = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
|
val enableBluetoothRequest = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
|
||||||
if (it.resultCode != RESULT_OK) ensureBluetooth()
|
if (it.resultCode != RESULT_OK) ensureBluetooth()
|
||||||
@@ -43,12 +43,32 @@ class MainActivity : AppCompatActivity()
|
|||||||
setContentView(binding.root)
|
setContentView(binding.root)
|
||||||
setSupportActionBar(binding.toolbar)
|
setSupportActionBar(binding.toolbar)
|
||||||
|
|
||||||
if (!hasPermissions()) act<ActivityPermissions>()
|
if (!hasPermissions()) permissionCallback.launch(intent<ActivityPermissions>())
|
||||||
|
else afterPermissions()
|
||||||
|
}
|
||||||
|
|
||||||
|
val permissionCallback = actCallback { afterPermissions() }
|
||||||
|
fun afterPermissions() {
|
||||||
|
scope.launch {
|
||||||
|
// Open settings if influx database is inaccessible
|
||||||
|
if (runCatching { prefs.influxPing() }.isFailure) settingsCallback.launch(intent<ActivitySettings>())
|
||||||
|
else afterSettings()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val settingsCallback = actCallback { afterSettings() }
|
||||||
|
fun afterSettings() {
|
||||||
|
// Create client
|
||||||
|
influx = prefs.createInflux()
|
||||||
|
|
||||||
// Scan for devices
|
// Scan for devices
|
||||||
act<ActivityScan>()
|
connectCallback.launch(intent<ActivityScan>())
|
||||||
binding.content.tvDevice.text = "Configured Device: $chosenDevice"
|
}
|
||||||
|
|
||||||
|
val connectCallback = actCallback {
|
||||||
|
// Start collection
|
||||||
|
binding.content.tvDevice.text = "Configured Device: ${prefs.chosenDevice}"
|
||||||
|
binding.content.tvValue.text = "Service started!"
|
||||||
startCollect()
|
startCollect()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user