package org.commcare.android.tasks; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; import java.util.ArrayList; import java.util.Calendar; import java.util.Vector; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import org.commcare.android.database.SqlStorage; import org.commcare.android.database.user.models.FormRecord; import org.commcare.android.javarosa.AndroidLogger; import org.commcare.android.models.notifications.NotificationMessageFactory; import org.commcare.android.tasks.ProcessAndSendTask.ProcessIssues; import org.commcare.android.tasks.templates.CommCareTask; import org.commcare.android.util.FileUtil; import org.commcare.android.util.FormUploadUtil; import org.commcare.android.util.ReflectionUtil; import org.commcare.android.util.SessionUnavailableException; import org.commcare.dalvik.activities.CommCareWiFiDirectActivity; import org.commcare.dalvik.application.CommCareApplication; import org.commcare.util.CommCarePlatform; import org.javarosa.core.services.Logger; import org.javarosa.core.services.locale.Localization; import org.javarosa.core.services.storage.StorageFullException; import android.content.Context; import android.os.Environment; import android.util.Log; import android.widget.TextView; /** * @author ctsims * */ public abstract class WipeTask extends CommCareTask<String, String, Boolean, CommCareWiFiDirectActivity>{ Context c; Long[] results; File dumpFolder; public static final int WIPE_TASK_ID = 9213435; DataSubmissionListener formSubmissionListener; CommCarePlatform platform; FormRecord[] records; SqlStorage<FormRecord> storage; private static long MAX_BYTES = (5 * 1048576)-1024; // 5MB less 1KB overhead public WipeTask(Context c, CommCarePlatform platform, FormRecord[] records) throws SessionUnavailableException{ this.c = c; storage = CommCareApplication._().getUserStorage(FormRecord.class); this.taskId = WIPE_TASK_ID; this.records = records; platform = this.platform; } /* (non-Javadoc) * @see android.os.AsyncTask#onProgressUpdate(Progress[]) */ protected void onProgressUpdate(String... values) { super.onProgressUpdate(values); } public void setListeners(DataSubmissionListener submissionListener) { this.formSubmissionListener = submissionListener; } /* * (non-Javadoc) * @see org.commcare.android.tasks.templates.CommCareTask#onPostExecute(java.lang.Object) */ @Override protected void onPostExecute(Boolean result) { super.onPostExecute(result); //These will never get Zero'd otherwise c = null; results = null; } /* * (non-Javadoc) * @see org.commcare.android.tasks.templates.CommCareTask#doTaskBackground(java.lang.Object[]) */ @Override protected Boolean doTaskBackground(String... params) { Log.d(CommCareWiFiDirectActivity.TAG, "doing wipe task in background"); for(int i = 0 ; i < records.length ; ++i) { FormRecord record = records[i]; FormRecordCleanupTask.wipeRecord(c, record); } return true; } }