/** * */ package ma.car.tishadow.bundle.update.tasks; import java.io.File; import java.io.IOException; import ma.car.tishadow.bundle.update.RequestProxy; import org.apache.commons.io.FileUtils; import org.appcelerator.kroll.common.Log; /** * Represents a single task to backup current application resource into backup directory, which will be used to compare with latest bundle contents, and apply * the update into this backup directory. * @author wei.ding */ public class BackupAppTask implements Task { private static final String TAG = "BackupAppTask"; /* * (non-javadoc) * @see ma.car.tishadow.bundle.update.tasks.Task#execute(ma.car.tishadow.bundle.update.tasks.TaskContext) */ @Override public boolean execute(RequestProxy context) { Log.v(TAG, "Starting backup application task..."); File backupDirectory = context.getBackupDirectory(); File sourceDirectory = context.getApplicationResourcesDirectory(); Log.i(TAG, "Backup application resources '" + sourceDirectory + "' -> '" + backupDirectory + "'..."); try { if (backupDirectory.exists()) { FileUtils.deleteDirectory(backupDirectory); } if (sourceDirectory.exists()) { FileUtils.copyDirectory(sourceDirectory, backupDirectory); } Log.d(TAG, "Backup application resources done."); return true; } catch (IOException e) { Log.e(TAG, "Failed to backup application resources.", e); } return false; } }