diff --git a/MyTracksLib/res/values/third_party.xml b/MyTracksLib/res/values/third_party.xml index cb9c1b23c..e85f8ff1b 100644 --- a/MyTracksLib/res/values/third_party.xml +++ b/MyTracksLib/res/values/third_party.xml @@ -27,4 +27,9 @@ limitations under the License. com.google.android.apps.mytracks.TRACK_RESUMED com.google.android.apps.mytracks.TRACK_STOPPED com.google.android.apps.mytracks.TRACK_ID + + + com.google.android.apps.mytracks.services.TrackRecordingService + com.google.android.maps.mytracks + diff --git a/SignalStrengthSampler/src/com/google/android/apps/mytracks/signalstrength/RecordingStateReceiver.java b/SignalStrengthSampler/src/com/google/android/apps/mytracks/signalstrength/RecordingStateReceiver.java index 8ac6351f1..b114c8ba7 100644 --- a/SignalStrengthSampler/src/com/google/android/apps/mytracks/signalstrength/RecordingStateReceiver.java +++ b/SignalStrengthSampler/src/com/google/android/apps/mytracks/signalstrength/RecordingStateReceiver.java @@ -40,9 +40,11 @@ public class RecordingStateReceiver extends BroadcastReceiver { } String action = intent.getAction(); - if (START_TRACK_ACTION.equals(action) || RESUME_TRACK_ACTION.equals(action)) { + if (ctx.getString(R.string.track_started_broadcast_action).equals(action) || + ctx.getString(R.string.track_resumed_broadcast_action).equals(action)) { startService(ctx); - } else if (STOP_TRACK_ACTION.equals(action) || PAUSE_TRACK_ACTION.equals(action)) { + } else if (ctx.getString(R.string.track_stopped_broadcast_action).equals(action) || + ctx.getString(R.string.track_paused_broadcast_action).equals(action)) { stopService(ctx); } else { Log.e(TAG, "Unknown action received: " + action); diff --git a/SignalStrengthSampler/src/com/google/android/apps/mytracks/signalstrength/SignalStrengthConstants.java b/SignalStrengthSampler/src/com/google/android/apps/mytracks/signalstrength/SignalStrengthConstants.java index f4bd6a7ff..f65918451 100644 --- a/SignalStrengthSampler/src/com/google/android/apps/mytracks/signalstrength/SignalStrengthConstants.java +++ b/SignalStrengthSampler/src/com/google/android/apps/mytracks/signalstrength/SignalStrengthConstants.java @@ -15,7 +15,6 @@ */ package com.google.android.apps.mytracks.signalstrength; -import android.content.ComponentName; import android.os.Build; /** @@ -24,24 +23,6 @@ import android.os.Build; * @author Rodrigo Damazio */ public class SignalStrengthConstants { - // TODO: Many of these could be moved into a common library for third-party apps - public static final String START_TRACK_ACTION = - "com.google.android.apps.mytracks.TRACK_STARTED"; - public static final String PAUSE_TRACK_ACTION = - "com.google.android.apps.mytracks.TRACK_PAUSED"; - public static final String RESUME_TRACK_ACTION = - "com.google.android.apps.mytracks.TRACK_RESUMED"; - public static final String STOP_TRACK_ACTION = - "com.google.android.apps.mytracks.TRACK_STOPPED"; - public static final String TRACK_ID_EXTRA = - "com.google.android.apps.mytracks.TRACK_ID"; - public static final String MYTRACKS_SERVICE = - "com.google.android.apps.mytracks.services.TrackRecordingService"; - public static final String MYTRACKS_SERVICE_PACKAGE = - "com.google.android.maps.mytracks"; - public static final ComponentName MYTRACKS_SERVICE_COMPONENT = - new ComponentName(MYTRACKS_SERVICE_PACKAGE, MYTRACKS_SERVICE); - public static final String START_SAMPLING = "com.google.android.apps.mytracks.signalstrength.START"; public static final String STOP_SAMPLING = diff --git a/SignalStrengthSampler/src/com/google/android/apps/mytracks/signalstrength/SignalStrengthService.java b/SignalStrengthSampler/src/com/google/android/apps/mytracks/signalstrength/SignalStrengthService.java index 1be7182aa..96658b935 100644 --- a/SignalStrengthSampler/src/com/google/android/apps/mytracks/signalstrength/SignalStrengthService.java +++ b/SignalStrengthSampler/src/com/google/android/apps/mytracks/signalstrength/SignalStrengthService.java @@ -46,11 +46,26 @@ import java.util.List; public class SignalStrengthService extends Service implements ServiceConnection, SignalStrengthCallback, OnSharedPreferenceChangeListener { + private ComponentName mytracksServiceComponent; + private SharedPreferences preferences; + private SignalStrengthListenerFactory signalListenerFactory; private SignalStrengthListener signalListener; private ITrackRecordingService mytracksService; private long lastSamplingTime; private long samplingPeriod; + @Override + public void onCreate() { + super.onCreate(); + + mytracksServiceComponent = + new ComponentName( + getString(R.string.mytracks_service_package), + getString(R.string.mytracks_service_class)); + preferences = PreferenceManager.getDefaultSharedPreferences(this); + signalListenerFactory = new SignalStrengthListenerFactory(); + } + @Override public void onStart(Intent intent, int startId) { handleCommand(intent, startId); @@ -81,7 +96,7 @@ public class SignalStrengthService extends Service Log.d(TAG, "Starting sampling"); Intent intent = new Intent(); - intent.setComponent(MYTRACKS_SERVICE_COMPONENT); + intent.setComponent(mytracksServiceComponent); if (!bindService(intent, SignalStrengthService.this, 0)) { Log.e(TAG, "Couldn't bind to service."); return; @@ -93,7 +108,7 @@ public class SignalStrengthService extends Service List services = activityManager.getRunningServices(Integer.MAX_VALUE); for (RunningServiceInfo serviceInfo : services) { if (serviceInfo.pid != 0 && - serviceInfo.service.equals(MYTRACKS_SERVICE_COMPONENT)) { + serviceInfo.service.equals(mytracksServiceComponent)) { return true; } } @@ -120,13 +135,10 @@ public class SignalStrengthService extends Service } // We're ready to send waypoints, so register for signal sampling - SignalStrengthListenerFactory factory = new SignalStrengthListenerFactory(); - signalListener = factory.create(this, this); + signalListener = signalListenerFactory.create(this, this); signalListener.register(); // Register for preference changes - SharedPreferences preferences = - PreferenceManager.getDefaultSharedPreferences(this); samplingPeriod = Long.parseLong(preferences.getString( getString(R.string.settings_min_signal_sampling_period_key), "-1")); preferences.registerOnSharedPreferenceChangeListener(this); @@ -177,8 +189,6 @@ public class SignalStrengthService extends Service synchronized (this) { // Unregister from preference change updates - SharedPreferences preferences = - PreferenceManager.getDefaultSharedPreferences(this); preferences.unregisterOnSharedPreferenceChangeListener(this); // Unregister from receiving signal updates @@ -219,6 +229,14 @@ public class SignalStrengthService extends Service super.onDestroy(); } + @Override + public void onSharedPreferenceChanged( + SharedPreferences sharedPreferences, String key) { + if (getString(R.string.settings_min_signal_sampling_period_key).equals(key)) { + samplingPeriod = Long.parseLong(sharedPreferences.getString(key, "-1")); + } + } + @Override public IBinder onBind(Intent intent) { return null; @@ -237,12 +255,4 @@ public class SignalStrengthService extends Service intent.setAction(STOP_SAMPLING); context.startService(intent); } - - @Override - public void onSharedPreferenceChanged( - SharedPreferences sharedPreferences, String key) { - if (getString(R.string.settings_min_signal_sampling_period_key).equals(key)) { - samplingPeriod = Long.parseLong(sharedPreferences.getString(key, "-1")); - } - } }