From 9d1af6585b49e8a8f2cd9617c20b38b82173bec9 Mon Sep 17 00:00:00 2001 From: Keith Irwin Date: Tue, 25 Apr 2017 01:09:43 -0400 Subject: [PATCH] Stop service if not logged in or no permissions --- app/src/main/AndroidManifest.xml | 1 + .../keithirwin/tracman/LocationService.java | 6 ++-- .../keithirwin/tracman/SettingsActivity.java | 28 +++++++++++-------- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 254cd9d..33d8210 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -28,6 +28,7 @@ android:name=".SettingsActivity" android:label="@string/settings_name" android:parentActivityName=".LoginActivity"> + diff --git a/app/src/main/java/us/keithirwin/tracman/LocationService.java b/app/src/main/java/us/keithirwin/tracman/LocationService.java index 8042219..df8f8b1 100644 --- a/app/src/main/java/us/keithirwin/tracman/LocationService.java +++ b/app/src/main/java/us/keithirwin/tracman/LocationService.java @@ -199,7 +199,9 @@ public class LocationService extends Service implements GoogleApiClient.Connecti // Get permission if (!checkLocationPermission(this)) { Log.d(TAG, "Location permission denied"); - //TODO: Turn off location updates +// stopSelf(); + + //TODO: Ask the user to try again } else { Log.d(TAG, "Location permission granted"); @@ -283,7 +285,7 @@ public class LocationService extends Service implements GoogleApiClient.Connecti } else { Log.v(TAG, "Can't set location because user isn't logged in."); - //TODO: So stop the damn service! + stopSelf(); } } diff --git a/app/src/main/java/us/keithirwin/tracman/SettingsActivity.java b/app/src/main/java/us/keithirwin/tracman/SettingsActivity.java index 2349005..afbaa2f 100644 --- a/app/src/main/java/us/keithirwin/tracman/SettingsActivity.java +++ b/app/src/main/java/us/keithirwin/tracman/SettingsActivity.java @@ -205,18 +205,17 @@ public class SettingsActivity extends AppCompatPreferenceActivity { loadHeadersFromResource(R.xml.pref_headers, target); } - @Override - public void onBackPressed() { - Log.v(TAG, "onBackPressed() called"); + public void signOut() { + Log.v(TAG, "signOut() called"); - // Get sharedPrefs - SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); - SharedPreferences.Editor editor = sharedPref.edit(); + // Get sharedPrefs + SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + SharedPreferences.Editor editor = sharedPref.edit(); - // Stop LocationService + // Stop LocationService Log.v(TAG, "Stopping location service..."); - stopService(new Intent(SettingsActivity.this, LocationService.class)); - editor.putBoolean("gps_switch",false); + stopService(new Intent(SettingsActivity.this, LocationService.class)); + editor.putBoolean("gps_switch",false); // Remove saved loggedInUser Log.v(TAG, "Removing saved user..."); @@ -228,11 +227,14 @@ public class SettingsActivity extends AppCompatPreferenceActivity { // Return to LoginActivity and don't sign back in again setResult(SIGN_OUT, new Intent()); + } - // Finish the job -// finish(); + @Override + public void onBackPressed() { + if (true) { + signOut(); + } super.onBackPressed(); - } @Override @@ -275,6 +277,8 @@ public class SettingsActivity extends AppCompatPreferenceActivity { bindPreferenceSummaryToValue(findPreference("broadcast_priority")); } + + } /**