Browse Source

integrate new sorting dialog into Upload file activity

AndyScherzinger 8 years ago
parent
commit
d13d064d62
1 changed files with 47 additions and 25 deletions
  1. 47 25
      src/main/java/com/owncloud/android/ui/activity/UploadFilesActivity.java

+ 47 - 25
src/main/java/com/owncloud/android/ui/activity/UploadFilesActivity.java

@@ -22,14 +22,14 @@ package com.owncloud.android.ui.activity;
 
 import android.accounts.Account;
 import android.app.Activity;
-import android.app.AlertDialog;
-import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.Environment;
 import android.support.v4.app.DialogFragment;
 import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentTransaction;
 import android.support.v7.app.ActionBar;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -47,12 +47,16 @@ import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
 import com.owncloud.android.ui.dialog.ConfirmationDialogFragment.ConfirmationDialogFragmentListener;
 import com.owncloud.android.ui.dialog.IndeterminateProgressDialog;
+import com.owncloud.android.ui.dialog.SortingOrderDialogFragment;
 import com.owncloud.android.ui.fragment.ExtendedListFragment;
 import com.owncloud.android.ui.fragment.LocalFileListFragment;
 import com.owncloud.android.utils.FileStorageUtils;
 
 import java.io.File;
 
+import static com.owncloud.android.db.PreferenceManager.getSortAscending;
+import static com.owncloud.android.db.PreferenceManager.getSortOrder;
+
 
 /**
  * Displays local files and let the user choose what of them wants to upload
@@ -60,8 +64,10 @@ import java.io.File;
  */
 public class UploadFilesActivity extends FileActivity implements
     LocalFileListFragment.ContainerActivity, ActionBar.OnNavigationListener,
-        OnClickListener, ConfirmationDialogFragmentListener {
-    
+        OnClickListener, ConfirmationDialogFragmentListener, SortingOrderDialogFragment.OnSortingOrderListener {
+
+    private static final String SORT_ORDER_DIALOG_TAG = "SORT_ORDER_DIALOG";
+
     private ArrayAdapter<String> mDirectories;
     private File mCurrentDir = null;
     private boolean mSelectAll = false;
@@ -207,27 +213,16 @@ public class UploadFilesActivity extends FileActivity implements
                 // Read sorting order, default to sort by name ascending
                 Integer sortOrder = PreferenceManager.getSortOrder(this);
 
-                AlertDialog.Builder builder = new AlertDialog.Builder(this);
-                builder.setTitle(R.string.actionbar_sort_title)
-                        .setSingleChoiceItems(R.array.menu_items_sort_by_options, sortOrder,
-                                new DialogInterface.OnClickListener() {
-                                    public void onClick(DialogInterface dialog, int which) {
-                                        switch (which){
-                                            case 0:
-                                                mFileListFragment.sortByName(true);
-                                                break;
-                                            case 1:
-                                                mFileListFragment.sortByDate(false);
-                                                break;
-                                            case 2:
-                                                mFileListFragment.sortBySize(false);
-                                                break;
-                                        }
-
-                                        dialog.dismiss();
-                                    }
-                                });
-                builder.create().show();
+                FragmentManager fm = getSupportFragmentManager();
+                FragmentTransaction ft = fm.beginTransaction();
+                ft.addToBackStack(null);
+
+                SortingOrderDialogFragment mSortingOrderDialogFragment = SortingOrderDialogFragment.newInstance(
+                        getSortOrder(this),
+                        getSortAscending(this)
+                );
+                mSortingOrderDialogFragment.show(ft, SORT_ORDER_DIALOG_TAG);
+
                 break;
             }
             case R.id.action_switch_view: {
@@ -248,6 +243,33 @@ public class UploadFilesActivity extends FileActivity implements
         return retval;
     }
 
+    @Override
+    public void onSortingOrderChosen(int selection) {
+        switch (selection) {
+            case SortingOrderDialogFragment.BY_NAME_ASC:
+                mFileListFragment.sortByName(true);
+                break;
+            case SortingOrderDialogFragment.BY_NAME_DESC:
+                mFileListFragment.sortByName(false);
+                break;
+            case SortingOrderDialogFragment.BY_MODIFICATION_DATE_ASC:
+                mFileListFragment.sortByDate(true);
+                break;
+            case SortingOrderDialogFragment.BY_MODIFICATION_DATE_DESC:
+                mFileListFragment.sortByDate(false);
+                break;
+            case SortingOrderDialogFragment.BY_SIZE_ASC:
+                mFileListFragment.sortBySize(true);
+                break;
+            case SortingOrderDialogFragment.BY_SIZE_DESC:
+                mFileListFragment.sortBySize(false);
+                break;
+            default: // defaulting to alphabetical-ascending
+                Log_OC.w(TAG, "Unknown sort order, defaulting to alphabetical-ascending!");
+                mFileListFragment.sortByName(true);
+                break;
+        }
+    }
     
     @Override
     public boolean onNavigationItemSelected(int itemPosition, long itemId) {