Browse Source

wired the new sorting order fragment

AndyScherzinger 8 years ago
parent
commit
d0a6e6ea26

+ 7 - 3
res/layout/sorting_order_fragment.xml

@@ -25,6 +25,13 @@
               android:orientation="vertical"
               android:padding="@dimen/standard_padding">
 
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        style="@style/Base.DialogWindowTitle.AppCompat"
+        android:layout_marginBottom="@dimen/standard_margin"
+        android:text="Sort by" />
+
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -37,7 +44,6 @@
             android:layout_height="wrap_content"
             android:layout_gravity="center_vertical"
             android:layout_marginBottom="@dimen/standard_half_margin"
-            android:layout_marginLeft="@dimen/standard_half_margin"
             android:layout_marginTop="@dimen/standard_half_margin"
             android:layout_weight="1"
             android:ellipsize="middle"
@@ -78,7 +84,6 @@
             android:layout_height="wrap_content"
             android:layout_gravity="center_vertical"
             android:layout_marginBottom="@dimen/standard_half_margin"
-            android:layout_marginLeft="@dimen/standard_half_margin"
             android:layout_marginTop="@dimen/standard_half_margin"
             android:layout_weight="1"
             android:ellipsize="middle"
@@ -119,7 +124,6 @@
             android:layout_height="wrap_content"
             android:layout_gravity="center_vertical"
             android:layout_marginBottom="@dimen/standard_half_margin"
-            android:layout_marginLeft="@dimen/standard_half_margin"
             android:layout_marginTop="@dimen/standard_half_margin"
             android:layout_weight="1"
             android:ellipsize="middle"

+ 14 - 6
src/com/owncloud/android/ui/dialog/SortingOrderDialogFragment.java

@@ -42,6 +42,9 @@ public class SortingOrderDialogFragment extends DialogFragment {
 
     private final static String TAG = SortingOrderDialogFragment.class.getSimpleName();
 
+    private static final String KEY_SORT_ORDER = "SORT_ORDER";
+    private static final String KEY_ASCENDING = "ASCENDING";
+
     public static final int BY_NAME_ASC = 0;
     public static final int BY_NAME_DESC = 1;
     public static final int BY_MODIFICATION_DATE_ASC = 2;
@@ -58,9 +61,14 @@ public class SortingOrderDialogFragment extends DialogFragment {
     private ImageButton mSortByModificationDateDescendingButton = null;
 
 
-    public static SortingOrderDialogFragment newInstance() {
+    public static SortingOrderDialogFragment newInstance(int sortOrder, boolean ascending) {
         SortingOrderDialogFragment dialogFragment = new SortingOrderDialogFragment();
 
+        Bundle args = new Bundle();
+        args.putInt(KEY_SORT_ORDER, sortOrder);
+        args.putBoolean(KEY_ASCENDING, ascending);
+        dialogFragment.setArguments(args);
+
         dialogFragment.setStyle(STYLE_NORMAL, R.style.Theme_ownCloud_Dialog);
 
         return dialogFragment;
@@ -84,6 +92,8 @@ public class SortingOrderDialogFragment extends DialogFragment {
         setupDialogElements(mView);
         setupListeners(mView);
 
+        getDialog().setTitle(R.string.actionbar_sort_title);
+
         return mView;
     }
 
@@ -177,9 +187,7 @@ public class SortingOrderDialogFragment extends DialogFragment {
     @Override
     @NonNull
     public Dialog onCreateDialog(Bundle savedInstanceState) {
-        final Dialog dialog = super.onCreateDialog(savedInstanceState);
-        dialog.setTitle(R.string.actionbar_sort_title);
-        return dialog;
+        return super.onCreateDialog(savedInstanceState);
     }
 
     @Override
@@ -194,8 +202,8 @@ public class SortingOrderDialogFragment extends DialogFragment {
     private class OnSortingOrderClickListener implements View.OnClickListener {
         @Override
         public void onClick(View v) {
-            dismiss();
-            ((SortingOrderDialogFragment.OnSortingOrderListener) getActivity()).onSortingOrderChosen(0);
+            dismissAllowingStateLoss();
+            ((SortingOrderDialogFragment.OnSortingOrderListener) getActivity()).onSortingOrderChosen((int) v.getTag());
         }
     }
 

+ 13 - 24
src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -100,6 +100,7 @@ import java.io.File;
 import java.util.ArrayList;
 import java.util.Collection;
 
+import static com.owncloud.android.db.PreferenceManager.getSortAscending;
 import static com.owncloud.android.db.PreferenceManager.getSortOrder;
 
 /**
@@ -124,6 +125,8 @@ public class FileDisplayActivity extends HookActivity
     private static final String KEY_WAITING_TO_SEND = "WAITING_TO_SEND";
     private static final String KEY_SEARCH_QUERY = "KEY_SEARCH_QUERY";
 
+    private static final String SORT_ORDER_DIALOG_TAG = "SORT_ORDER_DIALOG";
+
     public static final String ACTION_DETAILS = "com.owncloud.android.ui.activity.action.DETAILS";
 
     public static final int REQUEST_CODE__SELECT_CONTENT_FROM_APPS = REQUEST_CODE__LAST_SHARED + 1;
@@ -701,30 +704,16 @@ public class FileDisplayActivity extends HookActivity
                 break;
             }
             case R.id.action_sort: {
-                Integer sortOrder = 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) {
-                                        // TODO: wire new selection method
-                                        switch (which) {
-                                            case 0:
-                                                sortByName(true);
-                                                break;
-                                            case 1:
-                                                sortByDate(false);
-                                                break;
-                                            case 2:
-                                                sortBySize(false);
-                                        }
-
-                                        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: {