From 76ed9a92b1469e00be1ba5d98572b3b4abdd6d53 Mon Sep 17 00:00:00 2001 From: Jimmy Shih Date: Tue, 19 Jun 2012 15:43:12 -0700 Subject: [PATCH] Add isGeoCoderPresent in the ApiAdapter.java. --- .../google/android/apps/mytracks/util/Api7Adapter.java | 7 ++++++- .../google/android/apps/mytracks/util/Api9Adapter.java | 10 ++++++++-- .../google/android/apps/mytracks/util/ApiAdapter.java | 7 +++++++ .../android/apps/mytracks/util/TrackNameUtils.java | 2 +- 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/Api7Adapter.java b/MyTracks/src/com/google/android/apps/mytracks/util/Api7Adapter.java index 13b9963ee..a5f34293f 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/Api7Adapter.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/Api7Adapter.java @@ -85,7 +85,12 @@ public class Api7Adapter implements ApiAdapter { public HttpTransport getHttpTransport() { return new ApacheHttpTransport(); } - + + @Override + public boolean isGeoCoderPresent() { + return true; + } + @Override public BluetoothSocket getBluetoothSocket(BluetoothDevice bluetoothDevice) throws IOException { try { diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/Api9Adapter.java b/MyTracks/src/com/google/android/apps/mytracks/util/Api9Adapter.java index 98d5a9bfa..d7304b92c 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/Api9Adapter.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/Api9Adapter.java @@ -21,6 +21,7 @@ import com.google.api.client.http.javanet.NetHttpTransport; import android.annotation.TargetApi; import android.content.SharedPreferences.Editor; +import android.location.Geocoder; import android.os.StrictMode; import android.util.Log; @@ -53,14 +54,19 @@ public class Api9Adapter extends Api8Adapter { .penaltyLog() .build()); } - + @Override public byte[] copyByteArray(byte[] input, int start, int end) { return Arrays.copyOfRange(input, start, end); } - + @Override public HttpTransport getHttpTransport() { return new NetHttpTransport(); } + + @Override + public boolean isGeoCoderPresent() { + return Geocoder.isPresent(); + } } diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/ApiAdapter.java b/MyTracks/src/com/google/android/apps/mytracks/util/ApiAdapter.java index 7eb717401..fffd000e8 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/ApiAdapter.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/ApiAdapter.java @@ -96,6 +96,13 @@ public interface ApiAdapter { */ public HttpTransport getHttpTransport(); + /** + * Returns true if GeoCoder is present. + *

+ * Due to changes in API level 9. + */ + public boolean isGeoCoderPresent(); + /** * Gets a {@link BluetoothSocket}. *

diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/TrackNameUtils.java b/MyTracks/src/com/google/android/apps/mytracks/util/TrackNameUtils.java index 0dd4ec238..15a818cfd 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/TrackNameUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/TrackNameUtils.java @@ -95,7 +95,7 @@ public class TrackNameUtils { * @param location the location */ private static String getReverseGeoCoding(Context context, Location location) { - if (location == null || !Geocoder.isPresent()) { + if (location == null || !ApiAdapterFactory.getApiAdapter().isGeoCoderPresent()) { return null; } Geocoder geocoder = new Geocoder(context);