Automatic grid view is only enabled if server supports remote thumbnails and ALL...
authorDavid A. Velasco <dvelasco@solidgear.es>
Fri, 19 Jun 2015 12:06:35 +0000 (14:06 +0200)
committerDavid A. Velasco <dvelasco@solidgear.es>
Thu, 25 Jun 2015 07:10:47 +0000 (09:10 +0200)
owncloud-android-library
src/com/owncloud/android/authentication/AccountUtils.java
src/com/owncloud/android/ui/fragment/OCFileListFragment.java

index 8f87ad7..c84530d 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 8f87ad78f752fd44c419d1595482247cae5d056b
+Subproject commit c84530d359e40f2a13827c796091bb26780683a7
index 9afa819..b535fc9 100644 (file)
@@ -23,6 +23,7 @@ package com.owncloud.android.authentication;
 import java.util.Locale;\r
 \r
 import com.owncloud.android.MainApp;\r
+import com.owncloud.android.lib.common.OwnCloudAccount;\r
 import com.owncloud.android.lib.common.accounts.AccountTypeUtils;\r
 import com.owncloud.android.lib.common.accounts.AccountUtils.Constants;\r
 import com.owncloud.android.lib.common.utils.Log_OC;\r
@@ -267,4 +268,20 @@ public class AccountUtils {
         return url;\r
     }\r
 \r
+    /**\r
+     * Access the version of the OC server corresponding to an account SAVED IN THE ACCOUNTMANAGER\r
+     *\r
+     * @param   account     ownCloud account\r
+     * @return              Version of the OC server corresponding to account, according to the data saved\r
+     *                      in the system AccountManager\r
+     */\r
+    public static OwnCloudVersion getServerVersion(Account account) {\r
+        if (account != null) {\r
+            AccountManager accountMgr = AccountManager.get(MainApp.getAppContext());\r
+            String serverVersionStr = accountMgr.getUserData(account, Constants.KEY_OC_VERSION);\r
+            return new OwnCloudVersion(serverVersionStr);\r
+        }\r
+        return null;\r
+    }\r
+\r
 }\r
index dd8ed02..e56c6e8 100644 (file)
@@ -36,10 +36,13 @@ import android.widget.AdapterView;
 import android.widget.AdapterView.AdapterContextMenuInfo;
 
 import com.owncloud.android.R;
+import com.owncloud.android.authentication.AccountUtils;
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.files.FileMenuFilter;
 import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.lib.resources.status.OwnCloudVersion;
+import com.owncloud.android.ui.activity.FileActivity;
 import com.owncloud.android.ui.activity.FileDisplayActivity;
 import com.owncloud.android.ui.activity.FolderPickerActivity;
 import com.owncloud.android.ui.activity.OnEnforceableRefreshListener;
@@ -54,7 +57,7 @@ import com.owncloud.android.utils.FileStorageUtils;
 /**
  * A Fragment that lists all files and folders in a given path.
  * 
- * TODO refactorize to get rid of direct dependency on FileDisplayActivity
+ * TODO refactor to get rid of direct dependency on FileDisplayActivity
  */
 public class OCFileListFragment extends ExtendedListFragment {
     
@@ -68,8 +71,6 @@ public class OCFileListFragment extends ExtendedListFragment {
             
     private static final String KEY_FILE = MY_PACKAGE + ".extra.FILE";
 
-    private final static Double THUMBNAIL_THRESHOLD = 0.5;
-
     private FileFragment.ContainerActivity mContainerActivity;
    
     private OCFile mFile = null;
@@ -429,7 +430,9 @@ public class OCFileListFragment extends ExtendedListFragment {
             setFooterText(generateFooterText(filesCount, foldersCount));
 
             // decide grid vs list view
-            if (((double)imagesCount / (double)filesCount) >= THUMBNAIL_THRESHOLD) {
+            OwnCloudVersion version = AccountUtils.getServerVersion(((FileActivity)mContainerActivity).getAccount());
+            if (version != null && version.supportsRemoteThumbnails() &&
+                    imagesCount == filesCount) {
                 switchToGridView();
             } else {
                 switchToListView();