package org.commcare.tasks;
import android.content.Context;
import android.util.Log;
import org.commcare.activities.CommCareWiFiDirectActivity;
import org.commcare.logging.AndroidLogger;
import org.commcare.android.database.user.models.FormRecord;
import org.commcare.tasks.templates.CommCareTask;
/**
* Removes all of the form records from storage after they've been transferred.
*
* @author wspride
*/
public abstract class WipeTask extends CommCareTask<String, String, Boolean, CommCareWiFiDirectActivity> {
private final Context c;
public static final int WIPE_TASK_ID = 9213435;
private final FormRecord[] records;
public WipeTask(Context c, FormRecord[] records) {
this.c = c;
this.taskId = WIPE_TASK_ID;
this.records = records;
TAG = AndroidLogger.TYPE_FORM_DUMP;
}
@Override
protected Boolean doTaskBackground(String... params) {
if(records == null){
// That's OK, might just be transferring already transferred forms.
return true;
}
Log.d(TAG, "Wiping sent form records");
for (FormRecord record : records) {
record.logPendingDeletion(TAG, "we have just completed a wifi direct transfer");
FormRecordCleanupTask.wipeRecord(c, record);
}
Log.d(TAG, "Successfully wiped: " + records.length + " FormRecords.");
return true;
}
}