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) {
|
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();
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -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>
|
||||||
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user