private boolean userCanEditAtLeastOneSchedule(Experiment experiment) { List<ExperimentGroup> groups = experiment.getExperimentDAO().getGroups(); for (ExperimentGroup experimentGroup : groups) { List<ActionTrigger> actionTriggers = experimentGroup.getActionTriggers(); for (ActionTrigger actionTrigger : actionTriggers) { if (actionTrigger instanceof ScheduleTrigger) { ScheduleTrigger scheduleTrigger = (ScheduleTrigger) actionTrigger; List<Schedule> schedules = scheduleTrigger.getSchedules(); for (Schedule schedule : schedules) { if (schedule.getUserEditable()) { boolean userCanOnlyEditOnJoin = schedule.getOnlyEditableOnJoin(); if (!userCanOnlyEditOnJoin) { return true; } } } } } } return false; }
@Override public void onClick(final View v) { final int position = list.getPositionForView(v); if (position == ListView.INVALID_POSITION) { return; } else { final Long experimentServerId = (Long) v.getTag(); final Experiment experiment = experiments.get(position); final List<ExperimentGroup> groups = experiment.getExperimentDAO().getGroups(); if (v.getId() == R.id.menuButton) { showPopup(experiment, v); } else { Intent experimentIntent = null; if (groups.size() > 1) { experimentIntent = new Intent(MyExperimentsActivity.this, ExperimentGroupPicker.class); experimentIntent.putExtra( ExperimentGroupPicker.SHOULD_GO_TO_RENDER_NEXT, ExperimentGroupPicker.RENDER_NEXT); } else { Class clazz = null; final ExperimentGroup experimentGroup = groups.get(0); if (experimentGroup.getCustomRendering()) { clazz = ExperimentExecutorCustomRendering.class; } else { clazz = ExperimentExecutor.class; } experimentIntent = new Intent(MyExperimentsActivity.this, clazz); experimentIntent.putExtra( Experiment.EXPERIMENT_GROUP_NAME_EXTRA_KEY, experimentGroup.getName()); } experimentIntent.putExtra( Experiment.EXPERIMENT_SERVER_ID_EXTRA_KEY, experimentServerId); startActivity(experimentIntent); } } }