From e4151ac2285b24ec7eaeb002f333991f7de8b850 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Wed, 12 Aug 2015 19:28:47 +1200 Subject: [PATCH] Disable settings when running --- .../org/traccar/client/TraccarActivity.java | 26 ++++++++++--------- app/src/main/res/xml-v14/preferences.xml | 18 ++++++------- app/src/main/res/xml/preferences.xml | 14 +++++----- 3 files changed, 30 insertions(+), 28 deletions(-) diff --git a/app/src/main/java/org/traccar/client/TraccarActivity.java b/app/src/main/java/org/traccar/client/TraccarActivity.java index 60d5ac4..73c6f8c 100644 --- a/app/src/main/java/org/traccar/client/TraccarActivity.java +++ b/app/src/main/java/org/traccar/client/TraccarActivity.java @@ -24,6 +24,7 @@ import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.os.Bundle; import android.preference.PreferenceActivity; import android.preference.PreferenceManager; +import android.preference.PreferenceScreen; import android.telephony.TelephonyManager; import android.view.Menu; import android.view.MenuInflater; @@ -69,14 +70,26 @@ public class TraccarActivity extends PreferenceActivity { super.onPause(); } + private void setPreferencesEnabled(boolean enabled) { + PreferenceScreen preferenceScreen = getPreferenceScreen(); + preferenceScreen.findPreference(KEY_ID).setEnabled(enabled); + preferenceScreen.findPreference(KEY_ADDRESS).setEnabled(enabled); + preferenceScreen.findPreference(KEY_PORT).setEnabled(enabled); + preferenceScreen.findPreference(KEY_INTERVAL).setEnabled(enabled); + preferenceScreen.findPreference(KEY_PROVIDER).setEnabled(enabled); + preferenceScreen.findPreference(KEY_EXTENDED).setEnabled(enabled); + } + OnSharedPreferenceChangeListener preferenceChangeListener = new OnSharedPreferenceChangeListener() { @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if (key.equals(KEY_STATUS)) { if (sharedPreferences.getBoolean(KEY_STATUS, false)) { + setPreferencesEnabled(false); startService(new Intent(TraccarActivity.this, TraccarService.class)); } else { stopService(new Intent(TraccarActivity.this, TraccarService.class)); + setPreferencesEnabled(true); } } else if (key.equals(KEY_ID)) { findPreference(KEY_ID).setSummary(sharedPreferences.getString(KEY_ID, null)); @@ -86,8 +99,7 @@ public class TraccarActivity extends PreferenceActivity { @Override public boolean onCreateOptionsMenu(Menu menu) { - MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.main, menu); + getMenuInflater().inflate(R.menu.main, menu); return super.onCreateOptionsMenu(menu); } @@ -103,16 +115,6 @@ public class TraccarActivity extends PreferenceActivity { return super.onOptionsItemSelected(item); } - private boolean isServiceRunning() { - ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); - for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { - if (TraccarService.class.getName().equals(service.service.getClassName())) { - return true; - } - } - return false; - } - private void initPreferences() { PreferenceManager.setDefaultValues(this, R.xml.preferences, false); diff --git a/app/src/main/res/xml-v14/preferences.xml b/app/src/main/res/xml-v14/preferences.xml index 7b0c27e..5d06058 100644 --- a/app/src/main/res/xml-v14/preferences.xml +++ b/app/src/main/res/xml-v14/preferences.xml @@ -1,6 +1,15 @@ + + @@ -39,13 +48,4 @@ android:summary="@string/settings_extended_summary" android:title="@string/settings_extended_title" /> - - \ No newline at end of file diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 386a04f..8f0513c 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -1,6 +1,13 @@ + + @@ -39,11 +46,4 @@ android:summary="@string/settings_extended_summary" android:title="@string/settings_extended_title" /> - -