X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/c5371b609b4266c5d885b1003440d2c0064f11eb..b29ba035f8fa516b74d814d831a5928a8ab795de:/src/com/owncloud/android/ui/activity/StorageMigrationActivity.java diff --git a/src/com/owncloud/android/ui/activity/StorageMigrationActivity.java b/src/com/owncloud/android/ui/activity/StorageMigrationActivity.java index 243e85ff..ee4f08e1 100644 --- a/src/com/owncloud/android/ui/activity/StorageMigrationActivity.java +++ b/src/com/owncloud/android/ui/activity/StorageMigrationActivity.java @@ -106,10 +106,6 @@ public class StorageMigrationActivity extends AppCompatActivity { int getResId() { return mResId; } } - private class MigrationCleanupException extends Exception { - MigrationCleanupException() {} - } - @Override protected Integer doInBackground(String... args) { @@ -152,10 +148,6 @@ public class StorageMigrationActivity extends AppCompatActivity { rollback(); Log_OC.startLogging(mStorageSource); return e.getResId(); - } catch (MigrationCleanupException e) { - Log_OC.w(TAG, "Migration cleanup step failed"); - Log_OC.startLogging(mStorageSource); - return 0; } finally { publishProgress(mProgress++, R.string.file_migration_restoring_accounts_configuration); restoreAccountsSyncStatus(ocAuthority, ocAccounts, oldAutoSync); @@ -246,12 +238,21 @@ public class StorageMigrationActivity extends AppCompatActivity { } } - void cleanup() throws MigrationCleanupException { + void cleanup() { File srcFile = new File(mStorageSource + File.separator + MainApp.getDataFolder()); - if (!srcFile.delete()) - throw new MigrationCleanupException(); + if (!deleteRecursive(srcFile)) + Log_OC.w(TAG, "Migration cleanup step failed"); + } + + boolean deleteRecursive(File f) { + boolean res = true; + if (f.isDirectory()) + for (File c : f.listFiles()) + res = deleteRecursive(c) && res; + return f.delete() && res; } + void rollback() { File dstFile = new File(mStorageTarget + File.separator + MainApp.getDataFolder()); if (dstFile.exists())