From 8497d2efba753f630f3259a665e56d524486ffd5 Mon Sep 17 00:00:00 2001 From: Rodrigo Damazio Date: Fri, 25 Feb 2011 00:45:07 -0300 Subject: [PATCH] Making My Tracks honeycomb-compatible. --- MyTracks/.classpath | 2 +- MyTracks/AndroidManifest.xml | 5 ++-- MyTracks/default.properties | 2 +- .../mytracks/util/CupcakePlatformAdapter.java | 28 +++++++++++++++++-- MyTracksLib/default.properties | 2 +- MyTracksTest/.factorypath | 4 +-- MyTracksTest/default.properties | 2 +- .../io/backup/PreferenceBackupHelperTest.java | 11 ++++++++ SignalStrengthSampler/default.properties | 2 +- SignalStrengthSamplerTest/default.properties | 2 +- 10 files changed, 48 insertions(+), 12 deletions(-) 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