X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/59c0d67e6895fc1c99d6a82e4ce6e877e35f2d36..1df7a8c06230d69a9a99d62c4cd3be8029d6e9e6:/src/com/owncloud/android/ui/activity/FileDisplayActivity.java diff --git a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java index 093de7d3..c86380d6 100644 --- a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java @@ -21,6 +21,8 @@ package com.owncloud.android.ui.activity; import java.io.File; import java.io.IOException; +import org.apache.commons.httpclient.methods.PostMethod; + import android.accounts.Account; import android.accounts.AccountManager; import android.accounts.AuthenticatorException; @@ -80,6 +82,7 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode; import com.owncloud.android.operations.CreateFolderOperation; import com.owncloud.android.operations.CreateShareOperation; +import com.owncloud.android.operations.MoveFileOperation; import com.owncloud.android.operations.RemoveFileOperation; import com.owncloud.android.operations.RenameFileOperation; import com.owncloud.android.operations.SynchronizeFileOperation; @@ -488,6 +491,38 @@ OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener { } break; } + case R.id.action_sort: { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(R.string.actionbar_sort_title) + .setItems(R.array.actionbar_sortby, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + Log_OC.d("default view", " number " + which + "clicked"); + switch (which){ + case 0: + sortByName(true); + break; + case 1: + sortByName(false); + break; + case 2: + sortByDate(true); + break; + case 3: + sortByDate(false); + break; + case 4: + sortBySize(true); + break; + case 5: + sortBySize(false); + break; + } + } + }); + builder.create(); + builder.show(); + break; + } default: retval = super.onOptionsItemSelected(item); } @@ -555,7 +590,18 @@ OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener { } else if (requestCode == ACTION_MOVE_FILES && (resultCode == RESULT_OK || resultCode == MoveActivity.RESULT_OK_AND_MOVE)){ - requestMoveOperation(data, resultCode); + + final Intent fData = data; + final int fResultCode = resultCode; + getHandler().postDelayed( + new Runnable() { + @Override + public void run() { + requestMoveOperation(fData, fResultCode); + } + }, + DELAY_TO_REQUEST_OPERATION_ON_ACTIVITY_RESULTS + ); } } @@ -644,7 +690,8 @@ OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener { */ private void requestMoveOperation(Intent data, int resultCode) { OCFile folderToMoveAt = (OCFile) data.getParcelableExtra(MoveActivity.EXTRA_CURRENT_FOLDER); - getFileOperationsHelper().moveFile(folderToMoveAt, getCurrentDir()); + OCFile targetFile = (OCFile) data.getParcelableExtra(MoveActivity.EXTRA_TARGET_FILE); + getFileOperationsHelper().moveFile(folderToMoveAt, targetFile); } @Override @@ -1332,7 +1379,9 @@ OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener { } else if (operation instanceof UnshareLinkOperation) { onUnshareLinkOperationFinish((UnshareLinkOperation)operation, result); - } + } else if (operation instanceof MoveFileOperation) { + onMoveFileOperationFinish((MoveFileOperation)operation, result); + } } @@ -1411,12 +1460,13 @@ OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener { /** - * Updates the view associated to the activity after the finish of an operation trying create a new folder + * Updates the view associated to the activity after the finish of an operation trying to move a + * file. * - * @param operation Creation operation performed. - * @param result Result of the creation. + * @param operation Move operation performed. + * @param result Result of the move operation. */ - private void onCreateFolderOperationFinish(CreateFolderOperation operation, RemoteOperationResult result) { + private void onMoveFileOperationFinish(MoveFileOperation operation, RemoteOperationResult result) { if (result.isSuccess()) { dismissLoadingDialog(); refreshListOfFilesFragment(); @@ -1503,6 +1553,30 @@ OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener { } } + /** + * Updates the view associated to the activity after the finish of an operation trying create a new folder + * + * @param operation Creation operation performed. + * @param result Result of the creation. + */ + private void onCreateFolderOperationFinish(CreateFolderOperation operation, RemoteOperationResult result) { + if (result.isSuccess()) { + dismissLoadingDialog(); + refreshListOfFilesFragment(); + } else { + dismissLoadingDialog(); + try { + Toast msg = Toast.makeText(FileDisplayActivity.this, + ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), + Toast.LENGTH_LONG); + msg.show(); + + } catch (NotFoundException e) { + Log_OC.e(TAG, "Error while trying to show fail message " , e); + } + } + } + /** * {@inheritDoc} @@ -1683,5 +1757,17 @@ OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener { } } } + + private void sortByDate(boolean ascending){ + getListOfFilesFragment().sortByDate(ascending); + } + + private void sortBySize(boolean ascending){ + getListOfFilesFragment().sortBySize(ascending); + } + + private void sortByName(boolean ascending){ + getListOfFilesFragment().sortByName(ascending); + } }