/** * */ package org.commcare.android.tasks.templates; /** * @author ctsims * */ public interface CommCareTaskConnector<R> { /* IMPORTANT: Any implementing class of CommCareTaskConnector should be * implemented such that it will only automatically manage the dialog of a * connected task IF the task id is non-negative. If the user does NOT want to * implement a dialog, or is implementing the dialog in a different way, * they should be able to use a negative task id in order to avoid this */ public <A, B, C> void connectTask(CommCareTask<A,B,C,R> task); /* Should call showProgressDialog() for a task if its id * is non-negative, and if there is no dialog already showing */ public void startBlockingForTask(int id); /* Should call dismissProgressDialog() for a task if its id * is non-negative, and if shouldDismissDialog is true (this * flag should be controlled by the task transition) */ public void stopBlockingForTask(int id); public void taskCancelled(int id); public R getReceiver(); /* Should be called at the beginning of onPostExecute or onCancelled * for any CommCareTask, indicating that we are starting a potential * transition from one task to another (if the end of the first task * triggers the start of another) */ public void startTaskTransition(); /* Should be called at the end of onPreExecute or onCancelled * for any CommCareTask, indicating that we are ending a potential * transition from one task to another */ public void stopTaskTransition(); }