TrackListActivity: re-enable search.

Fixes #757.
This commit is contained in:
Dennis Guse
2021-05-15 08:44:31 +02:00
parent d46cea6150
commit 6b0ec72b9b
4 changed files with 32 additions and 39 deletions
@@ -261,15 +261,16 @@ public class MarkerListActivity extends AbstractActivity implements DeleteMarker
@Override @Override
public void onBackPressed() { public void onBackPressed() {
SearchView searchView = (SearchView) searchMenuItem.getActionView();
if (!searchView.isIconified()) {
searchView.setIconified(true);
}
if (loaderCallbacks.getSearchQuery() != null) { if (loaderCallbacks.getSearchQuery() != null) {
loaderCallbacks.setSearch(null); loaderCallbacks.setSearch(null);
return; return;
} }
SearchView searchView = (SearchView) searchMenuItem.getActionView();
if (!searchView.isIconified()) {
searchView.setIconified(true);
return;
}
super.onBackPressed(); super.onBackPressed();
} }
@@ -276,7 +276,13 @@ public class TrackListActivity extends AbstractListActivity implements ConfirmDe
getMenuInflater().inflate(R.menu.track_list, menu); getMenuInflater().inflate(R.menu.track_list, menu);
searchMenuItem = menu.findItem(R.id.track_list_search); searchMenuItem = menu.findItem(R.id.track_list_search);
ActivityUtils.configureSearchWidget(this, searchMenuItem); SearchView searchView = ActivityUtils.configureSearchWidget(this, searchMenuItem);
searchView.setOnCloseListener(() -> {
searchView.clearFocus();
searchMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
return true;
});
startGpsMenuItem = menu.findItem(R.id.track_list_start_gps); startGpsMenuItem = menu.findItem(R.id.track_list_start_gps);
return super.onCreateOptionsMenu(menu); return super.onCreateOptionsMenu(menu);
@@ -333,6 +339,12 @@ public class TrackListActivity extends AbstractListActivity implements ConfirmDe
return true; return true;
} }
if (item.getItemId() == R.id.track_list_search) {
SearchView searchView = (SearchView) searchMenuItem.getActionView();
searchView.setIconified(false);
searchMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
} }
@@ -344,17 +356,23 @@ public class TrackListActivity extends AbstractListActivity implements ConfirmDe
return super.onKeyUp(keyCode, event); return super.onKeyUp(keyCode, event);
} }
@Override
public void overridePendingTransition(int enterAnim, int exitAnim) {
//Disable animations as it is weird going into searchMode; looks okay for SplashScreen.
}
@Override @Override
public void onBackPressed() { public void onBackPressed() {
SearchView searchView = (SearchView) searchMenuItem.getActionView();
if (!searchView.isIconified()) {
searchView.setIconified(true);
}
if (loaderCallbacks.getSearchQuery() != null) { if (loaderCallbacks.getSearchQuery() != null) {
loaderCallbacks.setSearch(null); loaderCallbacks.setSearch(null);
return; return;
} }
SearchView searchView = (SearchView) searchMenuItem.getActionView();
if (!searchView.isIconified()) {
searchView.setIconified(true);
return;
}
super.onBackPressed(); super.onBackPressed();
} }
@@ -87,7 +87,7 @@ public class ActivityUtils {
}); });
} }
public static void configureSearchWidget(Activity activity, final MenuItem menuItem) { public static SearchView configureSearchWidget(Activity activity, final MenuItem menuItem) {
final SearchView searchView = (SearchView) menuItem.getActionView(); final SearchView searchView = (SearchView) menuItem.getActionView();
SearchManager searchManager = (SearchManager) activity.getSystemService(Context.SEARCH_SERVICE); SearchManager searchManager = (SearchManager) activity.getSystemService(Context.SEARCH_SERVICE);
if (searchManager != null) { if (searchManager != null) {
@@ -96,33 +96,8 @@ public class ActivityUtils {
} else { } else {
Log.w(TAG, "Could not retrieve SearchManager."); Log.w(TAG, "Could not retrieve SearchManager.");
} }
searchView.setQueryRefinementEnabled(true);
searchView.setSubmitButtonEnabled(true); searchView.setSubmitButtonEnabled(true);
return searchView;
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;
}
});
} }
public static void vibrate(Context context, int milliseconds) { public static void vibrate(Context context, int milliseconds) {
-1
View File
@@ -32,7 +32,6 @@ limitations under the License.
android:id="@+id/track_list_search" android:id="@+id/track_list_search"
android:title="@string/menu_search" android:title="@string/menu_search"
app:actionViewClass="androidx.appcompat.widget.SearchView" app:actionViewClass="androidx.appcompat.widget.SearchView"
android:visible="false"
app:showAsAction="ifRoom" /> app:showAsAction="ifRoom" />
<item <item
android:id="@+id/track_list_markers" android:id="@+id/track_list_markers"