X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/a6afe6efd24d35d02dc9720432a2daa47b58ffdd..524a6e2bdd230742807de3b01cf414e8e62e1920:/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 da6eb527..12ea1184 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; @@ -151,7 +153,7 @@ OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener { private String DIALOG_UNTRUSTED_CERT; private OCFile mWaitingToSend; - + @Override protected void onCreate(Bundle savedInstanceState) { Log_OC.d(TAG, "onCreate() start"); @@ -489,6 +491,40 @@ OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener { } break; } + case R.id.action_sort: { + SharedPreferences appPreferences = PreferenceManager + .getDefaultSharedPreferences(this); + + // Read sorting order, default to sort by name ascending + Integer sortOrder = appPreferences + .getInt("sortOrder", 0); + + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(R.string.actionbar_sort_title) + .setSingleChoiceItems(R.array.actionbar_sortby, sortOrder , new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + + switch (which){ + case 0: + sortByName(true); + break; + case 1: + sortByDate(false); + break; + +// TODO re-enable when server-side folder size calculation is available +// case 2: +// sortBySize(false); +// break; + } + + dialog.dismiss(); + + } + }); + builder.create().show(); + break; + } default: retval = super.onOptionsItemSelected(item); } @@ -556,7 +592,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 + ); } } @@ -645,7 +692,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 @@ -1711,5 +1759,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); + } }