X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/4a5718a445194b6f9bbb4b992dd1e8f2b3a23c59..da2702129f6deefb66310ebe2da2ef73e664682d:/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 63ca229b..627d40cf 100644 --- a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java @@ -85,6 +85,7 @@ import com.owncloud.android.operations.SynchronizeFolderOperation; import com.owncloud.android.operations.UnshareLinkOperation; import com.owncloud.android.services.observer.FileObserverService; import com.owncloud.android.syncadapter.FileSyncAdapter; +import com.owncloud.android.ui.adapter.FileListListAdapter; import com.owncloud.android.ui.dialog.CreateFolderDialogFragment; import com.owncloud.android.ui.dialog.SslUntrustedCertDialog; import com.owncloud.android.ui.dialog.SslUntrustedCertDialog.OnSslUntrustedCertListener; @@ -303,6 +304,8 @@ public class FileDisplayActivity extends HookActivity implements } else { cleanSecondFragment(); + if (file.isDown() && PreviewTextFragment.canBePreviewed(file)) + startTextPreview(file); } } else { @@ -326,9 +329,9 @@ public class FileDisplayActivity extends HookActivity implements boolean autoplay = getIntent().getBooleanExtra(PreviewVideoActivity.EXTRA_AUTOPLAY, true); secondFragment = new PreviewMediaFragment(file, getAccount(), startPlaybackPosition, autoplay); - } else { - secondFragment = new FileDetailFragment(file, getAccount()); - } + } else if (file.isDown() && PreviewTextFragment.canBePreviewed(file)) { + secondFragment = null; + } else secondFragment = new FileDetailFragment(file, getAccount()); } return secondFragment; } @@ -479,6 +482,40 @@ public class FileDisplayActivity extends HookActivity implements dialog.show(getSupportFragmentManager(), "createdirdialog"); 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", FileListListAdapter.SORT_NAME); + + 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; + } case R.id.action_sync_account: { startSynchronization(); break; @@ -1411,9 +1448,11 @@ public class FileDisplayActivity extends HookActivity implements if (details instanceof PreviewMediaFragment) { // Refresh OCFile of the fragment ((PreviewMediaFragment) details).updateFile(file); - } else { + } else if (details instanceof PreviewTextFragment) { + // Refresh OCFile of the fragment + ((PreviewTextFragment) details).updateFile(file); + } else showDetails(file); - } } invalidateOptionsMenu(); } @@ -1786,4 +1825,16 @@ public class FileDisplayActivity extends HookActivity implements } } } + + private void sortByDate(boolean ascending) { + getListOfFilesFragment().sortByDate(ascending); + } + + private void sortBySize(boolean ascending) { + getListOfFilesFragment().sortBySize(ascending); + } + + private void sortByName(boolean ascending) { + getListOfFilesFragment().sortByName(ascending); + } }