diff --git a/app/build.gradle b/app/build.gradle
index bbc38c0d..4a19b1cb 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -54,11 +54,14 @@ dependencies {
// retrofit
implementation "com.squareup.retrofit2:retrofit:$retrofit"
- implementation"com.squareup.retrofit2:converter-gson:$retrofit"
+ implementation "com.squareup.retrofit2:converter-gson:$retrofit"
// predict4java
implementation "com.github.davidmoten:predict4java:$predict4java"
+ // location
+ implementation "com.google.android.gms:play-services-location:$google_play"
+
// testing
testImplementation "junit:junit:$junit"
androidTestImplementation "androidx.test:runner:$runner"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 700bfbde..b43e8818 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,6 +3,9 @@
xmlns:tools="http://schemas.android.com/tools"
package="com.rtbishop.lookingsat">
+
+
+
+ val currentLat = location?.latitude
+ val currentLon = location?.longitude
+ val currentHeight = location?.altitude
+
+ preferences.edit {
+ putString("LATITUDE", currentLat.toString())
+ putString("LONGITUDE", currentLon.toString())
+ putString("HEIGHT", currentHeight.toString())
+ apply()
+ }
+ }
+ }
+
+ private fun checkPermissions() {
+ if (ContextCompat.checkSelfPermission(this, LOCATION_PERM) != GRANTED) {
+ if (ActivityCompat.shouldShowRequestPermissionRationale(this, LOCATION_PERM)) {
+ Toast.makeText(this, "Missing permissions", Toast.LENGTH_LONG).show()
+ } else {
+ ActivityCompat.requestPermissions(this, arrayOf(LOCATION_PERM), LOCATION_REQ)
+ }
+ } else {
+ updateLocation()
+ }
+ }
+
+ override fun onRequestPermissionsResult(
+ requestCode: Int,
+ permissions: Array,
+ grantResults: IntArray
+ ) {
+ when (requestCode) {
+ LOCATION_REQ -> {
+ if (grantResults.isNotEmpty() && grantResults[0] == GRANTED) {
+ updateLocation()
+ }
+ }
+ }
+ }
+
override fun onSupportNavigateUp(): Boolean {
val navController = findNavController(R.id.nav_host)
return navController.navigateUp(appBarConfig) || super.onSupportNavigateUp()
@@ -111,11 +170,8 @@ class MainActivity : AppCompatActivity() {
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
- R.id.fetch_trans -> Toast.makeText(
- this,
- "Fetching transmitters",
- Toast.LENGTH_SHORT
- ).show()
+ R.id.update_location -> checkPermissions()
+ R.id.fetch_trans -> Toast.makeText(this, "Fetch transmit", Toast.LENGTH_SHORT).show()
R.id.save_to_db -> Toast.makeText(this, "Saving to DB", Toast.LENGTH_SHORT).show()
R.id.load_from_db -> Toast.makeText(this, "Loading from DB", Toast.LENGTH_SHORT).show()
R.id.fetch_tle -> Toast.makeText(this, "Fetching TLE", Toast.LENGTH_SHORT).show()
diff --git a/app/src/main/res/menu/main_menu.xml b/app/src/main/res/menu/main_menu.xml
index 5c2675d2..4d61720f 100644
--- a/app/src/main/res/menu/main_menu.xml
+++ b/app/src/main/res/menu/main_menu.xml
@@ -1,22 +1,25 @@
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 504fd211..e31d843e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -22,6 +22,14 @@
64
Ground station height in meters AMSL
+ Update location
+ Fetch Transmitters
+ Save to DB
+ Load from DB
+ Fetch TLE
+ Load TLE
+ Exit
+
Next AOS in %02d:%02d:%02d
Nasa Map
Placeholder
diff --git a/build.gradle b/build.gradle
index 5daa83f7..d61d33a0 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@ buildscript {
repositories {
google()
jcenter()
-
+
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.1'
@@ -41,6 +41,8 @@ ext {
predict4java = '1.3.1'
+ google_play = '17.0.0'
+
junit = "4.12"
runner = '1.1.1'
espresso = '3.2.0'