mirror of
https://github.com/atsunatsu/Look4Sat.git
synced 2026-10-02 03:15:37 +00:00
Added Compose dependencies and basic classes
This commit is contained in:
1 parent
0303c53a72
commit
8f411d4c5e
16 files changed
+472
-27
No files matched your search
+16
-16
@@ -34,7 +34,7 @@ android {
|
||||
}
|
||||
}
|
||||
buildFeatures {
|
||||
// compose true
|
||||
compose true
|
||||
viewBinding true
|
||||
}
|
||||
composeOptions {
|
||||
@@ -74,26 +74,26 @@ dependencies {
|
||||
implementation "androidx.room:room-runtime:$room_version"
|
||||
implementation "androidx.room:room-ktx:$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"
|
||||
kapt "com.google.dagger:hilt-compiler:$hilt_version"
|
||||
implementation "com.squareup.okhttp3:okhttp:$okhttp_version"
|
||||
implementation "org.osmdroid:osmdroid-android:$osmdroid_version"
|
||||
|
||||
// implementation "androidx.compose.ui:ui:$compose_version"
|
||||
// implementation "androidx.compose.ui:ui-tooling:$compose_version"
|
||||
// implementation "androidx.compose.runtime:runtime:$compose_version"
|
||||
// implementation "androidx.compose.runtime:runtime-livedata:$compose_version"
|
||||
// implementation "androidx.compose.compiler:compiler:$compose_compiler_version"
|
||||
// implementation "androidx.compose.animation:animation:$compose_version"
|
||||
// implementation "androidx.compose.foundation:foundation:$compose_foundation_version"
|
||||
// implementation "androidx.activity:activity-compose:$activity_compose_version"
|
||||
// implementation "androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycle_version"
|
||||
// implementation "androidx.compose.material:material:$compose_material_version"
|
||||
// implementation "androidx.compose.material:material-icons-extended:$compose_material_version"
|
||||
// implementation "com.google.android.material:compose-theme-adapter:$material_adapter_version"
|
||||
implementation "androidx.compose.ui:ui:$compose_version"
|
||||
implementation "androidx.compose.ui:ui-tooling:$compose_version"
|
||||
implementation "androidx.compose.runtime:runtime:$compose_version"
|
||||
implementation "androidx.compose.runtime:runtime-livedata:$compose_version"
|
||||
implementation "androidx.compose.compiler:compiler:$compose_compiler_version"
|
||||
implementation "androidx.compose.animation:animation:$compose_version"
|
||||
implementation "androidx.compose.foundation:foundation:$compose_foundation_version"
|
||||
implementation "androidx.navigation:navigation-compose:$navigation_version"
|
||||
implementation "androidx.activity:activity-compose:$activity_compose_version"
|
||||
implementation "androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycle_version"
|
||||
implementation "androidx.compose.material:material:$compose_material_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 "com.squareup.leakcanary:leakcanary-android:$leakcanary_version"
|
||||
|
||||
@@ -108,7 +108,7 @@ dependencies {
|
||||
androidTestImplementation "androidx.test.ext:junit:$androidx_junit_version"
|
||||
androidTestImplementation "androidx.test.ext:truth:$androidx_test_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.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutines_test_version"
|
||||
}
|
||||
@@ -24,6 +24,7 @@ import android.content.res.Configuration
|
||||
import android.os.Bundle
|
||||
import android.os.SystemClock
|
||||
import android.view.View
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.annotation.IdRes
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
|
||||
@@ -36,6 +37,8 @@ import androidx.navigation.ui.NavigationUI
|
||||
import androidx.navigation.ui.NavigationUiSaveStateControl
|
||||
import com.rtbishop.look4sat.R
|
||||
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
|
||||
|
||||
@AndroidEntryPoint
|
||||
@@ -51,6 +54,7 @@ class MainActivity : AppCompatActivity() {
|
||||
val host = supportFragmentManager.findFragmentById(R.id.nav_host) as NavHostFragment
|
||||
NavigationUI.setupWithNavController(binding.navBar, host.navController, false)
|
||||
setContentView(binding.root)
|
||||
// setContent { Look4SatTheme { MainScreenView() } }
|
||||
}
|
||||
|
||||
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>
|
||||
@@ -56,8 +56,7 @@
|
||||
tools:layout="@layout/fragment_settings" />
|
||||
<fragment
|
||||
android:id="@+id/nav_about"
|
||||
android:name="com.rtbishop.look4sat.presentation.radarScreen.RadarFragment"
|
||||
tools:layout="@layout/fragment_radar">
|
||||
android:name="com.rtbishop.look4sat.presentation.aboutScreen.AboutFragment">
|
||||
<argument
|
||||
android:name="catNum"
|
||||
android:defaultValue="-1"
|
||||
|
||||
@@ -164,16 +164,16 @@
|
||||
|
||||
<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!
|
||||
\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
|
||||
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.
|
||||
\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.
|
||||
\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.
|
||||
\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.
|
||||
</string>
|
||||
<string name="outro_license"><a href="https://sites.google.com/view/look4sat-privacy-policy/home">Privacy Policy.</a>
|
||||
|
||||
+2
-4
@@ -1,18 +1,16 @@
|
||||
buildscript {
|
||||
ext {
|
||||
hilt_version = '2.44.2'
|
||||
application_version = '8.3.0'
|
||||
application_version = '7.4.0'
|
||||
library_version = '7.1.2'
|
||||
kotlin_android_version = '1.8.0'
|
||||
core_ktx_version = '1.9.0'
|
||||
core_splashscreen_version = '1.0.1'
|
||||
core_splashscreen_version = '1.0.0'
|
||||
constraint_version = '2.1.4'
|
||||
lifecycle_version = '2.5.1'
|
||||
navigation_version = '2.5.3'
|
||||
work_version = '2.7.1'
|
||||
room_version = '2.5.0'
|
||||
material_version = '1.6.1'
|
||||
okhttp_version = '4.10.0'
|
||||
osmdroid_version = '6.1.14'
|
||||
json_version = '20220924'
|
||||
compose_version = '1.3.3'
|
||||
|
||||
Reference in new issue
Block a user