wip
[pub/Android/ownCloud.git] / src / com / owncloud / android / ui / activity / StorageMigrationActivity.java
index bc05179..ee4f08e 100644 (file)
@@ -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())