Fixed class cast exceptions when constructing task list menus

pull/14/head
Sam Bosley 13 years ago
parent 94d19dd988
commit 064818b819

@ -370,19 +370,26 @@ public class TaskListFragment extends ListFragment implements OnScrollListener,
} }
protected void addMenuItem(Menu menu, int title, int imageRes, int id, boolean showAsAction) { protected void addMenuItem(Menu menu, int title, int imageRes, int id, boolean showAsAction) {
TaskListActivity activity = (TaskListActivity) getActivity(); AstridActivity activity = (AstridActivity) getActivity();
if (activity.getFragmentLayout() != AstridActivity.LAYOUT_SINGLE && showAsAction) { if ((activity.getFragmentLayout() != AstridActivity.LAYOUT_SINGLE && showAsAction) || !(activity instanceof TaskListActivity)) {
MenuItem item = menu.add(Menu.NONE, id, Menu.NONE, title); MenuItem item = menu.add(Menu.NONE, id, Menu.NONE, title);
item.setIcon(imageRes); item.setIcon(imageRes);
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); if (activity instanceof TaskListActivity)
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
} else { } else {
activity.getMainMenuPopover().addMenuItem(title, imageRes, id); ((TaskListActivity) activity).getMainMenuPopover().addMenuItem(title, imageRes, id);
} }
} }
protected void addMenuItem(CharSequence title, Drawable image, Intent customIntent, int id) { protected void addMenuItem(Menu menu, CharSequence title, Drawable image, Intent customIntent, int id) {
TaskListActivity activity = (TaskListActivity) getActivity(); Activity activity = getActivity();
activity.getMainMenuPopover().addMenuItem(title, image, customIntent, id); if (activity instanceof TaskListActivity) {
((TaskListActivity) activity).getMainMenuPopover().addMenuItem(title, image, customIntent, id);
} else {
MenuItem item = menu.add(Menu.NONE, id, Menu.NONE, title);
item.setIcon(image);
item.setIntent(customIntent);
}
} }
/** /**
@ -392,12 +399,13 @@ public class TaskListFragment extends ListFragment implements OnScrollListener,
*/ */
@Override @Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
TaskListActivity activity = (TaskListActivity) getActivity(); Activity activity = getActivity();
if (activity == null) if (activity == null)
return; return;
boolean isTablet = AndroidUtilities.isTabletSized(activity); boolean isTablet = AndroidUtilities.isTabletSized(activity);
activity.getMainMenuPopover().clear(); if (activity instanceof TaskListActivity)
((TaskListActivity) activity).getMainMenuPopover().clear();
// --- sort // --- sort
if (allowResorting()) { if (allowResorting()) {
@ -431,7 +439,7 @@ public class TaskListFragment extends ListFragment implements OnScrollListener,
Intent intent = new Intent(AstridApiConstants.ACTION_TASK_LIST_MENU); Intent intent = new Intent(AstridApiConstants.ACTION_TASK_LIST_MENU);
intent.setClassName(resolveInfo.activityInfo.packageName, intent.setClassName(resolveInfo.activityInfo.packageName,
resolveInfo.activityInfo.name); resolveInfo.activityInfo.name);
addMenuItem(resolveInfo.loadLabel(pm), resolveInfo.loadIcon(pm), intent, MENU_ADDON_INTENT_ID); addMenuItem(menu, resolveInfo.loadLabel(pm), resolveInfo.loadIcon(pm), intent, MENU_ADDON_INTENT_ID);
} }
} }

Loading…
Cancel
Save