From: David A. Velasco Date: Fri, 19 Jun 2015 12:06:35 +0000 (+0200) Subject: Automatic grid view is only enabled if server supports remote thumbnails and ALL... X-Git-Tag: oc-android-1.7.2~1^2~5^2^2~4 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/1a3a1502485968a77640c08ae6f6b1bc06de1164?hp=--cc grid view is only enabled if server supports remote thumbnails and ALL the files in a folder are images --- 1a3a1502485968a77640c08ae6f6b1bc06de1164 diff --git a/owncloud-android-library b/owncloud-android-library index 8f87ad78..c84530d3 160000 --- a/owncloud-android-library +++ b/owncloud-android-library @@ -1 +1 @@ -Subproject commit 8f87ad78f752fd44c419d1595482247cae5d056b +Subproject commit c84530d359e40f2a13827c796091bb26780683a7 diff --git a/src/com/owncloud/android/authentication/AccountUtils.java b/src/com/owncloud/android/authentication/AccountUtils.java index 9afa819c..b535fc90 100644 --- a/src/com/owncloud/android/authentication/AccountUtils.java +++ b/src/com/owncloud/android/authentication/AccountUtils.java @@ -23,6 +23,7 @@ package com.owncloud.android.authentication; import java.util.Locale; import com.owncloud.android.MainApp; +import com.owncloud.android.lib.common.OwnCloudAccount; import com.owncloud.android.lib.common.accounts.AccountTypeUtils; import com.owncloud.android.lib.common.accounts.AccountUtils.Constants; import com.owncloud.android.lib.common.utils.Log_OC; @@ -267,4 +268,20 @@ public class AccountUtils { return url; } + /** + * Access the version of the OC server corresponding to an account SAVED IN THE ACCOUNTMANAGER + * + * @param account ownCloud account + * @return Version of the OC server corresponding to account, according to the data saved + * in the system AccountManager + */ + public static OwnCloudVersion getServerVersion(Account account) { + if (account != null) { + AccountManager accountMgr = AccountManager.get(MainApp.getAppContext()); + String serverVersionStr = accountMgr.getUserData(account, Constants.KEY_OC_VERSION); + return new OwnCloudVersion(serverVersionStr); + } + return null; + } + } diff --git a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java index dd8ed029..e56c6e8b 100644 --- a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java +++ b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java @@ -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();