Added Compose dependencies and basic classes

This commit is contained in:
Arty Bishop committed 2025-12-27 15:01:28 +00:00
1 parent 0303c53a72
commit 8f411d4c5e
16 files changed
+472 -27

No files matched your search

+16 -16
View File
@@ -34,7 +34,7 @@ android {
} }
} }
buildFeatures { buildFeatures {
// compose true compose true
viewBinding true viewBinding true
} }
composeOptions { composeOptions {
@@ -74,26 +74,26 @@ dependencies {
implementation "androidx.room:room-runtime:$room_version" implementation "androidx.room:room-runtime:$room_version"
implementation "androidx.room:room-ktx:$room_version" implementation "androidx.room:room-ktx:$room_version"
kapt "androidx.room:room-compiler:$room_version" kapt "androidx.room:room-compiler:$room_version"
implementation "com.google.android.material:material:$material_version"
implementation "com.google.dagger:hilt-android:$hilt_version" implementation "com.google.dagger:hilt-android:$hilt_version"
kapt "com.google.dagger:hilt-compiler:$hilt_version" kapt "com.google.dagger:hilt-compiler:$hilt_version"
implementation "com.squareup.okhttp3:okhttp:$okhttp_version" implementation "com.squareup.okhttp3:okhttp:$okhttp_version"
implementation "org.osmdroid:osmdroid-android:$osmdroid_version" implementation "org.osmdroid:osmdroid-android:$osmdroid_version"
// implementation "androidx.compose.ui:ui:$compose_version" implementation "androidx.compose.ui:ui:$compose_version"
// implementation "androidx.compose.ui:ui-tooling:$compose_version" implementation "androidx.compose.ui:ui-tooling:$compose_version"
// implementation "androidx.compose.runtime:runtime:$compose_version" implementation "androidx.compose.runtime:runtime:$compose_version"
// implementation "androidx.compose.runtime:runtime-livedata:$compose_version" implementation "androidx.compose.runtime:runtime-livedata:$compose_version"
// implementation "androidx.compose.compiler:compiler:$compose_compiler_version" implementation "androidx.compose.compiler:compiler:$compose_compiler_version"
// implementation "androidx.compose.animation:animation:$compose_version" implementation "androidx.compose.animation:animation:$compose_version"
// implementation "androidx.compose.foundation:foundation:$compose_foundation_version" implementation "androidx.compose.foundation:foundation:$compose_foundation_version"
// implementation "androidx.activity:activity-compose:$activity_compose_version" implementation "androidx.navigation:navigation-compose:$navigation_version"
// implementation "androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycle_version" implementation "androidx.activity:activity-compose:$activity_compose_version"
// implementation "androidx.compose.material:material:$compose_material_version" implementation "androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycle_version"
// implementation "androidx.compose.material:material-icons-extended:$compose_material_version" implementation "androidx.compose.material:material:$compose_material_version"
// implementation "com.google.android.material:compose-theme-adapter:$material_adapter_version" implementation "androidx.compose.material:material-icons-extended:$compose_material_version"
implementation "com.google.android.material:compose-theme-adapter:$material_adapter_version"
// debugImplementation "androidx.compose.ui:ui-tooling:$compose_version" debugImplementation "androidx.compose.ui:ui-tooling:$compose_version"
debugImplementation "androidx.fragment:fragment-testing:$fragment_test_version" debugImplementation "androidx.fragment:fragment-testing:$fragment_test_version"
debugImplementation "com.squareup.leakcanary:leakcanary-android:$leakcanary_version" debugImplementation "com.squareup.leakcanary:leakcanary-android:$leakcanary_version"
@@ -108,7 +108,7 @@ dependencies {
androidTestImplementation "androidx.test.ext:junit:$androidx_junit_version" androidTestImplementation "androidx.test.ext:junit:$androidx_junit_version"
androidTestImplementation "androidx.test.ext:truth:$androidx_test_version" androidTestImplementation "androidx.test.ext:truth:$androidx_test_version"
androidTestImplementation "androidx.test.espresso:espresso-core:$espresso_version" androidTestImplementation "androidx.test.espresso:espresso-core:$espresso_version"
// androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_version" androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_version"
androidTestImplementation "org.mockito:mockito-android:$mockito_version" androidTestImplementation "org.mockito:mockito-android:$mockito_version"
androidTestImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutines_test_version" androidTestImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutines_test_version"
} }
@@ -24,6 +24,7 @@ import android.content.res.Configuration
import android.os.Bundle import android.os.Bundle
import android.os.SystemClock import android.os.SystemClock
import android.view.View import android.view.View
import androidx.activity.compose.setContent
import androidx.annotation.IdRes import androidx.annotation.IdRes
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
@@ -36,6 +37,8 @@ import androidx.navigation.ui.NavigationUI
import androidx.navigation.ui.NavigationUiSaveStateControl import androidx.navigation.ui.NavigationUiSaveStateControl
import com.rtbishop.look4sat.R import com.rtbishop.look4sat.R
import com.rtbishop.look4sat.databinding.ActivityMainBinding import com.rtbishop.look4sat.databinding.ActivityMainBinding
import com.rtbishop.look4sat.presentation.bottomNav.MainScreenView
import com.rtbishop.look4sat.presentation.theme.Look4SatTheme
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint @AndroidEntryPoint
@@ -51,6 +54,7 @@ class MainActivity : AppCompatActivity() {
val host = supportFragmentManager.findFragmentById(R.id.nav_host) as NavHostFragment val host = supportFragmentManager.findFragmentById(R.id.nav_host) as NavHostFragment
NavigationUI.setupWithNavController(binding.navBar, host.navController, false) NavigationUI.setupWithNavController(binding.navBar, host.navController, false)
setContentView(binding.root) setContentView(binding.root)
// setContent { Look4SatTheme { MainScreenView() } }
} }
override fun attachBaseContext(newBase: Context?) { override fun attachBaseContext(newBase: Context?) {
@@ -0,0 +1,115 @@
package com.rtbishop.look4sat.presentation.aboutScreen
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.material.Card
import androidx.compose.material.Icon
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.platform.ViewCompositionStrategy
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.fragment.app.Fragment
import com.rtbishop.look4sat.R
import com.rtbishop.look4sat.presentation.theme.Look4SatTheme
import dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint
class AboutFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
): View {
return ComposeView(requireContext()).apply {
setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)
setContent { AboutScreen() }
}
}
@Preview(showBackground = true, widthDp = 400, heightDp = 720, showSystemUi = true)
@Composable
private fun AboutScreen() {
Look4SatTheme {
LazyColumn(
contentPadding = PaddingValues(8.dp),
verticalArrangement = Arrangement.spacedBy(8.dp),
modifier = Modifier.fillMaxSize()
) {
item { CardAbout() }
item { CardOutro() }
}
}
}
@Composable
private fun CardAbout(modifier: Modifier = Modifier, version: String = "3.2.0") {
Card(modifier = modifier.fillMaxWidth()) {
Column(horizontalAlignment = Alignment.CenterHorizontally) {
Row(horizontalArrangement = Arrangement.Center) {
Icon(
painter = painterResource(id = R.drawable.ic_satellite),
tint = MaterialTheme.colors.secondary,
contentDescription = null,
modifier = Modifier
.size(96.dp)
.padding(top = 8.dp, end = 8.dp)
)
Column {
Text(
text = stringResource(id = R.string.app_name),
fontSize = 48.sp,
color = MaterialTheme.colors.secondary
)
Text(
text = stringResource(id = R.string.app_version, version),
fontSize = 21.sp
)
}
}
Text(
text = stringResource(id = R.string.app_subtitle),
fontSize = 21.sp,
modifier = modifier.padding(top = 4.dp, bottom = 8.dp)
)
}
}
}
@Composable
fun CardOutro(modifier: Modifier = Modifier) {
Card(modifier = modifier.fillMaxWidth()) {
Column(horizontalAlignment = Alignment.CenterHorizontally) {
Text(
text = stringResource(id = R.string.outro_title),
fontSize = 19.sp,
color = MaterialTheme.colors.secondary,
modifier = modifier.padding(8.dp)
)
Text(
text = stringResource(id = R.string.outro_thanks),
fontSize = 17.sp,
textAlign = TextAlign.Center,
modifier = modifier.padding(start = 8.dp, end = 8.dp)
)
Text(
text = stringResource(id = R.string.outro_license),
fontSize = 17.sp,
textAlign = TextAlign.Center,
modifier = modifier.padding(8.dp)
)
}
}
}
}
@@ -0,0 +1,11 @@
package com.rtbishop.look4sat.presentation.bottomNav
import com.rtbishop.look4sat.R
sealed class BottomNavItem(var title: String, var icon: Int, var screen_route: String) {
object Satellites : BottomNavItem("Satellites", R.drawable.ic_satellite, "satellites")
object Passes : BottomNavItem("Passes", R.drawable.ic_list, "passes")
object WorldMap : BottomNavItem("World Map", R.drawable.ic_map, "world_map")
object Settings : BottomNavItem("Settings", R.drawable.ic_settings, "settings")
object About : BottomNavItem("About", R.drawable.ic_about, "about")
}
@@ -0,0 +1,111 @@
package com.rtbishop.look4sat.presentation.bottomNav
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.wrapContentSize
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.sp
import com.rtbishop.look4sat.R
@Composable
fun SatellitesScreen() {
Column(
modifier = Modifier
.fillMaxSize()
.background(colorResource(id = R.color.background))
.wrapContentSize(Alignment.Center)
) {
Text(
text = "Satellites",
fontWeight = FontWeight.Bold,
color = Color.White,
modifier = Modifier.align(Alignment.CenterHorizontally),
textAlign = TextAlign.Center,
fontSize = 20.sp
)
}
}
@Composable
fun PassesScreen() {
Column(
modifier = Modifier
.fillMaxSize()
.background(colorResource(id = R.color.background))
.wrapContentSize(Alignment.Center)
) {
Text(
text = "Passes",
fontWeight = FontWeight.Bold,
color = Color.White,
modifier = Modifier.align(Alignment.CenterHorizontally),
textAlign = TextAlign.Center,
fontSize = 20.sp
)
}
}
@Composable
fun WorldMapScreen() {
Column(
modifier = Modifier
.fillMaxSize()
.background(colorResource(id = R.color.background))
.wrapContentSize(Alignment.Center)
) {
Text(
text = "World Map",
fontWeight = FontWeight.Bold,
color = Color.White,
modifier = Modifier.align(Alignment.CenterHorizontally),
textAlign = TextAlign.Center,
fontSize = 20.sp
)
}
}
@Composable
fun SettingsScreen() {
Column(
modifier = Modifier
.fillMaxSize()
.background(colorResource(id = R.color.background))
.wrapContentSize(Alignment.Center)
) {
Text(
text = "Settings",
fontWeight = FontWeight.Bold,
color = Color.White,
modifier = Modifier.align(Alignment.CenterHorizontally),
textAlign = TextAlign.Center,
fontSize = 20.sp
)
}
}
@Composable
fun AboutScreen() {
Column(
modifier = Modifier
.fillMaxSize()
.background(colorResource(id = R.color.background))
.wrapContentSize(Alignment.Center)
) {
Text(
text = "About",
fontWeight = FontWeight.Bold,
color = Color.White,
modifier = Modifier.align(Alignment.CenterHorizontally),
textAlign = TextAlign.Center,
fontSize = 20.sp
)
}
}
@@ -0,0 +1,79 @@
package com.rtbishop.look4sat.presentation.bottomNav
import androidx.compose.material.*
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.sp
import androidx.navigation.NavController
import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
import com.rtbishop.look4sat.R
import com.rtbishop.look4sat.presentation.theme.Yellow
import com.rtbishop.look4sat.presentation.theme.Look4SatTheme
import com.rtbishop.look4sat.presentation.theme.TextWhite
@Composable
fun BottomNavView(navController: NavController) {
val items = listOf(
BottomNavItem.Satellites,
BottomNavItem.Passes,
BottomNavItem.WorldMap,
BottomNavItem.Settings,
BottomNavItem.About
)
BottomNavigation(backgroundColor = colorResource(id = R.color.bottomBar)) {
val navBackStackEntry by navController.currentBackStackEntryAsState()
val currentRoute = navBackStackEntry?.destination?.route
items.forEach { item ->
BottomNavigationItem(icon = {
Icon(painterResource(id = item.icon), contentDescription = item.title)
},
label = { Text(text = item.title, fontSize = 9.sp) },
selectedContentColor = Yellow,
unselectedContentColor = TextWhite.copy(0.4f),
alwaysShowLabel = true,
selected = currentRoute == item.screen_route,
onClick = {
navController.navigate(item.screen_route) {
navController.graph.startDestinationRoute?.let { screen_route ->
popUpTo(screen_route) { saveState = true }
}
launchSingleTop = true
restoreState = true
}
})
}
}
}
@Composable
fun NavigationGraph(navController: NavHostController) {
NavHost(navController, startDestination = BottomNavItem.Satellites.screen_route) {
composable(BottomNavItem.Satellites.screen_route) { SatellitesScreen() }
composable(BottomNavItem.Passes.screen_route) { PassesScreen() }
composable(BottomNavItem.WorldMap.screen_route) { WorldMapScreen() }
composable(BottomNavItem.Settings.screen_route) { SettingsScreen() }
composable(BottomNavItem.About.screen_route) { AboutScreen() }
}
}
@Composable
fun MainScreenView() {
val navController = rememberNavController()
Scaffold(bottomBar = { BottomNavView(navController = navController) }) {
NavigationGraph(navController = navController)
it.calculateBottomPadding()
}
}
@Preview(showBackground = true)
@Composable
fun DefaultPreview() {
Look4SatTheme { MainScreenView() }
}
@@ -0,0 +1,12 @@
package com.rtbishop.look4sat.presentation.theme
import androidx.compose.ui.graphics.Color
val Yellow = Color(0xFFFFE082)
val TextWhite = Color(0xCCFFFFFF)
val TextGrey = Color(0x66FFFFFF)
val TextBlack = Color(0xFF000000)
val ButtonGrey = Color(0xFF2A2A2A)
val SurfaceGrey = Color(0xFF1C1C1C)
val Background = Color(0xFF121212)
val Transparent = Color(0x00000000)
@@ -0,0 +1,11 @@
package com.rtbishop.look4sat.presentation.theme
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.Shapes
import androidx.compose.ui.unit.dp
val Shapes = Shapes(
small = RoundedCornerShape(8.dp),
medium = RoundedCornerShape(8.dp),
large = RoundedCornerShape(8.dp)
)
@@ -0,0 +1,37 @@
package com.rtbishop.look4sat.presentation.theme
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.material.MaterialTheme
import androidx.compose.material.darkColors
import androidx.compose.material.lightColors
import androidx.compose.runtime.Composable
@Composable
fun Look4SatTheme(darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit) {
val colors = if (darkTheme) DarkColors else LightColors
MaterialTheme(colors = colors, typography = Typography, shapes = Shapes, content = content)
}
private val LightColors = lightColors(
primary = SurfaceGrey,
primaryVariant = Background,
secondary = Yellow,
background = Background,
surface = SurfaceGrey,
onPrimary = TextWhite,
onSecondary = TextBlack,
onBackground = TextWhite,
onSurface = TextWhite
)
private val DarkColors = darkColors(
primary = SurfaceGrey,
primaryVariant = Background,
secondary = Yellow,
background = Background,
surface = SurfaceGrey,
onPrimary = TextWhite,
onSecondary = TextBlack,
onBackground = TextWhite,
onSurface = TextWhite
)
@@ -0,0 +1,23 @@
package com.rtbishop.look4sat.presentation.theme
import androidx.compose.material.Typography
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.sp
val Typography = Typography(
body1 = TextStyle(
fontFamily = FontFamily.Default, fontWeight = FontWeight.Normal, fontSize = 16.sp
)
// button = TextStyle(
// fontFamily = FontFamily.Default,
// fontWeight = FontWeight.W500,
// fontSize = 14.sp
// ),
// caption = TextStyle(
// fontFamily = FontFamily.Default,
// fontWeight = FontWeight.Normal,
// fontSize = 12.sp
// )
)
@@ -0,0 +1,13 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:fillColor="#000000"
android:pathData="M437.02,74.98C388.67,26.63 324.38,0 256,0S123.33,26.63 74.98,74.98C26.63,123.33 0,187.62 0,256S26.63,388.67 74.98,437.02C123.33,485.37 187.62,512 256,512c68.38,0 132.67,-26.63 181.02,-74.98C485.37,388.67 512,324.38 512,256S485.37,123.33 437.02,74.98zM415.51,415.51c-42.61,42.61 -99.26,66.07 -159.51,66.07c-60.26,0 -116.9,-23.47 -159.51,-66.07C53.88,372.9 30.42,316.26 30.42,256S53.88,139.1 96.49,96.49C139.1,53.88 195.74,30.42 256,30.42c55.16,0 107.29,19.67 148.39,55.68l-41.21,41.21C333.14,102.2 295.63,88.52 256,88.52c-92.35,0 -167.48,75.13 -167.48,167.48S163.65,423.48 256,423.48s167.48,-75.13 167.48,-167.48h-30.42c0,75.57 -61.49,137.06 -137.06,137.06S118.94,331.58 118.94,256S180.43,118.94 256,118.94c31.49,0 61.35,10.56 85.57,29.98l-41.53,41.53c-12.91,-8.72 -28.12,-13.4 -44.04,-13.4c-43.53,0 -78.95,35.42 -78.95,78.95c0,43.53 35.42,78.95 78.95,78.95s78.95,-35.42 78.95,-78.95h-30.42c0,26.76 -21.77,48.54 -48.54,48.54S207.46,282.76 207.46,256c0,-26.76 21.77,-48.54 48.54,-48.54c7.72,0 15.15,1.8 21.84,5.18l-32.6,32.6l21.51,21.51l159.15,-159.15c36.01,41.11 55.68,93.24 55.68,148.39C481.58,316.26 458.12,372.9 415.51,415.51z" />
<path
android:fillColor="#000000"
android:pathData="M396.71,197.71m-18.42,0a18.42,18.42 0,1 1,36.85 0a18.42,18.42 0,1 1,-36.85 0" />
</vector>
@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="287.97"
android:viewportHeight="287.97">
<path
android:fillColor="#000000"
android:pathData="M143.98,287.97c79.4,0 143.99,-64.59 143.99,-143.99S223.38,0 143.98,0S0,64.59 0,143.98S64.59,287.97 143.98,287.97zM47.21,152.7c4.14,46.32 40.85,83.4 87.04,88.01v28.32c-61.79,-4.77 -111.08,-54.4 -115.36,-116.33H47.21zM197.35,74.14c2.64,-2.29 5.98,-3.74 9.69,-4c0.38,-0.03 0.75,-0.12 1.14,-0.12c9.15,0 16.57,7.42 16.57,16.57c0,1 -0.13,1.97 -0.3,2.92c-0.65,3.64 -2.49,6.84 -5.1,9.25c-2.28,2.1 -5.13,3.57 -8.31,4.12c-0.94,0.17 -1.89,0.29 -2.88,0.29c-9.15,0 -16.57,-7.42 -16.57,-16.57c0,-1.63 0.31,-3.17 0.75,-4.65C193.26,78.87 194.99,76.19 197.35,74.14zM152.7,152.7h69.55c-4.05,36.48 -33.07,65.51 -69.55,69.55V152.7zM208.18,116.01c3.09,0 6.01,-0.61 8.81,-1.5c2.52,6.22 4.25,12.84 5.11,19.73h-69.4V65.73c10.27,1.14 19.95,4.23 28.65,8.94c-1.63,3.65 -2.58,7.68 -2.58,11.93C178.76,102.82 191.96,116.01 208.18,116.01zM134.25,134.25H65.89c4.42,-35.65 32.71,-63.94 68.36,-68.36V134.25zM134.25,152.7v69.39c-36,-4.46 -64.52,-33.26 -68.52,-69.39H134.25zM152.7,269.08v-28.32c46.66,-4.17 83.89,-41.41 88.06,-88.07h28.33C264.78,214.97 214.97,264.77 152.7,269.08zM240.71,134.25c-1.09,-10.91 -4.07,-21.26 -8.48,-30.81c3.35,-4.78 5.37,-10.57 5.37,-16.84c0,-16.22 -13.2,-29.42 -29.42,-29.42c-5.09,0 -9.82,1.42 -14,3.71c-12.33,-7.47 -26.39,-12.32 -41.48,-13.68V18.89C214.62,23.17 264.26,72.46 269.03,134.25H240.71zM134.25,18.94v28.32c-45.85,4.58 -82.41,41.14 -86.98,86.99H18.95C23.69,72.8 72.8,23.69 134.25,18.94z" />
</vector>
@@ -0,0 +1,22 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="503.61"
android:viewportHeight="503.61">
<path
android:fillColor="#000000"
android:pathData="M251.8,0C113.31,0 0,112.47 0,251.8s113.31,251.8 251.8,251.8s251.8,-113.31 251.8,-251.8S390.3,0 251.8,0zM251.8,486.82c-129.26,0 -235.02,-105.76 -235.02,-235.02S122.54,16.79 251.8,16.79S486.82,122.54 486.82,251.8S381.06,486.82 251.8,486.82z" />
<path
android:fillColor="#000000"
android:pathData="M251.8,83.93c-92.33,0 -167.87,75.54 -167.87,167.87c0,9.23 0.84,18.47 2.52,26.86c0,4.2 5.04,7.55 9.23,6.72c4.2,0 7.55,-5.04 6.72,-9.23c-0.84,-7.55 -1.68,-15.95 -1.68,-24.34c0,-83.1 67.99,-151.08 151.08,-151.08s151.08,67.99 151.08,151.08s-67.99,151.08 -151.08,151.08c-37.55,0 -72.9,-13.13 -100.64,-38.69l47.21,-47.21c15.02,12.31 33.58,18.75 53.43,18.75c46.16,0 83.93,-37.77 83.93,-83.93s-37.77,-83.93 -83.93,-83.93s-83.93,37.77 -83.93,83.93c0,5.04 0,9.23 1.68,13.43c0,4.2 5.04,7.55 9.23,6.72c4.2,0 7.55,-5.04 6.72,-9.23c-0.84,-3.36 -0.84,-7.55 -0.84,-10.91c0,-36.93 30.22,-67.15 67.15,-67.15s67.15,30.22 67.15,67.15c0,36.93 -30.22,67.15 -67.15,67.15c-15.56,0 -29.91,-4.78 -41.58,-13.81l24.48,-24.48c5.02,2.99 10.87,4.72 17.1,4.72c18.47,0 33.57,-15.11 33.57,-33.57s-15.11,-33.57 -33.57,-33.57s-33.57,15.11 -33.57,33.57c0,6.24 1.73,12.09 4.72,17.1l-30.74,30.74c0,0 0,0 0,0s0,0 0,0l-58.75,58.75c0,0 0,0 0,0s0,0 0,0l-30.22,30.22c-3.36,3.36 -3.36,8.39 0,11.75c1.68,1.68 3.36,2.52 5.88,2.52c2.52,0 4.2,-0.84 5.88,-2.52l24.41,-24.41c30.46,28.22 70.69,43.72 112.4,43.72c92.33,0 167.87,-74.7 167.87,-167.87C419.67,159.48 344.13,83.93 251.8,83.93zM251.8,235.02c9.23,0 16.79,7.55 16.79,16.79c0,9.23 -7.55,16.79 -16.79,16.79c-4.18,0 -8.01,-1.56 -10.95,-4.11c-0.24,-0.32 -0.5,-0.63 -0.8,-0.93s-0.61,-0.56 -0.93,-0.8c-2.55,-2.95 -4.11,-6.77 -4.11,-10.95C235.02,242.57 242.57,235.02 251.8,235.02z" />
<path
android:fillColor="#000000"
android:pathData="M92.33,159.48c0,-9.23 -7.55,-16.79 -16.79,-16.79s-16.79,7.55 -16.79,16.79s7.55,16.79 16.79,16.79S92.33,168.71 92.33,159.48z" />
<path
android:fillColor="#000000"
android:pathData="M318.95,327.34c0,9.23 7.55,16.79 16.79,16.79c9.23,0 16.79,-7.55 16.79,-16.79c0,-9.23 -7.55,-16.79 -16.79,-16.79C326.51,310.56 318.95,318.11 318.95,327.34z" />
<path
android:fillColor="#000000"
android:pathData="M360.92,109.11c9.23,0 16.79,-7.55 16.79,-16.79s-7.55,-16.79 -16.79,-16.79s-16.79,7.55 -16.79,16.79S351.68,109.11 360.92,109.11z" />
</vector>
+1 -2
View File
@@ -56,8 +56,7 @@
tools:layout="@layout/fragment_settings" /> tools:layout="@layout/fragment_settings" />
<fragment <fragment
android:id="@+id/nav_about" android:id="@+id/nav_about"
android:name="com.rtbishop.look4sat.presentation.radarScreen.RadarFragment" android:name="com.rtbishop.look4sat.presentation.aboutScreen.AboutFragment">
tools:layout="@layout/fragment_radar">
<argument <argument
android:name="catNum" android:name="catNum"
android:defaultValue="-1" android:defaultValue="-1"
+5 -5
View File
@@ -164,16 +164,16 @@
<string name="outro_title">I would like to say thanks to:</string> <string name="outro_title">I would like to say thanks to:</string>
<string name="outro_thanks"> • You for downloading and using Look4Sat! \nMay your sky always be clear! <string name="outro_thanks"> • You for downloading and using Look4Sat! \nMay your sky always be clear!
\n • <a href="https://github.com/g4dpz">David A. B. Johnson</a> \n\n • <a href="https://github.com/g4dpz">David A. B. Johnson</a>
and <a href="https://github.com/davidmoten">Dave Moten</a> for creating predict4java lib and <a href="https://github.com/davidmoten">Dave Moten</a> for creating predict4java lib
under the <a href="https://gnu.org/licenses/old-licenses/gpl-2.0.en.html">GNU GPLv2</a>. under the <a href="https://gnu.org/licenses/old-licenses/gpl-2.0.en.html">GNU GPLv2</a>.
\n • <a href="https://github.com/csete">Alexandru Csete</a> for creating Gpredict \n\n • <a href="https://github.com/csete">Alexandru Csete</a> for creating Gpredict
satellite tracker that inspired the creation of Look4Sat. satellite tracker that inspired the creation of Look4Sat.
\n • <a href="https://celestrak.com/webmaster.php">Dr T.S. Kelso</a> for maintaining his \n\n • <a href="https://celestrak.com/webmaster.php">Dr T.S. Kelso</a> for maintaining his
<a href="https://celestrak.com/">Celestrak</a> website that provides access to the TLE data. <a href="https://celestrak.com/">Celestrak</a> website that provides access to the TLE data.
\n • <a href="https://libre.space/">Libre Space Foundation</a> for their \n\n • <a href="https://libre.space/">Libre Space Foundation</a> for their
<a href="https://db.satnogs.org/">SatNOGS</a> API and DB providing a huge amount of satellite data. <a href="https://db.satnogs.org/">SatNOGS</a> API and DB providing a huge amount of satellite data.
\n • <a href="https://appoftheday.downloadastro.com/app/look4sat-satellite-tracker/">DownloadAstro</a> \n\n • <a href="https://appoftheday.downloadastro.com/app/look4sat-satellite-tracker/">DownloadAstro</a>
team for their interest to the app and the interview published. team for their interest to the app and the interview published.
</string> </string>
<string name="outro_license"><a href="https://sites.google.com/view/look4sat-privacy-policy/home">Privacy Policy.</a> <string name="outro_license"><a href="https://sites.google.com/view/look4sat-privacy-policy/home">Privacy Policy.</a>
+2 -4
View File
@@ -1,18 +1,16 @@
buildscript { buildscript {
ext { ext {
hilt_version = '2.44.2' hilt_version = '2.44.2'
application_version = '8.3.0' application_version = '7.4.0'
library_version = '7.1.2' library_version = '7.1.2'
kotlin_android_version = '1.8.0' kotlin_android_version = '1.8.0'
core_ktx_version = '1.9.0' core_ktx_version = '1.9.0'
core_splashscreen_version = '1.0.1' core_splashscreen_version = '1.0.0'
constraint_version = '2.1.4' constraint_version = '2.1.4'
lifecycle_version = '2.5.1' lifecycle_version = '2.5.1'
navigation_version = '2.5.3' navigation_version = '2.5.3'
work_version = '2.7.1' work_version = '2.7.1'
room_version = '2.5.0' room_version = '2.5.0'
material_version = '1.6.1'
okhttp_version = '4.10.0'
osmdroid_version = '6.1.14' osmdroid_version = '6.1.14'
json_version = '20220924' json_version = '20220924'
compose_version = '1.3.3' compose_version = '1.3.3'