diff --git a/MyTracks/.classpath b/MyTracks/.classpath
index adbe8087e..72de4ae42 100644
--- a/MyTracks/.classpath
+++ b/MyTracks/.classpath
@@ -8,7 +8,7 @@
-
+
diff --git a/MyTracks/AndroidManifest.xml b/MyTracks/AndroidManifest.xml
index 7e1f3c6f5..e618828c3 100755
--- a/MyTracks/AndroidManifest.xml
+++ b/MyTracks/AndroidManifest.xml
@@ -164,14 +164,15 @@ limitations under the License.
-
-
+
+
+
diff --git a/MyTracks/default.properties b/MyTracks/default.properties
index 019a98ced..061e30159 100644
--- a/MyTracks/default.properties
+++ b/MyTracks/default.properties
@@ -10,7 +10,7 @@
# Indicates whether an apk should be generated for each density.
split.density=false
# Project target.
-target=Google Inc.:Google APIs:9
+target=Google Inc.:Google APIs:11
android.library.reference.1=../MyTracksLib/
# ProGuard is turned off while we investigate the removal of code that
diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/CupcakePlatformAdapter.java b/MyTracks/src/com/google/android/apps/mytracks/util/CupcakePlatformAdapter.java
index 354f0a307..c7704959e 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/util/CupcakePlatformAdapter.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/util/CupcakePlatformAdapter.java
@@ -15,11 +15,16 @@
*/
package com.google.android.apps.mytracks.util;
+import static com.google.android.apps.mytracks.MyTracksConstants.TAG;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.Service;
import android.content.SharedPreferences.Editor;
import android.os.HandlerThread;
+import android.util.Log;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
/**
* The Cupcake (API level 3) specific implementation of the
@@ -33,19 +38,38 @@ public class CupcakePlatformAdapter implements ApiPlatformAdapter {
public void startForeground(Service service,
NotificationManager notificationManager, int id,
Notification notification) {
- service.setForeground(true);
+ setServiceForeground(service, true);
+
notificationManager.notify(id, notification);
}
@Override
public void stopForeground(Service service,
NotificationManager notificationManager, int id) {
- service.setForeground(false);
+ setServiceForeground(service, false);
if (id != -1) {
notificationManager.cancel(id);
}
}
+ private void setServiceForeground(Service service, boolean foreground) {
+ // setForeground has been completely removed in API level 11, so we use reflection.
+ try {
+ Method setForegroundMethod = Service.class.getMethod("setForeground", boolean.class);
+ setForegroundMethod.invoke(service, foreground);
+ } catch (SecurityException e) {
+ Log.e(TAG, "Unable to set service foreground state", e);
+ } catch (NoSuchMethodException e) {
+ Log.e(TAG, "Unable to set service foreground state", e);
+ } catch (IllegalArgumentException e) {
+ Log.e(TAG, "Unable to set service foreground state", e);
+ } catch (IllegalAccessException e) {
+ Log.e(TAG, "Unable to set service foreground state", e);
+ } catch (InvocationTargetException e) {
+ Log.e(TAG, "Unable to set service foreground state", e);
+ }
+ }
+
@Override
public boolean stopHandlerThread(HandlerThread handlerThread) {
// Do nothing, as Cupcake doesn't provide quit().
diff --git a/MyTracksLib/default.properties b/MyTracksLib/default.properties
index 1694c805b..2ba8b4cd2 100644
--- a/MyTracksLib/default.properties
+++ b/MyTracksLib/default.properties
@@ -8,5 +8,5 @@
# project structure.
# Project target.
-target=android-9
+target=android-11
android.library=true
diff --git a/MyTracksTest/.factorypath b/MyTracksTest/.factorypath
index 37f943be0..26bc0bdc0 100644
--- a/MyTracksTest/.factorypath
+++ b/MyTracksTest/.factorypath
@@ -1,6 +1,6 @@
-
-
+
+
diff --git a/MyTracksTest/default.properties b/MyTracksTest/default.properties
index 85cbfc4dd..533ddb5df 100644
--- a/MyTracksTest/default.properties
+++ b/MyTracksTest/default.properties
@@ -10,4 +10,4 @@
# Indicates whether an apk should be generated for each density.
split.density=false
# Project target.
-target=Google Inc.:Google APIs:9
+target=Google Inc.:Google APIs:11
diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/io/backup/PreferenceBackupHelperTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/io/backup/PreferenceBackupHelperTest.java
index e2c8b3b48..22561507c 100644
--- a/MyTracksTest/src/com/google/android/apps/mytracks/io/backup/PreferenceBackupHelperTest.java
+++ b/MyTracksTest/src/com/google/android/apps/mytracks/io/backup/PreferenceBackupHelperTest.java
@@ -20,6 +20,7 @@ import android.content.SharedPreferences.Editor;
import java.util.HashMap;
import java.util.Map;
+import java.util.Set;
import junit.framework.TestCase;
@@ -81,6 +82,11 @@ public class PreferenceBackupHelperTest extends TestCase {
return put(key, value);
}
+ @Override
+ public Editor putStringSet(String key, Set value) {
+ return put(key, value);
+ }
+
private Editor put(String key, T value) {
newPreferences.put(key, value);
return this;
@@ -137,6 +143,11 @@ public class PreferenceBackupHelperTest extends TestCase {
return get(key, defValue);
}
+ @Override
+ public Set getStringSet(String key, Set defValue) {
+ return get(key, defValue);
+ }
+
@Override
public void registerOnSharedPreferenceChangeListener(
OnSharedPreferenceChangeListener listener) {
diff --git a/SignalStrengthSampler/default.properties b/SignalStrengthSampler/default.properties
index 903536e41..4db050713 100644
--- a/SignalStrengthSampler/default.properties
+++ b/SignalStrengthSampler/default.properties
@@ -8,6 +8,6 @@
# project structure.
# Project target.
-target=Google Inc.:Google APIs:9
+target=Google Inc.:Google APIs:11
proguard.config=proguard.cfg
android.library.reference.1=../MyTracksLib/
diff --git a/SignalStrengthSamplerTest/default.properties b/SignalStrengthSamplerTest/default.properties
index 77f7ad75b..728f51f97 100644
--- a/SignalStrengthSamplerTest/default.properties
+++ b/SignalStrengthSamplerTest/default.properties
@@ -8,4 +8,4 @@
# project structure.
# Project target.
-target=Google Inc.:Google APIs:9
+target=Google Inc.:Google APIs:11