From: masensio Date: Tue, 2 Jun 2015 07:38:47 +0000 (+0200) Subject: Filter only '/' character in user input when version of server is 8.1 or later X-Git-Tag: oc-android-1.7.2~1^2~20^2~9 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/afaa2879d192be067cae523b51dad75d89a6c6cb?ds=sidebyside Filter only '/' character in user input when version of server is 8.1 or later --- diff --git a/owncloud-android-library b/owncloud-android-library index e48aa9c3..9fc332ee 160000 --- a/owncloud-android-library +++ b/owncloud-android-library @@ -1 +1 @@ -Subproject commit e48aa9c30447d67b0f8ee2054e1fc826108fc5ec +Subproject commit 9fc332eef9733ad1d857ea2b470b260b271fd3ca diff --git a/src/com/owncloud/android/files/FileOperationsHelper.java b/src/com/owncloud/android/files/FileOperationsHelper.java index b2f74f2f..5e6741bb 100644 --- a/src/com/owncloud/android/files/FileOperationsHelper.java +++ b/src/com/owncloud/android/files/FileOperationsHelper.java @@ -316,5 +316,17 @@ public class FileOperationsHelper { mWaitingForOpId = waitingForOpId; } - + /** + * @return 'True' if the server doesn't need to check forbidden characters + */ + public boolean isVersionWithForbiddenCharacters() { + if (mFileActivity.getAccount() != null) { + AccountManager accountManager = AccountManager.get(mFileActivity); + + String version = accountManager.getUserData(mFileActivity.getAccount(), + Constants.KEY_OC_VERSION); + return (new OwnCloudVersion(version)).isVersionWithForbiddenCharacters(); + } + return false; + } } diff --git a/src/com/owncloud/android/services/OperationsService.java b/src/com/owncloud/android/services/OperationsService.java index fcaf0c79..82114140 100644 --- a/src/com/owncloud/android/services/OperationsService.java +++ b/src/com/owncloud/android/services/OperationsService.java @@ -34,6 +34,7 @@ import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.OwnCloudClientManagerFactory; import com.owncloud.android.lib.common.OwnCloudCredentials; import com.owncloud.android.lib.common.OwnCloudCredentialsFactory; +import com.owncloud.android.lib.common.accounts.AccountUtils; import com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundException; import com.owncloud.android.lib.common.operations.OnRemoteOperationListener; import com.owncloud.android.lib.common.operations.RemoteOperation; @@ -54,6 +55,7 @@ import com.owncloud.android.operations.SynchronizeFolderOperation; import com.owncloud.android.operations.UnshareLinkOperation; import android.accounts.Account; +import android.accounts.AccountManager; import android.accounts.AccountsException; import android.accounts.AuthenticatorException; import android.accounts.OperationCanceledException; @@ -442,6 +444,12 @@ public class OperationsService extends Service { mService); mOwnCloudClient = OwnCloudClientManagerFactory.getDefaultSingleton(). getClientFor(ocAccount, mService); + + AccountManager am = AccountManager.get(mService.getApplicationContext()); + String version = am.getUserData(mLastTarget.mAccount, + AccountUtils.Constants.KEY_OC_VERSION); + mOwnCloudClient.setOwnCloudVersion(version); + mStorageManager = new FileDataStorageManager( mLastTarget.mAccount, mService.getContentResolver() diff --git a/src/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.java b/src/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.java index 170fe08a..5274a1b2 100644 --- a/src/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.java +++ b/src/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.java @@ -21,6 +21,7 @@ package com.owncloud.android.ui.dialog; import com.actionbarsherlock.app.SherlockDialogFragment; +import com.owncloud.android.MainApp; import com.owncloud.android.R; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.lib.resources.files.FileUtils; @@ -52,8 +53,8 @@ extends SherlockDialogFragment implements DialogInterface.OnClickListener { /** * Public factory method to create new CreateFolderDialogFragment instances. * - * @param file File to remove. - * @return Dialog ready to show. + * @param parentFolder Folder to create + * @return Dialog ready to show. */ public static CreateFolderDialogFragment newInstance(OCFile parentFolder) { CreateFolderDialogFragment frag = new CreateFolderDialogFragment(); @@ -106,8 +107,11 @@ extends SherlockDialogFragment implements DialogInterface.OnClickListener { Toast.LENGTH_LONG).show(); return; } - - if (!FileUtils.isValidName(newFolderName)) { + + + if (!FileUtils.isValidName(newFolderName, + ((ComponentsGetter)getSherlockActivity()). + getFileOperationsHelper().isVersionWithForbiddenCharacters())) { Toast.makeText( getSherlockActivity(), R.string.filename_forbidden_characters, diff --git a/src/com/owncloud/android/ui/dialog/RenameFileDialogFragment.java b/src/com/owncloud/android/ui/dialog/RenameFileDialogFragment.java index 0e7850b5..700a0ca8 100644 --- a/src/com/owncloud/android/ui/dialog/RenameFileDialogFragment.java +++ b/src/com/owncloud/android/ui/dialog/RenameFileDialogFragment.java @@ -119,7 +119,9 @@ extends SherlockDialogFragment implements DialogInterface.OnClickListener { return; } - if (!FileUtils.isValidName(newFileName)) { + if (!FileUtils.isValidName(newFileName, + ((ComponentsGetter)getSherlockActivity()). + getFileOperationsHelper().isVersionWithForbiddenCharacters())) { Toast.makeText( getSherlockActivity(), R.string.filename_forbidden_characters, @@ -127,7 +129,8 @@ extends SherlockDialogFragment implements DialogInterface.OnClickListener { return; } - ((ComponentsGetter)getSherlockActivity()).getFileOperationsHelper().renameFile(mTargetFile, newFileName); + ((ComponentsGetter)getSherlockActivity()).getFileOperationsHelper(). + renameFile(mTargetFile, newFileName); } } }