package com.doplgangr.secrecy.Jobs; import com.doplgangr.secrecy.Util; import com.path.android.jobqueue.Job; import com.path.android.jobqueue.Params; import java.io.BufferedOutputStream; import java.io.OutputStream; public class ShredFileJob extends Job { public static final int PRIORITY = 1; private OutputStream fileOs = null; private long size; public ShredFileJob(OutputStream os, long size) { super(new Params(PRIORITY)); this.fileOs = os; this.size = size; } @Override public void onAdded() { } @Override public void onRun() throws Throwable { Util.log("Shreddd"); // Double check OutputStream os = new BufferedOutputStream(fileOs); try { for (int i = 0; i < size; i++) os.write(0); } finally { os.close(); } } @Override protected void onCancel() { //Rarhhh go die. } @Override protected boolean shouldReRunOnThrowable(Throwable throwable) { Util.log("Shredding retry"); return true; } @Override protected int getRetryLimit() { return 10; //This is quite reasonable. Isn't it? } }