Updated dependencies and gradle plugin, minor fixes

This commit is contained in:
Arty Bishop committed 2025-12-27 15:01:47 +00:00
1 parent 483d846233
commit fcec36ec68
10 files changed
+47 -46

No files matched your search

+2 -2
View File
@@ -13,8 +13,8 @@ android {
namespace = "com.rtbishop.look4sat"
compileSdk = 35
defaultConfig {
applicationId = "com.rtbishop.look4satic705"
minSdk = 32
applicationId = "com.rtbishop.look4sat"
minSdk = 24
targetSdk = 35
versionCode = 400
versionName = "4.0.0"
+4 -4
View File
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
@@ -28,6 +28,7 @@ import com.rtbishop.look4sat.presentation.MainTheme
import com.rtbishop.look4sat.presentation.MainScreen
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
installSplashScreen()
enableEdgeToEdge()
@@ -39,5 +40,3 @@ class MainActivity : ComponentActivity() {
}
}
}
// Check and Request BT Permission?
@@ -179,7 +179,7 @@ class MapViewModel(private val satelliteRepo: ISatelliteRepo, settingsRepo: ISet
var orbitalPass = defaultPass
var aosTime = 0L.toTimerString()
var isTimeAos = true
allPasses.find { pass -> pass.catNum == sat.data.catnum && pass.progress < 100 }
allPasses.find { pass -> pass.catNum == sat.data.catnum && pass.progress < 1 }
?.let { satPass ->
orbitalPass = satPass
if (!satPass.isDeepSpace) {
@@ -1,6 +1,5 @@
package com.rtbishop.look4sat.presentation.radar
import android.util.Log
import androidx.compose.animation.core.LinearEasing
import androidx.compose.animation.core.RepeatMode
import androidx.compose.animation.core.animateFloat
@@ -11,7 +10,6 @@ import androidx.compose.foundation.MarqueeSpacing
import androidx.compose.foundation.background
import androidx.compose.foundation.basicMarquee
import androidx.compose.foundation.border
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
@@ -33,13 +31,11 @@ import androidx.compose.material3.Scaffold
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.alpha
import androidx.compose.ui.draw.rotate
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
@@ -55,7 +51,6 @@ import androidx.navigation.navArgument
import com.rtbishop.look4sat.R
import com.rtbishop.look4sat.domain.model.SatRadio
import com.rtbishop.look4sat.domain.utility.toDegrees
import com.rtbishop.look4sat.framework.BluetoothCIV
import com.rtbishop.look4sat.presentation.MainTheme
import com.rtbishop.look4sat.presentation.Screen
import com.rtbishop.look4sat.presentation.components.CardIcon
@@ -79,7 +74,7 @@ fun NavGraphBuilder.radarDestination(navigateBack: () -> Unit) {
@Composable
private fun RadarScreen(uiState: RadarState, navigateBack: () -> Unit) {
BluetoothCIV.init(LocalContext.current)
// BluetoothCIV.init(LocalContext.current)
val addToCalendar: () -> Unit = {
uiState.currentPass?.let { pass ->
@@ -257,19 +252,19 @@ private fun EclipsedIndicator() {
@Composable
private fun TransmitterItem(radio: SatRadio) {
LaunchedEffect(radio) {
BluetoothCIV.updateOnce(radio)
}
// LaunchedEffect(radio) {
// BluetoothCIV.updateOnce(radio)
// }
Surface(color = MaterialTheme.colorScheme.background,
modifier = Modifier.clickable(onClick = {
Log.d("BluetoothCivManager", radio.toString())
if(radio.uuid == BluetoothCIV.selected) BluetoothCIV.selected = "NONE" else
{
BluetoothCIV.connect(radio)
BluetoothCIV.updateOnce(radio)
}
})
// modifier = Modifier.clickable(onClick = {
// Log.d("BluetoothCivManager", radio.toString())
// if(radio.uuid == BluetoothCIV.selected) BluetoothCIV.selected = "NONE" else
// {
// BluetoothCIV.connect(radio)
// BluetoothCIV.updateOnce(radio)
// }
// })
) {
Surface(modifier = Modifier.padding(bottom = 2.dp)) {
Column(
@@ -95,17 +95,24 @@ class RadarViewModel(
while (isActive) {
val timeNow = System.currentTimeMillis()
val pos = satelliteRepo.getPosition(satPass.orbitalObject, stationPos, timeNow)
if (satPass.aosTime > timeNow) {
val time = satPass.aosTime.minus(timeNow).toTimerString()
_uiState.update { it.copy(currentTime = time, isCurrentTimeAos = true) }
} else {
val time = satPass.losTime.minus(timeNow).toTimerString()
_uiState.update { it.copy(currentTime = time, isCurrentTimeAos = false) }
when {
satPass.isDeepSpace -> {
val time = 0L.toTimerString()
_uiState.update { it.copy(currentTime = time, isCurrentTimeAos = false) }
}
satPass.aosTime > timeNow -> {
val time = satPass.aosTime.minus(timeNow).toTimerString()
_uiState.update { it.copy(currentTime = time, isCurrentTimeAos = true) }
}
else -> {
val time = satPass.losTime.minus(timeNow).toTimerString()
_uiState.update { it.copy(currentTime = time, isCurrentTimeAos = false) }
}
}
sendPassData(satPass, pos, satPass.orbitalObject)
sendPassDataBT(pos)
processRadios(transmitters, satPass.orbitalObject, timeNow)
delay(1000) //TODO: Change me maybe if smaller freq steps are better?? maybe dynamically?
delay(1000)
}
}
}
@@ -28,7 +28,7 @@ import com.rtbishop.look4sat.presentation.components.SharedDialog
@Preview(showBackground = true)
@Composable
private fun MultiTypesDialogPreview() {
val types = listOf("All", "Amateur", "Geostationary", "Military", "Weather")
val types = listOf("Amateur", "Geostationary", "Military", "Weather")
MainTheme { MultiTypesDialog(types, emptyList(), {}) {} }
}
@@ -1,4 +1,4 @@
package com.rtbishop.look4sat.framework
package com.rtbishop.look4sat.data.framework
import android.bluetooth.BluetoothAdapter
import android.bluetooth.BluetoothSocket
@@ -46,7 +46,7 @@ public object BluetoothCIV {
private var inputStream: InputStream? = null
public fun init(context: Context) {
bluetoothAdapter= getBluetoothAdapter(context)
bluetoothAdapter = getBluetoothAdapter(context)
}
private fun ensureConnected():Boolean {
@@ -100,7 +100,7 @@ public object BluetoothCIV {
}
data class RMsg(val broadcast: Boolean, val cmd: Int, val payload: ByteArray)
private fun receiveCommand():RMsg? {
private fun receiveCommand(): RMsg? {
if (inputStream!!.read()!=0xFE) {
return null;
}
@@ -124,7 +124,7 @@ public object BluetoothCIV {
return RMsg(to==0x00, cmd, buffer.toByteArray())
}
private fun receiveSpecificCommand():RMsg? {
private fun receiveSpecificCommand(): RMsg? {
while (true) {
val msg = receiveCommand() ?: return null
if (!msg.broadcast) {
@@ -144,7 +144,7 @@ public object BluetoothCIV {
}
data class Result(val subcmd: Int?, val data: ByteArray)
private fun callFunction(cmd: Int, sub: Int? = null, retsub: Boolean): Result{
private fun callFunction(cmd: Int, sub: Int? = null, retsub: Boolean): Result {
if(ensureConnected()){
sendCommand(cmd, sub)
val res = receiveSpecificCommand();
@@ -82,8 +82,8 @@ class SatelliteRepo(
val copiedList = radios.map { it.copy() }
copiedList.forEach { transmitter ->
transmitter.downlinkLow?.let { transmitter.downlinkLow = satPos.getDownlinkFreq(it) }
transmitter.downlinkHigh?.let { transmitter.downlinkHigh = satPos.getDownlinkFreq(it) }
transmitter.uplinkLow?.let { transmitter.uplinkLow = satPos.getUplinkFreq(it) }
transmitter.downlinkHigh?.let { transmitter.downlinkHigh = satPos.getDownlinkFreq(it) }
transmitter.uplinkLow?.let { transmitter.uplinkLow = satPos.getUplinkFreq(it) }
transmitter.uplinkHigh?.let { transmitter.uplinkHigh = satPos.getUplinkFreq(it) }
}
copiedList.map { it.copy() }
+5 -5
View File
@@ -1,16 +1,16 @@
[versions]
android-gradle-plugin = "8.8.0"
google-ksp = "2.0.21-1.0.26"
kotlin = "2.0.21"
android-gradle-plugin = "8.8.1"
google-ksp = "2.1.10-1.0.30"
kotlin = "2.1.10"
androidx-core-ktx = "1.15.0"
androidx-core-splashscreen = "1.0.1"
androidx-room = "2.6.1"
compose-bom = "2025.01.00"
compose-bom = "2025.02.00"
compose-activity = "1.10.0"
compose-lifecycle = "2.8.7"
compose-navigation = "2.8.5"
compose-navigation = "2.8.7"
other-coroutines = "1.10.1"
other-json = "20240303"