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;
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;
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()
/**
* Public factory method to create new CreateFolderDialogFragment instances.
- *
- * @param parentFolder Folder to create
- * @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();
Toast.LENGTH_LONG).show();
return;
}
-
- if (!FileUtils.isValidName(newFolderName)) {
- Toast.makeText(
- getActivity(),
- R.string.filename_forbidden_characters,
- Toast.LENGTH_LONG).show();
+ boolean serverWithForbiddenChars = ((ComponentsGetter)getActivity()).
+ getFileOperationsHelper().isVersionWithForbiddenCharacters();
+
+ if (!FileUtils.isValidName(newFolderName, serverWithForbiddenChars)) {
+ int messageId = 0;
+ if (serverWithForbiddenChars) {
+ messageId = R.string.filename_forbidden_charaters_from_server;
+ } else {
+ messageId = R.string.filename_forbidden_characters;
+ }
+ Toast.makeText(getActivity(), messageId, Toast.LENGTH_LONG).show();
+
return;
}
Toast.LENGTH_LONG).show();
return;
}
-
- if (!FileUtils.isValidName(newFileName)) {
- Toast.makeText(
- getActivity(),
- R.string.filename_forbidden_characters,
- Toast.LENGTH_LONG).show();
+
+ boolean serverWithForbiddenChars = ((ComponentsGetter)getActivity()).
+ getFileOperationsHelper().isVersionWithForbiddenCharacters();
+
+ if (!FileUtils.isValidName(newFileName, serverWithForbiddenChars)) {
+ int messageId = 0;
+ if (serverWithForbiddenChars) {
+ messageId = R.string.filename_forbidden_charaters_from_server;
+ } else {
+ messageId = R.string.filename_forbidden_characters;
+ }
+ Toast.makeText(getActivity(), messageId, Toast.LENGTH_LONG).show();
return;
}
- ((ComponentsGetter)getActivity()).getFileOperationsHelper().renameFile(mTargetFile,
- newFileName);
+ ((ComponentsGetter)getActivity()).getFileOperationsHelper().
+ renameFile(mTargetFile, newFileName);
+
}
}
}
}
- public static String getErrorCauseMessage(RemoteOperationResult result, RemoteOperation operation, Resources res) {
+ public static String getErrorCauseMessage(RemoteOperationResult result,
+ RemoteOperation operation, Resources res) {
String message = null;
if (operation instanceof UploadFileOperation) {
if (result.isSuccess()) {
- message = String.format(res.getString(R.string.uploader_upload_succeeded_content_single),
+ message = String.format(
+ res.getString(R.string.uploader_upload_succeeded_content_single),
((UploadFileOperation) operation).getFileName());
} else {
if (result.getCode() == ResultCode.LOCAL_STORAGE_FULL
|| result.getCode() == ResultCode.LOCAL_STORAGE_NOT_COPIED) {
- message = String.format(res.getString(R.string.error__upload__local_file_not_copied),
+ message = String.format(
+ res.getString(R.string.error__upload__local_file_not_copied),
((UploadFileOperation) operation).getFileName(),
res.getString(R.string.app_name));
/*
message = String.format(res.getString(R.string.forbidden_permissions),
res.getString(R.string.uploader_upload_forbidden_permissions));
+ } else if (result.getCode() == ResultCode.INVALID_CHARACTER_DETECT_IN_SERVER) {
+ message = res.getString(R.string.filename_forbidden_charaters_from_server);
+
} else {
- message = String.format(res.getString(R.string.uploader_upload_failed_content_single),
+ message = String.format(
+ res.getString(R.string.uploader_upload_failed_content_single),
((UploadFileOperation) operation).getFileName());
}
}
} else if (operation instanceof DownloadFileOperation) {
if (result.isSuccess()) {
- message = String.format(res.getString(R.string.downloader_download_succeeded_content),
+ message = String.format(
+ res.getString(R.string.downloader_download_succeeded_content),
new File(((DownloadFileOperation) operation).getSavePath()).getName());
} else {
message = res.getString(R.string.downloader_download_file_not_found);
} else {
- message = String.format(res.getString(R.string.downloader_download_failed_content), new File(
+ message = String.format(
+ res.getString(R.string.downloader_download_failed_content), new File(
((DownloadFileOperation) operation).getSavePath()).getName());
}
}
} else if (isNetworkError(result.getCode())) {
message = getErrorMessage(result, res);
+ } else if (result.getCode() == ResultCode.INVALID_CHARACTER_DETECT_IN_SERVER) {
+ message = res.getString(R.string.filename_forbidden_charaters_from_server);
+
} else {
message = res.getString(R.string.rename_server_fail_msg);
}
} else if (isNetworkError(result.getCode())) {
message = getErrorMessage(result, res);
+ } else if (result.getCode() == ResultCode.INVALID_CHARACTER_DETECT_IN_SERVER) {
+ message = res.getString(R.string.filename_forbidden_charaters_from_server);
} else {
message = res.getString(R.string.create_dir_fail_msg);
}
} else if (operation instanceof CreateShareOperation) {
- if (result.getCode() == ResultCode.SHARE_NOT_FOUND) { // Error --> SHARE_NOT_FOUND
+ if (result.getCode() == ResultCode.SHARE_NOT_FOUND) { // Error --> SHARE_NOT_FOUND
message = res.getString(R.string.share_link_file_no_exist);
} else if (result.getCode() == ResultCode.SHARE_FORBIDDEN) {
} else if (operation instanceof UnshareLinkOperation) {
- if (result.getCode() == ResultCode.SHARE_NOT_FOUND) { // Error --> SHARE_NOT_FOUND
+ if (result.getCode() == ResultCode.SHARE_NOT_FOUND) { // Error --> SHARE_NOT_FOUND
message = res.getString(R.string.unshare_link_file_no_exist);
} else if (result.getCode() == ResultCode.SHARE_FORBIDDEN) {
message = String.format(res.getString(R.string.forbidden_permissions),
res.getString(R.string.forbidden_permissions_move));
- }else { // Generic error
+ } else if (result.getCode() == ResultCode.INVALID_CHARACTER_DETECT_IN_SERVER) {
+ message = res.getString(R.string.filename_forbidden_charaters_from_server);
+
+ } else { // Generic error
// Show a Message, operation finished without success
message = res.getString(R.string.move_file_error);
}