diff --git a/app/build.gradle b/app/build.gradle index 9dc7de2c..aeb209a3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,8 +15,8 @@ android { applicationId "com.rtbishop.look4sat" minSdk 21 targetSdk 33 - versionCode 312 - versionName '3.1.2' + versionCode 313 + versionName '3.1.3' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" @@ -76,6 +76,7 @@ dependencies { implementation "com.google.android.material:material:$material_version" implementation "com.google.dagger:hilt-android:$hilt_version" kapt "com.google.dagger:hilt-compiler:$hilt_version" + implementation "com.squareup.okhttp3:okhttp:$okhttp_version" implementation "org.osmdroid:osmdroid-android:$osmdroid_version" // implementation "androidx.compose.ui:ui:$compose_version" diff --git a/app/src/main/java/com/rtbishop/look4sat/framework/data/RemoteDataSource.kt b/app/src/main/java/com/rtbishop/look4sat/framework/data/RemoteDataSource.kt index 100293e3..9c3c00c0 100644 --- a/app/src/main/java/com/rtbishop/look4sat/framework/data/RemoteDataSource.kt +++ b/app/src/main/java/com/rtbishop/look4sat/framework/data/RemoteDataSource.kt @@ -20,13 +20,20 @@ package com.rtbishop.look4sat.framework.data import com.rtbishop.look4sat.domain.data.IRemoteDataSource import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.withContext +import okhttp3.OkHttpClient +import okhttp3.Request import java.io.InputStream -import java.net.URL -class RemoteDataSource(private val ioDispatcher: CoroutineDispatcher) : IRemoteDataSource { +class RemoteDataSource( + private val httpClient: OkHttpClient, private val ioDispatcher: CoroutineDispatcher +) : IRemoteDataSource { - @Suppress("BlockingMethodInNonBlockingContext") override suspend fun getDataStream(url: String): InputStream? = withContext(ioDispatcher) { - URL(url).openStream() + try { + val request = Request.Builder().url(url).build() + httpClient.newCall(request).execute().body?.byteStream() + } catch (exception: Exception) { + null + } } } diff --git a/app/src/main/java/com/rtbishop/look4sat/injection/BaseModule.kt b/app/src/main/java/com/rtbishop/look4sat/injection/BaseModule.kt index a19cb8ea..ba58794b 100644 --- a/app/src/main/java/com/rtbishop/look4sat/injection/BaseModule.kt +++ b/app/src/main/java/com/rtbishop/look4sat/injection/BaseModule.kt @@ -40,6 +40,7 @@ import dagger.hilt.components.SingletonComponent import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob +import okhttp3.OkHttpClient import javax.inject.Singleton @Module @@ -58,7 +59,7 @@ object BaseModule { val fileSource = FileDataSource(context.contentResolver, Dispatchers.IO) val entries = LocalEntrySource(db.entriesDao()) val radios = LocalRadioSource(db.radiosDao()) - val remoteSource = RemoteDataSource(Dispatchers.IO) + val remoteSource = RemoteDataSource(OkHttpClient.Builder().build(), Dispatchers.IO) val scope = CoroutineScope(SupervisorJob() + Dispatchers.Default) return DataRepository(parser, fileSource, entries, radios, remoteSource, scope, settings) } diff --git a/base/src/main/java/com/rtbishop/look4sat/domain/ISettingsManager.kt b/base/src/main/java/com/rtbishop/look4sat/domain/ISettingsManager.kt index 6c35bf5a..f271624c 100644 --- a/base/src/main/java/com/rtbishop/look4sat/domain/ISettingsManager.kt +++ b/base/src/main/java/com/rtbishop/look4sat/domain/ISettingsManager.kt @@ -23,32 +23,32 @@ interface ISettingsManager { val sourcesMap: Map get() = mapOf( - "All" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=active&FORMAT=csv", + "All" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=active&FORMAT=csv", "Amsat" to "https://amsat.org/tle/current/nasabare.txt", - "Amateur" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=amateur&FORMAT=csv", - "Classified" to "https://www.prismnet.com/~mmccants/tles/classfd.zip", - "Cubesat" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=cubesat&FORMAT=csv", - "Education" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=education&FORMAT=csv", - "Engineer" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=engineering&FORMAT=csv", - "Geostationary" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=geo&FORMAT=csv", - "Globalstar" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=globalstar&FORMAT=csv", - "GNSS" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=gnss&FORMAT=csv", - "Intelsat" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=intelsat&FORMAT=csv", - "Iridium" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=iridium-NEXT&FORMAT=csv", + "Amateur" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=amateur&FORMAT=csv", + "Classified" to "https://www.mmccants.org/~mmccants/tles/classfd.zip", + "Cubesat" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=cubesat&FORMAT=csv", + "Education" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=education&FORMAT=csv", + "Engineer" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=engineering&FORMAT=csv", + "Geostationary" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=geo&FORMAT=csv", + "Globalstar" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=globalstar&FORMAT=csv", + "GNSS" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=gnss&FORMAT=csv", + "Intelsat" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=intelsat&FORMAT=csv", + "Iridium" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=iridium-NEXT&FORMAT=csv", "McCants" to "https://www.mmccants.org/tles/inttles.zip", - "Military" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=military&FORMAT=csv", - "New" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=last-30-days&FORMAT=csv", - "OneWeb" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=oneweb&FORMAT=csv", - "Orbcomm" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=orbcomm&FORMAT=csv", + "Military" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=military&FORMAT=csv", + "New" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=last-30-days&FORMAT=csv", + "OneWeb" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=oneweb&FORMAT=csv", + "Orbcomm" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=orbcomm&FORMAT=csv", "R4UAB" to "https://r4uab.ru/satonline.txt", - "Resource" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=resource&FORMAT=csv", - "SatNOGS" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=satnogs&FORMAT=csv", - "Science" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=science&FORMAT=csv", - "Spire" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=spire&FORMAT=csv", - "Starlink" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=starlink&FORMAT=csv", - "Swarm" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=swarm&FORMAT=csv", - "Weather" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=weather&FORMAT=csv", - "X-Comm" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=x-comm&FORMAT=csv" + "Resource" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=resource&FORMAT=csv", + "SatNOGS" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=satnogs&FORMAT=csv", + "Science" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=science&FORMAT=csv", + "Spire" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=spire&FORMAT=csv", + "Starlink" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=starlink&FORMAT=csv", + "Swarm" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=swarm&FORMAT=csv", + "Weather" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=weather&FORMAT=csv", + "X-Comm" to "https://celestrak.org/NORAD/elements/gp.php?GROUP=x-comm&FORMAT=csv" ) fun loadStationLocator(): String diff --git a/build.gradle b/build.gradle index 2fca7839..15272cae 100644 --- a/build.gradle +++ b/build.gradle @@ -12,6 +12,7 @@ buildscript { work_version = '2.7.1' room_version = '2.5.0' material_version = '1.6.1' + okhttp_version = '4.10.0' osmdroid_version = '6.1.14' json_version = '20220924' compose_version = '1.3.3' diff --git a/fastlane/metadata/android/en-US/changelogs/313.txt b/fastlane/metadata/android/en-US/changelogs/313.txt new file mode 100644 index 00000000..77810732 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/313.txt @@ -0,0 +1 @@ +Fixed the satellite data update bug #108 \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/whatsnew/whatsnew-en-US b/fastlane/metadata/android/en-US/whatsnew/whatsnew-en-US index ff4e149c..77810732 100644 --- a/fastlane/metadata/android/en-US/whatsnew/whatsnew-en-US +++ b/fastlane/metadata/android/en-US/whatsnew/whatsnew-en-US @@ -1,5 +1 @@ -Switched to targeting Android 13, API v33 -Added automatic TLE update functionality -Added recent TLE update time information -Added passes recalculation on TLE update -Enabled APK build minification with R8 \ No newline at end of file +Fixed the satellite data update bug #108 \ No newline at end of file