Clean up api to configure contextual action mode.

This commit is contained in:
Jimmy Shih
2012-05-16 14:14:08 -07:00
parent bb81fd0542
commit d7836cce47
6 changed files with 13 additions and 17 deletions
@@ -146,8 +146,8 @@ public class MarkerListActivity extends AbstractMyTracksActivity {
} }
}; };
listView.setAdapter(resourceCursorAdapter); listView.setAdapter(resourceCursorAdapter);
ApiAdapterFactory.getApiAdapter().configureListViewContextualMenu(this, listView, ApiAdapterFactory.getApiAdapter()
R.menu.list_context_menu, R.id.list_item_name, contextualActionModeCallback); .configureListViewContextualMenu(this, listView, contextualActionModeCallback);
final long firstWaypointId = MyTracksProviderUtils.Factory.get(this) final long firstWaypointId = MyTracksProviderUtils.Factory.get(this)
.getFirstWaypointId(trackId); .getFirstWaypointId(trackId);
@@ -187,8 +187,8 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
} }
}; };
listView.setAdapter(arrayAdapter); listView.setAdapter(arrayAdapter);
ApiAdapterFactory.getApiAdapter().configureListViewContextualMenu(this, listView, ApiAdapterFactory.getApiAdapter()
R.menu.list_context_menu, R.id.list_item_name, contextualActionModeCallback); .configureListViewContextualMenu(this, listView, contextualActionModeCallback);
handleIntent(getIntent()); handleIntent(getIntent());
} }
@@ -241,9 +241,8 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac
} }
}; };
listView.setAdapter(resourceCursorAdapter); listView.setAdapter(resourceCursorAdapter);
ApiAdapterFactory.getApiAdapter().configureListViewContextualMenu( ApiAdapterFactory.getApiAdapter()
this, listView, R.menu.list_context_menu, R.id.list_item_name, .configureListViewContextualMenu(this, listView, contextualActionModeCallback);
contextualActionModeCallback);
getSupportLoaderManager().initLoader(0, null, new LoaderCallbacks<Cursor>() { getSupportLoaderManager().initLoader(0, null, new LoaderCallbacks<Cursor>() {
@Override @Override
@@ -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.maps.mytracks.R;
import android.annotation.TargetApi; import android.annotation.TargetApi;
import android.app.Activity; import android.app.Activity;
@@ -55,7 +56,6 @@ public class Api11Adapter extends Api10Adapter {
@Override @Override
public void configureListViewContextualMenu(final Activity activity, ListView listView, public void configureListViewContextualMenu(final Activity activity, ListView listView,
final int menuId, final int actionModeTitleId,
final ContextualActionModeCallback contextualActionModeCallback) { final ContextualActionModeCallback contextualActionModeCallback) {
listView.setOnItemLongClickListener(new OnItemLongClickListener() { listView.setOnItemLongClickListener(new OnItemLongClickListener() {
ActionMode actionMode; ActionMode actionMode;
@@ -68,7 +68,7 @@ public class Api11Adapter extends Api10Adapter {
actionMode = activity.startActionMode(new ActionMode.Callback() { actionMode = activity.startActionMode(new ActionMode.Callback() {
@Override @Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) { public boolean onCreateActionMode(ActionMode mode, Menu menu) {
mode.getMenuInflater().inflate(menuId, menu); mode.getMenuInflater().inflate(R.menu.list_context_menu, menu);
return true; return true;
} }
@Override @Override
@@ -86,7 +86,7 @@ public class Api11Adapter extends Api10Adapter {
return contextualActionModeCallback.onClick(item.getItemId(), position, id); return contextualActionModeCallback.onClick(item.getItemId(), position, id);
} }
}); });
TextView textView = (TextView) view.findViewById(actionModeTitleId); TextView textView = (TextView) view.findViewById(R.id.list_item_name);
if (textView != null) { if (textView != null) {
actionMode.setTitle(textView.getText()); actionMode.setTitle(textView.getText());
} }
@@ -118,8 +118,8 @@ public class Api7Adapter implements ApiAdapter {
} }
@Override @Override
public void configureListViewContextualMenu(Activity activity, ListView listView, int menuId, public void configureListViewContextualMenu(Activity activity, ListView listView,
int actionModeTitleId, ContextualActionModeCallback contextualActionModeCallback) { ContextualActionModeCallback contextualActionModeCallback) {
activity.registerForContextMenu(listView); activity.registerForContextMenu(listView);
} }
@@ -134,14 +134,11 @@ public interface ApiAdapter {
* *
* @param activity the activity * @param activity the activity
* @param listView the list view * @param listView the list view
* @param menuId the menu resource id
* @param actionModeTitleId the id of the list view item TextView to be used
* as the action mode title
* @param contextualActionModeCallback the callback when an item is selected * @param contextualActionModeCallback the callback when an item is selected
* in the contextual action mode * in the contextual action mode
*/ */
public void configureListViewContextualMenu(Activity activity, ListView listView, int menuId, public void configureListViewContextualMenu(Activity activity, ListView listView,
int actionModeTitleId, ContextualActionModeCallback contextualActionModeCallback); ContextualActionModeCallback contextualActionModeCallback);
/** /**
* Configures the search widget. * Configures the search widget.