From 707031d0b73f2033cfe4a690cdb8bf506753895f Mon Sep 17 00:00:00 2001 From: Jimmy Shih Date: Wed, 24 Oct 2012 15:48:26 -0700 Subject: [PATCH] Remove api level 7 code. --- .../backup/Api8BackupPreferencesListener.java | 43 ----- .../io/backup/BackupPreferencesListener.java | 25 ++- .../tasks/AnnouncementPeriodicTask.java | 46 ++++- .../AnnouncementPeriodicTaskFactory.java | 4 +- .../tasks/Api8AnnouncementPeriodicTask.java | 81 --------- .../settings/AbstractSettingsActivity.java | 4 +- .../apps/mytracks/util/Api11Adapter.java | 5 - .../apps/mytracks/util/Api7Adapter.java | 165 ------------------ .../apps/mytracks/util/Api8Adapter.java | 126 +++++++++++-- .../apps/mytracks/util/ApiAdapter.java | 31 ---- .../apps/mytracks/util/ApiAdapterFactory.java | 5 +- 11 files changed, 175 insertions(+), 360 deletions(-) delete mode 100644 MyTracks/src/com/google/android/apps/mytracks/io/backup/Api8BackupPreferencesListener.java delete mode 100644 MyTracks/src/com/google/android/apps/mytracks/services/tasks/Api8AnnouncementPeriodicTask.java delete mode 100644 MyTracks/src/com/google/android/apps/mytracks/util/Api7Adapter.java diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/backup/Api8BackupPreferencesListener.java b/MyTracks/src/com/google/android/apps/mytracks/io/backup/Api8BackupPreferencesListener.java deleted file mode 100644 index 10cdebc95..000000000 --- a/MyTracks/src/com/google/android/apps/mytracks/io/backup/Api8BackupPreferencesListener.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2011 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks.io.backup; - -import android.annotation.TargetApi; -import android.app.backup.BackupManager; -import android.content.Context; -import android.content.SharedPreferences; - -/** - * Implementation of {@link BackupPreferencesListener} that calls the - * {@link BackupManager}.
- * For API Level 8 or higher. - * - * @author Jimmy Shih - */ -@TargetApi(8) -public class Api8BackupPreferencesListener implements BackupPreferencesListener { - - private final BackupManager backupManager; - - public Api8BackupPreferencesListener(Context context) { - this.backupManager = new BackupManager(context); - } - - @Override - public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - backupManager.dataChanged(); - } -} diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/backup/BackupPreferencesListener.java b/MyTracks/src/com/google/android/apps/mytracks/io/backup/BackupPreferencesListener.java index 3162c4779..b105e0e02 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/backup/BackupPreferencesListener.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/backup/BackupPreferencesListener.java @@ -1,5 +1,5 @@ /* - * Copyright 2010 Google Inc. + * Copyright 2011 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -15,13 +15,26 @@ */ package com.google.android.apps.mytracks.io.backup; +import android.app.backup.BackupManager; +import android.content.Context; +import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; /** - * Shared preferences listener which notifies the backup system about new data - * being available for backup. + * Backup preference listener. * - * @author Rodrigo Damazio + * @author Jimmy Shih */ -public interface BackupPreferencesListener extends OnSharedPreferenceChangeListener { -} \ No newline at end of file +public class BackupPreferencesListener implements OnSharedPreferenceChangeListener { + + private final BackupManager backupManager; + + public BackupPreferencesListener(Context context) { + this.backupManager = new BackupManager(context); + } + + @Override + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { + backupManager.dataChanged(); + } +} diff --git a/MyTracks/src/com/google/android/apps/mytracks/services/tasks/AnnouncementPeriodicTask.java b/MyTracks/src/com/google/android/apps/mytracks/services/tasks/AnnouncementPeriodicTask.java index ff8d295e2..684ae95df 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/services/tasks/AnnouncementPeriodicTask.java +++ b/MyTracks/src/com/google/android/apps/mytracks/services/tasks/AnnouncementPeriodicTask.java @@ -25,12 +25,15 @@ import com.google.android.maps.mytracks.R; import com.google.common.annotations.VisibleForTesting; import android.content.Context; +import android.media.AudioManager; import android.speech.tts.TextToSpeech; import android.speech.tts.TextToSpeech.OnInitListener; +import android.speech.tts.TextToSpeech.OnUtteranceCompletedListener; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; import android.util.Log; +import java.util.HashMap; import java.util.Locale; /** @@ -49,8 +52,24 @@ public class AnnouncementPeriodicTask implements PeriodicTask { private static final String TAG = AnnouncementPeriodicTask.class.getSimpleName(); private static final long HOUR_TO_MILLISECOND = 60 * 60 * 1000; + private static final HashMap SPEECH_PARAMS = new HashMap(); + static { + SPEECH_PARAMS.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "not_used"); + } + + private final OnUtteranceCompletedListener + utteranceListener = new OnUtteranceCompletedListener() { + @Override + public void onUtteranceCompleted(String utteranceId) { + int result = audioManager.abandonAudioFocus(null); + if (result == AudioManager.AUDIOFOCUS_REQUEST_FAILED) { + Log.w(TAG, "Failed to relinquish audio focus."); + } + } + }; + private final Context context; - protected TextToSpeech tts; + private TextToSpeech tts; // Response from TTS after its initialization private int initStatus = TextToSpeech.ERROR; @@ -61,6 +80,8 @@ public class AnnouncementPeriodicTask implements PeriodicTask { // True if speech is allowed private boolean speechAllowed; + private final AudioManager audioManager; + /** * Listener which updates {@link #speechAllowed} when the phone state changes. */ @@ -77,6 +98,7 @@ public class AnnouncementPeriodicTask implements PeriodicTask { public AnnouncementPeriodicTask(Context context) { this.context = context; + audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); } @Override @@ -146,7 +168,7 @@ public class AnnouncementPeriodicTask implements PeriodicTask { /** * Called when TTS is ready. */ - protected void onTtsReady() { + private void onTtsReady() { Locale locale = Locale.getDefault(); int languageAvailability = tts.isLanguageAvailable(locale); if (languageAvailability == TextToSpeech.LANG_MISSING_DATA @@ -163,6 +185,8 @@ public class AnnouncementPeriodicTask implements PeriodicTask { // Slow down the speed just a bit as it is hard to hear when exercising. tts.setSpeechRate(TTS_SPEECH_RATE); + + tts.setOnUtteranceCompletedListener(utteranceListener); } /** @@ -170,8 +194,18 @@ public class AnnouncementPeriodicTask implements PeriodicTask { * * @param announcement the announcement */ - protected void speakAnnouncement(String announcement) { - tts.speak(announcement, TextToSpeech.QUEUE_FLUSH, null); + private void speakAnnouncement(String announcement) { + int result = audioManager.requestAudioFocus( + null, TextToSpeech.Engine.DEFAULT_STREAM, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK); + if (result == AudioManager.AUDIOFOCUS_REQUEST_FAILED) { + Log.w(TAG, "Failed to request audio focus."); + } + + /* + * We don't care about the utterance id. It is supplied here to force + * onUtteranceCompleted to be called. + */ + tts.speak(announcement, TextToSpeech.QUEUE_FLUSH, SPEECH_PARAMS); } /** @@ -224,8 +258,8 @@ public class AnnouncementPeriodicTask implements PeriodicTask { String totalDistance = context.getResources() .getQuantityString(totalDistanceId, getQuantityCount(distance), distance); - return context.getString(R.string.voice_template, totalDistance, getAnnounceTime( - tripStatistics.getMovingTime()), rate); + return context.getString(R.string.voice_template, totalDistance, + getAnnounceTime(tripStatistics.getMovingTime()), rate); } /** diff --git a/MyTracks/src/com/google/android/apps/mytracks/services/tasks/AnnouncementPeriodicTaskFactory.java b/MyTracks/src/com/google/android/apps/mytracks/services/tasks/AnnouncementPeriodicTaskFactory.java index 0c6c7e87b..df9c9f1a9 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/services/tasks/AnnouncementPeriodicTaskFactory.java +++ b/MyTracks/src/com/google/android/apps/mytracks/services/tasks/AnnouncementPeriodicTaskFactory.java @@ -15,8 +15,6 @@ */ package com.google.android.apps.mytracks.services.tasks; -import com.google.android.apps.mytracks.util.ApiAdapterFactory; - import android.content.Context; /** @@ -28,6 +26,6 @@ public class AnnouncementPeriodicTaskFactory implements PeriodicTaskFactory { @Override public PeriodicTask create(Context context) { - return ApiAdapterFactory.getApiAdapter().getAnnouncementPeriodicTask(context); + return new AnnouncementPeriodicTask(context); } } diff --git a/MyTracks/src/com/google/android/apps/mytracks/services/tasks/Api8AnnouncementPeriodicTask.java b/MyTracks/src/com/google/android/apps/mytracks/services/tasks/Api8AnnouncementPeriodicTask.java deleted file mode 100644 index d09312886..000000000 --- a/MyTracks/src/com/google/android/apps/mytracks/services/tasks/Api8AnnouncementPeriodicTask.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright 2011 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.google.android.apps.mytracks.services.tasks; - -import android.annotation.TargetApi; -import android.content.Context; -import android.media.AudioManager; -import android.speech.tts.TextToSpeech; -import android.speech.tts.TextToSpeech.OnUtteranceCompletedListener; -import android.util.Log; - -import java.util.HashMap; - -/** - * This class will periodically announce the user's trip statistics. This class - * will request and release audio focus. - * - * @author Sandor Dornbush - */ -@TargetApi(8) -public class Api8AnnouncementPeriodicTask extends AnnouncementPeriodicTask { - - private static final String TAG = Api8AnnouncementPeriodicTask.class.getSimpleName(); - private static final HashMap SPEECH_PARAMS = new HashMap(); - static { - SPEECH_PARAMS.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "not_used"); - } - - private final OnUtteranceCompletedListener - utteranceListener = new OnUtteranceCompletedListener() { - @Override - public void onUtteranceCompleted(String utteranceId) { - int result = audioManager.abandonAudioFocus(null); - if (result == AudioManager.AUDIOFOCUS_REQUEST_FAILED) { - Log.w(TAG, "Failed to relinquish audio focus."); - } - } - }; - - private final AudioManager audioManager; - - public Api8AnnouncementPeriodicTask(Context context) { - super(context); - audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); - } - - @Override - protected void onTtsReady() { - super.onTtsReady(); - tts.setOnUtteranceCompletedListener(utteranceListener); - } - - @Override - protected synchronized void speakAnnouncement(String announcement) { - int result = audioManager.requestAudioFocus( - null, TextToSpeech.Engine.DEFAULT_STREAM, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK); - if (result == AudioManager.AUDIOFOCUS_REQUEST_FAILED) { - Log.w(TAG, "Failed to request audio focus."); - } - - /* - * We don't care about the utterance id. It is supplied here to force - * onUtteranceCompleted to be called. - */ - tts.speak(announcement, TextToSpeech.QUEUE_FLUSH, SPEECH_PARAMS); - } -} diff --git a/MyTracks/src/com/google/android/apps/mytracks/settings/AbstractSettingsActivity.java b/MyTracks/src/com/google/android/apps/mytracks/settings/AbstractSettingsActivity.java index 921a5a79c..d22a5b2d7 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/settings/AbstractSettingsActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/settings/AbstractSettingsActivity.java @@ -52,8 +52,8 @@ public class AbstractSettingsActivity extends PreferenceActivity { preferenceManager.setSharedPreferencesMode(Context.MODE_PRIVATE); // Set up automatic preferences backup - backupPreferencesListener = ApiAdapterFactory.getApiAdapter() - .getBackupPreferencesListener(this); + backupPreferencesListener = new BackupPreferencesListener(this); + preferenceManager.getSharedPreferences() .registerOnSharedPreferenceChangeListener(backupPreferencesListener); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/Api11Adapter.java b/MyTracks/src/com/google/android/apps/mytracks/util/Api11Adapter.java index 451eafc41..0720eec4c 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/Api11Adapter.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/Api11Adapter.java @@ -119,9 +119,4 @@ public class Api11Adapter extends Api10Adapter { public void invalidMenu(Activity activity) { activity.invalidateOptionsMenu(); } - - @Override - public void disableHardwareAccelerated(View view) { - view.setLayerType(View.LAYER_TYPE_SOFTWARE, null); - } } diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/Api7Adapter.java b/MyTracks/src/com/google/android/apps/mytracks/util/Api7Adapter.java deleted file mode 100644 index a863b278a..000000000 --- a/MyTracks/src/com/google/android/apps/mytracks/util/Api7Adapter.java +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Copyright 2010 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks.util; - -import com.google.android.apps.mytracks.Constants; -import com.google.android.apps.mytracks.ContextualActionModeCallback; -import com.google.android.apps.mytracks.io.backup.BackupPreferencesListener; -import com.google.android.apps.mytracks.services.sensors.BluetoothConnectionManager; -import com.google.android.apps.mytracks.services.tasks.AnnouncementPeriodicTask; -import com.google.android.apps.mytracks.services.tasks.PeriodicTask; -import com.google.api.client.http.HttpTransport; -import com.google.api.client.http.apache.ApacheHttpTransport; - -import android.app.Activity; -import android.bluetooth.BluetoothDevice; -import android.bluetooth.BluetoothSocket; -import android.content.Context; -import android.content.SharedPreferences; -import android.content.SharedPreferences.Editor; -import android.util.Log; -import android.view.MenuItem; -import android.view.View; -import android.view.Window; -import android.widget.ArrayAdapter; -import android.widget.ListView; - -import java.io.IOException; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.List; - -/** - * API level 7 specific implementation of the {@link ApiAdapter}. - * - * @author Bartlomiej Niechwiej - */ -public class Api7Adapter implements ApiAdapter { - - @Override - public PeriodicTask getAnnouncementPeriodicTask(Context context) { - return new AnnouncementPeriodicTask(context); - } - - @Override - public BackupPreferencesListener getBackupPreferencesListener(Context context) { - return new BackupPreferencesListener() { - @Override - public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - // Do nothing - } - }; - } - - @Override - public void applyPreferenceChanges(Editor editor) { - editor.commit(); - } - - @Override - public void enableStrictMode() { - // Not supported - } - - @Override - public byte[] copyByteArray(byte[] input, int start, int end) { - int length = end - start; - byte[] output = new byte[length]; - System.arraycopy(input, start, output, 0, length); - return output; - } - - @Override - public HttpTransport getHttpTransport() { - return new ApacheHttpTransport(); - } - - @Override - public boolean isGeoCoderPresent() { - return true; - } - - @Override - public BluetoothSocket getBluetoothSocket(BluetoothDevice bluetoothDevice) throws IOException { - try { - Class c = bluetoothDevice.getClass(); - Method insecure = c.getMethod("createInsecureRfcommSocket", Integer.class); - insecure.setAccessible(true); - return (BluetoothSocket) insecure.invoke(bluetoothDevice, 1); - } catch (SecurityException e) { - Log.d(Constants.TAG, "Unable to create insecure connection", e); - } catch (NoSuchMethodException e) { - Log.d(Constants.TAG, "Unable to create insecure connection", e); - } catch (IllegalArgumentException e) { - Log.d(Constants.TAG, "Unable to create insecure connection", e); - } catch (IllegalAccessException e) { - Log.d(Constants.TAG, "Unable to create insecure connection", e); - } catch (InvocationTargetException e) { - Log.d(Constants.TAG, "Unable to create insecure connection", e); - } - return bluetoothDevice.createRfcommSocketToServiceRecord(BluetoothConnectionManager.MY_TRACKS_UUID); - } - - @Override - public void hideTitle(Activity activity) { - activity.requestWindowFeature(Window.FEATURE_NO_TITLE); - } - - @Override - public void configureActionBarHomeAsUp(Activity activity) { - // Do nothing - } - - @Override - public void configureListViewContextualMenu(Activity activity, ListView listView, - ContextualActionModeCallback contextualActionModeCallback) { - activity.registerForContextMenu(listView); - } - - @Override - public void configureSearchWidget(Activity activity, MenuItem menuItem) { - // Do nothing - } - - @Override - public boolean handleSearchMenuSelection(Activity activity) { - activity.onSearchRequested(); - return true; - } - - @Override - public void addAllToArrayAdapter(ArrayAdapter arrayAdapter, List items) { - for (T item : items) { - arrayAdapter.add(item); - } - } - - @Override - public void invalidMenu(Activity activity) { - // Do nothing - } - - @Override - public void disableHardwareAccelerated(View view) { - // Do nothing - } - - @Override - public boolean handleSearchKey(MenuItem menuItem) { - // Return false and allow the framework to handle the search key. - return false; - } -} 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 39a01f394..b8c768821 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/Api8Adapter.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/Api8Adapter.java @@ -1,5 +1,5 @@ /* - * Copyright 2012 Google Inc. + * Copyright 2010 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -15,27 +15,125 @@ */ package com.google.android.apps.mytracks.util; -import com.google.android.apps.mytracks.io.backup.Api8BackupPreferencesListener; -import com.google.android.apps.mytracks.io.backup.BackupPreferencesListener; -import com.google.android.apps.mytracks.services.tasks.Api8AnnouncementPeriodicTask; -import com.google.android.apps.mytracks.services.tasks.PeriodicTask; +import com.google.android.apps.mytracks.Constants; +import com.google.android.apps.mytracks.ContextualActionModeCallback; +import com.google.android.apps.mytracks.services.sensors.BluetoothConnectionManager; +import com.google.api.client.http.HttpTransport; +import com.google.api.client.http.apache.ApacheHttpTransport; -import android.content.Context; +import android.app.Activity; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothSocket; +import android.content.SharedPreferences.Editor; +import android.util.Log; +import android.view.MenuItem; +import android.view.Window; +import android.widget.ArrayAdapter; +import android.widget.ListView; + +import java.io.IOException; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.List; /** * API level 8 specific implementation of the {@link ApiAdapter}. * - * @author Jimmy Shih + * @author Bartlomiej Niechwiej */ -public class Api8Adapter extends Api7Adapter { - +public class Api8Adapter implements ApiAdapter { + @Override - public PeriodicTask getAnnouncementPeriodicTask(Context context) { - return new Api8AnnouncementPeriodicTask(context); + public void applyPreferenceChanges(Editor editor) { + editor.commit(); } - + @Override - public BackupPreferencesListener getBackupPreferencesListener(Context context) { - return new Api8BackupPreferencesListener(context); + public void enableStrictMode() { + // Not supported + } + + @Override + public byte[] copyByteArray(byte[] input, int start, int end) { + int length = end - start; + byte[] output = new byte[length]; + System.arraycopy(input, start, output, 0, length); + return output; + } + + @Override + public HttpTransport getHttpTransport() { + return new ApacheHttpTransport(); + } + + @Override + public boolean isGeoCoderPresent() { + return true; + } + + @Override + public BluetoothSocket getBluetoothSocket(BluetoothDevice bluetoothDevice) throws IOException { + try { + Class c = bluetoothDevice.getClass(); + Method insecure = c.getMethod("createInsecureRfcommSocket", Integer.class); + insecure.setAccessible(true); + return (BluetoothSocket) insecure.invoke(bluetoothDevice, 1); + } catch (SecurityException e) { + Log.d(Constants.TAG, "Unable to create insecure connection", e); + } catch (NoSuchMethodException e) { + Log.d(Constants.TAG, "Unable to create insecure connection", e); + } catch (IllegalArgumentException e) { + Log.d(Constants.TAG, "Unable to create insecure connection", e); + } catch (IllegalAccessException e) { + Log.d(Constants.TAG, "Unable to create insecure connection", e); + } catch (InvocationTargetException e) { + Log.d(Constants.TAG, "Unable to create insecure connection", e); + } + return bluetoothDevice.createRfcommSocketToServiceRecord(BluetoothConnectionManager.MY_TRACKS_UUID); + } + + @Override + public void hideTitle(Activity activity) { + activity.requestWindowFeature(Window.FEATURE_NO_TITLE); + } + + @Override + public void configureActionBarHomeAsUp(Activity activity) { + // Do nothing + } + + @Override + public void configureListViewContextualMenu(Activity activity, ListView listView, + ContextualActionModeCallback contextualActionModeCallback) { + activity.registerForContextMenu(listView); + } + + @Override + public void configureSearchWidget(Activity activity, MenuItem menuItem) { + // Do nothing + } + + @Override + public boolean handleSearchMenuSelection(Activity activity) { + activity.onSearchRequested(); + return true; + } + + @Override + public void addAllToArrayAdapter(ArrayAdapter arrayAdapter, List items) { + for (T item : items) { + arrayAdapter.add(item); + } + } + + @Override + public void invalidMenu(Activity activity) { + // Do nothing + } + + @Override + public boolean handleSearchKey(MenuItem menuItem) { + // Return false and allow the framework to handle the search key. + return false; } } 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 71d4aaf71..908cb3537 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/ApiAdapter.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/ApiAdapter.java @@ -16,17 +16,13 @@ package com.google.android.apps.mytracks.util; import com.google.android.apps.mytracks.ContextualActionModeCallback; -import com.google.android.apps.mytracks.io.backup.BackupPreferencesListener; -import com.google.android.apps.mytracks.services.tasks.PeriodicTask; import com.google.api.client.http.HttpTransport; import android.app.Activity; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothSocket; -import android.content.Context; import android.content.SharedPreferences; import android.view.MenuItem; -import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; @@ -41,24 +37,6 @@ import java.util.List; */ public interface ApiAdapter { - /** - * Gets an announcement periodic task. - *

- * Due to changes in API level 8. - * - * @param context the context - */ - public PeriodicTask getAnnouncementPeriodicTask(Context context); - - /** - * Gets a {@link BackupPreferencesListener}. - *

- * Due to changes in API level 8. - * - * @param context the context - */ - public BackupPreferencesListener getBackupPreferencesListener(Context context); - /** * Applies all the changes done to a given preferences editor. Changes may or * may not be applied immediately. @@ -184,15 +162,6 @@ public interface ApiAdapter { */ public void invalidMenu(Activity activity); - /** - * Diables hardware-accelerated rendering for a view. - *

- * Due to chagnes in API level 11. - * - * @param view the view - */ - public void disableHardwareAccelerated(View view); - /** * Handles the search key press. Returns true if handled. *

diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/ApiAdapterFactory.java b/MyTracks/src/com/google/android/apps/mytracks/util/ApiAdapterFactory.java index 589aa7926..d1ebdffe8 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/ApiAdapterFactory.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/ApiAdapterFactory.java @@ -43,11 +43,8 @@ public class ApiAdapterFactory { } else if (Build.VERSION.SDK_INT >= 9) { apiAdapter = new Api9Adapter(); return apiAdapter; - } else if (Build.VERSION.SDK_INT >= 8) { - apiAdapter = new Api8Adapter(); - return apiAdapter; } else { - apiAdapter = new Api7Adapter(); + apiAdapter = new Api8Adapter(); return apiAdapter; } }