mirror of
https://github.com/atsunatsu/Look4Sat.git
synced 2026-10-02 03:15:37 +00:00
Various changes to layouts, styles, strings and drawables
This commit is contained in:
1 parent
567200cfe4
commit
9fd0d5f2e2
60 files changed
+368
-438
No files matched your search
+2
-2
@@ -69,8 +69,8 @@ dependencies {
|
|||||||
kapt "androidx.room:room-compiler:2.4.1"
|
kapt "androidx.room:room-compiler:2.4.1"
|
||||||
|
|
||||||
implementation "com.google.android.material:material:1.5.0"
|
implementation "com.google.android.material:material:1.5.0"
|
||||||
implementation "com.google.dagger:hilt-android:2.40.5"
|
implementation "com.google.dagger:hilt-android:2.41"
|
||||||
kapt "com.google.dagger:hilt-compiler:2.40.5"
|
kapt "com.google.dagger:hilt-compiler:2.41"
|
||||||
|
|
||||||
implementation "org.osmdroid:osmdroid-android:6.1.11"
|
implementation "org.osmdroid:osmdroid-android:6.1.11"
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:roundIcon="@mipmap/ic_launcher_round"
|
android:roundIcon="@mipmap/ic_launcher_round"
|
||||||
|
android:supportsRtl="true"
|
||||||
android:theme="@style/Theme.Look4Sat.Main">
|
android:theme="@style/Theme.Look4Sat.Main">
|
||||||
<activity
|
<activity
|
||||||
android:name=".presentation.MainActivity"
|
android:name=".presentation.MainActivity"
|
||||||
|
|||||||
@@ -29,9 +29,9 @@ import com.rtbishop.look4sat.R
|
|||||||
import com.rtbishop.look4sat.data.ISettingsHandler
|
import com.rtbishop.look4sat.data.ISettingsHandler
|
||||||
import com.rtbishop.look4sat.domain.ILocationHandler
|
import com.rtbishop.look4sat.domain.ILocationHandler
|
||||||
import com.rtbishop.look4sat.domain.QthConverter
|
import com.rtbishop.look4sat.domain.QthConverter
|
||||||
import com.rtbishop.look4sat.domain.QthConverter.round
|
|
||||||
import com.rtbishop.look4sat.domain.model.DataState
|
import com.rtbishop.look4sat.domain.model.DataState
|
||||||
import com.rtbishop.look4sat.domain.predict.GeoPos
|
import com.rtbishop.look4sat.domain.predict.GeoPos
|
||||||
|
import com.rtbishop.look4sat.domain.round
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ class LocalSource(
|
|||||||
return radiosDao.getRadios(catnum).toDomainRadios()
|
return radiosDao.getRadios(catnum).toDomainRadios()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("BlockingMethodInNonBlockingContext")
|
||||||
override suspend fun getFileStream(uri: String): InputStream? {
|
override suspend fun getFileStream(uri: String): InputStream? {
|
||||||
return withContext(ioDispatcher) { resolver.openInputStream(Uri.parse(uri)) }
|
return withContext(ioDispatcher) { resolver.openInputStream(Uri.parse(uri)) }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import java.net.URL
|
|||||||
|
|
||||||
class RemoteSource(private val ioDispatcher: CoroutineDispatcher) : IRemoteSource {
|
class RemoteSource(private val ioDispatcher: CoroutineDispatcher) : IRemoteSource {
|
||||||
|
|
||||||
|
@Suppress("BlockingMethodInNonBlockingContext")
|
||||||
override suspend fun getFileStream(url: String): InputStream? {
|
override suspend fun getFileStream(url: String): InputStream? {
|
||||||
return withContext(ioDispatcher) { URL(url).openStream() }
|
return withContext(ioDispatcher) { URL(url).openStream() }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,21 +19,12 @@ package com.rtbishop.look4sat.presentation
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
import android.content.res.Resources
|
|
||||||
import android.widget.EditText
|
|
||||||
import android.widget.FrameLayout
|
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.annotation.IdRes
|
import androidx.annotation.IdRes
|
||||||
import androidx.appcompat.app.AlertDialog
|
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.Lifecycle
|
import androidx.lifecycle.Lifecycle
|
||||||
import androidx.lifecycle.LifecycleEventObserver
|
import androidx.lifecycle.LifecycleEventObserver
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
import java.net.InetSocketAddress
|
|
||||||
import java.net.Socket
|
|
||||||
import java.security.MessageDigest
|
|
||||||
import java.util.concurrent.TimeUnit
|
|
||||||
import java.util.regex.Pattern
|
|
||||||
|
|
||||||
fun Context.toast(text: String, duration: Int = Toast.LENGTH_SHORT) {
|
fun Context.toast(text: String, duration: Int = Toast.LENGTH_SHORT) {
|
||||||
Toast.makeText(this, text, duration).apply { show() }
|
Toast.makeText(this, text, duration).apply { show() }
|
||||||
@@ -64,79 +55,3 @@ fun <T> Fragment.getNavResult(@IdRes id: Int, key: String, onResult: (result: T)
|
|||||||
fun <T> Fragment.setNavResult(key: String, value: T) {
|
fun <T> Fragment.setNavResult(key: String, value: T) {
|
||||||
findNavController().previousBackStackEntry?.savedStateHandle?.set(key, value)
|
findNavController().previousBackStackEntry?.savedStateHandle?.set(key, value)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Long.toTimerString(): String {
|
|
||||||
val format = "%02d:%02d:%02d"
|
|
||||||
val hours = TimeUnit.MILLISECONDS.toHours(this)
|
|
||||||
val minutes = TimeUnit.MILLISECONDS.toMinutes(this) % 60
|
|
||||||
val seconds = TimeUnit.MILLISECONDS.toSeconds(this) % 60
|
|
||||||
return String.format(format, hours, minutes, seconds)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun Double.round(decimals: Int): Double {
|
|
||||||
var multiplier = 1.0
|
|
||||||
repeat(decimals) { multiplier *= 10 }
|
|
||||||
return kotlin.math.round(this * multiplier) / multiplier
|
|
||||||
}
|
|
||||||
|
|
||||||
fun String.getHash(type: String = "SHA-256"): String {
|
|
||||||
val hexChars = "0123456789ABCDEF"
|
|
||||||
val bytes = MessageDigest.getInstance(type).digest(this.toByteArray())
|
|
||||||
val result = StringBuilder(bytes.size * 2)
|
|
||||||
bytes.forEach {
|
|
||||||
val i = it.toInt()
|
|
||||||
result.append(hexChars[i shr 4 and 0x0f])
|
|
||||||
result.append(hexChars[i and 0x0f])
|
|
||||||
}
|
|
||||||
return result.toString()
|
|
||||||
}
|
|
||||||
|
|
||||||
fun String.isValidEmail(): Boolean {
|
|
||||||
val expression = "^[\\w.-]+@([\\w\\-]+\\.)+[A-Z]{2,8}$"
|
|
||||||
val pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE)
|
|
||||||
return pattern.matcher(this).matches()
|
|
||||||
}
|
|
||||||
|
|
||||||
fun String.isValidIPv4(): Boolean {
|
|
||||||
val ip4 = "^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\.(?!\$)|\$)){4}\$"
|
|
||||||
return this.matches(ip4.toRegex())
|
|
||||||
}
|
|
||||||
|
|
||||||
fun String.isValidPort(): Boolean {
|
|
||||||
return this.isNotEmpty() && this.toInt() in 1024..65535
|
|
||||||
}
|
|
||||||
|
|
||||||
fun Float.toPx(): Int = (this * Resources.getSystem().displayMetrics.density).toInt()
|
|
||||||
|
|
||||||
fun AlertDialog.Builder.setEditText(editText: EditText): AlertDialog.Builder {
|
|
||||||
val container = FrameLayout(context)
|
|
||||||
container.addView(editText)
|
|
||||||
val containerParams = FrameLayout.LayoutParams(
|
|
||||||
FrameLayout.LayoutParams.MATCH_PARENT,
|
|
||||||
FrameLayout.LayoutParams.WRAP_CONTENT
|
|
||||||
)
|
|
||||||
val marginHorizontal = 32F
|
|
||||||
val marginTop = 24F
|
|
||||||
containerParams.topMargin = (marginTop / 2).toPx()
|
|
||||||
containerParams.leftMargin = marginHorizontal.toInt()
|
|
||||||
containerParams.rightMargin = marginHorizontal.toInt()
|
|
||||||
container.layoutParams = containerParams
|
|
||||||
val superContainer = FrameLayout(context)
|
|
||||||
superContainer.addView(container)
|
|
||||||
setView(superContainer)
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
|
|
||||||
fun ping(hostname: String, port: Int): Int {
|
|
||||||
val start = System.currentTimeMillis()
|
|
||||||
val socket = Socket()
|
|
||||||
try {
|
|
||||||
socket.connect(InetSocketAddress(hostname, port), 6000)
|
|
||||||
socket.close()
|
|
||||||
} catch (exception: Exception) {
|
|
||||||
exception.printStackTrace()
|
|
||||||
println("Failed to ping: $hostname")
|
|
||||||
return Int.MAX_VALUE
|
|
||||||
}
|
|
||||||
return (System.currentTimeMillis() - start).toInt()
|
|
||||||
}
|
|
||||||
@@ -17,6 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
package com.rtbishop.look4sat.presentation
|
package com.rtbishop.look4sat.presentation
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
import android.content.pm.ActivityInfo
|
import android.content.pm.ActivityInfo
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.activity.viewModels
|
import androidx.activity.viewModels
|
||||||
@@ -30,6 +31,7 @@ class MainActivity : AppCompatActivity() {
|
|||||||
|
|
||||||
private val mainViewModel: MainViewModel by viewModels()
|
private val mainViewModel: MainViewModel by viewModels()
|
||||||
|
|
||||||
|
@SuppressLint("SourceLockedOrientationActivity")
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
|
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
|
||||||
installSplashScreen()
|
installSplashScreen()
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ class MapFragment : Fragment(R.layout.fragment_map) {
|
|||||||
textLabelFontSize = 24
|
textLabelFontSize = 24
|
||||||
textLabelBackgroundColor = Color.TRANSPARENT
|
textLabelBackgroundColor = Color.TRANSPARENT
|
||||||
textLabelForegroundColor =
|
textLabelForegroundColor =
|
||||||
ContextCompat.getColor(requireContext(), R.color.themeAccent)
|
ContextCompat.getColor(requireContext(), R.color.accent)
|
||||||
setTextIcon(it.key.data.name)
|
setTextIcon(it.key.data.name)
|
||||||
setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_CENTER)
|
setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_CENTER)
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -30,8 +30,8 @@ import com.rtbishop.look4sat.R
|
|||||||
import com.rtbishop.look4sat.databinding.FragmentPassesBinding
|
import com.rtbishop.look4sat.databinding.FragmentPassesBinding
|
||||||
import com.rtbishop.look4sat.domain.model.DataState
|
import com.rtbishop.look4sat.domain.model.DataState
|
||||||
import com.rtbishop.look4sat.domain.predict.SatPass
|
import com.rtbishop.look4sat.domain.predict.SatPass
|
||||||
|
import com.rtbishop.look4sat.domain.toTimerString
|
||||||
import com.rtbishop.look4sat.presentation.getNavResult
|
import com.rtbishop.look4sat.presentation.getNavResult
|
||||||
import com.rtbishop.look4sat.presentation.toTimerString
|
|
||||||
import com.rtbishop.look4sat.presentation.toast
|
import com.rtbishop.look4sat.presentation.toast
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import com.rtbishop.look4sat.data.ISettingsHandler
|
|||||||
import com.rtbishop.look4sat.databinding.FragmentRadarBinding
|
import com.rtbishop.look4sat.databinding.FragmentRadarBinding
|
||||||
import com.rtbishop.look4sat.domain.predict.SatPass
|
import com.rtbishop.look4sat.domain.predict.SatPass
|
||||||
import com.rtbishop.look4sat.domain.predict.SatPos
|
import com.rtbishop.look4sat.domain.predict.SatPos
|
||||||
import com.rtbishop.look4sat.presentation.toTimerString
|
import com.rtbishop.look4sat.domain.toTimerString
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ import kotlin.math.sin
|
|||||||
|
|
||||||
class RadarView(context: Context) : View(context) {
|
class RadarView(context: Context) : View(context) {
|
||||||
|
|
||||||
private val defaultColor = ContextCompat.getColor(context, R.color.themeAccent)
|
private val defaultColor = ContextCompat.getColor(context, R.color.accent)
|
||||||
private val scale = resources.displayMetrics.density
|
private val scale = resources.displayMetrics.density
|
||||||
private val radarWidth = resources.displayMetrics.widthPixels
|
private val radarWidth = resources.displayMetrics.widthPixels
|
||||||
private val radarRadius = radarWidth * 0.48f
|
private val radarRadius = radarWidth * 0.48f
|
||||||
@@ -38,7 +38,7 @@ class RadarView(context: Context) : View(context) {
|
|||||||
private var position: SatPos? = null
|
private var position: SatPos? = null
|
||||||
private var positions: List<SatPos> = emptyList()
|
private var positions: List<SatPos> = emptyList()
|
||||||
|
|
||||||
private var radarColor = ContextCompat.getColor(context, R.color.themeLight)
|
private var radarColor = ContextCompat.getColor(context, R.color.textMain)
|
||||||
private var radarCircleNum = 3
|
private var radarCircleNum = 3
|
||||||
private var radarPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
|
private var radarPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
|
||||||
color = radarColor
|
color = radarColor
|
||||||
@@ -79,7 +79,7 @@ class RadarView(context: Context) : View(context) {
|
|||||||
|
|
||||||
private val arrowPath = Path()
|
private val arrowPath = Path()
|
||||||
private var arrowPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
|
private var arrowPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
|
||||||
color = ContextCompat.getColor(context, R.color.themeAccent)
|
color = ContextCompat.getColor(context, R.color.accent)
|
||||||
style = Paint.Style.FILL
|
style = Paint.Style.FILL
|
||||||
strokeWidth = strokeSize
|
strokeWidth = strokeSize
|
||||||
}
|
}
|
||||||
@@ -135,7 +135,7 @@ class RadarView(context: Context) : View(context) {
|
|||||||
isTrackCreated = true
|
isTrackCreated = true
|
||||||
}
|
}
|
||||||
|
|
||||||
canvas.drawColor(ContextCompat.getColor(context, R.color.surfaceCard))
|
canvas.drawColor(ContextCompat.getColor(context, R.color.cardRegular))
|
||||||
drawRadarCircle(canvas, cx, cy, radarRadius)
|
drawRadarCircle(canvas, cx, cy, radarRadius)
|
||||||
drawRadarCross(canvas, cx, cy, radarRadius)
|
drawRadarCross(canvas, cx, cy, radarRadius)
|
||||||
drawRadarText(canvas, cx, radarRadius)
|
drawRadarText(canvas, cx, radarRadius)
|
||||||
|
|||||||
@@ -27,8 +27,8 @@ import com.rtbishop.look4sat.domain.predict.GeoPos
|
|||||||
import com.rtbishop.look4sat.domain.predict.Predictor
|
import com.rtbishop.look4sat.domain.predict.Predictor
|
||||||
import com.rtbishop.look4sat.domain.predict.SatPass
|
import com.rtbishop.look4sat.domain.predict.SatPass
|
||||||
import com.rtbishop.look4sat.domain.predict.SatPos
|
import com.rtbishop.look4sat.domain.predict.SatPos
|
||||||
|
import com.rtbishop.look4sat.domain.round
|
||||||
import com.rtbishop.look4sat.framework.OrientationHandler
|
import com.rtbishop.look4sat.framework.OrientationHandler
|
||||||
import com.rtbishop.look4sat.presentation.round
|
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
import kotlinx.coroutines.isActive
|
import kotlinx.coroutines.isActive
|
||||||
|
|||||||
+33
-33
@@ -34,11 +34,11 @@ import androidx.navigation.fragment.findNavController
|
|||||||
import com.rtbishop.look4sat.BuildConfig
|
import com.rtbishop.look4sat.BuildConfig
|
||||||
import com.rtbishop.look4sat.R
|
import com.rtbishop.look4sat.R
|
||||||
import com.rtbishop.look4sat.databinding.FragmentSettingsBinding
|
import com.rtbishop.look4sat.databinding.FragmentSettingsBinding
|
||||||
|
import com.rtbishop.look4sat.domain.isValidIPv4
|
||||||
|
import com.rtbishop.look4sat.domain.isValidPort
|
||||||
import com.rtbishop.look4sat.domain.model.DataState
|
import com.rtbishop.look4sat.domain.model.DataState
|
||||||
import com.rtbishop.look4sat.domain.predict.GeoPos
|
import com.rtbishop.look4sat.domain.predict.GeoPos
|
||||||
import com.rtbishop.look4sat.presentation.getNavResult
|
import com.rtbishop.look4sat.presentation.getNavResult
|
||||||
import com.rtbishop.look4sat.presentation.isValidIPv4
|
|
||||||
import com.rtbishop.look4sat.presentation.isValidPort
|
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
@@ -94,28 +94,28 @@ class SettingsFragment : Fragment(R.layout.fragment_settings) {
|
|||||||
|
|
||||||
private fun setupAboutCard() {
|
private fun setupAboutCard() {
|
||||||
binding.settingsInfo.aboutVersion.text =
|
binding.settingsInfo.aboutVersion.text =
|
||||||
String.format(getString(R.string.about_version), BuildConfig.VERSION_NAME)
|
String.format(getString(R.string.app_version), BuildConfig.VERSION_NAME)
|
||||||
// binding.settingsInfo.aboutBtnGithub.setOnClickListener {
|
binding.settingsGithubBtn.setOnClickListener {
|
||||||
// gotoUrl("https://github.com/rt-bishop/Look4Sat/")
|
gotoUrl("https://github.com/rt-bishop/Look4Sat/")
|
||||||
// }
|
}
|
||||||
// binding.settingsInfo.aboutBtnDonate.setOnClickListener {
|
binding.settingsFab.setOnClickListener {
|
||||||
// gotoUrl("https://www.buymeacoffee.com/rtbishop")
|
gotoUrl("https://www.buymeacoffee.com/rtbishop")
|
||||||
// }
|
}
|
||||||
// binding.settingsInfo.aboutBtnFdroid.setOnClickListener {
|
binding.settingsFdroidBtn.setOnClickListener {
|
||||||
// gotoUrl("https://f-droid.org/en/packages/com.rtbishop.look4sat/")
|
gotoUrl("https://f-droid.org/en/packages/com.rtbishop.look4sat/")
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupLocationCard() {
|
private fun setupLocationCard() {
|
||||||
setPositionText(viewModel.getStationPosition())
|
setPositionText(viewModel.getStationPosition())
|
||||||
binding.settingsLocation.locationBtnGps.setOnClickListener {
|
binding.settingsLocation.positionBtnGps.setOnClickListener {
|
||||||
locationRequest.launch(arrayOf(locationFine, locationCoarse))
|
locationRequest.launch(arrayOf(locationFine, locationCoarse))
|
||||||
}
|
}
|
||||||
binding.settingsLocation.locationBtnManual.setOnClickListener {
|
binding.settingsLocation.positionBtnManual.setOnClickListener {
|
||||||
val action = SettingsFragmentDirections.actionPrefsToLocation()
|
val action = SettingsFragmentDirections.actionPrefsToLocation()
|
||||||
findNavController().navigate(action)
|
findNavController().navigate(action)
|
||||||
}
|
}
|
||||||
binding.settingsLocation.locationBtnQth.setOnClickListener {
|
binding.settingsLocation.positionBtnQth.setOnClickListener {
|
||||||
val action = SettingsFragmentDirections.actionPrefsToLocator()
|
val action = SettingsFragmentDirections.actionPrefsToLocator()
|
||||||
findNavController().navigate(action)
|
findNavController().navigate(action)
|
||||||
}
|
}
|
||||||
@@ -136,11 +136,11 @@ class SettingsFragment : Fragment(R.layout.fragment_settings) {
|
|||||||
binding.settingsData.dataBtnClear.setOnClickListener { viewModel.clearData() }
|
binding.settingsData.dataBtnClear.setOnClickListener { viewModel.clearData() }
|
||||||
viewModel.entries.observe(viewLifecycleOwner) { number ->
|
viewModel.entries.observe(viewLifecycleOwner) { number ->
|
||||||
val entriesFormat = getString(R.string.fmt_entries)
|
val entriesFormat = getString(R.string.fmt_entries)
|
||||||
binding.settingsData.dataSatellites.text = String.format(entriesFormat, number)
|
binding.settingsData.dataEntries.text = String.format(entriesFormat, number)
|
||||||
}
|
}
|
||||||
viewModel.radios.observe(viewLifecycleOwner) { number ->
|
viewModel.radios.observe(viewLifecycleOwner) { number ->
|
||||||
val radiosFormat = getString(R.string.fmt_radios)
|
val radiosFormat = getString(R.string.fmt_radios)
|
||||||
binding.settingsData.dataTransmitters.text = String.format(radiosFormat, number)
|
binding.settingsData.dataRadios.text = String.format(radiosFormat, number)
|
||||||
}
|
}
|
||||||
getNavResult<List<String>>(R.id.nav_settings, "sources") { sources ->
|
getNavResult<List<String>>(R.id.nav_settings, "sources") { sources ->
|
||||||
viewModel.updateDataFromWeb(sources)
|
viewModel.updateDataFromWeb(sources)
|
||||||
@@ -148,22 +148,22 @@ class SettingsFragment : Fragment(R.layout.fragment_settings) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun setupTrackingCard() {
|
private fun setupTrackingCard() {
|
||||||
binding.settingsTracking.trackingSwitch.apply {
|
binding.settingsTracking.remoteSwitch.apply {
|
||||||
isChecked = viewModel.getRotatorEnabled()
|
isChecked = viewModel.getRotatorEnabled()
|
||||||
binding.settingsTracking.trackingIp.isEnabled = isChecked
|
binding.settingsTracking.remoteIp.isEnabled = isChecked
|
||||||
binding.settingsTracking.trackingIpEdit.setText(viewModel.getRotatorServer())
|
binding.settingsTracking.remoteIpEdit.setText(viewModel.getRotatorServer())
|
||||||
binding.settingsTracking.trackingPort.isEnabled = isChecked
|
binding.settingsTracking.remotePort.isEnabled = isChecked
|
||||||
binding.settingsTracking.trackingPortEdit.setText(viewModel.getRotatorPort())
|
binding.settingsTracking.remotePortEdit.setText(viewModel.getRotatorPort())
|
||||||
setOnCheckedChangeListener { _, isChecked ->
|
setOnCheckedChangeListener { _, isChecked ->
|
||||||
viewModel.setRotatorEnabled(isChecked)
|
viewModel.setRotatorEnabled(isChecked)
|
||||||
binding.settingsTracking.trackingIp.isEnabled = isChecked
|
binding.settingsTracking.remoteIp.isEnabled = isChecked
|
||||||
binding.settingsTracking.trackingPort.isEnabled = isChecked
|
binding.settingsTracking.remotePort.isEnabled = isChecked
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
binding.settingsTracking.trackingIpEdit.doOnTextChanged { text, _, _, _ ->
|
binding.settingsTracking.remoteIpEdit.doOnTextChanged { text, _, _, _ ->
|
||||||
if (text.toString().isValidIPv4()) viewModel.setRotatorServer(text.toString())
|
if (text.toString().isValidIPv4()) viewModel.setRotatorServer(text.toString())
|
||||||
}
|
}
|
||||||
binding.settingsTracking.trackingPortEdit.doOnTextChanged { text, _, _, _ ->
|
binding.settingsTracking.remotePortEdit.doOnTextChanged { text, _, _, _ ->
|
||||||
if (text.toString().isValidPort()) viewModel.setRotatorPort(text.toString())
|
if (text.toString().isValidPort()) viewModel.setRotatorPort(text.toString())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -184,32 +184,32 @@ class SettingsFragment : Fragment(R.layout.fragment_settings) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun setupWarrantyCard() {
|
private fun setupWarrantyCard() {
|
||||||
binding.settingsWarranty.warrantyThanks.movementMethod = LinkMovementMethod.getInstance()
|
binding.settingsWarranty.outroThanks.movementMethod = LinkMovementMethod.getInstance()
|
||||||
binding.settingsWarranty.warrantyLicense.movementMethod = LinkMovementMethod.getInstance()
|
binding.settingsWarranty.outroLicense.movementMethod = LinkMovementMethod.getInstance()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setPositionText(geoPos: GeoPos) {
|
private fun setPositionText(geoPos: GeoPos) {
|
||||||
val latFormat = getString(R.string.location_lat)
|
val latFormat = getString(R.string.location_lat)
|
||||||
val lonFormat = getString(R.string.location_lon)
|
val lonFormat = getString(R.string.location_lon)
|
||||||
binding.settingsLocation.locationLat.text = String.format(latFormat, geoPos.latitude)
|
binding.settingsLocation.positionLat.text = String.format(latFormat, geoPos.latitude)
|
||||||
binding.settingsLocation.locationLon.text = String.format(lonFormat, geoPos.longitude)
|
binding.settingsLocation.positionLon.text = String.format(lonFormat, geoPos.longitude)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun handleStationPosition(pos: DataState<GeoPos>) {
|
private fun handleStationPosition(pos: DataState<GeoPos>) {
|
||||||
when (pos) {
|
when (pos) {
|
||||||
is DataState.Success -> {
|
is DataState.Success -> {
|
||||||
setPositionText(pos.data)
|
setPositionText(pos.data)
|
||||||
binding.settingsLocation.locationProgress.isIndeterminate = false
|
binding.settingsLocation.positionProgress.isIndeterminate = false
|
||||||
viewModel.setPositionHandled()
|
viewModel.setPositionHandled()
|
||||||
showToast(getString(R.string.pref_pos_success))
|
showToast(getString(R.string.pref_pos_success))
|
||||||
}
|
}
|
||||||
is DataState.Error -> {
|
is DataState.Error -> {
|
||||||
binding.settingsLocation.locationProgress.isIndeterminate = false
|
binding.settingsLocation.positionProgress.isIndeterminate = false
|
||||||
viewModel.setPositionHandled()
|
viewModel.setPositionHandled()
|
||||||
showToast(pos.message.toString())
|
showToast(pos.message.toString())
|
||||||
}
|
}
|
||||||
DataState.Loading -> {
|
DataState.Loading -> {
|
||||||
binding.settingsLocation.locationProgress.isIndeterminate = true
|
binding.settingsLocation.positionProgress.isIndeterminate = true
|
||||||
}
|
}
|
||||||
DataState.Handled -> {}
|
DataState.Handled -> {}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:tint="?attr/colorControlNormal"
|
|
||||||
android:viewportWidth="24"
|
|
||||||
android:viewportHeight="24">
|
|
||||||
<path
|
|
||||||
android:fillColor="@android:color/white"
|
|
||||||
android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z" />
|
|
||||||
</vector>
|
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="24dp"
|
android:width="24dp"
|
||||||
android:height="24dp"
|
android:height="24dp"
|
||||||
|
android:autoMirrored="true"
|
||||||
android:tint="?attr/colorControlNormal"
|
android:tint="?attr/colorControlNormal"
|
||||||
android:viewportWidth="24"
|
android:viewportWidth="24"
|
||||||
android:viewportHeight="24">
|
android:viewportHeight="24">
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="24dp"
|
android:width="24dp"
|
||||||
android:height="24dp"
|
android:height="24dp"
|
||||||
|
android:autoMirrored="true"
|
||||||
android:tint="?attr/colorControlNormal"
|
android:tint="?attr/colorControlNormal"
|
||||||
android:viewportWidth="24"
|
android:viewportWidth="24"
|
||||||
android:viewportHeight="24">
|
android:viewportHeight="24">
|
||||||
<path
|
<path
|
||||||
android:fillColor="@android:color/white"
|
android:fillColor="@android:color/white"
|
||||||
android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V7H6v12zM19,4h-3.5l-1,-1h-5l-1,1H5v2h14V4z" />
|
android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V7H6v12zM19,4h-3.5l-1,-1h-5l-1,1H5v2h14V4z" />
|
||||||
</vector>
|
</vector>
|
||||||
@@ -1,10 +1,11 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="24dp"
|
android:width="24dp"
|
||||||
android:height="24dp"
|
android:height="24dp"
|
||||||
|
android:autoMirrored="true"
|
||||||
|
android:tint="?attr/colorControlNormal"
|
||||||
android:viewportWidth="24"
|
android:viewportWidth="24"
|
||||||
android:viewportHeight="24"
|
android:viewportHeight="24">
|
||||||
android:tint="?attr/colorControlNormal">
|
<path
|
||||||
<path
|
android:fillColor="@android:color/white"
|
||||||
android:fillColor="@android:color/white"
|
android:pathData="M18,7l-1.41,-1.41 -6.34,6.34 1.41,1.41L18,7zM22.24,5.59L11.66,16.17 7.48,12l-1.41,1.41L11.66,19l12,-12 -1.42,-1.41zM0.41,13.41L6,19l1.41,-1.41L1.83,12 0.41,13.41z" />
|
||||||
android:pathData="M18,7l-1.41,-1.41 -6.34,6.34 1.41,1.41L18,7zM22.24,5.59L11.66,16.17 7.48,12l-1.41,1.41L11.66,19l12,-12 -1.42,-1.41zM0.41,13.41L6,19l1.41,-1.41L1.83,12 0.41,13.41z"/>
|
|
||||||
</vector>
|
</vector>
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="24dp"
|
android:width="24dp"
|
||||||
android:height="24dp"
|
android:height="24dp"
|
||||||
|
android:autoMirrored="true"
|
||||||
android:tint="?attr/colorControlNormal"
|
android:tint="?attr/colorControlNormal"
|
||||||
android:viewportWidth="24"
|
android:viewportWidth="24"
|
||||||
android:viewportHeight="24">
|
android:viewportHeight="24">
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="24dp"
|
android:width="24dp"
|
||||||
android:height="24dp"
|
android:height="24dp"
|
||||||
|
android:autoMirrored="true"
|
||||||
android:tint="?attr/colorControlNormal"
|
android:tint="?attr/colorControlNormal"
|
||||||
android:viewportWidth="24"
|
android:viewportWidth="24"
|
||||||
android:viewportHeight="24">
|
android:viewportHeight="24">
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="24dp"
|
android:width="24dp"
|
||||||
android:height="24dp"
|
android:height="24dp"
|
||||||
|
android:autoMirrored="true"
|
||||||
android:viewportWidth="24"
|
android:viewportWidth="24"
|
||||||
android:viewportHeight="24">
|
android:viewportHeight="24">
|
||||||
<path
|
<path
|
||||||
android:fillColor="@color/themeAccent"
|
android:fillColor="@color/accent"
|
||||||
android:pathData="M12,2C8.13,2 5,5.13 5,9c0,5.25 7,13 7,13s7,-7.75 7,-13c0,-3.87 -3.13,-7 -7,-7zM12,11.5c-1.38,0 -2.5,-1.12 -2.5,-2.5s1.12,-2.5 2.5,-2.5 2.5,1.12 2.5,2.5 -1.12,2.5 -2.5,2.5z" />
|
android:pathData="M12,2C8.13,2 5,5.13 5,9c0,5.25 7,13 7,13s7,-7.75 7,-13c0,-3.87 -3.13,-7 -7,-7zM12,11.5c-1.38,0 -2.5,-1.12 -2.5,-2.5s1.12,-2.5 2.5,-2.5 2.5,1.12 2.5,2.5 -1.12,2.5 -2.5,2.5z" />
|
||||||
</vector>
|
</vector>
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:shape="rectangle">
|
android:shape="rectangle">
|
||||||
<solid android:color="@color/surfaceBg" />
|
<solid android:color="@color/background" />
|
||||||
</shape>
|
</shape>
|
||||||
+3
-2
@@ -1,6 +1,7 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="108dp"
|
android:width="108dp"
|
||||||
android:height="108dp"
|
android:height="108dp"
|
||||||
|
android:autoMirrored="true"
|
||||||
android:viewportWidth="271.2439"
|
android:viewportWidth="271.2439"
|
||||||
android:viewportHeight="271.2439">
|
android:viewportHeight="271.2439">
|
||||||
<group
|
<group
|
||||||
@@ -10,10 +11,10 @@
|
|||||||
android:translateX="70.26573"
|
android:translateX="70.26573"
|
||||||
android:translateY="70.26573">
|
android:translateY="70.26573">
|
||||||
<path
|
<path
|
||||||
android:fillColor="@color/themeAccent"
|
android:fillColor="@color/accent"
|
||||||
android:pathData="m96.642,31.504c7.911,7.997 17.143,13.584 25.365,15.581l1.754,-3.997C123.78,43.048 123.786,43.005 123.802,42.965 125.834,38.995 127,34.495 127,29.715 127,13.881 114.379,1 98.867,1c-5.125,0 -9.92,1.429 -14.064,3.884l-3.398,1.598c0.08,0.306 0.133,0.599 0.221,0.91 2.32,8.104 7.652,16.667 15.016,24.112z" />
|
android:pathData="m96.642,31.504c7.911,7.997 17.143,13.584 25.365,15.581l1.754,-3.997C123.78,43.048 123.786,43.005 123.802,42.965 125.834,38.995 127,34.495 127,29.715 127,13.881 114.379,1 98.867,1c-5.125,0 -9.92,1.429 -14.064,3.884l-3.398,1.598c0.08,0.306 0.133,0.599 0.221,0.91 2.32,8.104 7.652,16.667 15.016,24.112z" />
|
||||||
<path
|
<path
|
||||||
android:fillColor="@color/themeAccent"
|
android:fillColor="@color/accent"
|
||||||
android:pathData="M93.876,34.3C86.053,26.391 80.369,17.225 77.87,8.49 77.84,8.385 77.818,8.285 77.788,8.181L2.629,43.513c-1.404,0.66 -2.019,2.358 -1.372,3.791 0.472,1.046 1.485,1.663 2.545,1.663 0.392,0 0.79,-0.084 1.169,-0.263L74.045,16.235c-1.873,3.578 -2.997,7.611 -3.228,11.885L35.566,51.732c-1.294,0.866 -1.653,2.638 -0.805,3.957 0.538,0.836 1.431,1.29 2.344,1.29 0.526,0 1.06,-0.151 1.533,-0.469L71.189,34.707c1.4,8.11 6.135,15.044 12.715,19.285l-54.945,68.337c-0.981,1.22 -0.808,3.021 0.388,4.023 0.521,0.437 1.149,0.649 1.775,0.649 0.809,0 1.611,-0.357 2.166,-1.045L89.056,56.595c3.06,1.168 6.357,1.838 9.811,1.838 4.932,0 9.566,-1.312 13.601,-3.597L84.602,118.323c-0.633,1.44 0,3.131 1.41,3.777 0.372,0.17 0.76,0.25 1.144,0.25 1.07,0 2.092,-0.629 2.556,-1.691L120.402,50.739C111.642,48.416 102.042,42.555 93.876,34.3Z" />
|
android:pathData="M93.876,34.3C86.053,26.391 80.369,17.225 77.87,8.49 77.84,8.385 77.818,8.285 77.788,8.181L2.629,43.513c-1.404,0.66 -2.019,2.358 -1.372,3.791 0.472,1.046 1.485,1.663 2.545,1.663 0.392,0 0.79,-0.084 1.169,-0.263L74.045,16.235c-1.873,3.578 -2.997,7.611 -3.228,11.885L35.566,51.732c-1.294,0.866 -1.653,2.638 -0.805,3.957 0.538,0.836 1.431,1.29 2.344,1.29 0.526,0 1.06,-0.151 1.533,-0.469L71.189,34.707c1.4,8.11 6.135,15.044 12.715,19.285l-54.945,68.337c-0.981,1.22 -0.808,3.021 0.388,4.023 0.521,0.437 1.149,0.649 1.775,0.649 0.809,0 1.611,-0.357 2.166,-1.045L89.056,56.595c3.06,1.168 6.357,1.838 9.811,1.838 4.932,0 9.566,-1.312 13.601,-3.597L84.602,118.323c-0.633,1.44 0,3.131 1.41,3.777 0.372,0.17 0.76,0.25 1.144,0.25 1.07,0 2.092,-0.629 2.556,-1.691L120.402,50.739C111.642,48.416 102.042,42.555 93.876,34.3Z" />
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="24dp"
|
android:width="24dp"
|
||||||
android:height="24dp"
|
android:height="24dp"
|
||||||
|
android:autoMirrored="true"
|
||||||
android:tint="?attr/colorControlNormal"
|
android:tint="?attr/colorControlNormal"
|
||||||
android:viewportWidth="24"
|
android:viewportWidth="24"
|
||||||
android:viewportHeight="24">
|
android:viewportHeight="24">
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="24dp"
|
android:width="24dp"
|
||||||
android:height="24dp"
|
android:height="24dp"
|
||||||
|
android:autoMirrored="true"
|
||||||
android:tint="?attr/colorControlNormal"
|
android:tint="?attr/colorControlNormal"
|
||||||
android:viewportWidth="24"
|
android:viewportWidth="24"
|
||||||
android:viewportHeight="24">
|
android:viewportHeight="24">
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="24dp"
|
android:width="24dp"
|
||||||
android:height="24dp"
|
android:height="24dp"
|
||||||
|
android:autoMirrored="true"
|
||||||
android:tint="?attr/colorControlNormal"
|
android:tint="?attr/colorControlNormal"
|
||||||
android:viewportWidth="24"
|
android:viewportWidth="24"
|
||||||
android:viewportHeight="24">
|
android:viewportHeight="24">
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="24dp"
|
android:width="24dp"
|
||||||
android:height="24dp"
|
android:height="24dp"
|
||||||
|
android:autoMirrored="true"
|
||||||
android:tint="?attr/colorControlNormal"
|
android:tint="?attr/colorControlNormal"
|
||||||
android:viewportWidth="24"
|
android:viewportWidth="24"
|
||||||
android:viewportHeight="24">
|
android:viewportHeight="24">
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="24dp"
|
android:width="24dp"
|
||||||
android:height="24dp"
|
android:height="24dp"
|
||||||
|
android:autoMirrored="true"
|
||||||
|
android:tint="?attr/colorControlNormal"
|
||||||
android:viewportWidth="24"
|
android:viewportWidth="24"
|
||||||
android:viewportHeight="24"
|
android:viewportHeight="24">
|
||||||
android:tint="?attr/colorControlNormal">
|
<path
|
||||||
<path
|
android:fillColor="@android:color/white"
|
||||||
android:fillColor="@android:color/white"
|
android:pathData="M19,8l-4,4h3c0,3.31 -2.69,6 -6,6 -1.01,0 -1.97,-0.25 -2.8,-0.7l-1.46,1.46C8.97,19.54 10.43,20 12,20c4.42,0 8,-3.58 8,-8h3l-4,-4zM6,12c0,-3.31 2.69,-6 6,-6 1.01,0 1.97,0.25 2.8,0.7l1.46,-1.46C15.03,4.46 13.57,4 12,4c-4.42,0 -8,3.58 -8,8H1l4,4 4,-4H6z" />
|
||||||
android:pathData="M19,8l-4,4h3c0,3.31 -2.69,6 -6,6 -1.01,0 -1.97,-0.25 -2.8,-0.7l-1.46,1.46C8.97,19.54 10.43,20 12,20c4.42,0 8,-3.58 8,-8h3l-4,-4zM6,12c0,-3.31 2.69,-6 6,-6 1.01,0 1.97,0.25 2.8,0.7l1.46,-1.46C15.03,4.46 13.57,4 12,4c-4.42,0 -8,3.58 -8,8H1l4,4 4,-4H6z"/>
|
|
||||||
</vector>
|
</vector>
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="24dp"
|
android:width="24dp"
|
||||||
android:height="24dp"
|
android:height="24dp"
|
||||||
|
android:autoMirrored="true"
|
||||||
android:tint="?attr/colorControlNormal"
|
android:tint="?attr/colorControlNormal"
|
||||||
android:viewportWidth="128"
|
android:viewportWidth="128"
|
||||||
android:viewportHeight="128">
|
android:viewportHeight="128">
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
android:translateX="52"
|
android:translateX="52"
|
||||||
android:translateY="44">
|
android:translateY="44">
|
||||||
<path
|
<path
|
||||||
android:fillColor="@color/themeAccent"
|
android:fillColor="@color/accent"
|
||||||
android:pathData="m104.005,111.936q0.504,0 0.958,-0.063 0.467,-0.076 0.87,-0.176l0,1.674q-0.202,0.101 -0.555,0.214 -0.34,0.113 -0.807,0.201 -0.454,0.101 -1.034,0.164 -0.58,0.063 -1.261,0.063 -0.87,0 -1.576,-0.214 -0.706,-0.201 -1.198,-0.68 -0.492,-0.491 -0.757,-1.259 -0.265,-0.78 -0.265,-1.913l0,-8.244l-1.942,0l0,-1.322q0.832,0 1.488,-0.327 0.656,-0.327 1.047,-0.755 0.794,-0.831 1.185,-2.555l2.144,0l0,3.197l3.304,0l0,1.762l-3.304,0l0,7.98q0,1.171 0.391,1.712 0.404,0.541 1.311,0.541zM85.595,109.922q0,1.108 0.353,1.661 0.353,0.554 1.11,0.554 0.555,0 0.996,-0.227 0.454,-0.239 0.769,-0.667 0.328,-0.428 0.492,-1.032 0.177,-0.617 0.177,-1.372l0,-1.938l-1.16,0.076q-0.769,0.038 -1.299,0.252 -0.53,0.201 -0.845,0.566 -0.315,0.365 -0.454,0.894 -0.139,0.529 -0.139,1.233zM87.89,101.188q-0.492,0 -0.832,0.214 -0.328,0.201 -0.53,0.579 -0.202,0.365 -0.29,0.881 -0.076,0.503 -0.076,1.108 -1.74,0 -2.623,-0.39 -0.87,-0.39 -0.87,-1.334 0,-0.705 0.416,-1.208 0.429,-0.503 1.147,-0.818 0.731,-0.315 1.69,-0.453 0.971,-0.151 2.068,-0.151 1.362,0 2.371,0.239 1.021,0.227 1.69,0.743 0.681,0.516 1.021,1.359 0.34,0.831 0.34,2.039l0,6.57q0,0.529 0.076,0.881 0.088,0.352 0.265,0.566 0.177,0.201 0.479,0.289 0.303,0.088 0.731,0.088l0.101,0l0,1.372l-4.804,0l-0.542,-1.775l-0.227,0q-0.429,0.516 -0.807,0.906 -0.378,0.378 -0.807,0.629 -0.429,0.252 -0.971,0.365 -0.53,0.126 -1.261,0.126 -0.857,0 -1.601,-0.252 -0.731,-0.252 -1.286,-0.768 -0.542,-0.529 -0.857,-1.309 -0.315,-0.793 -0.315,-1.863 0,-2.102 1.438,-3.109 1.45,-1.007 4.35,-1.095l2.118,-0.076l0,-1.422q0,-0.642 -0.05,-1.183 -0.05,-0.541 -0.214,-0.931 -0.164,-0.39 -0.492,-0.604 -0.315,-0.214 -0.845,-0.214zM72.115,114.013q-1.74,0 -2.9,-0.327 -1.16,-0.327 -1.866,-0.843 -0.694,-0.516 -0.996,-1.158 -0.29,-0.642 -0.29,-1.271 0,-0.667 0.24,-1.12 0.252,-0.453 0.656,-0.743 0.416,-0.289 0.933,-0.415 0.53,-0.126 1.097,-0.126 0,1.108 0.265,1.951 0.265,0.831 0.731,1.397 0.467,0.554 1.11,0.843 0.656,0.277 1.425,0.277 0.757,0 1.349,-0.214 0.593,-0.214 1.009,-0.592 0.416,-0.378 0.63,-0.881 0.214,-0.516 0.214,-1.108 0,-0.654 -0.265,-1.158 -0.265,-0.516 -0.807,-0.944 -0.53,-0.441 -1.349,-0.831 -0.807,-0.403 -1.891,-0.856 -1.349,-0.554 -2.282,-1.133 -0.921,-0.592 -1.488,-1.271 -0.567,-0.68 -0.82,-1.473 -0.24,-0.793 -0.24,-1.737 0,-1.183 0.479,-2.14 0.479,-0.957 1.324,-1.636 0.845,-0.68 2.005,-1.045 1.16,-0.365 2.522,-0.365 1.425,0 2.459,0.239 1.034,0.227 1.702,0.629 0.681,0.403 1.009,0.957 0.328,0.541 0.328,1.171 0,0.453 -0.202,0.843 -0.189,0.39 -0.593,0.68 -0.391,0.289 -0.996,0.453 -0.593,0.164 -1.387,0.164 0,-0.541 -0.151,-1.158 -0.139,-0.629 -0.467,-1.158 -0.328,-0.541 -0.857,-0.894 -0.517,-0.352 -1.261,-0.352 -0.517,0 -0.984,0.151 -0.467,0.151 -0.82,0.453 -0.34,0.302 -0.542,0.755 -0.202,0.441 -0.202,1.019 0,0.541 0.177,1.019 0.177,0.478 0.643,0.944 0.479,0.453 1.299,0.919 0.832,0.453 2.144,0.982 1.324,0.541 2.257,1.108 0.933,0.566 1.526,1.221 0.605,0.642 0.87,1.422 0.277,0.768 0.277,1.712 0,1.246 -0.492,2.291 -0.492,1.032 -1.412,1.775 -0.921,0.743 -2.219,1.158 -1.286,0.415 -2.9,0.415zM62.115,108.966l0,1.573q0,0.604 0.164,0.969 0.177,0.365 0.454,0.566 0.29,0.189 0.681,0.252 0.391,0.063 0.82,0.063l0.328,0l0,1.372l-9.054,0l0,-1.372l0.719,0q0.441,0 0.82,-0.063 0.391,-0.063 0.668,-0.252 0.29,-0.201 0.454,-0.566 0.177,-0.365 0.177,-0.969l0,-1.573l-7.15,0l0,-1.573l7.326,-12.032l3.594,0l0,11.906l2.686,0l0,1.699zM58.345,102.761q0,-1.133 0.038,-2.442 0.038,-1.309 0.139,-2.517 -0.126,0.302 -0.404,0.831 -0.277,0.529 -0.593,1.095 -0.315,0.554 -0.605,1.057 -0.29,0.491 -0.441,0.73l-3.48,5.752l5.347,0zM50.855,113.761l-0.366,0q-1.412,0 -2.371,-0.063 -0.958,-0.063 -1.652,-0.289 -0.694,-0.227 -1.198,-0.68 -0.504,-0.466 -1.009,-1.259l-2.295,-3.612 -1.034,0.768l0,2.089q0,0.554 0.177,0.881 0.189,0.327 0.454,0.503 0.277,0.176 0.605,0.239 0.328,0.05 0.605,0.05l0.303,0l0,1.372L34.866,113.761l0,-1.372l0.303,0q0.29,0 0.605,-0.05 0.328,-0.063 0.593,-0.239 0.277,-0.176 0.454,-0.503 0.189,-0.327 0.189,-0.881l0,-13.606q0,-0.516 -0.189,-0.818 -0.177,-0.315 -0.454,-0.478 -0.277,-0.176 -0.605,-0.227 -0.315,-0.05 -0.593,-0.05l-0.303,0l0,-1.359l6.065,0l0,9.943q0,0.352 -0.025,0.818 -0.013,0.453 -0.038,0.868 -0.038,0.491 -0.063,0.994l3.253,-3.637q0.429,-0.478 0.555,-0.755 0.139,-0.289 0.139,-0.478 0,-0.327 -0.353,-0.503 -0.34,-0.189 -0.984,-0.189l0,-1.296l6.507,0l0,1.296q-0.895,0 -1.765,0.529 -0.857,0.516 -1.879,1.661l-1.627,1.85 3.43,5.11q0.681,1.019 1.374,1.51 0.694,0.491 1.311,0.491l0.088,0zM33.517,106.31q0,1.007 -0.29,1.901 -0.29,0.894 -0.82,1.573 -0.517,0.667 -1.261,1.057 -0.731,0.39 -1.627,0.39 -1.198,0 -2.333,-0.73 -1.122,-0.743 -2.055,-2.417 -0.794,1.523 -1.828,2.303 -1.034,0.768 -2.181,0.768 -0.883,0 -1.627,-0.34 -0.744,-0.352 -1.286,-0.982 -0.542,-0.642 -0.845,-1.548 -0.29,-0.919 -0.29,-2.052 0,-1.032 0.29,-1.926 0.29,-0.906 0.82,-1.561 0.53,-0.667 1.274,-1.045 0.744,-0.39 1.664,-0.39 0.593,0 1.173,0.176 0.593,0.164 1.147,0.541 0.567,0.365 1.072,0.944 0.517,0.579 0.946,1.41 0.794,-1.498 1.791,-2.24 0.996,-0.755 2.295,-0.755Line truncated
|
android:pathData="m104.005,111.936q0.504,0 0.958,-0.063 0.467,-0.076 0.87,-0.176l0,1.674q-0.202,0.101 -0.555,0.214 -0.34,0.113 -0.807,0.201 -0.454,0.101 -1.034,0.164 -0.58,0.063 -1.261,0.063 -0.87,0 -1.576,-0.214 -0.706,-0.201 -1.198,-0.68 -0.492,-0.491 -0.757,-1.259 -0.265,-0.78 -0.265,-1.913l0,-8.244l-1.942,0l0,-1.322q0.832,0 1.488,-0.327 0.656,-0.327 1.047,-0.755 0.794,-0.831 1.185,-2.555l2.144,0l0,3.197l3.304,0l0,1.762l-3.304,0l0,7.98q0,1.171 0.391,1.712 0.404,0.541 1.311,0.541zM85.595,109.922q0,1.108 0.353,1.661 0.353,0.554 1.11,0.554 0.555,0 0.996,-0.227 0.454,-0.239 0.769,-0.667 0.328,-0.428 0.492,-1.032 0.177,-0.617 0.177,-1.372l0,-1.938l-1.16,0.076q-0.769,0.038 -1.299,0.252 -0.53,0.201 -0.845,0.566 -0.315,0.365 -0.454,0.894 -0.139,0.529 -0.139,1.233zM87.89,101.188q-0.492,0 -0.832,0.214 -0.328,0.201 -0.53,0.579 -0.202,0.365 -0.29,0.881 -0.076,0.503 -0.076,1.108 -1.74,0 -2.623,-0.39 -0.87,-0.39 -0.87,-1.334 0,-0.705 0.416,-1.208 0.429,-0.503 1.147,-0.818 0.731,-0.315 1.69,-0.453 0.971,-0.151 2.068,-0.151 1.362,0 2.371,0.239 1.021,0.227 1.69,0.743 0.681,0.516 1.021,1.359 0.34,0.831 0.34,2.039l0,6.57q0,0.529 0.076,0.881 0.088,0.352 0.265,0.566 0.177,0.201 0.479,0.289 0.303,0.088 0.731,0.088l0.101,0l0,1.372l-4.804,0l-0.542,-1.775l-0.227,0q-0.429,0.516 -0.807,0.906 -0.378,0.378 -0.807,0.629 -0.429,0.252 -0.971,0.365 -0.53,0.126 -1.261,0.126 -0.857,0 -1.601,-0.252 -0.731,-0.252 -1.286,-0.768 -0.542,-0.529 -0.857,-1.309 -0.315,-0.793 -0.315,-1.863 0,-2.102 1.438,-3.109 1.45,-1.007 4.35,-1.095l2.118,-0.076l0,-1.422q0,-0.642 -0.05,-1.183 -0.05,-0.541 -0.214,-0.931 -0.164,-0.39 -0.492,-0.604 -0.315,-0.214 -0.845,-0.214zM72.115,114.013q-1.74,0 -2.9,-0.327 -1.16,-0.327 -1.866,-0.843 -0.694,-0.516 -0.996,-1.158 -0.29,-0.642 -0.29,-1.271 0,-0.667 0.24,-1.12 0.252,-0.453 0.656,-0.743 0.416,-0.289 0.933,-0.415 0.53,-0.126 1.097,-0.126 0,1.108 0.265,1.951 0.265,0.831 0.731,1.397 0.467,0.554 1.11,0.843 0.656,0.277 1.425,0.277 0.757,0 1.349,-0.214 0.593,-0.214 1.009,-0.592 0.416,-0.378 0.63,-0.881 0.214,-0.516 0.214,-1.108 0,-0.654 -0.265,-1.158 -0.265,-0.516 -0.807,-0.944 -0.53,-0.441 -1.349,-0.831 -0.807,-0.403 -1.891,-0.856 -1.349,-0.554 -2.282,-1.133 -0.921,-0.592 -1.488,-1.271 -0.567,-0.68 -0.82,-1.473 -0.24,-0.793 -0.24,-1.737 0,-1.183 0.479,-2.14 0.479,-0.957 1.324,-1.636 0.845,-0.68 2.005,-1.045 1.16,-0.365 2.522,-0.365 1.425,0 2.459,0.239 1.034,0.227 1.702,0.629 0.681,0.403 1.009,0.957 0.328,0.541 0.328,1.171 0,0.453 -0.202,0.843 -0.189,0.39 -0.593,0.68 -0.391,0.289 -0.996,0.453 -0.593,0.164 -1.387,0.164 0,-0.541 -0.151,-1.158 -0.139,-0.629 -0.467,-1.158 -0.328,-0.541 -0.857,-0.894 -0.517,-0.352 -1.261,-0.352 -0.517,0 -0.984,0.151 -0.467,0.151 -0.82,0.453 -0.34,0.302 -0.542,0.755 -0.202,0.441 -0.202,1.019 0,0.541 0.177,1.019 0.177,0.478 0.643,0.944 0.479,0.453 1.299,0.919 0.832,0.453 2.144,0.982 1.324,0.541 2.257,1.108 0.933,0.566 1.526,1.221 0.605,0.642 0.87,1.422 0.277,0.768 0.277,1.712 0,1.246 -0.492,2.291 -0.492,1.032 -1.412,1.775 -0.921,0.743 -2.219,1.158 -1.286,0.415 -2.9,0.415zM62.115,108.966l0,1.573q0,0.604 0.164,0.969 0.177,0.365 0.454,0.566 0.29,0.189 0.681,0.252 0.391,0.063 0.82,0.063l0.328,0l0,1.372l-9.054,0l0,-1.372l0.719,0q0.441,0 0.82,-0.063 0.391,-0.063 0.668,-0.252 0.29,-0.201 0.454,-0.566 0.177,-0.365 0.177,-0.969l0,-1.573l-7.15,0l0,-1.573l7.326,-12.032l3.594,0l0,11.906l2.686,0l0,1.699zM58.345,102.761q0,-1.133 0.038,-2.442 0.038,-1.309 0.139,-2.517 -0.126,0.302 -0.404,0.831 -0.277,0.529 -0.593,1.095 -0.315,0.554 -0.605,1.057 -0.29,0.491 -0.441,0.73l-3.48,5.752l5.347,0zM50.855,113.761l-0.366,0q-1.412,0 -2.371,-0.063 -0.958,-0.063 -1.652,-0.289 -0.694,-0.227 -1.198,-0.68 -0.504,-0.466 -1.009,-1.259l-2.295,-3.612 -1.034,0.768l0,2.089q0,0.554 0.177,0.881 0.189,0.327 0.454,0.503 0.277,0.176 0.605,0.239 0.328,0.05 0.605,0.05l0.303,0l0,1.372L34.866,113.761l0,-1.372l0.303,0q0.29,0 0.605,-0.05 0.328,-0.063 0.593,-0.239 0.277,-0.176 0.454,-0.503 0.189,-0.327 0.189,-0.881l0,-13.606q0,-0.516 -0.189,-0.818 -0.177,-0.315 -0.454,-0.478 -0.277,-0.176 -0.605,-0.227 -0.315,-0.05 -0.593,-0.05l-0.303,0l0,-1.359l6.065,0l0,9.943q0,0.352 -0.025,0.818 -0.013,0.453 -0.038,0.868 -0.038,0.491 -0.063,0.994l3.253,-3.637q0.429,-0.478 0.555,-0.755 0.139,-0.289 0.139,-0.478 0,-0.327 -0.353,-0.503 -0.34,-0.189 -0.984,-0.189l0,-1.296l6.507,0l0,1.296q-0.895,0 -1.765,0.529 -0.857,0.516 -1.879,1.661l-1.627,1.85 3.43,5.11q0.681,1.019 1.374,1.51 0.694,0.491 1.311,0.491l0.088,0zM33.517,106.31q0,1.007 -0.29,1.901 -0.29,0.894 -0.82,1.573 -0.517,0.667 -1.261,1.057 -0.731,0.39 -1.627,0.39 -1.198,0 -2.333,-0.73 -1.122,-0.743 -2.055,-2.417 -0.794,1.523 -1.828,2.303 -1.034,0.768 -2.181,0.768 -0.883,0 -1.627,-0.34 -0.744,-0.352 -1.286,-0.982 -0.542,-0.642 -0.845,-1.548 -0.29,-0.919 -0.29,-2.052 0,-1.032 0.29,-1.926 0.29,-0.906 0.82,-1.561 0.53,-0.667 1.274,-1.045 0.744,-0.39 1.664,-0.39 0.593,0 1.173,0.176 0.593,0.164 1.147,0.541 0.567,0.365 1.072,0.944 0.517,0.579 0.946,1.41 0.794,-1.498 1.791,-2.24 0.996,-0.755 2.295,-0.755Line truncated
|
||||||
</group>
|
</group>
|
||||||
</vector>
|
</vector>
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="24dp"
|
android:width="24dp"
|
||||||
android:height="24dp"
|
android:height="24dp"
|
||||||
|
android:autoMirrored="true"
|
||||||
android:tint="?attr/colorControlNormal"
|
android:tint="?attr/colorControlNormal"
|
||||||
android:viewportWidth="128"
|
android:viewportWidth="128"
|
||||||
android:viewportHeight="128">
|
android:viewportHeight="128">
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="24dp"
|
android:width="24dp"
|
||||||
android:height="24dp"
|
android:height="24dp"
|
||||||
|
android:autoMirrored="true"
|
||||||
|
android:tint="?attr/colorControlNormal"
|
||||||
android:viewportWidth="24"
|
android:viewportWidth="24"
|
||||||
android:viewportHeight="24"
|
android:viewportHeight="24">
|
||||||
android:tint="?attr/colorControlNormal">
|
<path
|
||||||
<path
|
android:fillColor="@android:color/white"
|
||||||
android:fillColor="@android:color/white"
|
android:pathData="M14,21c1.93,0 3.62,-1.17 4,-3l-1.75,-0.88C16,18.21 15.33,19 14,19l-4.9,0c0.83,-1 1.5,-2.34 1.5,-4c0,-0.35 -0.03,-0.69 -0.08,-1L14,14v-2l-4.18,0C9,10.42 8,9.6 8,8c0,-1.93 1.57,-3.5 3.5,-3.5c1.5,0 2.79,0.95 3.28,2.28L16.63,6c-0.8,-2.05 -2.79,-3.5 -5.13,-3.5C8.46,2.5 6,4.96 6,8c0,1.78 0.79,2.9 1.49,4L6,12v2l2.47,0c0.08,0.31 0.13,0.64 0.13,1c0,2.7 -2.6,4 -2.6,4v2H14z" />
|
||||||
android:pathData="M14,21c1.93,0 3.62,-1.17 4,-3l-1.75,-0.88C16,18.21 15.33,19 14,19l-4.9,0c0.83,-1 1.5,-2.34 1.5,-4c0,-0.35 -0.03,-0.69 -0.08,-1L14,14v-2l-4.18,0C9,10.42 8,9.6 8,8c0,-1.93 1.57,-3.5 3.5,-3.5c1.5,0 2.79,0.95 3.28,2.28L16.63,6c-0.8,-2.05 -2.79,-3.5 -5.13,-3.5C8.46,2.5 6,4.96 6,8c0,1.78 0.79,2.9 1.49,4L6,12v2l2.47,0c0.08,0.31 0.13,0.64 0.13,1c0,2.7 -2.6,4 -2.6,4v2H14z"/>
|
|
||||||
</vector>
|
</vector>
|
||||||
@@ -4,5 +4,5 @@
|
|||||||
<size
|
<size
|
||||||
android:width="1dp"
|
android:width="1dp"
|
||||||
android:height="1dp" />
|
android:height="1dp" />
|
||||||
<solid android:color="@color/surfaceBg" />
|
<solid android:color="@color/background" />
|
||||||
</shape>
|
</shape>
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<androidx.fragment.app.FragmentContainerView xmlns:android="http://schemas.android.com/apk/res/android"
|
<androidx.fragment.app.FragmentContainerView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:id="@+id/navigation_host"
|
android:id="@+id/nav_host"
|
||||||
android:name="androidx.navigation.fragment.NavHostFragment"
|
android:name="androidx.navigation.fragment.NavHostFragment"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
app:defaultNavHost="true"
|
app:defaultNavHost="true"
|
||||||
app:navGraph="@navigation/navigation_graph" />
|
app:navGraph="@navigation/nav_graph" />
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
app:layout_constraintHorizontal_chainStyle="packed"
|
app:layout_constraintHorizontal_chainStyle="packed"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="@+id/about_title"
|
app:layout_constraintTop_toTopOf="@+id/about_title"
|
||||||
app:tint="@color/themeAccent" />
|
app:tint="@color/accent" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/about_title"
|
android:id="@+id/about_title"
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
android:includeFontPadding="false"
|
android:includeFontPadding="false"
|
||||||
android:text="@string/app_name"
|
android:text="@string/app_name"
|
||||||
android:textColor="@color/themeAccent"
|
android:textColor="@color/accent"
|
||||||
android:textSize="@dimen/text_size_app_title"
|
android:textSize="@dimen/text_size_app_title"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/about_version"
|
app:layout_constraintBottom_toTopOf="@+id/about_version"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
@@ -45,8 +45,8 @@
|
|||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
android:text="@string/about_version"
|
android:text="@string/app_version"
|
||||||
android:textColor="@color/themeLight"
|
android:textColor="@color/textMain"
|
||||||
android:textSize="@dimen/text_size_large"
|
android:textSize="@dimen/text_size_large"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/about_subtitle"
|
app:layout_constraintBottom_toTopOf="@+id/about_subtitle"
|
||||||
app:layout_constraintEnd_toEndOf="@+id/about_title"
|
app:layout_constraintEnd_toEndOf="@+id/about_title"
|
||||||
@@ -59,8 +59,8 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:layout_marginBottom="12dp"
|
android:layout_marginBottom="12dp"
|
||||||
android:text="@string/about_subtitle"
|
android:text="@string/app_subtitle"
|
||||||
android:textColor="@color/themeLight"
|
android:textColor="@color/textMain"
|
||||||
android:textSize="@dimen/text_size_large"
|
android:textSize="@dimen/text_size_large"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
|||||||
@@ -31,48 +31,50 @@
|
|||||||
app:layout_constraintTop_toTopOf="@+id/data_title" />
|
app:layout_constraintTop_toTopOf="@+id/data_title" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/data_satellites"
|
android:id="@+id/data_entries"
|
||||||
style="@style/SettingsText"
|
style="@style/SettingsText"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="6dp"
|
android:layout_marginTop="6dp"
|
||||||
android:text="@string/location_lat"
|
android:text="@string/fmt_entries"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/data_transmitters"
|
app:layout_constraintEnd_toStartOf="@+id/data_radios"
|
||||||
app:layout_constraintHorizontal_bias="0.5"
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
app:layout_constraintHorizontal_chainStyle="spread_inside"
|
app:layout_constraintHorizontal_chainStyle="spread_inside"
|
||||||
app:layout_constraintStart_toStartOf="@+id/data_title"
|
app:layout_constraintStart_toStartOf="@+id/data_title"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/data_title" />
|
app:layout_constraintTop_toBottomOf="@+id/data_title" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/data_transmitters"
|
android:id="@+id/data_radios"
|
||||||
style="@style/SettingsText"
|
style="@style/SettingsText"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/location_lon"
|
android:text="@string/fmt_radios"
|
||||||
app:layout_constraintBaseline_toBaselineOf="@+id/data_satellites"
|
app:layout_constraintBaseline_toBaselineOf="@+id/data_entries"
|
||||||
app:layout_constraintEnd_toEndOf="@+id/data_progress"
|
app:layout_constraintEnd_toEndOf="@+id/data_progress"
|
||||||
app:layout_constraintHorizontal_bias="0.5"
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
app:layout_constraintStart_toEndOf="@+id/data_satellites" />
|
app:layout_constraintStart_toEndOf="@+id/data_entries" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/data_btn_web"
|
android:id="@+id/data_btn_web"
|
||||||
style="@style/NormalButton"
|
style="@style/NormalButton"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="4dp"
|
android:layout_marginStart="6dp"
|
||||||
android:layout_marginTop="6dp"
|
android:layout_marginTop="6dp"
|
||||||
android:layout_marginBottom="4dp"
|
android:layout_marginBottom="6dp"
|
||||||
android:text="@string/btn_web"
|
android:text="@string/btn_web"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/data_btn_file"
|
app:layout_constraintEnd_toStartOf="@+id/data_btn_file"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/data_satellites" />
|
app:layout_constraintTop_toBottomOf="@+id/data_entries" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/data_btn_file"
|
android:id="@+id/data_btn_file"
|
||||||
style="@style/NormalButton"
|
style="@style/NormalButton"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="2dp"
|
||||||
|
android:layout_marginEnd="2dp"
|
||||||
android:text="@string/btn_file"
|
android:text="@string/btn_file"
|
||||||
app:layout_constraintBaseline_toBaselineOf="@+id/data_btn_web"
|
app:layout_constraintBaseline_toBaselineOf="@+id/data_btn_web"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/data_btn_clear"
|
app:layout_constraintEnd_toStartOf="@+id/data_btn_clear"
|
||||||
@@ -83,7 +85,7 @@
|
|||||||
style="@style/NormalButton"
|
style="@style/NormalButton"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="4dp"
|
android:layout_marginEnd="6dp"
|
||||||
android:text="@string/btn_clear"
|
android:text="@string/btn_clear"
|
||||||
app:layout_constraintBaseline_toBaselineOf="@+id/data_btn_web"
|
app:layout_constraintBaseline_toBaselineOf="@+id/data_btn_web"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
app:layout_constraintHorizontal_bias="0.5"
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
app:layout_constraintStart_toStartOf="@+id/other_title"
|
app:layout_constraintStart_toStartOf="@+id/other_title"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/other_title"
|
app:layout_constraintTop_toBottomOf="@+id/other_title"
|
||||||
app:trackTint="@color/themeDisabled" />
|
app:trackTint="@color/textDisabled" />
|
||||||
|
|
||||||
<com.google.android.material.switchmaterial.SwitchMaterial
|
<com.google.android.material.switchmaterial.SwitchMaterial
|
||||||
android:id="@+id/other_switch_sweep"
|
android:id="@+id/other_switch_sweep"
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
app:layout_constraintHorizontal_bias="0.5"
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
app:layout_constraintStart_toStartOf="@+id/other_switch_utc"
|
app:layout_constraintStart_toStartOf="@+id/other_switch_utc"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/other_switch_utc"
|
app:layout_constraintTop_toBottomOf="@+id/other_switch_utc"
|
||||||
app:trackTint="@color/themeDisabled" />
|
app:trackTint="@color/textDisabled" />
|
||||||
|
|
||||||
<com.google.android.material.switchmaterial.SwitchMaterial
|
<com.google.android.material.switchmaterial.SwitchMaterial
|
||||||
android:id="@+id/other_switch_sensors"
|
android:id="@+id/other_switch_sensors"
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
app:layout_constraintHorizontal_bias="0.5"
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
app:layout_constraintStart_toStartOf="@+id/other_switch_utc"
|
app:layout_constraintStart_toStartOf="@+id/other_switch_utc"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/other_switch_sweep"
|
app:layout_constraintTop_toBottomOf="@+id/other_switch_sweep"
|
||||||
app:trackTint="@color/themeDisabled" />
|
app:trackTint="@color/textDisabled" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
|||||||
@@ -8,45 +8,45 @@
|
|||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/warranty_title"
|
android:id="@+id/outro_title"
|
||||||
style="@style/SettingsTitle"
|
style="@style/SettingsTitle"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="12dp"
|
android:layout_marginStart="12dp"
|
||||||
android:layout_marginTop="10dp"
|
android:layout_marginTop="10dp"
|
||||||
android:layout_marginEnd="12dp"
|
android:layout_marginEnd="12dp"
|
||||||
android:text="@string/warranty_title"
|
android:text="@string/outro_title"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/warranty_thanks"
|
app:layout_constraintBottom_toTopOf="@+id/outro_thanks"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/warranty_thanks"
|
android:id="@+id/outro_thanks"
|
||||||
style="@style/SettingsText"
|
style="@style/SettingsText"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
android:text="@string/warranty_thanks"
|
android:text="@string/outro_thanks"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/warranty_license"
|
app:layout_constraintBottom_toTopOf="@+id/outro_license"
|
||||||
app:layout_constraintEnd_toEndOf="@+id/warranty_title"
|
app:layout_constraintEnd_toEndOf="@+id/outro_title"
|
||||||
app:layout_constraintHorizontal_bias="0.5"
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
app:layout_constraintStart_toStartOf="@+id/warranty_title"
|
app:layout_constraintStart_toStartOf="@+id/outro_title"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/warranty_title" />
|
app:layout_constraintTop_toBottomOf="@+id/outro_title" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/warranty_license"
|
android:id="@+id/outro_license"
|
||||||
style="@style/SettingsText"
|
style="@style/SettingsText"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
android:layout_marginBottom="10dp"
|
android:layout_marginBottom="10dp"
|
||||||
android:text="@string/warranty_license"
|
android:text="@string/outro_license"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="@+id/warranty_title"
|
app:layout_constraintEnd_toEndOf="@+id/outro_title"
|
||||||
app:layout_constraintHorizontal_bias="0.5"
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
app:layout_constraintStart_toStartOf="@+id/warranty_title"
|
app:layout_constraintStart_toStartOf="@+id/outro_title"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/warranty_thanks" />
|
app:layout_constraintTop_toBottomOf="@+id/outro_thanks" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
+28
-26
@@ -8,7 +8,7 @@
|
|||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/location_title"
|
android:id="@+id/position_title"
|
||||||
style="@style/SettingsTitle"
|
style="@style/SettingsTitle"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@@ -19,81 +19,83 @@
|
|||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<ProgressBar
|
<ProgressBar
|
||||||
android:id="@+id/location_progress"
|
android:id="@+id/position_progress"
|
||||||
style="?android:attr/progressBarStyleHorizontal"
|
style="?android:attr/progressBarStyleHorizontal"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginEnd="12dp"
|
android:layout_marginEnd="12dp"
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/location_title"
|
app:layout_constraintBottom_toBottomOf="@+id/position_title"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toEndOf="@+id/location_title"
|
app:layout_constraintStart_toEndOf="@+id/position_title"
|
||||||
app:layout_constraintTop_toTopOf="@+id/location_title" />
|
app:layout_constraintTop_toTopOf="@+id/position_title" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/location_lat"
|
android:id="@+id/position_lat"
|
||||||
style="@style/SettingsText"
|
style="@style/SettingsText"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="6dp"
|
android:layout_marginTop="6dp"
|
||||||
android:text="@string/location_lat"
|
android:text="@string/location_lat"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/location_lon"
|
app:layout_constraintEnd_toStartOf="@+id/position_lon"
|
||||||
app:layout_constraintHorizontal_bias="0.5"
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
app:layout_constraintHorizontal_chainStyle="spread_inside"
|
app:layout_constraintHorizontal_chainStyle="spread_inside"
|
||||||
app:layout_constraintStart_toStartOf="@+id/location_title"
|
app:layout_constraintStart_toStartOf="@+id/position_title"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/location_title" />
|
app:layout_constraintTop_toBottomOf="@+id/position_title" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/location_lon"
|
android:id="@+id/position_lon"
|
||||||
style="@style/SettingsText"
|
style="@style/SettingsText"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/location_lon"
|
android:text="@string/location_lon"
|
||||||
app:layout_constraintBaseline_toBaselineOf="@+id/location_lat"
|
app:layout_constraintBaseline_toBaselineOf="@+id/position_lat"
|
||||||
app:layout_constraintEnd_toEndOf="@+id/location_progress"
|
app:layout_constraintEnd_toEndOf="@+id/position_progress"
|
||||||
app:layout_constraintHorizontal_bias="0.5"
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
app:layout_constraintStart_toEndOf="@+id/location_lat" />
|
app:layout_constraintStart_toEndOf="@+id/position_lat" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/location_btn_gps"
|
android:id="@+id/position_btn_gps"
|
||||||
style="@style/NormalButton"
|
style="@style/NormalButton"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="4dp"
|
android:layout_marginStart="6dp"
|
||||||
android:layout_marginTop="6dp"
|
android:layout_marginTop="6dp"
|
||||||
android:layout_marginBottom="4dp"
|
android:layout_marginBottom="6dp"
|
||||||
android:drawableStart="@drawable/ic_gps"
|
android:drawableStart="@drawable/ic_gps"
|
||||||
android:text="@string/btn_gps"
|
android:text="@string/btn_gps"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/location_btn_manual"
|
app:layout_constraintEnd_toStartOf="@+id/position_btn_manual"
|
||||||
app:layout_constraintHorizontal_bias="0.5"
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/location_lat" />
|
app:layout_constraintTop_toBottomOf="@+id/position_lat" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/location_btn_manual"
|
android:id="@+id/position_btn_manual"
|
||||||
style="@style/NormalButton"
|
style="@style/NormalButton"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="2dp"
|
||||||
|
android:layout_marginEnd="2dp"
|
||||||
android:drawableStart="@drawable/ic_gps"
|
android:drawableStart="@drawable/ic_gps"
|
||||||
android:text="@string/btn_manual"
|
android:text="@string/btn_manual"
|
||||||
app:layout_constraintBaseline_toBaselineOf="@+id/location_btn_gps"
|
app:layout_constraintBaseline_toBaselineOf="@+id/position_btn_gps"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/location_btn_qth"
|
app:layout_constraintEnd_toStartOf="@+id/position_btn_qth"
|
||||||
app:layout_constraintHorizontal_bias="0.5"
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
app:layout_constraintStart_toEndOf="@+id/location_btn_gps" />
|
app:layout_constraintStart_toEndOf="@+id/position_btn_gps" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/location_btn_qth"
|
android:id="@+id/position_btn_qth"
|
||||||
style="@style/NormalButton"
|
style="@style/NormalButton"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="4dp"
|
android:layout_marginEnd="6dp"
|
||||||
android:drawableStart="@drawable/ic_qth"
|
android:drawableStart="@drawable/ic_qth"
|
||||||
android:text="@string/btn_qth"
|
android:text="@string/btn_qth"
|
||||||
app:layout_constraintBaseline_toBaselineOf="@+id/location_btn_gps"
|
app:layout_constraintBaseline_toBaselineOf="@+id/position_btn_gps"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintHorizontal_bias="0.5"
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
app:layout_constraintStart_toEndOf="@+id/location_btn_manual" />
|
app:layout_constraintStart_toEndOf="@+id/position_btn_manual" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
+24
-24
@@ -8,7 +8,7 @@
|
|||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tracking_title"
|
android:id="@+id/remote_title"
|
||||||
style="@style/SettingsTitle"
|
style="@style/SettingsTitle"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@@ -21,54 +21,54 @@
|
|||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<com.google.android.material.switchmaterial.SwitchMaterial
|
<com.google.android.material.switchmaterial.SwitchMaterial
|
||||||
android:id="@+id/tracking_switch"
|
android:id="@+id/remote_switch"
|
||||||
style="@style/SettingsText"
|
style="@style/SettingsText"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:minHeight="42dp"
|
android:minHeight="42dp"
|
||||||
android:text="@string/tracking_switch"
|
android:text="@string/tracking_switch"
|
||||||
app:layout_constraintEnd_toEndOf="@+id/tracking_title"
|
app:layout_constraintEnd_toEndOf="@+id/remote_title"
|
||||||
app:layout_constraintStart_toStartOf="@+id/tracking_title"
|
app:layout_constraintStart_toStartOf="@+id/remote_title"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/tracking_title"
|
app:layout_constraintTop_toBottomOf="@+id/remote_title"
|
||||||
app:trackTint="@color/themeDisabled" />
|
app:trackTint="@color/textDisabled" />
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
android:id="@+id/tracking_ip"
|
android:id="@+id/remote_ip"
|
||||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
|
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
android:layout_marginBottom="12dp"
|
android:layout_marginBottom="12dp"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/tracking_port"
|
app:layout_constraintEnd_toStartOf="@+id/remote_port"
|
||||||
app:layout_constraintHorizontal_bias="0.5"
|
app:layout_constraintStart_toStartOf="@+id/remote_switch"
|
||||||
app:layout_constraintStart_toStartOf="@+id/tracking_switch"
|
app:layout_constraintTop_toBottomOf="@+id/remote_switch"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/tracking_switch"
|
app:layout_constraintWidth_percent="0.64">
|
||||||
app:layout_constraintWidth_percent="0.69">
|
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputEditText
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
android:id="@+id/tracking_ip_edit"
|
android:id="@+id/remote_ip_edit"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:hint="@string/tracking_ip_hint" />
|
android:hint="@string/tracking_ip_hint"
|
||||||
|
android:textColorHint="@color/textMain" />
|
||||||
|
|
||||||
</com.google.android.material.textfield.TextInputLayout>
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
android:id="@+id/tracking_port"
|
android:id="@+id/remote_port"
|
||||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
|
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/tracking_ip"
|
app:layout_constraintBottom_toBottomOf="@+id/remote_ip"
|
||||||
app:layout_constraintEnd_toEndOf="@+id/tracking_switch"
|
app:layout_constraintEnd_toEndOf="@+id/remote_switch"
|
||||||
app:layout_constraintHorizontal_bias="0.5"
|
app:layout_constraintStart_toEndOf="@+id/remote_ip"
|
||||||
app:layout_constraintStart_toEndOf="@+id/tracking_ip"
|
app:layout_constraintTop_toTopOf="@+id/remote_ip">
|
||||||
app:layout_constraintTop_toTopOf="@+id/tracking_ip">
|
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputEditText
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
android:id="@+id/tracking_port_edit"
|
android:id="@+id/remote_port_edit"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:hint="@string/tracking_port_hint" />
|
android:hint="@string/tracking_port_hint"
|
||||||
|
android:textColorHint="@color/textMain" />
|
||||||
|
|
||||||
</com.google.android.material.textfield.TextInputLayout>
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
@@ -103,9 +103,9 @@
|
|||||||
style="@style/NormalButton"
|
style="@style/NormalButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="6dp"
|
||||||
android:layout_marginTop="12dp"
|
android:layout_marginTop="12dp"
|
||||||
android:layout_marginBottom="8dp"
|
android:layout_marginBottom="6dp"
|
||||||
android:text="@string/btn_cancel"
|
android:text="@string/btn_cancel"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/filter_pos_btn"
|
app:layout_constraintEnd_toStartOf="@+id/filter_pos_btn"
|
||||||
@@ -119,7 +119,7 @@
|
|||||||
style="@style/NormalButton"
|
style="@style/NormalButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="6dp"
|
||||||
android:text="@string/btn_accept"
|
android:text="@string/btn_accept"
|
||||||
app:layout_constraintBaseline_toBaselineOf="@+id/filter_neg_btn"
|
app:layout_constraintBaseline_toBaselineOf="@+id/filter_neg_btn"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/location_title"
|
android:id="@+id/position_title"
|
||||||
style="@style/DialogTitle"
|
style="@style/DialogTitle"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@@ -34,9 +34,9 @@
|
|||||||
android:minHeight="48dp"
|
android:minHeight="48dp"
|
||||||
app:endIconMode="clear_text"
|
app:endIconMode="clear_text"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/location_lon_layout"
|
app:layout_constraintBottom_toTopOf="@+id/location_lon_layout"
|
||||||
app:layout_constraintEnd_toEndOf="@+id/location_title"
|
app:layout_constraintEnd_toEndOf="@+id/position_title"
|
||||||
app:layout_constraintStart_toStartOf="@+id/location_title"
|
app:layout_constraintStart_toStartOf="@+id/position_title"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/location_title">
|
app:layout_constraintTop_toBottomOf="@+id/position_title">
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputEditText
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
android:id="@+id/location_lat_edit"
|
android:id="@+id/location_lat_edit"
|
||||||
@@ -74,9 +74,9 @@
|
|||||||
style="@style/NormalButton"
|
style="@style/NormalButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="6dp"
|
||||||
android:layout_marginTop="12dp"
|
android:layout_marginTop="12dp"
|
||||||
android:layout_marginBottom="8dp"
|
android:layout_marginBottom="6dp"
|
||||||
android:text="@string/btn_cancel"
|
android:text="@string/btn_cancel"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/location_pos_btn"
|
app:layout_constraintEnd_toStartOf="@+id/location_pos_btn"
|
||||||
@@ -90,7 +90,7 @@
|
|||||||
style="@style/NormalButton"
|
style="@style/NormalButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="6dp"
|
||||||
android:text="@string/btn_accept"
|
android:text="@string/btn_accept"
|
||||||
app:layout_constraintBaseline_toBaselineOf="@+id/location_neg_btn"
|
app:layout_constraintBaseline_toBaselineOf="@+id/location_neg_btn"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
|||||||
@@ -66,9 +66,9 @@
|
|||||||
style="@style/NormalButton"
|
style="@style/NormalButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="6dp"
|
||||||
android:layout_marginTop="12dp"
|
android:layout_marginTop="12dp"
|
||||||
android:layout_marginBottom="8dp"
|
android:layout_marginBottom="6dp"
|
||||||
android:text="@string/btn_cancel"
|
android:text="@string/btn_cancel"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/locator_pos_btn"
|
app:layout_constraintEnd_toStartOf="@+id/locator_pos_btn"
|
||||||
@@ -82,7 +82,7 @@
|
|||||||
style="@style/NormalButton"
|
style="@style/NormalButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="6dp"
|
||||||
android:text="@string/btn_accept"
|
android:text="@string/btn_accept"
|
||||||
app:layout_constraintBaseline_toBaselineOf="@+id/locator_neg_btn"
|
app:layout_constraintBaseline_toBaselineOf="@+id/locator_neg_btn"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
android:text="@string/sources_title"
|
android:text="@string/entries_modes"
|
||||||
android:minHeight="48dp"
|
android:minHeight="48dp"
|
||||||
app:layout_constraintEnd_toEndOf="@+id/modes_btn_pos"
|
app:layout_constraintEnd_toEndOf="@+id/modes_btn_pos"
|
||||||
app:layout_constraintStart_toStartOf="@+id/modes_btn_neg"
|
app:layout_constraintStart_toStartOf="@+id/modes_btn_neg"
|
||||||
@@ -40,8 +40,8 @@
|
|||||||
style="@style/NormalButton"
|
style="@style/NormalButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="6dp"
|
||||||
android:layout_marginBottom="8dp"
|
android:layout_marginBottom="6dp"
|
||||||
android:text="@string/btn_cancel"
|
android:text="@string/btn_cancel"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/modes_btn_pos"
|
app:layout_constraintEnd_toStartOf="@+id/modes_btn_pos"
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
style="@style/NormalButton"
|
style="@style/NormalButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="6dp"
|
||||||
android:text="@string/btn_accept"
|
android:text="@string/btn_accept"
|
||||||
app:layout_constraintBaseline_toBaselineOf="@+id/modes_btn_neg"
|
app:layout_constraintBaseline_toBaselineOf="@+id/modes_btn_neg"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
|||||||
@@ -58,9 +58,8 @@
|
|||||||
style="@style/NormalButton"
|
style="@style/NormalButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="6dp"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginBottom="6dp"
|
||||||
android:layout_marginBottom="8dp"
|
|
||||||
android:text="@string/btn_cancel"
|
android:text="@string/btn_cancel"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/sources_btn_pos"
|
app:layout_constraintEnd_toStartOf="@+id/sources_btn_pos"
|
||||||
@@ -73,8 +72,7 @@
|
|||||||
style="@style/NormalButton"
|
style="@style/NormalButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginEnd="6dp"
|
||||||
android:layout_marginEnd="8dp"
|
|
||||||
android:text="@string/btn_accept"
|
android:text="@string/btn_accept"
|
||||||
app:layout_constraintBaseline_toBaselineOf="@+id/sources_btn_neg"
|
app:layout_constraintBaseline_toBaselineOf="@+id/sources_btn_neg"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
android:includeFontPadding="false"
|
android:includeFontPadding="false"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:text="@string/map_copyright"
|
android:text="@string/map_copyright"
|
||||||
android:textColor="@color/themeDisabled"
|
android:textColor="@color/textDisabled"
|
||||||
android:textSize="@dimen/text_size_copyright"
|
android:textSize="@dimen/text_size_copyright"
|
||||||
app:layout_constraintEnd_toEndOf="@+id/map_card"
|
app:layout_constraintEnd_toEndOf="@+id/map_card"
|
||||||
app:layout_constraintStart_toStartOf="@+id/map_card"
|
app:layout_constraintStart_toStartOf="@+id/map_card"
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/settings_title"
|
android:id="@+id/settings_title"
|
||||||
style="@style/ToolbarTitle"
|
style="@style/ToolbarTitle"
|
||||||
android:text="@string/settings_title" />
|
android:text="@string/btn_settings" />
|
||||||
|
|
||||||
</androidx.cardview.widget.CardView>
|
</androidx.cardview.widget.CardView>
|
||||||
|
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
android:layout_marginTop="60dp"
|
android:layout_marginTop="60dp"
|
||||||
android:layout_marginEnd="@dimen/view_default_margin"
|
android:layout_marginEnd="@dimen/view_default_margin"
|
||||||
android:layout_marginBottom="62dp"
|
android:layout_marginBottom="62dp"
|
||||||
android:backgroundTint="@color/surfaceBg">
|
android:backgroundTint="@color/background">
|
||||||
|
|
||||||
<androidx.core.widget.NestedScrollView
|
<androidx.core.widget.NestedScrollView
|
||||||
android:id="@+id/settings_scroll"
|
android:id="@+id/settings_scroll"
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
|
|
||||||
<include
|
<include
|
||||||
android:id="@+id/settings_location"
|
android:id="@+id/settings_location"
|
||||||
layout="@layout/card_location"
|
layout="@layout/card_position"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="@dimen/view_default_margin"
|
android:layout_marginTop="@dimen/view_default_margin"
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
|
|
||||||
<include
|
<include
|
||||||
android:id="@+id/settings_tracking"
|
android:id="@+id/settings_tracking"
|
||||||
layout="@layout/card_tracking"
|
layout="@layout/card_remote"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="@dimen/view_default_margin"
|
android:layout_marginTop="@dimen/view_default_margin"
|
||||||
@@ -93,7 +93,7 @@
|
|||||||
|
|
||||||
<include
|
<include
|
||||||
android:id="@+id/settings_warranty"
|
android:id="@+id/settings_warranty"
|
||||||
layout="@layout/card_info"
|
layout="@layout/card_outro"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="@dimen/view_default_margin"
|
android:layout_marginTop="@dimen/view_default_margin"
|
||||||
@@ -113,7 +113,7 @@
|
|||||||
style="@style/BottomBar">
|
style="@style/BottomBar">
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/settings_prev_btn"
|
android:id="@+id/settings_github_btn"
|
||||||
style="@style/NormalButton"
|
style="@style/NormalButton"
|
||||||
android:layout_width="@dimen/button_width_max"
|
android:layout_width="@dimen/button_width_max"
|
||||||
android:layout_marginStart="@dimen/button_margin_side"
|
android:layout_marginStart="@dimen/button_margin_side"
|
||||||
@@ -121,7 +121,7 @@
|
|||||||
android:text="@string/btn_github" />
|
android:text="@string/btn_github" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/settings_next_btn"
|
android:id="@+id/settings_fdroid_btn"
|
||||||
style="@style/NormalButton"
|
style="@style/NormalButton"
|
||||||
android:layout_width="@dimen/button_width_max"
|
android:layout_width="@dimen/button_width_max"
|
||||||
android:layout_marginEnd="@dimen/button_margin_side"
|
android:layout_marginEnd="@dimen/button_margin_side"
|
||||||
|
|||||||
@@ -7,11 +7,11 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="41dp"
|
android:layout_height="41dp"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:background="@color/surfaceCard"
|
android:background="@color/cardRegular"
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
android:lines="1"
|
android:lines="1"
|
||||||
android:padding="6dp"
|
android:padding="6dp"
|
||||||
android:textColor="@color/themeLight"
|
android:textColor="@color/textMain"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
</androidx.cardview.widget.CardView>
|
</androidx.cardview.widget.CardView>
|
||||||
@@ -7,11 +7,11 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="41dp"
|
android:layout_height="41dp"
|
||||||
android:layout_marginStart="4dp"
|
android:layout_marginStart="4dp"
|
||||||
android:background="@color/surfaceCard"
|
android:background="@color/cardRegular"
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
android:lines="1"
|
android:lines="1"
|
||||||
android:padding="4dp"
|
android:padding="4dp"
|
||||||
android:textColor="@color/themeLight"
|
android:textColor="@color/textMain"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
</androidx.cardview.widget.CardView>
|
</androidx.cardview.widget.CardView>
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
android:text="@string/pass_satName"
|
android:text="@string/pass_satName"
|
||||||
android:textSize="@dimen/text_size_small"
|
android:textSize="@dimen/text_size_small"
|
||||||
android:textColor="@color/themeAccent"
|
android:textColor="@color/accent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
android:layout_marginEnd="6dp"
|
android:layout_marginEnd="6dp"
|
||||||
android:text="@string/pass_satId"
|
android:text="@string/pass_satId"
|
||||||
android:textSize="@dimen/text_size_small"
|
android:textSize="@dimen/text_size_small"
|
||||||
android:textColor="@color/themeAccent"
|
android:textColor="@color/accent"
|
||||||
app:layout_constraintBaseline_toBaselineOf="@+id/pass_name"
|
app:layout_constraintBaseline_toBaselineOf="@+id/pass_name"
|
||||||
app:layout_constraintEnd_toEndOf="parent" />
|
app:layout_constraintEnd_toEndOf="parent" />
|
||||||
|
|
||||||
|
|||||||
@@ -40,6 +40,7 @@
|
|||||||
app:layout_constraintBottom_toBottomOf="@+id/radio_info"
|
app:layout_constraintBottom_toBottomOf="@+id/radio_info"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="@+id/radio_info"
|
app:layout_constraintTop_toTopOf="@+id/radio_info"
|
||||||
|
android:contentDescription="@string/downlink"
|
||||||
app:srcCompat="@drawable/ic_next" />
|
app:srcCompat="@drawable/ic_next" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
@@ -58,6 +59,7 @@
|
|||||||
app:layout_constraintBottom_toBottomOf="@+id/radio_info"
|
app:layout_constraintBottom_toBottomOf="@+id/radio_info"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="@+id/radio_info"
|
app:layout_constraintTop_toTopOf="@+id/radio_info"
|
||||||
|
android:contentDescription="@string/uplink"
|
||||||
app:srcCompat="@drawable/ic_next" />
|
app:srcCompat="@drawable/ic_next" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<background android:drawable="@drawable/ic_launcher_background" />
|
<background android:drawable="@drawable/ic_launcher_bg" />
|
||||||
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
<foreground android:drawable="@drawable/ic_launcher_fg" />
|
||||||
</adaptive-icon>
|
</adaptive-icon>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<background android:drawable="@drawable/ic_launcher_background" />
|
<background android:drawable="@drawable/ic_launcher_bg" />
|
||||||
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
<foreground android:drawable="@drawable/ic_launcher_fg" />
|
||||||
</adaptive-icon>
|
</adaptive-icon>
|
||||||
File renamed without changes.
@@ -1,13 +1,17 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
<string name="app_name">Look4Sat</string>
|
||||||
|
<string name="app_version">Версия: %s</string>
|
||||||
|
<string name="app_subtitle">Трекер спутников для Android</string>
|
||||||
|
|
||||||
<string name="btn_add">Добавить</string>
|
<string name="btn_add">Добавить</string>
|
||||||
<string name="btn_accept">Принять</string>
|
<string name="btn_accept">Принять</string>
|
||||||
<string name="btn_cancel">Отмена</string>
|
<string name="btn_cancel">Отменить</string>
|
||||||
<string name="btn_back">Назад</string>
|
<string name="btn_back">Назад</string>
|
||||||
<string name="btn_modes">Режимы</string>
|
<string name="btn_modes">Режимы</string>
|
||||||
<string name="btn_select">Выбрать</string>
|
<string name="btn_select">Выбрать</string>
|
||||||
<string name="btn_done">Готово</string>
|
<string name="btn_done">Готово</string>
|
||||||
<string name="btn_clear">Очистка</string>
|
<string name="btn_clear">Очистить</string>
|
||||||
<string name="btn_refresh">Обновить</string>
|
<string name="btn_refresh">Обновить</string>
|
||||||
<string name="btn_map">Карта</string>
|
<string name="btn_map">Карта</string>
|
||||||
<string name="btn_filter">Фильтр</string>
|
<string name="btn_filter">Фильтр</string>
|
||||||
@@ -28,26 +32,19 @@
|
|||||||
<string name="fmt_entries">Спутников: %s</string>
|
<string name="fmt_entries">Спутников: %s</string>
|
||||||
<string name="fmt_radios">Трансиверов: %s</string>
|
<string name="fmt_radios">Трансиверов: %s</string>
|
||||||
|
|
||||||
|
<string name="downlink">Даунлинк</string>
|
||||||
|
<string name="uplink">Аплинк</string>
|
||||||
|
|
||||||
<string name="yes">Да</string>
|
<string name="yes">Да</string>
|
||||||
<string name="no">Нет</string>
|
<string name="no">Нет</string>
|
||||||
|
|
||||||
<string name="menu_satellites">Спутники</string>
|
|
||||||
<string name="menu_passes">Пролеты</string>
|
|
||||||
<string name="menu_radar">Радар</string>
|
|
||||||
<string name="menu_map">Карта</string>
|
|
||||||
<string name="menu_settings">Настройки</string>
|
|
||||||
|
|
||||||
<string name="sources_title">Источники данных</string>
|
<string name="sources_title">Источники данных</string>
|
||||||
<string name="sources_hint">Протокол HTTPS</string>
|
<string name="sources_hint">Протокол HTTPS</string>
|
||||||
|
|
||||||
<string name="entries_title">Спутники</string>
|
<string name="entries_modes">Выберите тип модуляции</string>
|
||||||
<string name="entries_update">Обновить спутники:</string>
|
|
||||||
<string name="entries_search_hint">Поиск по Имени / Id</string>
|
<string name="entries_search_hint">Поиск по Имени / Id</string>
|
||||||
<string name="entries_select_all">Выбрать Все/Нет</string>
|
|
||||||
<string name="entries_update_error">Ошибка обновления спутников</string>
|
<string name="entries_update_error">Ошибка обновления спутников</string>
|
||||||
|
|
||||||
<string name="modes_title">Выберите модуляцию трансивера</string>
|
|
||||||
|
|
||||||
<string name="passes_error">Нет предстоящих пролётов</string>
|
<string name="passes_error">Нет предстоящих пролётов</string>
|
||||||
|
|
||||||
<string name="pass_aosAz">НПС - %.1f°</string>
|
<string name="pass_aosAz">НПС - %.1f°</string>
|
||||||
@@ -101,12 +98,6 @@
|
|||||||
<string name="pref_min_el_summary">Показать пролеты с элевацией более</string>
|
<string name="pref_min_el_summary">Показать пролеты с элевацией более</string>
|
||||||
<string name="pref_min_el_input_error">Введите значение между 0° и 90°</string>
|
<string name="pref_min_el_input_error">Введите значение между 0° и 90°</string>
|
||||||
|
|
||||||
<string name="settings_title">Настройки</string>
|
|
||||||
|
|
||||||
<string name="about_version">Версия: %s</string>
|
|
||||||
<string name="about_subtitle">Трекер спутников для Android</string>
|
|
||||||
<string name="about_support">Поддержать</string>
|
|
||||||
|
|
||||||
<string name="location_title">Местоположение</string>
|
<string name="location_title">Местоположение</string>
|
||||||
<string name="location_lat">Широта: %.4f°</string>
|
<string name="location_lat">Широта: %.4f°</string>
|
||||||
<string name="location_lon">Долгота: %.4f°</string>
|
<string name="location_lon">Долгота: %.4f°</string>
|
||||||
@@ -130,16 +121,13 @@
|
|||||||
<string name="tracking_port_invalid">Введите порт в диапазоне от 1024 до 65535</string>
|
<string name="tracking_port_invalid">Введите порт в диапазоне от 1024 до 65535</string>
|
||||||
|
|
||||||
<string name="update_title">Обновление данных</string>
|
<string name="update_title">Обновление данных</string>
|
||||||
<string name="update_web">Вэб</string>
|
|
||||||
<string name="update_file">Файл</string>
|
|
||||||
<string name="update_clear">Удалить</string>
|
|
||||||
<string name="update_error">При обновлении возникли ошибки</string>
|
<string name="update_error">При обновлении возникли ошибки</string>
|
||||||
|
|
||||||
<string name="warranty_title">Я хотел бы сказать спасибо:</string>
|
<string name="outro_title">Я хотел бы сказать спасибо:</string>
|
||||||
<string name="warranty_thanks"> • Вам за использование этого приложения! \nЖелаю всегда чистого неба над головой!
|
<string name="outro_thanks"> • Вам за использование этого приложения! \nЖелаю всегда чистого неба над головой!
|
||||||
\n • <a href="https://github.com/g4dpz">David A. B. Johnson</a> и
|
\n • <a href="https://github.com/g4dpz">David A. B. Johnson</a> и
|
||||||
<a href="https://github.com/davidmoten">Dave Moten</a> за работу над predict4java и
|
<a href="https://github.com/davidmoten">Dave Moten</a> за работу над predict4java и доступ
|
||||||
доступ к ней по <a href="https://gnu.org/licenses/old-licenses/gpl-2.0.en.html">GNU GPLv2</a>
|
к ней по <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> за его программу
|
\n • <a href="https://github.com/csete">Alexandru Csete</a> за его программу
|
||||||
Gpredict, которая послужила для меня вдохновением.
|
Gpredict, которая послужила для меня вдохновением.
|
||||||
\n • <a href="https://celestrak.com/webmaster.php">Доктору T.S. Kelso</a> за его сайт
|
\n • <a href="https://celestrak.com/webmaster.php">Доктору T.S. Kelso</a> за его сайт
|
||||||
@@ -147,7 +135,7 @@
|
|||||||
\n • <a href="https://libre.space/">Libre Space Foundation</a> за проект
|
\n • <a href="https://libre.space/">Libre Space Foundation</a> за проект
|
||||||
<a href="https://db.satnogs.org/">SatNOGS</a>, API и базу данных с информацией о спутниках.
|
<a href="https://db.satnogs.org/">SatNOGS</a>, API и базу данных с информацией о спутниках.
|
||||||
</string>
|
</string>
|
||||||
<string name="warranty_license"><a href="https://sites.google.com/view/look4sat-privacy-policy/home">Политика конфиденциальности.</a>
|
<string name="outro_license"><a href="https://sites.google.com/view/look4sat-privacy-policy/home">Политика конфиденциальности.</a>
|
||||||
\nЭто ПО поставляется без гарантий. \nПодробности в лицензии <a href="https://www.gnu.org/licenses/gpl-3.0.html">GNU GPLv3</a>.
|
\nЭто ПО поставляется без гарантий. \nПодробности в лицензии <a href="https://www.gnu.org/licenses/gpl-3.0.html">GNU GPLv3</a>.
|
||||||
</string>
|
</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -1,19 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<color name="themeAccent">#FFE082</color>
|
<color name="accent">#FFE082</color>
|
||||||
<color name="themeLight">#D6FFFFFF</color>
|
<color name="textMain">#CCFFFFFF</color>
|
||||||
<color name="themeGrey">#99FFFFFF</color>
|
<color name="textDisabled">#66FFFFFF</color>
|
||||||
<color name="themeDisabled">#5CFFFFFF</color>
|
<color name="buttonRegular">#242424</color>
|
||||||
<color name="themeDark">#121212</color>
|
<color name="systemBar">#1A1A1A</color>
|
||||||
<color name="surfaceIcon">#404040</color>
|
<color name="toolbar">#1A1A1A</color>
|
||||||
<color name="surfaceTop">#383838</color>
|
<color name="cardRegular">#1A1A1A</color>
|
||||||
<color name="surfaceChip">#303030</color>
|
<color name="bottomBar">#1A1A1A</color>
|
||||||
<color name="surfaceButton">#242424</color>
|
<color name="background">#121212</color>
|
||||||
<color name="surfaceToolbar">#1A1A1A</color>
|
<color name="transparent">#00000000</color>
|
||||||
<color name="bottomAppBar">#1A1A1A</color>
|
|
||||||
<color name="surfaceSystem">#1A1A1A</color>
|
|
||||||
<color name="surfaceCard">#1A1A1A</color>
|
|
||||||
<color name="surfaceBg">#121212</color>
|
|
||||||
<color name="mapInfoLayout">#B3181818</color>
|
|
||||||
<color name="transparent">@android:color/transparent</color>
|
|
||||||
</resources>
|
</resources>
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<string name="app_name" translatable="false">Look4Sat</string>
|
<string name="app_name">Look4Sat</string>
|
||||||
|
<string name="app_version">Version: %s</string>
|
||||||
|
<string name="app_subtitle">Satellite tracker and pass predictor</string>
|
||||||
|
|
||||||
<string name="btn_add">Add</string>
|
<string name="btn_add">Add</string>
|
||||||
<string name="btn_accept">Accept</string>
|
<string name="btn_accept">Accept</string>
|
||||||
@@ -30,28 +32,20 @@
|
|||||||
<string name="fmt_entries">Satellites: %s</string>
|
<string name="fmt_entries">Satellites: %s</string>
|
||||||
<string name="fmt_radios">Transceivers: %s</string>
|
<string name="fmt_radios">Transceivers: %s</string>
|
||||||
|
|
||||||
|
<string name="downlink">Downlink</string>
|
||||||
|
<string name="uplink">Uplink</string>
|
||||||
|
|
||||||
<string name="yes">Yes</string>
|
<string name="yes">Yes</string>
|
||||||
<string name="no">No</string>
|
<string name="no">No</string>
|
||||||
|
|
||||||
<string name="menu_satellites">Satellites</string>
|
|
||||||
<string name="menu_passes">Passes</string>
|
|
||||||
<string name="menu_radar">Radar</string>
|
|
||||||
<string name="menu_map">World Map</string>
|
|
||||||
<string name="menu_settings">Settings</string>
|
|
||||||
|
|
||||||
<string name="sources_title">Manage data sources</string>
|
<string name="sources_title">Manage data sources</string>
|
||||||
<string name="sources_hint">HTTPS Source</string>
|
<string name="sources_hint">HTTPS Source</string>
|
||||||
|
|
||||||
<string name="entries_title">Satellites</string>
|
<string name="entries_modes">Select modulation type</string>
|
||||||
<string name="entries_update">TLE data update:</string>
|
|
||||||
<string name="entries_search_hint">Search by Name / Id</string>
|
<string name="entries_search_hint">Search by Name / Id</string>
|
||||||
<string name="entries_select_all">Select All/None</string>
|
|
||||||
<string name="entries_update_error">Error importing satellite data</string>
|
<string name="entries_update_error">Error importing satellite data</string>
|
||||||
|
|
||||||
<string name="modes_title">Choose transceiver mode</string>
|
|
||||||
|
|
||||||
<string name="timer_zero" translatable="false">00:00:00</string>
|
<string name="timer_zero" translatable="false">00:00:00</string>
|
||||||
<string name="timer_placeholder" translatable="false">-</string>
|
|
||||||
|
|
||||||
<string name="passes_error">No upcoming passes</string>
|
<string name="passes_error">No upcoming passes</string>
|
||||||
|
|
||||||
@@ -115,18 +109,10 @@
|
|||||||
<string name="pref_hours_ahead_summary">Show passes that occur within X hours</string>
|
<string name="pref_hours_ahead_summary">Show passes that occur within X hours</string>
|
||||||
<string name="pref_hours_ahead_input_error">Set the value between 1h and 168h</string>
|
<string name="pref_hours_ahead_input_error">Set the value between 1h and 168h</string>
|
||||||
<string name="pref_min_el_key" translatable="false">minEl</string>
|
<string name="pref_min_el_key" translatable="false">minEl</string>
|
||||||
<string name="pref_min_el_hint">Minimum elevation</string>
|
<string name="pref_min_el_hint">Minimal elevation</string>
|
||||||
<string name="pref_min_el_summary">Show passes with max elevation above</string>
|
<string name="pref_min_el_summary">Show passes with max elevation above</string>
|
||||||
<string name="pref_min_el_input_error">Set the value between 0° and 90°</string>
|
<string name="pref_min_el_input_error">Set the value between 0° and 90°</string>
|
||||||
|
|
||||||
<string name="settings_title">Settings</string>
|
|
||||||
|
|
||||||
<string name="about_version">Version: %s</string>
|
|
||||||
<string name="about_subtitle">Satellite tracker and pass predictor</string>
|
|
||||||
<string name="about_github" translatable="false">GitHub</string>
|
|
||||||
<string name="about_support">Support</string>
|
|
||||||
<string name="about_fdroid" translatable="false">F-Droid</string>
|
|
||||||
|
|
||||||
<string name="location_title">Station position</string>
|
<string name="location_title">Station position</string>
|
||||||
<string name="location_lat">Latitude: %.4f°</string>
|
<string name="location_lat">Latitude: %.4f°</string>
|
||||||
<string name="location_lon">Longitude: %.4f°</string>
|
<string name="location_lon">Longitude: %.4f°</string>
|
||||||
@@ -150,24 +136,21 @@
|
|||||||
<string name="tracking_port_invalid">Please enter a port between 1024 to 65535</string>
|
<string name="tracking_port_invalid">Please enter a port between 1024 to 65535</string>
|
||||||
|
|
||||||
<string name="update_title">Satellite data update</string>
|
<string name="update_title">Satellite data update</string>
|
||||||
<string name="update_web">Web</string>
|
|
||||||
<string name="update_file">File</string>
|
|
||||||
<string name="update_clear">Clear</string>
|
|
||||||
<string name="update_error">Update completed with errors</string>
|
<string name="update_error">Update completed with errors</string>
|
||||||
|
|
||||||
<string name="warranty_title">I would like to say thanks to:</string>
|
<string name="outro_title">I would like to say thanks to:</string>
|
||||||
<string name="warranty_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 • <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 • <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 • <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 • <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.
|
||||||
</string>
|
</string>
|
||||||
<string name="warranty_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>
|
||||||
The app comes with no warranty. \nSee the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GNU GPLv3</a> license for details.
|
The app comes with no warranty. \nSee the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GNU GPLv3</a> license for details.
|
||||||
</string>
|
</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -3,27 +3,22 @@
|
|||||||
<style name="Theme.Look4Sat.SplashScreen" parent="Theme.SplashScreen">
|
<style name="Theme.Look4Sat.SplashScreen" parent="Theme.SplashScreen">
|
||||||
<item name="android:forceDarkAllowed" tools:targetApi="q">false</item>
|
<item name="android:forceDarkAllowed" tools:targetApi="q">false</item>
|
||||||
<item name="postSplashScreenTheme">@style/Theme.Look4Sat.Main</item>
|
<item name="postSplashScreenTheme">@style/Theme.Look4Sat.Main</item>
|
||||||
<item name="windowSplashScreenBackground">@color/surfaceBg</item>
|
<item name="windowSplashScreenBackground">@color/background</item>
|
||||||
<item name="windowSplashScreenAnimatedIcon">@drawable/ic_splash</item>
|
<item name="windowSplashScreenAnimatedIcon">@drawable/ic_splash</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="Theme.Look4Sat.Main" parent="Theme.Material3.Dark.NoActionBar">
|
<style name="Theme.Look4Sat.Main" parent="Theme.Material3.Dark.NoActionBar">
|
||||||
<item name="colorAccent">@color/themeAccent</item>
|
<item name="colorAccent">@color/accent</item>
|
||||||
<item name="colorControlNormal">@color/themeLight</item>
|
<item name="colorControlNormal">@color/textMain</item>
|
||||||
<item name="colorPrimary">@color/themeAccent</item>
|
<item name="colorPrimary">@color/accent</item>
|
||||||
<item name="colorSecondary">@color/themeAccent</item>
|
<item name="colorSecondary">@color/accent</item>
|
||||||
<!-- Bottom bar colors-->
|
<item name="colorOnPrimaryContainer">@color/background</item>
|
||||||
<item name="colorOnSecondaryContainer">@color/themeLight</item>
|
|
||||||
<item name="colorOnPrimaryContainer">@color/surfaceBg</item>
|
|
||||||
<item name="colorOnSurfaceVariant">@color/themeLight</item>
|
|
||||||
<item name="colorSecondaryContainer">@color/surfaceIcon</item>
|
|
||||||
<!-- -->
|
|
||||||
<item name="android:forceDarkAllowed" tools:targetApi="q">false</item>
|
<item name="android:forceDarkAllowed" tools:targetApi="q">false</item>
|
||||||
<item name="android:listDivider">@drawable/item_divider</item>
|
<item name="android:listDivider">@drawable/item_divider</item>
|
||||||
<item name="android:navigationBarColor">@color/surfaceBg</item>
|
<item name="android:navigationBarColor">@color/background</item>
|
||||||
<item name="android:textColorPrimary">@color/themeLight</item>
|
<item name="android:textColorPrimary">@color/textMain</item>
|
||||||
<item name="android:statusBarColor">@color/surfaceBg</item>
|
<item name="android:statusBarColor">@color/background</item>
|
||||||
<item name="android:windowBackground">@color/surfaceBg</item>
|
<item name="android:windowBackground">@color/background</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="Toolbar">
|
<style name="Toolbar">
|
||||||
@@ -33,7 +28,7 @@
|
|||||||
<item name="android:layout_marginStart">@dimen/view_default_margin</item>
|
<item name="android:layout_marginStart">@dimen/view_default_margin</item>
|
||||||
<item name="android:layout_marginTop">@dimen/view_default_margin</item>
|
<item name="android:layout_marginTop">@dimen/view_default_margin</item>
|
||||||
<item name="android:layout_marginEnd">@dimen/view_default_margin</item>
|
<item name="android:layout_marginEnd">@dimen/view_default_margin</item>
|
||||||
<item name="cardBackgroundColor">@color/surfaceToolbar</item>
|
<item name="cardBackgroundColor">@color/toolbar</item>
|
||||||
<item name="cardCornerRadius">@dimen/card_corner_high</item>
|
<item name="cardCornerRadius">@dimen/card_corner_high</item>
|
||||||
<item name="cardElevation">@dimen/card_elev_low</item>
|
<item name="cardElevation">@dimen/card_elev_low</item>
|
||||||
</style>
|
</style>
|
||||||
@@ -42,7 +37,7 @@
|
|||||||
<item name="android:layout_width">@dimen/toolbar_icon_size</item>
|
<item name="android:layout_width">@dimen/toolbar_icon_size</item>
|
||||||
<item name="android:layout_height">@dimen/toolbar_icon_size</item>
|
<item name="android:layout_height">@dimen/toolbar_icon_size</item>
|
||||||
<item name="android:background">?actionBarItemBackground</item>
|
<item name="android:background">?actionBarItemBackground</item>
|
||||||
<item name="android:tint">@color/themeLight</item>
|
<item name="android:tint">@color/textMain</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="ToolbarTimer">
|
<style name="ToolbarTimer">
|
||||||
@@ -51,7 +46,7 @@
|
|||||||
<item name="android:layout_gravity">center</item>
|
<item name="android:layout_gravity">center</item>
|
||||||
<item name="android:includeFontPadding">false</item>
|
<item name="android:includeFontPadding">false</item>
|
||||||
<item name="android:text">@string/timer_zero</item>
|
<item name="android:text">@string/timer_zero</item>
|
||||||
<item name="android:textColor">@color/themeAccent</item>
|
<item name="android:textColor">@color/accent</item>
|
||||||
<item name="android:textSize">@dimen/text_size_app_timer</item>
|
<item name="android:textSize">@dimen/text_size_app_timer</item>
|
||||||
<item name="android:textStyle">bold</item>
|
<item name="android:textStyle">bold</item>
|
||||||
</style>
|
</style>
|
||||||
@@ -63,30 +58,30 @@
|
|||||||
<item name="android:background">@color/transparent</item>
|
<item name="android:background">@color/transparent</item>
|
||||||
<item name="android:gravity">center</item>
|
<item name="android:gravity">center</item>
|
||||||
<item name="android:includeFontPadding">false</item>
|
<item name="android:includeFontPadding">false</item>
|
||||||
<item name="android:textColor">@color/themeAccent</item>
|
<item name="android:textColor">@color/accent</item>
|
||||||
<item name="android:textColorHint">@color/themeAccent</item>
|
<item name="android:textColorHint">@color/accent</item>
|
||||||
<item name="android:textSize">@dimen/text_size_large</item>
|
<item name="android:textSize">@dimen/text_size_large</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="FloatingActionButton">
|
<style name="FloatingActionButton">
|
||||||
<item name="android:layout_width">wrap_content</item>
|
<item name="android:layout_width">wrap_content</item>
|
||||||
<item name="android:layout_height">wrap_content</item>
|
<item name="android:layout_height">wrap_content</item>
|
||||||
<item name="android:backgroundTint">@color/themeAccent</item>
|
<item name="android:backgroundTint">@color/accent</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="NormalButton" parent="Widget.Material3.Button.IconButton">
|
<style name="NormalButton" parent="Widget.Material3.Button.IconButton">
|
||||||
<item name="android:layout_width">wrap_content</item>
|
<item name="android:layout_width">wrap_content</item>
|
||||||
<item name="android:layout_height">wrap_content</item>
|
<item name="android:layout_height">wrap_content</item>
|
||||||
<item name="android:backgroundTint">@color/surfaceButton</item>
|
<item name="android:backgroundTint">@color/buttonRegular</item>
|
||||||
<item name="android:ellipsize">end</item>
|
<item name="android:ellipsize">end</item>
|
||||||
<item name="android:minWidth">96dp</item>
|
<item name="android:minWidth">96dp</item>
|
||||||
<item name="android:maxLines">1</item>
|
<item name="android:maxLines">1</item>
|
||||||
<item name="android:textAllCaps">false</item>
|
<item name="android:textAllCaps">false</item>
|
||||||
<item name="android:textColor">@color/themeLight</item>
|
<item name="android:textColor">@color/textMain</item>
|
||||||
<item name="android:textSize">@dimen/text_size_medium</item>
|
<item name="android:textSize">@dimen/text_size_medium</item>
|
||||||
<item name="cornerRadius">@dimen/btn_corner_high</item>
|
<item name="cornerRadius">@dimen/btn_corner_high</item>
|
||||||
<item name="iconTint">@color/themeLight</item>
|
<item name="iconTint">@color/textMain</item>
|
||||||
<item name="rippleColor">@color/themeLight</item>
|
<item name="rippleColor">@color/textMain</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="RadioFreq">
|
<style name="RadioFreq">
|
||||||
@@ -94,7 +89,7 @@
|
|||||||
<item name="android:layout_height">wrap_content</item>
|
<item name="android:layout_height">wrap_content</item>
|
||||||
<item name="android:includeFontPadding">false</item>
|
<item name="android:includeFontPadding">false</item>
|
||||||
<item name="android:text">@string/trans_link_low</item>
|
<item name="android:text">@string/trans_link_low</item>
|
||||||
<item name="android:textColor">@color/themeAccent</item>
|
<item name="android:textColor">@color/accent</item>
|
||||||
<item name="android:textSize">@dimen/text_size_frequency</item>
|
<item name="android:textSize">@dimen/text_size_frequency</item>
|
||||||
<item name="android:textStyle">bold</item>
|
<item name="android:textStyle">bold</item>
|
||||||
</style>
|
</style>
|
||||||
@@ -113,7 +108,7 @@
|
|||||||
<style name="RecyclerItemCard">
|
<style name="RecyclerItemCard">
|
||||||
<item name="android:layout_width">match_parent</item>
|
<item name="android:layout_width">match_parent</item>
|
||||||
<item name="android:layout_height">wrap_content</item>
|
<item name="android:layout_height">wrap_content</item>
|
||||||
<item name="cardBackgroundColor">@color/surfaceCard</item>
|
<item name="cardBackgroundColor">@color/cardRegular</item>
|
||||||
<item name="cardCornerRadius">@dimen/card_corner_low</item>
|
<item name="cardCornerRadius">@dimen/card_corner_low</item>
|
||||||
<item name="cardElevation">@dimen/card_elev_low</item>
|
<item name="cardElevation">@dimen/card_elev_low</item>
|
||||||
</style>
|
</style>
|
||||||
@@ -121,7 +116,7 @@
|
|||||||
<style name="SurfaceCard">
|
<style name="SurfaceCard">
|
||||||
<item name="android:layout_width">match_parent</item>
|
<item name="android:layout_width">match_parent</item>
|
||||||
<item name="android:layout_height">wrap_content</item>
|
<item name="android:layout_height">wrap_content</item>
|
||||||
<item name="cardBackgroundColor">@color/surfaceCard</item>
|
<item name="cardBackgroundColor">@color/cardRegular</item>
|
||||||
<item name="cardCornerRadius">@dimen/card_corner_high</item>
|
<item name="cardCornerRadius">@dimen/card_corner_high</item>
|
||||||
<item name="cardElevation">@dimen/card_elev_low</item>
|
<item name="cardElevation">@dimen/card_elev_low</item>
|
||||||
</style>
|
</style>
|
||||||
@@ -130,7 +125,7 @@
|
|||||||
<item name="android:layout_width">match_parent</item>
|
<item name="android:layout_width">match_parent</item>
|
||||||
<item name="android:layout_height">@dimen/bottom_bar_size</item>
|
<item name="android:layout_height">@dimen/bottom_bar_size</item>
|
||||||
<item name="android:layout_gravity">bottom</item>
|
<item name="android:layout_gravity">bottom</item>
|
||||||
<item name="android:backgroundTint">@color/bottomAppBar</item>
|
<item name="android:backgroundTint">@color/bottomBar</item>
|
||||||
<item name="contentInsetStart">@dimen/bottom_bar_inset</item>
|
<item name="contentInsetStart">@dimen/bottom_bar_inset</item>
|
||||||
<item name="contentInsetEnd">@dimen/bottom_bar_inset</item>
|
<item name="contentInsetEnd">@dimen/bottom_bar_inset</item>
|
||||||
<item name="fabCradleMargin">@dimen/view_default_margin</item>
|
<item name="fabCradleMargin">@dimen/view_default_margin</item>
|
||||||
@@ -139,44 +134,29 @@
|
|||||||
|
|
||||||
<style name="WorldMapText">
|
<style name="WorldMapText">
|
||||||
<item name="android:textSize">@dimen/text_size_medium</item>
|
<item name="android:textSize">@dimen/text_size_medium</item>
|
||||||
<item name="android:textColor">@color/themeLight</item>
|
<item name="android:textColor">@color/textMain</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="WorldMapTitle">
|
<style name="WorldMapTitle">
|
||||||
<item name="android:textSize">@dimen/text_size_medium</item>
|
<item name="android:textSize">@dimen/text_size_medium</item>
|
||||||
<item name="android:textColor">@color/themeLight</item>
|
<item name="android:textColor">@color/textMain</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="SettingsText">
|
<style name="SettingsText">
|
||||||
<item name="android:textSize">@dimen/text_size_medium</item>
|
<item name="android:textSize">@dimen/text_size_medium</item>
|
||||||
<item name="android:textColor">@color/themeLight</item>
|
<item name="android:textColor">@color/textMain</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="SettingsTitle">
|
<style name="SettingsTitle">
|
||||||
<item name="android:includeFontPadding">false</item>
|
<item name="android:includeFontPadding">false</item>
|
||||||
<item name="android:textSize">@dimen/text_size_medium</item>
|
<item name="android:textSize">@dimen/text_size_medium</item>
|
||||||
<item name="android:textColor">@color/themeAccent</item>
|
<item name="android:textColor">@color/accent</item>
|
||||||
</style>
|
|
||||||
|
|
||||||
<style name="DialogButton">
|
|
||||||
<item name="android:layout_width">wrap_content</item>
|
|
||||||
<item name="android:layout_height">wrap_content</item>
|
|
||||||
<item name="android:backgroundTint">@color/surfaceButton</item>
|
|
||||||
<item name="android:ellipsize">end</item>
|
|
||||||
<item name="android:minWidth">96dp</item>
|
|
||||||
<item name="android:maxLines">1</item>
|
|
||||||
<item name="android:textAllCaps">false</item>
|
|
||||||
<item name="android:textColor">@color/themeLight</item>
|
|
||||||
<item name="android:textSize">@dimen/text_size_medium</item>
|
|
||||||
<item name="cornerRadius">@dimen/btn_corner_high</item>
|
|
||||||
<item name="iconTint">@color/themeLight</item>
|
|
||||||
<item name="rippleColor">@color/themeLight</item>
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="DialogText">
|
<style name="DialogText">
|
||||||
<item name="android:layout_width">wrap_content</item>
|
<item name="android:layout_width">wrap_content</item>
|
||||||
<item name="android:layout_height">wrap_content</item>
|
<item name="android:layout_height">wrap_content</item>
|
||||||
<item name="android:textColor">@color/themeLight</item>
|
<item name="android:textColor">@color/textMain</item>
|
||||||
<item name="android:textSize">@dimen/text_size_medium</item>
|
<item name="android:textSize">@dimen/text_size_medium</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|||||||
@@ -25,27 +25,28 @@ import java.nio.channels.SocketChannel
|
|||||||
class DataReporter(reporterDispatcher: CoroutineDispatcher) {
|
class DataReporter(reporterDispatcher: CoroutineDispatcher) {
|
||||||
|
|
||||||
private val reporterScope = CoroutineScope(reporterDispatcher)
|
private val reporterScope = CoroutineScope(reporterDispatcher)
|
||||||
private var frequencySocketChannel: SocketChannel? = null
|
|
||||||
private var rotationSocketChannel: SocketChannel? = null
|
private var rotationSocketChannel: SocketChannel? = null
|
||||||
private var frequencyReporting: Job? = null
|
|
||||||
private var rotationReporting: Job? = null
|
private var rotationReporting: Job? = null
|
||||||
|
|
||||||
fun reportFrequency(server: String, port: Int, frequency: Long) {
|
// private var frequencySocketChannel: SocketChannel? = null
|
||||||
frequencyReporting = reporterScope.launch {
|
// private var frequencyReporting: Job? = null
|
||||||
runCatching {
|
//
|
||||||
if (frequencySocketChannel == null) {
|
// fun reportFrequency(server: String, port: Int, frequency: Long) {
|
||||||
frequencySocketChannel = SocketChannel.open(InetSocketAddress(server, port))
|
// frequencyReporting = reporterScope.launch {
|
||||||
} else {
|
// runCatching {
|
||||||
val buffer = ByteBuffer.wrap("\\set_freq $frequency\n".toByteArray())
|
// if (frequencySocketChannel == null) {
|
||||||
frequencySocketChannel?.write(buffer)
|
// frequencySocketChannel = SocketChannel.open(InetSocketAddress(server, port))
|
||||||
}
|
// } else {
|
||||||
}.onFailure { error ->
|
// val buffer = ByteBuffer.wrap("\\set_freq $frequency\n".toByteArray())
|
||||||
println(error.localizedMessage)
|
// frequencySocketChannel?.write(buffer)
|
||||||
frequencySocketChannel = null
|
// }
|
||||||
frequencyReporting?.cancelAndJoin()
|
// }.onFailure { error ->
|
||||||
}
|
// println(error.localizedMessage)
|
||||||
}
|
// frequencySocketChannel = null
|
||||||
}
|
// frequencyReporting?.cancelAndJoin()
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
fun reportRotation(server: String, port: Int, azimuth: Double, elevation: Double) {
|
fun reportRotation(server: String, port: Int, azimuth: Double, elevation: Double) {
|
||||||
rotationReporting = reporterScope.launch {
|
rotationReporting = reporterScope.launch {
|
||||||
|
|||||||
@@ -0,0 +1,62 @@
|
|||||||
|
package com.rtbishop.look4sat.domain
|
||||||
|
|
||||||
|
import java.net.InetSocketAddress
|
||||||
|
import java.net.Socket
|
||||||
|
import java.security.MessageDigest
|
||||||
|
import java.util.concurrent.TimeUnit
|
||||||
|
import java.util.regex.Pattern
|
||||||
|
|
||||||
|
fun Long.toTimerString(): String {
|
||||||
|
val format = "%02d:%02d:%02d"
|
||||||
|
val hours = TimeUnit.MILLISECONDS.toHours(this)
|
||||||
|
val minutes = TimeUnit.MILLISECONDS.toMinutes(this) % 60
|
||||||
|
val seconds = TimeUnit.MILLISECONDS.toSeconds(this) % 60
|
||||||
|
return String.format(format, hours, minutes, seconds)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun Double.round(decimals: Int): Double {
|
||||||
|
var multiplier = 1.0
|
||||||
|
repeat(decimals) { multiplier *= 10 }
|
||||||
|
return kotlin.math.round(this * multiplier) / multiplier
|
||||||
|
}
|
||||||
|
|
||||||
|
fun String.getHash(type: String = "SHA-256"): String {
|
||||||
|
val hexChars = "0123456789ABCDEF"
|
||||||
|
val bytes = MessageDigest.getInstance(type).digest(this.toByteArray())
|
||||||
|
val result = StringBuilder(bytes.size * 2)
|
||||||
|
bytes.forEach {
|
||||||
|
val i = it.toInt()
|
||||||
|
result.append(hexChars[i shr 4 and 0x0f])
|
||||||
|
result.append(hexChars[i and 0x0f])
|
||||||
|
}
|
||||||
|
return result.toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun String.isValidEmail(): Boolean {
|
||||||
|
val expression = "^[\\w.-]+@([\\w\\-]+\\.)+[A-Z]{2,8}$"
|
||||||
|
val pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE)
|
||||||
|
return pattern.matcher(this).matches()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun String.isValidIPv4(): Boolean {
|
||||||
|
val ip4 = "^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\.(?!\$)|\$)){4}\$"
|
||||||
|
return this.matches(ip4.toRegex())
|
||||||
|
}
|
||||||
|
|
||||||
|
fun String.isValidPort(): Boolean {
|
||||||
|
return this.isNotEmpty() && this.toInt() in 1024..65535
|
||||||
|
}
|
||||||
|
|
||||||
|
fun ping(hostname: String, port: Int): Int {
|
||||||
|
val start = System.currentTimeMillis()
|
||||||
|
val socket = Socket()
|
||||||
|
try {
|
||||||
|
socket.connect(InetSocketAddress(hostname, port), 5000)
|
||||||
|
socket.close()
|
||||||
|
} catch (exception: Exception) {
|
||||||
|
exception.printStackTrace()
|
||||||
|
println("Failed to ping: $hostname")
|
||||||
|
return Int.MAX_VALUE
|
||||||
|
}
|
||||||
|
return (System.currentTimeMillis() - start).toInt()
|
||||||
|
}
|
||||||
@@ -18,7 +18,6 @@
|
|||||||
package com.rtbishop.look4sat.domain
|
package com.rtbishop.look4sat.domain
|
||||||
|
|
||||||
import com.rtbishop.look4sat.domain.predict.GeoPos
|
import com.rtbishop.look4sat.domain.predict.GeoPos
|
||||||
import kotlin.math.round
|
|
||||||
|
|
||||||
object QthConverter {
|
object QthConverter {
|
||||||
|
|
||||||
@@ -59,10 +58,4 @@ object QthConverter {
|
|||||||
fun isValidLocator(locator: String): Boolean {
|
fun isValidLocator(locator: String): Boolean {
|
||||||
return locator.matches("[a-xA-X][a-xA-X][0-9][0-9][a-xA-X][a-xA-X]".toRegex())
|
return locator.matches("[a-xA-X][a-xA-X][0-9][0-9][a-xA-X][a-xA-X]".toRegex())
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Double.round(decimals: Int): Double {
|
|
||||||
var multiplier = 1.0
|
|
||||||
repeat(decimals) { multiplier *= 10 }
|
|
||||||
return round(this * multiplier) / multiplier
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user