forked from upstream-mirrors/OpenTracks
Search working in TrackDetailActivity.
This commit is contained in:
@@ -125,13 +125,6 @@ public abstract class AbstractTrackActivity extends AbstractActivity implements
|
||||
public static void configureSearchWidget(Activity activity, final MenuItem menuItem, final TrackController trackController) {
|
||||
SearchManager searchManager = (SearchManager) activity.getSystemService(Context.SEARCH_SERVICE);
|
||||
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.setQueryRefinementEnabled(true);
|
||||
searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
|
||||
|
||||
@@ -173,7 +173,6 @@ public class SearchListActivity extends AbstractTrackActivity implements DeleteM
|
||||
|
||||
// UI elements
|
||||
private ListView listView;
|
||||
private MenuItem searchMenuItem;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@@ -275,8 +274,7 @@ public class SearchListActivity extends AbstractTrackActivity implements DeleteM
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.search_list, menu);
|
||||
searchMenuItem = menu.findItem(R.id.search_list_search);
|
||||
AbstractTrackActivity.configureSearchWidget(this, searchMenuItem, null);
|
||||
menu.findItem(R.id.search_list_search).setVisible(false);
|
||||
return super.onCreateOptionsMenu(menu);
|
||||
}
|
||||
|
||||
@@ -309,7 +307,7 @@ public class SearchListActivity extends AbstractTrackActivity implements DeleteM
|
||||
|
||||
@Override
|
||||
public boolean onKeyUp(int keyCode, KeyEvent event) {
|
||||
if (keyCode == KeyEvent.KEYCODE_SEARCH && searchMenuItem != null) {
|
||||
if (keyCode == KeyEvent.KEYCODE_SEARCH) {
|
||||
return true;
|
||||
}
|
||||
return super.onKeyUp(keyCode, event);
|
||||
|
||||
@@ -56,6 +56,7 @@ import androidx.core.content.FileProvider;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
|
||||
import android.util.Log;
|
||||
import android.view.ActionProvider;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
||||
@@ -43,6 +43,7 @@ import android.widget.AdapterView;
|
||||
import android.widget.AdapterView.AdapterContextMenuInfo;
|
||||
import android.widget.AdapterView.OnItemClickListener;
|
||||
import android.widget.ListView;
|
||||
import android.widget.SearchView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
@@ -444,6 +445,11 @@ public class TrackListActivity extends AbstractTrackActivity implements FileType
|
||||
boolean isGpsStarted = TrackRecordingServiceConnectionUtils.isRecordingServiceRunning(this);
|
||||
boolean isRecording = recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
||||
updateMenuItems(isGpsStarted, isRecording);
|
||||
|
||||
View searchView = searchMenuItem.getActionView();
|
||||
if (searchView != null && searchView instanceof SearchView) {
|
||||
((SearchView) searchView).setQuery("", false);
|
||||
}
|
||||
return super.onPrepareOptionsMenu(menu);
|
||||
}
|
||||
|
||||
@@ -451,9 +457,6 @@ public class TrackListActivity extends AbstractTrackActivity implements FileType
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
Intent intent;
|
||||
switch (item.getItemId()) {
|
||||
case R.id.track_list_search:
|
||||
// TODO ?
|
||||
return false;
|
||||
case R.id.track_list_start_gps:
|
||||
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
|
||||
if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
|
||||
@@ -472,8 +475,7 @@ public class TrackListActivity extends AbstractTrackActivity implements FileType
|
||||
trackRecordingServiceConnection.startAndBind();
|
||||
bindChangedCallback.run();
|
||||
} else {
|
||||
ITrackRecordingService trackRecordingService = trackRecordingServiceConnection
|
||||
.getServiceIfBound();
|
||||
ITrackRecordingService trackRecordingService = trackRecordingServiceConnection.getServiceIfBound();
|
||||
if (trackRecordingService != null) {
|
||||
try {
|
||||
trackRecordingService.stopGps();
|
||||
|
||||
@@ -24,6 +24,6 @@ limitations under the License.
|
||||
android:id="@+id/marker_list_search"
|
||||
android:icon="@drawable/ic_menu_search"
|
||||
android:title="@string/menu_search"
|
||||
app:actionViewClass="androidx.appcompat.widget.SearchView"
|
||||
android:actionViewClass="android.widget.SearchView"
|
||||
app:showAsAction="ifRoom|collapseActionView" />
|
||||
</menu>
|
||||
@@ -19,6 +19,6 @@ limitations under the License.
|
||||
android:id="@+id/search_list_search"
|
||||
android:icon="@drawable/ic_menu_search"
|
||||
android:title="@string/menu_search"
|
||||
app:actionViewClass="androidx.appcompat.widget.SearchView"
|
||||
android:actionViewClass="android.widget.SearchView"
|
||||
app:showAsAction="ifRoom|collapseActionView" />
|
||||
</menu>
|
||||
@@ -19,8 +19,8 @@ limitations under the License.
|
||||
android:id="@+id/track_list_search"
|
||||
android:icon="@drawable/ic_menu_search"
|
||||
android:title="@string/menu_search"
|
||||
app:actionViewClass="androidx.appcompat.widget.SearchView"
|
||||
app:showAsAction="always" />
|
||||
android:actionViewClass="android.widget.SearchView"
|
||||
android:showAsAction="always" />
|
||||
<item
|
||||
android:id="@+id/track_list_start_gps"
|
||||
android:icon="@drawable/ic_menu_start_gps"
|
||||
|
||||
Reference in New Issue
Block a user