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 @@ + + android:title="@string/menu_fetch_transmitters" /> + android:title="@string/menu_save_to_db" /> + android:title="@string/menu_load_from_db" /> + android:title="@string/menu_fetch_tle" /> + android:title="@string/menu_load_tle" /> + android:title="@string/menu_exit" /> \ 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'