Browse Source

Merge pull request #4713 from nextcloud/ezaquarii/remove-set-account-from-first-run-activity

Remove out of band setAccount/onAccountSet calls
Tobias Kaminsky 5 years ago
parent
commit
ed8b9cbb72

+ 4 - 2
src/main/java/com/nextcloud/client/onboarding/FirstRunActivity.java

@@ -217,17 +217,19 @@ public class FirstRunActivity extends BaseActivity implements ViewPager.OnPageCh
                 return;
             }
 
-            setAccount(account);
             userAccountManager.setCurrentOwnCloudAccount(account.name);
-            onAccountSet();
 
             Intent i = new Intent(this, FileDisplayActivity.class);
             i.setAction(FileDisplayActivity.RESTART);
             i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
             startActivity(i);
+
+            finish();
         }
     }
 
+
+
     public static FeatureItem[] getFirstRun() {
         return new FeatureItem[]{
                 new FeatureItem(R.drawable.logo, R.string.first_run_1_text, R.string.empty, true, false),

+ 11 - 33
src/main/java/com/owncloud/android/ui/activity/BaseActivity.java

@@ -9,6 +9,7 @@ import android.content.Intent;
 import android.content.SharedPreferences;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.PersistableBundle;
 
 import com.nextcloud.client.account.UserAccountManager;
 import com.nextcloud.client.di.Injectable;
@@ -96,9 +97,10 @@ public abstract class BaseActivity extends AppCompatActivity implements Injectab
         }
     }
 
-    @Override
-    protected void onPostResume() {
-        super.onPostResume();
+    public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
+        super.onCreate(savedInstanceState, persistentState);
+        Account account = accountManager.getCurrentAccount();
+        setAccount(account, false);
     }
 
     @Override
@@ -152,6 +154,11 @@ public abstract class BaseActivity extends AppCompatActivity implements Injectab
         } else {
             swapToDefaultAccount();
         }
+
+        if(currentAccount != null) {
+            storageManager = new FileDataStorageManager(currentAccount, getContentResolver());
+            capabilities = storageManager.getCapability(currentAccount.name);
+        }
     }
 
     /**
@@ -188,26 +195,6 @@ public abstract class BaseActivity extends AppCompatActivity implements Injectab
                 new Handler());
     }
 
-    /**
-     * Called when the ownCloud {@link Account} associated to the Activity was just updated.
-     *
-     * Child classes must grant that state depending on the {@link Account} is updated.
-     */
-    @Deprecated
-    protected void onAccountSet() {
-        if (getAccount() != null) {
-            storageManager = new FileDataStorageManager(getAccount(), getContentResolver());
-            capabilities = storageManager.getCapability(currentAccount.name);
-        } else {
-            Log_OC.e(TAG, "onAccountChanged was called with NULL account associated!");
-        }
-    }
-
-    @Deprecated
-    protected void setAccount(Account account) {
-        currentAccount = account;
-    }
-
     /**
      * Getter for the capabilities of the server where the current OC account lives.
      *
@@ -228,16 +215,7 @@ public abstract class BaseActivity extends AppCompatActivity implements Injectab
     public Account getAccount() {
         return currentAccount;
     }
-
-    @Override
-    protected void onStart() {
-        super.onStart();
-
-        if(currentAccount != null) {
-            onAccountSet();
-        }
-    }
-
+    
     public FileDataStorageManager getStorageManager() {
         return storageManager;
     }

+ 1 - 1
src/main/java/com/owncloud/android/ui/activity/DrawerActivity.java

@@ -1293,7 +1293,7 @@ public abstract class DrawerActivity extends ToolbarActivity
 
             // current account has changed
             if (data.getBooleanExtra(ManageAccountsActivity.KEY_CURRENT_ACCOUNT_CHANGED, false)) {
-                setAccount(accountManager.getCurrentAccount());
+                setAccount(accountManager.getCurrentAccount(), false);
                 updateAccountList();
                 restart();
             } else {

+ 2 - 1
src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -2621,7 +2621,8 @@ public class FileDisplayActivity extends FileActivity
                 return;
             }
 
-            setAccount(newAccount);
+            setAccount(newAccount, false);
+            updateAccountList();
         }
 
         String fileId = String.valueOf(intent.getStringExtra(KEY_FILE_ID));

+ 1 - 4
src/main/java/com/owncloud/android/ui/activity/ManageAccountsActivity.java

@@ -126,15 +126,12 @@ public class ManageAccountsActivity extends FileActivity implements AccountListA
         Account[] accountList = AccountManager.get(this).getAccountsByType(MainApp.getAccountType(this));
         originalAccounts = DisplayUtils.toAccountNameSet(Arrays.asList(accountList));
 
-        Account currentAccount = getUserAccountManager().getCurrentAccount();
+        Account currentAccount = getAccount();
 
         if (currentAccount != null) {
             originalCurrentAccount = currentAccount.name;
         }
 
-        setAccount(currentAccount);
-        onAccountSet();
-
         arbitraryDataProvider = new ArbitraryDataProvider(getContentResolver());
 
         multipleAccountsSupported = getResources().getBoolean(R.bool.multiaccount_support);

+ 1 - 1
src/main/java/com/owncloud/android/ui/activity/NotificationsActivity.java

@@ -127,7 +127,7 @@ public class NotificationsActivity extends FileActivity implements Notifications
 
             if (account != null && (currentAccount == null || !account.equalsIgnoreCase(currentAccount.name))) {
                 accountManager.setCurrentOwnCloudAccount(account);
-                setAccount(getUserAccountManager().getCurrentAccount());
+                setAccount(getUserAccountManager().getCurrentAccount(), false);
                 currentAccount = getAccount();
             }
         }

+ 1 - 3
src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java

@@ -208,8 +208,6 @@ public class ReceiveExternalFilesActivity extends FileActivity
             Log_OC.i(TAG, "No ownCloud account is available");
             DialogNoAccount dialog = new DialogNoAccount();
             dialog.show(getSupportFragmentManager(), null);
-        } else if (!savedAccount) {
-            setAccount(accounts[0]);
         }
 
         if (!somethingToUpload()) {
@@ -680,7 +678,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
                 // there is no need for checking for is there more then one
                 // account at this point
                 // since account setup can set only one account at time
-                setAccount(accounts[0]);
+                setAccount(accounts[0], false);
                 populateDirectoryList();
             }
         }

+ 1 - 1
src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.java

@@ -132,7 +132,7 @@ public class SyncedFoldersActivity extends FileActivity implements SyncedFolderA
 
             if (account != null && currentAccount != null && !account.equalsIgnoreCase(currentAccount.name)) {
                 accountManager.setCurrentOwnCloudAccount(account);
-                setAccount(getUserAccountManager().getCurrentAccount());
+                setAccount(getUserAccountManager().getCurrentAccount(), false);
             }
 
             path = getIntent().getStringExtra(MediaFoldersDetectionJob.KEY_MEDIA_FOLDER_PATH);

+ 0 - 3
src/main/java/com/owncloud/android/ui/activity/UserInfoActivity.java

@@ -135,9 +135,6 @@ public class UserInfoActivity extends FileActivity implements Injectable {
         setContentView(R.layout.user_info_layout);
         unbinder = ButterKnife.bind(this);
 
-        setAccount(getUserAccountManager().getCurrentAccount());
-        onAccountSet();
-
         boolean useBackgroundImage = URLUtil.isValidUrl(
                 getStorageManager().getCapability(account.name).getServerBackground());