浏览代码

Migrate FileDisplayActivity to User model

1. server version is available from User, so we can skip
   redundant retrieval via Account
2. last displayed account can be safely changed to User,
   eliminating name comparison complexities

Signed-off-by: Chris Narkiewicz <hello@ezaquarii.com>
Chris Narkiewicz 3 年之前
父节点
当前提交
c4116456fa
共有 1 个文件被更改,包括 8 次插入22 次删除
  1. 8 22
      src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

+ 8 - 22
src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -26,7 +26,6 @@
 package com.owncloud.android.ui.activity;
 
 import android.Manifest;
-import android.accounts.Account;
 import android.accounts.AuthenticatorException;
 import android.app.Activity;
 import android.content.BroadcastReceiver;
@@ -72,7 +71,6 @@ import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
 import com.owncloud.android.files.services.FileUploader;
 import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
 import com.owncloud.android.files.services.NameCollisionPolicy;
-import com.owncloud.android.lib.common.accounts.AccountUtils;
 import com.owncloud.android.lib.common.operations.RemoteOperation;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
@@ -217,7 +215,7 @@ public class FileDisplayActivity extends FileActivity
 
     private SearchView searchView;
     private PlayerServiceConnection mPlayerConnection;
-    private Account mLastDisplayedAccount;
+    private Optional<User> lastDisplayedUser;
     private int menuItemId = -1;
 
     @Inject
@@ -388,18 +386,12 @@ public class FileDisplayActivity extends FileActivity
     }
 
     private void checkOutdatedServer() {
-        Account account = getAccount();
-
-        if (getResources().getBoolean(R.bool.show_outdated_server_warning) && account != null) {
-            OwnCloudVersion serverVersion = AccountUtils.getServerVersionForAccount(account, this);
-
-            if (serverVersion == null) {
-                serverVersion = getCapabilities().getVersion();
-            }
+        Optional<User> user = getUser();
 
+        if (getResources().getBoolean(R.bool.show_outdated_server_warning) && user.isPresent()) {
+            OwnCloudVersion serverVersion = user.get().getServer().getVersion();
             // show outdated warning
-            if (getResources().getBoolean(R.bool.show_outdated_server_warning) &&
-                MainApp.OUTDATED_SERVER_VERSION.isSameMajorVersion(serverVersion) &&
+            if (MainApp.OUTDATED_SERVER_VERSION.isSameMajorVersion(serverVersion) &&
                 getCapabilities().getExtendedSupport().isFalse()) {
                 DisplayUtils.showServerOutdatedSnackbar(this, Snackbar.LENGTH_LONG);
             }
@@ -2422,10 +2414,8 @@ public class FileDisplayActivity extends FileActivity
             DisplayUtils.setAvatar(user, this, getResources()
                                        .getDimension(R.dimen.nav_drawer_menu_avatar_radius), getResources(),
                                    mSwitchAccountButton, this);
-
-            final String lastDisplayedAccountName = mLastDisplayedAccount != null ? mLastDisplayedAccount.name : null;
-            final boolean accountChanged = !user.getAccountName().equals(lastDisplayedAccountName);
-            if (accountChanged) {
+            final boolean userChanged = !user.nameEquals(lastDisplayedUser.orElse(null));
+            if (userChanged) {
                 Log_OC.d(TAG, "Initializing Fragments in onAccountChanged..");
                 initFragmentsWithFile(user, file);
                 if (file.isFolder() && TextUtils.isEmpty(searchQuery)) {
@@ -2435,11 +2425,7 @@ public class FileDisplayActivity extends FileActivity
                 updateActionBarTitleAndHomeButton(file.isFolder() ? null : file);
             }
         }
-        if (optionalUser.isPresent()) {
-            mLastDisplayedAccount = optionalUser.get().toPlatformAccount();
-        } else {
-            mLastDisplayedAccount = null;
-        }
+        lastDisplayedUser = optionalUser;
 
         EventBus.getDefault().post(new TokenPushEvent());
         checkForNewDevVersionNecessary(getApplicationContext());