forked from upstream-mirrors/OpenTracks
show/hid track controller when search is shown/dismissed
This commit is contained in:
@@ -226,7 +226,7 @@ public class MarkerListActivity extends AbstractMyTracksActivity implements Dele
|
|||||||
getMenuInflater().inflate(R.menu.marker_list, menu);
|
getMenuInflater().inflate(R.menu.marker_list, menu);
|
||||||
insertMarkerMenuItem = menu.findItem(R.id.marker_list_insert_marker);
|
insertMarkerMenuItem = menu.findItem(R.id.marker_list_insert_marker);
|
||||||
searchMenuItem = menu.findItem(R.id.marker_list_search);
|
searchMenuItem = menu.findItem(R.id.marker_list_search);
|
||||||
ApiAdapterFactory.getApiAdapter().configureSearchWidget(this, searchMenuItem);
|
ApiAdapterFactory.getApiAdapter().configureSearchWidget(this, searchMenuItem, null);
|
||||||
updateMenu();
|
updateMenu();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -280,7 +280,7 @@ public class SearchListActivity extends AbstractSendToGoogleActivity
|
|||||||
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);
|
searchMenuItem = menu.findItem(R.id.search_list_search);
|
||||||
ApiAdapterFactory.getApiAdapter().configureSearchWidget(this, searchMenuItem);
|
ApiAdapterFactory.getApiAdapter().configureSearchWidget(this, searchMenuItem, null);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -133,6 +133,14 @@ public class TrackController {
|
|||||||
stopTimer();
|
stopTimer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void hide() {
|
||||||
|
containerView.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void show() {
|
||||||
|
containerView.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stops the timer.
|
* Stops the timer.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ import com.google.android.maps.mytracks.BuildConfig;
|
|||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
|
import android.app.SearchManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@@ -370,10 +371,8 @@ public class TrackListActivity extends AbstractSendToGoogleActivity
|
|||||||
ApiAdapterFactory.getApiAdapter().enableStrictMode();
|
ApiAdapterFactory.getApiAdapter().enableStrictMode();
|
||||||
}
|
}
|
||||||
Intent intent = new Intent(this, RemoveTempFilesService.class);
|
Intent intent = new Intent(this, RemoveTempFilesService.class);
|
||||||
startService(intent);
|
startService(intent);
|
||||||
|
|
||||||
setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);
|
|
||||||
|
|
||||||
myTracksProviderUtils = MyTracksProviderUtils.Factory.get(this);
|
myTracksProviderUtils = MyTracksProviderUtils.Factory.get(this);
|
||||||
sharedPreferences = getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
sharedPreferences = getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
||||||
|
|
||||||
@@ -383,6 +382,16 @@ public class TrackListActivity extends AbstractSendToGoogleActivity
|
|||||||
trackController = new TrackController(
|
trackController = new TrackController(
|
||||||
this, trackRecordingServiceConnection, true, recordListener, stopListener);
|
this, trackRecordingServiceConnection, true, recordListener, stopListener);
|
||||||
|
|
||||||
|
setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);
|
||||||
|
// Show trackController when search dialog is dismissed
|
||||||
|
SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE);
|
||||||
|
searchManager.setOnDismissListener(new SearchManager.OnDismissListener() {
|
||||||
|
@Override
|
||||||
|
public void onDismiss() {
|
||||||
|
trackController.show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
listView = (ListView) findViewById(R.id.track_list);
|
listView = (ListView) findViewById(R.id.track_list);
|
||||||
listView.setEmptyView(findViewById(R.id.track_list_empty_view));
|
listView.setEmptyView(findViewById(R.id.track_list_empty_view));
|
||||||
listView.setOnItemClickListener(new OnItemClickListener() {
|
listView.setOnItemClickListener(new OnItemClickListener() {
|
||||||
@@ -547,7 +556,7 @@ public class TrackListActivity extends AbstractSendToGoogleActivity
|
|||||||
feedbackMenuItem = menu.findItem(R.id.track_list_feedback);
|
feedbackMenuItem = menu.findItem(R.id.track_list_feedback);
|
||||||
feedbackMenuItem.setVisible(GoogleFeedbackUtils.isAvailable(this));
|
feedbackMenuItem.setVisible(GoogleFeedbackUtils.isAvailable(this));
|
||||||
|
|
||||||
ApiAdapterFactory.getApiAdapter().configureSearchWidget(this, searchMenuItem);
|
ApiAdapterFactory.getApiAdapter().configureSearchWidget(this, searchMenuItem, trackController);
|
||||||
updateMenuItems(recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT);
|
updateMenuItems(recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -640,6 +649,13 @@ public class TrackListActivity extends AbstractSendToGoogleActivity
|
|||||||
}
|
}
|
||||||
return super.onKeyUp(keyCode, event);
|
return super.onKeyUp(keyCode, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onSearchRequested() {
|
||||||
|
// Hide trackController when search dialog is shown
|
||||||
|
trackController.hide();
|
||||||
|
return super.onSearchRequested();
|
||||||
|
};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TrackRecordingServiceConnection getTrackRecordingServiceConnection() {
|
public TrackRecordingServiceConnection getTrackRecordingServiceConnection() {
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package com.google.android.apps.mytracks.util;
|
package com.google.android.apps.mytracks.util;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.ContextualActionModeCallback;
|
import com.google.android.apps.mytracks.ContextualActionModeCallback;
|
||||||
|
import com.google.android.apps.mytracks.TrackController;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.annotation.TargetApi;
|
import android.annotation.TargetApi;
|
||||||
@@ -198,11 +199,26 @@ public class Api11Adapter extends Api10Adapter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void configureSearchWidget(Activity activity, final MenuItem menuItem) {
|
public void configureSearchWidget(
|
||||||
|
Activity activity, 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();
|
||||||
searchView.setSearchableInfo(searchManager.getSearchableInfo(activity.getComponentName()));
|
searchView.setSearchableInfo(searchManager.getSearchableInfo(activity.getComponentName()));
|
||||||
searchView.setQueryRefinementEnabled(true);
|
searchView.setQueryRefinementEnabled(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
|
||||||
|
if (trackController != null) {
|
||||||
|
if (hasFocus) {
|
||||||
|
trackController.hide();
|
||||||
|
} else {
|
||||||
|
trackController.show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks.util;
|
package com.google.android.apps.mytracks.util;
|
||||||
|
|
||||||
|
import com.google.android.apps.mytracks.TrackController;
|
||||||
|
|
||||||
import android.annotation.TargetApi;
|
import android.annotation.TargetApi;
|
||||||
import android.app.ActionBar;
|
import android.app.ActionBar;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
@@ -38,16 +40,18 @@ public class Api14Adapter extends Api11Adapter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void configureSearchWidget(Activity activity, final MenuItem menuItem) {
|
public void configureSearchWidget(
|
||||||
super.configureSearchWidget(activity, menuItem);
|
Activity activity, final MenuItem menuItem, TrackController trackController) {
|
||||||
|
super.configureSearchWidget(activity, menuItem, trackController);
|
||||||
SearchView searchView = (SearchView) menuItem.getActionView();
|
SearchView searchView = (SearchView) menuItem.getActionView();
|
||||||
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onQueryTextSubmit(String query) {
|
public boolean onQueryTextSubmit(String query) {
|
||||||
menuItem.collapseActionView();
|
menuItem.collapseActionView();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@Override
|
|
||||||
|
@Override
|
||||||
public boolean onQueryTextChange(String newText) {
|
public boolean onQueryTextChange(String newText) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -57,7 +61,8 @@ public class Api14Adapter extends Api11Adapter {
|
|||||||
public boolean onSuggestionSelect(int position) {
|
public boolean onSuggestionSelect(int position) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@Override
|
|
||||||
|
@Override
|
||||||
public boolean onSuggestionClick(int position) {
|
public boolean onSuggestionClick(int position) {
|
||||||
menuItem.collapseActionView();
|
menuItem.collapseActionView();
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ package com.google.android.apps.mytracks.util;
|
|||||||
|
|
||||||
import com.google.android.apps.mytracks.Constants;
|
import com.google.android.apps.mytracks.Constants;
|
||||||
import com.google.android.apps.mytracks.ContextualActionModeCallback;
|
import com.google.android.apps.mytracks.ContextualActionModeCallback;
|
||||||
|
import com.google.android.apps.mytracks.TrackController;
|
||||||
import com.google.android.apps.mytracks.services.sensors.BluetoothConnectionManager;
|
import com.google.android.apps.mytracks.services.sensors.BluetoothConnectionManager;
|
||||||
import com.google.android.apps.mytracks.widgets.TrackWidgetProvider;
|
import com.google.android.apps.mytracks.widgets.TrackWidgetProvider;
|
||||||
import com.google.api.client.http.HttpTransport;
|
import com.google.api.client.http.HttpTransport;
|
||||||
@@ -111,7 +112,8 @@ public class Api8Adapter implements ApiAdapter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void configureSearchWidget(Activity activity, MenuItem menuItem) {
|
public void configureSearchWidget(
|
||||||
|
Activity activity, MenuItem menuItem, TrackController trackController) {
|
||||||
// Do nothing
|
// Do nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
package com.google.android.apps.mytracks.util;
|
package com.google.android.apps.mytracks.util;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.ContextualActionModeCallback;
|
import com.google.android.apps.mytracks.ContextualActionModeCallback;
|
||||||
|
import com.google.android.apps.mytracks.TrackController;
|
||||||
import com.google.api.client.http.HttpTransport;
|
import com.google.api.client.http.HttpTransport;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
@@ -134,8 +135,11 @@ public interface ApiAdapter {
|
|||||||
*
|
*
|
||||||
* @param activity the activity
|
* @param activity the activity
|
||||||
* @param menuItem the search menu item
|
* @param menuItem the search menu item
|
||||||
|
* @param trackController the track controller to hide/show when search widget
|
||||||
|
* is expanded/collapsed. Can be null
|
||||||
*/
|
*/
|
||||||
public void configureSearchWidget(Activity activity, MenuItem menuItem);
|
public void configureSearchWidget(
|
||||||
|
Activity activity, MenuItem menuItem, TrackController trackController);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the search menu selection. Returns true if handled.
|
* Handles the search menu selection. Returns true if handled.
|
||||||
|
|||||||
Reference in New Issue
Block a user