Andy Scherzinger 8 gadi atpakaļ
vecāks
revīzija
71a44db0dd

+ 12 - 11
src/com/owncloud/android/files/FileMenuFilter.java

@@ -35,6 +35,8 @@ import com.owncloud.android.ui.activity.ComponentsGetter;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
+import java.util.Iterator;
 import java.util.List;
 
 /**
@@ -45,7 +47,7 @@ public class FileMenuFilter {
 
     private static final int SINGLE_SELECT_ITEMS = 1;
 
-    private List<OCFile> mFiles;
+    private Collection<OCFile> mFiles;
     private ComponentsGetter mComponentsGetter;
     private Account mAccount;
     private Context mContext;
@@ -53,12 +55,12 @@ public class FileMenuFilter {
     /**
      * Constructor
      *
-     * @param targetFiles       List of {@link OCFile} file targets of the action to filter in the {@link Menu}.
+     * @param targetFiles       Collection of {@link OCFile} file targets of the action to filter in the {@link Menu}.
      * @param account           ownCloud {@link Account} holding targetFile.
      * @param cg                Accessor to app components, needed to access synchronization services
      * @param context           Android {@link Context}, needed to access build setup resources.
      */
-    public FileMenuFilter(List<OCFile> targetFiles, Account account, ComponentsGetter cg,
+    public FileMenuFilter(Collection<OCFile> targetFiles, Account account, ComponentsGetter cg,
                           Context context) {
         mFiles = targetFiles;
         mAccount = account;
@@ -261,8 +263,8 @@ public class FileMenuFilter {
     private boolean anyFileSynchronizing(OperationsServiceBinder opsBinder) {
         boolean synchronizing = false;
         if (opsBinder != null) {
-            for (int i=0; !synchronizing && i < mFiles.size(); i++) {
-                synchronizing = opsBinder.isSynchronizing(mAccount, mFiles.get(i));
+            for (Iterator<OCFile> iterator = mFiles.iterator(); !synchronizing && iterator.hasNext();) {
+                synchronizing = opsBinder.isSynchronizing(mAccount, iterator.next());
             }
         }
         return synchronizing;
@@ -271,8 +273,8 @@ public class FileMenuFilter {
     private boolean anyFileDownloading(FileDownloaderBinder downloaderBinder) {
         boolean downloading = false;
         if (downloaderBinder != null) {
-            for (int i=0; !downloading && i < mFiles.size(); i++) {
-                downloading = downloaderBinder.isDownloading(mAccount, mFiles.get(i));
+            for (Iterator<OCFile> iterator = mFiles.iterator(); !downloading && iterator.hasNext();) {
+                downloading = downloaderBinder.isDownloading(mAccount, iterator.next());
             }
         }
         return downloading;
@@ -281,8 +283,8 @@ public class FileMenuFilter {
     private boolean anyFileUploading(FileUploaderBinder uploaderBinder) {
         boolean uploading = false;
         if (uploaderBinder != null) {
-            for (int i=0; !uploading && i < mFiles.size(); i++) {
-                uploading = uploaderBinder.isUploading(mAccount, mFiles.get(i));
+            for (Iterator<OCFile> iterator = mFiles.iterator(); !uploading && iterator.hasNext();) {
+                uploading = uploaderBinder.isUploading(mAccount, iterator.next());
             }
         }
         return uploading;
@@ -293,7 +295,7 @@ public class FileMenuFilter {
     }
 
     private boolean isSingleFile() {
-        return isSingleSelection() && !mFiles.get(0).isFolder();
+        return isSingleSelection() && !mFiles.iterator().next().isFolder();
     }
 
     private boolean allFiles() {
@@ -335,5 +337,4 @@ public class FileMenuFilter {
         }
         return true;
     }
-
 }

+ 11 - 11
src/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -40,20 +40,16 @@ import android.os.Build;
 import android.os.Bundle;
 import android.os.IBinder;
 import android.os.Parcelable;
-import android.support.design.widget.NavigationView;
 import android.support.design.widget.Snackbar;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentTransaction;
 import android.support.v4.content.ContextCompat;
-import android.support.v4.view.GravityCompat;
 import android.support.v7.app.AlertDialog;
-import android.support.v7.widget.Toolbar;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
-import android.widget.ProgressBar;
 import android.widget.Toast;
 
 import com.owncloud.android.MainApp;
@@ -94,9 +90,9 @@ import com.owncloud.android.utils.PermissionUtil;
 
 import java.io.File;
 import java.util.ArrayList;
-import java.util.List;
+import java.util.Collection;
 
-import static com.owncloud.android.db.PreferenceManager.*;
+import static com.owncloud.android.db.PreferenceManager.getSortOrder;
 
 /**
  * Displays, what files the user has available in his ownCloud. This is the main view.
@@ -970,9 +966,7 @@ public class FileDisplayActivity extends HookActivity
                             if (synchResult != null && !synchResult.isSuccess()) {
                                 /// TODO refactor and make common
 
-                                if (ResultCode.UNAUTHORIZED.equals(synchResult.getCode()) ||
-                                    (synchResult.isException() && synchResult.getException()
-                                        instanceof AuthenticatorException)) {
+                                if (checkForRemoteOperationError(synchResult)) {
 
                                     requestCredentialsUpdate(context);
 
@@ -1007,6 +1001,12 @@ public class FileDisplayActivity extends HookActivity
         }
     }
 
+    private boolean checkForRemoteOperationError(RemoteOperationResult syncResult) {
+        return ResultCode.UNAUTHORIZED.equals(syncResult.getCode()) ||
+                (syncResult.isException() && syncResult.getException()
+                        instanceof AuthenticatorException);
+    }
+
     /**
      * Show a text message on screen view for notifying user if content is
      * loading or folder is empty
@@ -1745,9 +1745,9 @@ public class FileDisplayActivity extends HookActivity
     /**
      * Request stopping all upload/download operations in progress over the given {@link OCFile} files.
      *
-     * @param files list of {@link OCFile} files which operations are wanted to be cancel
+     * @param files collection of {@link OCFile} files which operations are wanted to be cancel
      */
-    public void cancelTransference(List<OCFile> files) {
+    public void cancelTransference(Collection<OCFile> files) {
         for(OCFile file: files) {
             cancelTransference(file);
         }

+ 2 - 14
src/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java

@@ -35,7 +35,6 @@ import android.content.DialogInterface.OnCancelListener;
 import android.content.DialogInterface.OnClickListener;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.SharedPreferences;
 import android.content.res.Resources.NotFoundException;
 import android.os.Bundle;
 import android.os.Parcelable;
@@ -269,19 +268,8 @@ public class ReceiveExternalFilesActivity extends FileActivity
             CharSequence dialogItems[] = new CharSequence[accounts.length];
             OwnCloudAccount oca;
             for (int i = 0; i < dialogItems.length; ++i) {
-                try {
-                    oca = new OwnCloudAccount(accounts[i], this);
-                    dialogItems[i] =
-                        oca.getDisplayName() + " @ " +
-                        DisplayUtils.convertIdn(
-                            accounts[i].name.substring(accounts[i].name.lastIndexOf("@") + 1),
-                            false
-                        );
-
-                } catch (Exception e) {
-                    Log_OC.w(TAG, "Couldn't read display name of account; using account name instead");
-                    dialogItems[i] = DisplayUtils.convertIdn(accounts[i].name, false);
-                }
+                dialogItems[i] = DisplayUtils.getAccountNameDisplayText(
+                        this, accounts[i], accounts[i].name, DisplayUtils.convertIdn(accounts[i].name, false));
             }
             builder.setTitle(R.string.common_choose_account);
             builder.setItems(dialogItems, new OnClickListener() {

+ 5 - 12
src/com/owncloud/android/ui/adapter/ExpandableUploadListAdapter.java

@@ -45,7 +45,6 @@ import com.owncloud.android.datamodel.UploadsStorageManager.UploadStatus;
 import com.owncloud.android.db.OCUpload;
 import com.owncloud.android.db.UploadResult;
 import com.owncloud.android.files.services.FileUploader;
-import com.owncloud.android.lib.common.OwnCloudAccount;
 import com.owncloud.android.lib.common.network.OnDatatransferProgressListener;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.ui.activity.FileActivity;
@@ -241,17 +240,11 @@ public class ExpandableUploadListAdapter extends BaseExpandableListAdapter imple
             uploadDateTextView.setText(dateString);
 
             TextView accountNameTextView = (TextView) view.findViewById(R.id.upload_account);
-            try {
-                Account account = AccountUtils.getOwnCloudAccountByName(mParentActivity, upload.getAccountName());
-                OwnCloudAccount oca = new OwnCloudAccount(account, mParentActivity);
-                accountNameTextView.setText(
-                    oca.getDisplayName() + " @ " +
-                    DisplayUtils.convertIdn(account.name.substring(account.name.lastIndexOf("@") + 1), false)
-                );
-            } catch (Exception e) {
-                Log_OC.w(TAG, "Couldn't get display name for account, using old style");
-                accountNameTextView.setText(upload.getAccountName());
-            }
+            Account account = AccountUtils.getOwnCloudAccountByName(mParentActivity, upload.getAccountName());
+            accountNameTextView.setText(
+                    DisplayUtils.getAccountNameDisplayText(
+                            mParentActivity, account, account.name, upload.getAccountName())
+            );
 
             TextView statusTextView = (TextView) view.findViewById(R.id.upload_status);
 

+ 5 - 4
src/com/owncloud/android/ui/dialog/RemoveFilesDialogFragment.java

@@ -35,11 +35,12 @@ import com.owncloud.android.ui.activity.ComponentsGetter;
 import com.owncloud.android.ui.dialog.ConfirmationDialogFragment.ConfirmationDialogFragmentListener;
 
 import java.util.ArrayList;
+import java.util.Collection;
 
 public class RemoveFilesDialogFragment extends ConfirmationDialogFragment
 implements ConfirmationDialogFragmentListener {
 
-    private ArrayList<OCFile> mTargetFiles;
+    private Collection<OCFile> mTargetFiles;
 
     private static final String ARG_TARGET_FILES = "TARGET_FILES";
 
@@ -58,9 +59,9 @@ implements ConfirmationDialogFragmentListener {
         boolean containsDown = false;
         boolean containsFavorite = false;
         for (OCFile file: files) {
-            if (file.isFolder()) containsFolder = true;
-            if (file.isDown()) containsDown = true;
-            if (file.isFavorite()) containsFavorite = true;
+            containsFolder |= file.isFolder();
+            containsDown |= file.isDown();
+            containsFavorite |= file.isFavorite();
         }
 
         if (files.size() == 1) {

+ 22 - 0
src/com/owncloud/android/utils/DisplayUtils.java

@@ -47,6 +47,7 @@ import com.owncloud.android.R;
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.datamodel.ThumbnailsCacheManager;
+import com.owncloud.android.lib.common.OwnCloudAccount;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.ui.TextDrawable;
 import com.owncloud.android.ui.activity.ToolbarActivity;
@@ -173,6 +174,27 @@ public class DisplayUtils {
         }
     }
 
+    /**
+     * creates the display string for an account.
+     *
+     * @param context the actual activity
+     * @param savedAccount the actual, saved account
+     * @param accountName the account name
+     * @param fallbackString String to be used in case of an error
+     * @return the display string for the given account data
+     */
+    public static String getAccountNameDisplayText(Context context, Account savedAccount, String accountName, String
+            fallbackString) {
+        try {
+            return new OwnCloudAccount(savedAccount, context).getDisplayName()
+                    + " @ "
+                    + convertIdn(accountName.substring(accountName.lastIndexOf("@") + 1), false);
+        } catch (Exception e) {
+            Log_OC.w(TAG, "Couldn't get display name for account, using old style");
+            return fallbackString;
+        }
+    }
+
     /**
      * calculates the relative time string based on the given modificaion timestamp.
      *