diff --git a/MyTracks/AndroidManifest.xml b/MyTracks/AndroidManifest.xml index f575a4318..34fbb187e 100755 --- a/MyTracks/AndroidManifest.xml +++ b/MyTracks/AndroidManifest.xml @@ -158,8 +158,7 @@ limitations under the License. + android:name="com.google.android.apps.mytracks.MarkerEditActivity" /> + android:name="com.google.android.apps.mytracks.TrackEditActivity" /> diff --git a/MyTracks/res/xml/search.xml b/MyTracks/res/xml/search.xml index 46ce021ed..a4dfcbda5 100644 --- a/MyTracks/res/xml/search.xml +++ b/MyTracks/res/xml/search.xml @@ -1,11 +1,13 @@ \ No newline at end of file + android:hint="@string/search_hint" + android:imeOptions="actionSearch" + android:includeInGlobalSearch="true" + android:label="@string/my_tracks_app_name" + android:queryAfterZeroResults="true" + android:searchSettingsDescription="@string/search_global_description" + android:searchSuggestAuthority="com.google.android.maps.mytracks.search" + android:searchSuggestSelection=" ? " + android:searchSuggestThreshold="1" + android:voicePromptText="@string/search_voice_prompt" + android:voiceSearchMode="showVoiceSearchButton|launchRecognizer" /> diff --git a/MyTracks/src/com/google/android/apps/mytracks/SearchListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/SearchListActivity.java index d5d960567..25a9d9c9f 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/SearchListActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/SearchListActivity.java @@ -190,7 +190,6 @@ public class SearchListActivity extends AbstractMyTracksActivity { @Override public void onNewIntent(Intent intent) { - super.onNewIntent(intent); setIntent(intent); handleIntent(intent); } @@ -270,6 +269,8 @@ public class SearchListActivity extends AbstractMyTracksActivity { .putExtra(TrackEditActivity.EXTRA_TRACK_ID, trackId); } startActivity(intent); + // Close the search result since its content can change after edit. + finish(); return true; case R.id.list_context_menu_delete: if (markerId != null) { diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java index 54ecbdf7e..3c25dcedf 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java @@ -161,7 +161,6 @@ public class TrackDetailActivity extends AbstractMyTracksActivity @Override public void onNewIntent(Intent intent) { - super.onNewIntent(intent); setIntent(intent); handleIntent(intent); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteOneMarkerDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteOneMarkerDialogFragment.java index d1f503b62..f21d25d74 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteOneMarkerDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteOneMarkerDialogFragment.java @@ -61,6 +61,8 @@ public class DeleteOneMarkerDialogFragment extends DialogFragment { Intent intent = IntentUtils.newIntent(getActivity(), MarkerListActivity.class) .putExtra(MarkerListActivity.EXTRA_TRACK_ID, getArguments().getLong(KEY_TRACK_ID)); startActivity(intent); + // Close the activity since its content can change after delete. + getActivity().finish(); } }); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteOneTrackDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteOneTrackDialogFragment.java index 58630656e..fef67d9ce 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteOneTrackDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteOneTrackDialogFragment.java @@ -57,6 +57,8 @@ public class DeleteOneTrackDialogFragment extends DialogFragment { .deleteTrack(getArguments().getLong(KEY_TRACK_ID)); Intent intent = IntentUtils.newIntent(getActivity(), TrackListActivity.class); startActivity(intent); + // Close the activity since its content can change after delete. + getActivity().finish(); } }); } 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 90996ae28..71d61cd2b 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/Api11Adapter.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/Api11Adapter.java @@ -86,6 +86,7 @@ public class Api11Adapter extends Api10Adapter { @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { + mode.finish(); return contextualActionModeCallback.onClick(item.getItemId(), position, id); } }); @@ -100,10 +101,35 @@ public class Api11Adapter extends Api10Adapter { }; @Override - public void configureSearchWidget(Activity activity, MenuItem menuItem) { + public void configureSearchWidget(Activity activity, final MenuItem menuItem) { SearchManager searchManager = (SearchManager) activity.getSystemService(Context.SEARCH_SERVICE); SearchView searchView = (SearchView) menuItem.getActionView(); searchView.setSearchableInfo(searchManager.getSearchableInfo(activity.getComponentName())); + searchView.setQueryRefinementEnabled(true); + searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { + @Override + public boolean onQueryTextSubmit(String query) { + menuItem.collapseActionView(); + return false; + } + + @Override + public boolean onQueryTextChange(String newText) { + return false; + } + }); + searchView.setOnSuggestionListener(new SearchView.OnSuggestionListener() { + @Override + public boolean onSuggestionSelect(int position) { + return false; + } + + @Override + public boolean onSuggestionClick(int position) { + menuItem.collapseActionView(); + return false; + } + }); } @Override