kopia lustrzana https://github.com/meshtastic/Meshtastic-Android
use compose
rodzic
bb39bab1c1
commit
151c9e59bc
4
TODO.md
4
TODO.md
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
|
|
||||||
* make frontend using https://developer.android.com/jetpack/compose/tutorial
|
* use https://codelabs.developers.google.com/codelabs/jetpack-compose-basics/#4 to show service state
|
||||||
*fix bluetooth
|
*fix bluetooth
|
||||||
|
|
||||||
# Medium priority
|
# Medium priority
|
||||||
|
@ -23,3 +23,5 @@ Don't leave device discoverable. Don't let unpaired users do thing with device
|
||||||
* assert() is apparently a noop - change to use my version of assert
|
* assert() is apparently a noop - change to use my version of assert
|
||||||
* DONE add crash reporting
|
* DONE add crash reporting
|
||||||
* DONE add analytics (make them optional)
|
* DONE add analytics (make them optional)
|
||||||
|
* make frontend using https://developer.android.com/jetpack/compose/tutorial
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ android {
|
||||||
|
|
||||||
buildFeatures {
|
buildFeatures {
|
||||||
// Enables Jetpack Compose for this module
|
// Enables Jetpack Compose for this module
|
||||||
compose false // FIXME, if true main app crashes
|
compose true // NOTE, if true main app crashes if you use regular view layout functions
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set both the Java and Kotlin compilers to target Java 8.
|
// Set both the Java and Kotlin compilers to target Java 8.
|
||||||
|
|
|
@ -13,12 +13,19 @@ import androidx.appcompat.app.AppCompatActivity
|
||||||
import android.view.Menu
|
import android.view.Menu
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
|
import androidx.compose.Composable
|
||||||
import androidx.core.app.ActivityCompat
|
import androidx.core.app.ActivityCompat
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
|
import androidx.ui.core.Text
|
||||||
|
import androidx.ui.core.dp
|
||||||
|
import androidx.ui.core.setContent
|
||||||
|
import androidx.ui.layout.Column
|
||||||
|
import androidx.ui.layout.Spacing
|
||||||
|
import androidx.ui.material.Button
|
||||||
|
import androidx.ui.material.MaterialTheme
|
||||||
|
import androidx.ui.tooling.preview.Preview
|
||||||
import com.geeksville.android.Logging
|
import com.geeksville.android.Logging
|
||||||
|
|
||||||
import kotlinx.android.synthetic.main.activity_main.*
|
|
||||||
import java.util.*
|
|
||||||
|
|
||||||
|
|
||||||
class MainActivity : AppCompatActivity(), Logging {
|
class MainActivity : AppCompatActivity(), Logging {
|
||||||
|
@ -66,22 +73,31 @@ class MainActivity : AppCompatActivity(), Logging {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun composeView() {
|
||||||
|
MaterialTheme {
|
||||||
|
Column {
|
||||||
|
Text(text = "MeshUtil Ugly UI", modifier = Spacing(16.dp))
|
||||||
|
|
||||||
|
Button(text = "Start scan",
|
||||||
|
onClick = {
|
||||||
|
if (bluetoothAdapter != null) {
|
||||||
|
SoftwareUpdateService.enqueueWork(this@MainActivity, SoftwareUpdateService.scanDevicesIntent)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
|
||||||
|
@Preview
|
||||||
|
@Composable
|
||||||
|
fun defaultPreview() {
|
||||||
|
composeView()
|
||||||
|
}
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
setContentView(R.layout.activity_main)
|
setContent {
|
||||||
setSupportActionBar(toolbar)
|
composeView()
|
||||||
|
|
||||||
fab.setOnClickListener { _ ->
|
|
||||||
/* Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
|
|
||||||
.setAction("Action", null).show() */
|
|
||||||
|
|
||||||
// test crash reporting
|
|
||||||
// logAssert(false)
|
|
||||||
// throw NotImplementedError("I like crap")
|
|
||||||
|
|
||||||
if(bluetoothAdapter != null) {
|
|
||||||
SoftwareUpdateService.enqueueWork(this, SoftwareUpdateService.scanDevicesIntent)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ensures Bluetooth is available on the device and it is enabled. If not,
|
// Ensures Bluetooth is available on the device and it is enabled. If not,
|
||||||
|
|
Ładowanie…
Reference in New Issue