Search working in TrackDetailActivity.

This commit is contained in:
Dennis Guse
2019-07-13 12:28:41 +02:00
parent 34450aa5e7
commit a8ff1628c4
7 changed files with 14 additions and 20 deletions
@@ -125,13 +125,6 @@ public abstract class AbstractTrackActivity extends AbstractActivity implements
public static void configureSearchWidget(Activity activity, final MenuItem menuItem, final TrackController trackController) { public static void configureSearchWidget(Activity activity, final MenuItem menuItem, final TrackController trackController) {
SearchManager searchManager = (SearchManager) activity.getSystemService(Context.SEARCH_SERVICE); SearchManager searchManager = (SearchManager) activity.getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menuItem.getActionView(); SearchView searchView = (SearchView) menuItem.getActionView();
if (searchView == null) {
//TODO This is a workaround and needs to be fixed; looks like a configuration issue.
Log.d(AbstractTrackActivity.class.getCanonicalName(), "Search is not yet implemented.");
return;
}
searchView.setSearchableInfo(searchManager.getSearchableInfo(activity.getComponentName())); searchView.setSearchableInfo(searchManager.getSearchableInfo(activity.getComponentName()));
searchView.setQueryRefinementEnabled(true); searchView.setQueryRefinementEnabled(true);
searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() { searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
@@ -173,7 +173,6 @@ public class SearchListActivity extends AbstractTrackActivity implements DeleteM
// UI elements // UI elements
private ListView listView; private ListView listView;
private MenuItem searchMenuItem;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@@ -275,8 +274,7 @@ public class SearchListActivity extends AbstractTrackActivity implements DeleteM
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.search_list, menu); getMenuInflater().inflate(R.menu.search_list, menu);
searchMenuItem = menu.findItem(R.id.search_list_search); menu.findItem(R.id.search_list_search).setVisible(false);
AbstractTrackActivity.configureSearchWidget(this, searchMenuItem, null);
return super.onCreateOptionsMenu(menu); return super.onCreateOptionsMenu(menu);
} }
@@ -309,7 +307,7 @@ public class SearchListActivity extends AbstractTrackActivity implements DeleteM
@Override @Override
public boolean onKeyUp(int keyCode, KeyEvent event) { public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_SEARCH && searchMenuItem != null) { if (keyCode == KeyEvent.KEYCODE_SEARCH) {
return true; return true;
} }
return super.onKeyUp(keyCode, event); return super.onKeyUp(keyCode, event);
@@ -56,6 +56,7 @@ import androidx.core.content.FileProvider;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import android.util.Log; import android.util.Log;
import android.view.ActionProvider;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
@@ -43,6 +43,7 @@ import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView; import android.widget.ListView;
import android.widget.SearchView;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@@ -444,6 +445,11 @@ public class TrackListActivity extends AbstractTrackActivity implements FileType
boolean isGpsStarted = TrackRecordingServiceConnectionUtils.isRecordingServiceRunning(this); boolean isGpsStarted = TrackRecordingServiceConnectionUtils.isRecordingServiceRunning(this);
boolean isRecording = recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT; boolean isRecording = recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
updateMenuItems(isGpsStarted, isRecording); updateMenuItems(isGpsStarted, isRecording);
View searchView = searchMenuItem.getActionView();
if (searchView != null && searchView instanceof SearchView) {
((SearchView) searchView).setQuery("", false);
}
return super.onPrepareOptionsMenu(menu); return super.onPrepareOptionsMenu(menu);
} }
@@ -451,9 +457,6 @@ public class TrackListActivity extends AbstractTrackActivity implements FileType
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
Intent intent; Intent intent;
switch (item.getItemId()) { switch (item.getItemId()) {
case R.id.track_list_search:
// TODO ?
return false;
case R.id.track_list_start_gps: case R.id.track_list_start_gps:
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
@@ -472,8 +475,7 @@ public class TrackListActivity extends AbstractTrackActivity implements FileType
trackRecordingServiceConnection.startAndBind(); trackRecordingServiceConnection.startAndBind();
bindChangedCallback.run(); bindChangedCallback.run();
} else { } else {
ITrackRecordingService trackRecordingService = trackRecordingServiceConnection ITrackRecordingService trackRecordingService = trackRecordingServiceConnection.getServiceIfBound();
.getServiceIfBound();
if (trackRecordingService != null) { if (trackRecordingService != null) {
try { try {
trackRecordingService.stopGps(); trackRecordingService.stopGps();
+1 -1
View File
@@ -24,6 +24,6 @@ limitations under the License.
android:id="@+id/marker_list_search" android:id="@+id/marker_list_search"
android:icon="@drawable/ic_menu_search" android:icon="@drawable/ic_menu_search"
android:title="@string/menu_search" android:title="@string/menu_search"
app:actionViewClass="androidx.appcompat.widget.SearchView" android:actionViewClass="android.widget.SearchView"
app:showAsAction="ifRoom|collapseActionView" /> app:showAsAction="ifRoom|collapseActionView" />
</menu> </menu>
+1 -1
View File
@@ -19,6 +19,6 @@ limitations under the License.
android:id="@+id/search_list_search" android:id="@+id/search_list_search"
android:icon="@drawable/ic_menu_search" android:icon="@drawable/ic_menu_search"
android:title="@string/menu_search" android:title="@string/menu_search"
app:actionViewClass="androidx.appcompat.widget.SearchView" android:actionViewClass="android.widget.SearchView"
app:showAsAction="ifRoom|collapseActionView" /> app:showAsAction="ifRoom|collapseActionView" />
</menu> </menu>
+2 -2
View File
@@ -19,8 +19,8 @@ limitations under the License.
android:id="@+id/track_list_search" android:id="@+id/track_list_search"
android:icon="@drawable/ic_menu_search" android:icon="@drawable/ic_menu_search"
android:title="@string/menu_search" android:title="@string/menu_search"
app:actionViewClass="androidx.appcompat.widget.SearchView" android:actionViewClass="android.widget.SearchView"
app:showAsAction="always" /> android:showAsAction="always" />
<item <item
android:id="@+id/track_list_start_gps" android:id="@+id/track_list_start_gps"
android:icon="@drawable/ic_menu_start_gps" android:icon="@drawable/ic_menu_start_gps"