diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java index 8d17ff472..4cabaad53 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java @@ -311,7 +311,7 @@ public class TrackDetailActivity extends AbstractSendToGoogleActivity voiceFrequencyMenuItem = menu.findItem(R.id.track_detail_voice_frequency); splitFrequencyMenuItem = menu.findItem(R.id.track_detail_split_frequency); feedbackMenuItem = menu.findItem(R.id.track_detail_split_frequency); - feedbackMenuItem.setVisible(GoogleFeedbackUtils.isAvailable(this)); + feedbackMenuItem.setVisible(ApiAdapterFactory.getApiAdapter().isGoogleFeedbackAvailable()); updateMenuItems(trackId == recordingTrackId, recordingTrackPaused); return true; diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java index 18fdb13cf..8b7f43aaf 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java @@ -462,7 +462,7 @@ public class TrackListActivity extends AbstractSendToGoogleActivity deleteAllMenuItem = menu.findItem(R.id.track_list_delete_all); syncNowMenuItem = menu.findItem(R.id.track_list_sync_now); feedbackMenuItem = menu.findItem(R.id.track_list_feedback); - feedbackMenuItem.setVisible(GoogleFeedbackUtils.isAvailable(this)); + feedbackMenuItem.setVisible(ApiAdapterFactory.getApiAdapter().isGoogleFeedbackAvailable()); ApiAdapterFactory.getApiAdapter().configureSearchWidget(this, searchMenuItem, trackController); boolean isGpsStarted = TrackRecordingServiceConnectionUtils.isRecordingServiceRunning(this); diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/Api14Adapter.java b/MyTracks/src/com/google/android/apps/mytracks/util/Api14Adapter.java index f2de1b35f..1275f1bdf 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/Api14Adapter.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/Api14Adapter.java @@ -75,4 +75,9 @@ public class Api14Adapter extends Api11Adapter { menuItem.expandActionView(); return true; } + + @Override + public boolean isGoogleFeedbackAvailable() { + return true; + } } diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/Api8Adapter.java b/MyTracks/src/com/google/android/apps/mytracks/util/Api8Adapter.java index 9206aada9..fb2e3fb76 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/Api8Adapter.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/Api8Adapter.java @@ -153,6 +153,11 @@ public class Api8Adapter implements ApiAdapter { // Return false and allow the framework to handle the search key. return false; } + + @Override + public boolean isGoogleFeedbackAvailable() { + return false; + } @Override public int getAppWidgetSize(AppWidgetManager appWidgetManager, int appWidgetId) { 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 eab22abcc..5f9848345 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/ApiAdapter.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/ApiAdapter.java @@ -192,6 +192,13 @@ public interface ApiAdapter { */ public boolean handleSearchKey(MenuItem menu); + /** + * Returns true if Google Feedback is available. + *

+ * Due to changes in ApI level 14. + */ + public boolean isGoogleFeedbackAvailable(); + /** * Gets the app widget size. *

diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/GoogleFeedbackUtils.java b/MyTracks/src/com/google/android/apps/mytracks/util/GoogleFeedbackUtils.java index 555ab28ae..3b140ac31 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/GoogleFeedbackUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/GoogleFeedbackUtils.java @@ -20,16 +20,12 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; -import android.content.pm.PackageManager; -import android.content.pm.ResolveInfo; import android.os.Binder; import android.os.IBinder; import android.os.Parcel; import android.os.RemoteException; import android.util.Log; -import java.util.List; - /** * Utilities for Google Feedback. * @@ -37,36 +33,10 @@ import java.util.List; */ public class GoogleFeedbackUtils { - private static final String GOOGLE_FEEDBACK_PACKAGE_NAME = "com.google.android.feedback"; private static final String TAG = GoogleFeedbackUtils.class.getSimpleName(); - private static Boolean available = null; - private GoogleFeedbackUtils() {} - /** - * Returns true if the Google Feedback is available. - * - * @param context the context - */ - public static boolean isAvailable(Context context) { - if (available == null) { - List infos = context.getPackageManager().queryIntentServices( - new Intent(Intent.ACTION_BUG_REPORT), PackageManager.MATCH_DEFAULT_ONLY); - for (ResolveInfo info : infos) { - if (info.serviceInfo != null && info.serviceInfo.packageName != null - && info.serviceInfo.packageName.equals(GOOGLE_FEEDBACK_PACKAGE_NAME)) { - available = true; - break; - } - } - if (available == null) { - available = false; - } - } - return available; - } - /** * Binds the Google Feedback service. *