Add methods to TrackRecordingService to start and stop GPS.

No longer unregister location listener before registering it.
This commit is contained in:
Jimmy Shih
2013-05-20 14:04:10 -07:00
parent 5329ccd37f
commit 1a68435eb4
3 changed files with 121 additions and 64 deletions
@@ -2,7 +2,7 @@
package com.google.android.apps.mytracks.services;
import android.app.Notification;
import android.app.PendingIntent;
import android.app.Service;
import android.test.ServiceTestCase;
import android.util.Log;
@@ -11,15 +11,16 @@ import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/**
* A {@link TrackRecordingService} that can be used with {@link ServiceTestCase}.
* {@link ServiceTestCase} throws a null pointer exception when the service
* calls {@link Service#startForeground(int, android.app.Notification)} and
* A {@link TrackRecordingService} that can be used with
* {@link ServiceTestCase}. {@link ServiceTestCase} throws a null pointer
* exception when the service calls
* {@link Service#startForeground(int, android.app.Notification)} and
* {@link Service#stopForeground(boolean)}.
* <p>
* See http://code.google.com/p/android/issues/detail?id=12122
* <p>
* Wrap these two methods in wrappers and override them.
*
*
* @author Jimmy Shih
*/
public class TestRecordingService extends TrackRecordingService {
@@ -27,7 +28,7 @@ public class TestRecordingService extends TrackRecordingService {
private static final String TAG = TestRecordingService.class.getSimpleName();
@Override
protected void startForegroundService(Notification notification) {
protected void startForegroundService(PendingIntent pendingIntent, int messageId) {
try {
Method setForegroundMethod = Service.class.getMethod("setForeground", boolean.class);
setForegroundMethod.invoke(this, true);