diff --git a/metadata/en-US/changelogs/next_release.txt b/metadata/en-US/changelogs/next_release.txt index b8e4c7255..596d90b1a 100644 --- a/metadata/en-US/changelogs/next_release.txt +++ b/metadata/en-US/changelogs/next_release.txt @@ -4,7 +4,7 @@ Changes: - Removed Widget Bugfix: -- +- Fixed search functionality Developer: - Fixed (some) test cases diff --git a/src/main/java/de/dennisguse/opentracks/AbstractListActivity.java b/src/main/java/de/dennisguse/opentracks/AbstractListActivity.java index 13a2ac8ca..9d034fb5e 100644 --- a/src/main/java/de/dennisguse/opentracks/AbstractListActivity.java +++ b/src/main/java/de/dennisguse/opentracks/AbstractListActivity.java @@ -18,8 +18,10 @@ package de.dennisguse.opentracks; import android.app.Activity; import android.app.SearchManager; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; +import android.util.Log; import android.util.SparseBooleanArray; import android.view.ActionMode; import android.view.Menu; @@ -50,6 +52,8 @@ import de.dennisguse.opentracks.util.TrackRecordingServiceConnectionUtils; */ public abstract class AbstractListActivity extends AbstractActivity implements ConfirmDeleteCaller { + private static final String TAG = AbstractListActivity.class.getSimpleName(); + protected static final int GPS_REQUEST_CODE = 6; private static final int DELETE_REQUEST_CODE = 3; @@ -111,15 +115,21 @@ public abstract class AbstractListActivity extends AbstractActivity implements C } public static void configureSearchWidget(Activity activity, final MenuItem menuItem, final TrackController trackController) { + final SearchView searchView = (SearchView) menuItem.getActionView(); SearchManager searchManager = (SearchManager) activity.getSystemService(Context.SEARCH_SERVICE); - SearchView searchView = (SearchView) menuItem.getActionView(); - searchView.setSearchableInfo(searchManager.getSearchableInfo(activity.getComponentName())); + if (searchManager != null) { + //NOTE: for some reason activity.getComponentName() did not trigger the SearchListActivity + searchView.setSearchableInfo(searchManager.getSearchableInfo(new ComponentName(activity, SearchListActivity.class))); + } else { + Log.w(TAG, "Could not retrieve SearchManager."); + } searchView.setQueryRefinementEnabled(true); + searchView.setSubmitButtonEnabled(true); searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { - // Hide and show trackController when search widget has focus/no focus + // Hide and show trackController when searchable widget has focus/no focus if (trackController != null) { if (hasFocus) { trackController.hide(); diff --git a/src/main/java/de/dennisguse/opentracks/SearchListActivity.java b/src/main/java/de/dennisguse/opentracks/SearchListActivity.java index c15cebd1b..566393504 100644 --- a/src/main/java/de/dennisguse/opentracks/SearchListActivity.java +++ b/src/main/java/de/dennisguse/opentracks/SearchListActivity.java @@ -63,11 +63,11 @@ import de.dennisguse.opentracks.util.TrackIconUtils; import de.dennisguse.opentracks.util.TrackRecordingServiceConnectionUtils; /** - * An activity to display a list of search results. + * An activity to display a list of searchable results. * * @author Rodrigo Damazio *
- * TODO: allow to refine search (present search in context menu)
+ * TODO: allow to refine searchable (present searchable in context menu)
*/
public class SearchListActivity extends AbstractListActivity implements DeleteMarkerCaller, ConfirmDeleteDialogFragment.ConfirmDeleteCaller {
@@ -333,7 +333,7 @@ public class SearchListActivity extends AbstractListActivity implements DeleteMa
}
startActivity(intent);
- // Close the search result since its content can change after edit.
+ // Close the searchable result since its content can change after edit.
finish();
return true;
case R.id.list_context_menu_delete:
@@ -367,7 +367,7 @@ public class SearchListActivity extends AbstractListActivity implements DeleteMa
}
/**
- * Do the search.
+ * Do the searchable.
*
* @param textQuery the query
*/
@@ -414,7 +414,7 @@ public class SearchListActivity extends AbstractListActivity implements DeleteMa
private Map