package edu.mit.media.funf.action;
import java.io.File;
import edu.mit.media.funf.config.Configurable;
import edu.mit.media.funf.storage.FileArchive;
import edu.mit.media.funf.util.LogUtil;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class RunArchiveAction extends Action {
@Configurable
private FileArchive archive = null;
@Configurable
private SQLiteOpenHelper dbHelper = null;
RunArchiveAction() {
}
public RunArchiveAction(FileArchive archive, SQLiteOpenHelper dbHelper) {
this.archive = archive;
this.dbHelper = dbHelper;
}
protected void execute() {
Log.d(LogUtil.TAG, "running archive");
SQLiteDatabase db = dbHelper.getWritableDatabase();
// TODO: add check to make sure this is not empty
File dbFile = new File(db.getPath());
db.close();
if (archive.add(dbFile)) {
dbFile.delete();
}
dbHelper.getWritableDatabase(); // Build new database
Log.d(LogUtil.TAG, "archived!");
setHandler(null); // free system resources
}
protected boolean isLongRunningAction() {
return true;
}
}