X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/c53989f562d8ed6bb7c2770e875f9f44904dfadc..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 bc051799..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) { @@ -125,6 +121,8 @@ public class StorageMigrationActivity extends AppCompatActivity { Account[] ocAccounts = AccountManager.get(context).getAccountsByType(MainApp.getAccountType()); boolean[] oldAutoSync = new boolean[ocAccounts.length]; + Log_OC.stopLogging(); + try { publishProgress(mProgress++, R.string.file_migration_checking_destination); @@ -148,15 +146,14 @@ public class StorageMigrationActivity extends AppCompatActivity { } catch (MigrationException e) { rollback(); + Log_OC.startLogging(mStorageSource); return e.getResId(); - } catch (MigrationCleanupException e) { - Log_OC.w(TAG, "Migration cleanup step failed"); - return 0; } finally { publishProgress(mProgress++, R.string.file_migration_restoring_accounts_configuration); restoreAccountsSyncStatus(ocAuthority, ocAccounts, oldAutoSync); } + Log_OC.startLogging(mStorageTarget); publishProgress(mProgress++, R.string.file_migration_ok_finished); return 0; @@ -241,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())