@Override public Dialog onCreateDialog(Bundle savedInstanceState) { if (savedInstanceState != null) { long objId = savedInstanceState.getLong("objId"); loadFromObj(App.instance().getMusubi().objForId(objId)); } final DbEntryHandler dbType = DbObjects.forType(mType); final List<ObjAction> actions = new ArrayList<ObjAction>(); for (ObjAction action : ObjActions.getObjActions()) { if (action.isActive(getActivity(), dbType, mJson)) { actions.add(action); } } final String[] actionLabels = new String[actions.size()]; int i = 0; for (ObjAction action : actions) { actionLabels[i++] = action.getLabel(getActivity()); } return new AlertDialog.Builder(getActivity()) .setTitle("Handle...") .setItems( actionLabels, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Log.d(TAG, "getting for " + getActivity()); actions.get(which).actOn(getActivity(), dbType, mObj); } }) .create(); }
private String getFeedObjectClause() { // TODO: Enumerate all Object classes, look for FeedRenderables. String[] types = DbObjects.getRenderableTypes(); StringBuffer allowed = new StringBuffer(); for (String type : types) { allowed.append(",'").append(type).append("'"); } return DbObject.TYPE + " in (" + allowed.substring(1) + ") AND " + DbObject.TABLE + "." + DbObject.FEED_NAME + " NOT IN ('direct', 'friend', '')"; }