package semtex.archery.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import semtex.archery.data.DatabaseHelper;
import semtex.archery.data.ExternalStorageManager;
import android.os.Environment;
import android.util.Log;
public class BackupRestoreHelper {
public static final String TAG = BackupRestoreHelper.class.toString();
public static final String DB_LOCATION_INTERN_PATH = "/data/data/semtex.archery/databases/";
public static final File DB_LOCATION_INTERN = new File(DB_LOCATION_INTERN_PATH + DatabaseHelper.DATABASE_NAME);
public static final File DB_LOCATION_SDCARD = new File(ExternalStorageManager.getApplicationPath() + "/"
+ DatabaseHelper.DATABASE_NAME);
public static boolean backupDB() {
if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
return false;
}
try {
ExternalStorageManager.getApplicationPath().mkdirs();
FileUtils.copyFile(new FileInputStream(DB_LOCATION_INTERN), new FileOutputStream(DB_LOCATION_SDCARD));
} catch(final Exception e) {
Log.e(TAG, "backup not successfull", e);
return false;
}
return true;
} // backupDB
public static boolean restoreDB() {
if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) || !DB_LOCATION_SDCARD.exists()) {
return false;
}
try {
new File(DB_LOCATION_INTERN_PATH).mkdirs();
FileUtils.copyFile(new FileInputStream(DB_LOCATION_SDCARD), new FileOutputStream(DB_LOCATION_INTERN));
} catch(final Exception e) {
Log.e(TAG, "restore not successfull", e);
return false;
} // catch
return true;
} // restoreDB
}