浏览代码

sorting in "receive external files"

tobiaskaminsky 7 年之前
父节点
当前提交
e288507ce8

+ 4 - 6
src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -145,8 +145,6 @@ 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 String DRAWER_MENU_ID = "DRAWER_MENU_ID";
@@ -678,10 +676,10 @@ public class FileDisplayActivity extends HookActivity
 
         // hacky as no default way is provided
         int fontColor = ThemeUtils.fontColor();
-        EditText editText = (EditText) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
+        EditText editText = searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
         editText.setHintTextColor(fontColor);
         editText.setTextColor(fontColor);
-        ImageView searchClose = (ImageView) searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
+        ImageView searchClose = searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
         searchClose.setColorFilter(ThemeUtils.fontColor());
 
         // populate list of menu items to show/hide when drawer is opened/closed
@@ -780,7 +778,7 @@ public class FileDisplayActivity extends HookActivity
                 SortingOrderDialogFragment mSortingOrderDialogFragment = SortingOrderDialogFragment.newInstance(
                         getSortOrder(this, getListOfFilesFragment().getCurrentFile())
                 );
-                mSortingOrderDialogFragment.show(ft, SORT_ORDER_DIALOG_TAG);
+                mSortingOrderDialogFragment.show(ft, SortingOrderDialogFragment.SORTING_ORDER_FRAGRMENT);
 
                 break;
             }
@@ -1005,7 +1003,7 @@ public class FileDisplayActivity extends HookActivity
 
     private void revertBottomNavigationBarToAllFiles() {
         if (getResources().getBoolean(R.bool.bottom_toolbar_enabled)) {
-            BottomNavigationView bottomNavigationView = (BottomNavigationView) getListOfFilesFragment().getView()
+            BottomNavigationView bottomNavigationView = getListOfFilesFragment().getView()
                     .findViewById(R.id.bottom_navigation_view);
             if (bottomNavigationView.getMenu().findItem(R.id.nav_bar_settings).isChecked()) {
                 bottomNavigationView.getMenu().findItem(R.id.nav_bar_files).setChecked(true);

+ 20 - 7
src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java

@@ -89,6 +89,7 @@ import com.owncloud.android.ui.adapter.UploaderAdapter;
 import com.owncloud.android.ui.asynctasks.CopyAndUploadContentUrisTask;
 import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
 import com.owncloud.android.ui.dialog.CreateFolderDialogFragment;
+import com.owncloud.android.ui.dialog.SortingOrderDialogFragment;
 import com.owncloud.android.ui.fragment.TaskRetainerFragment;
 import com.owncloud.android.ui.helpers.UriUploader;
 import com.owncloud.android.utils.DataHolderUtil;
@@ -111,12 +112,15 @@ import java.util.List;
 import java.util.Stack;
 import java.util.Vector;
 
+import static com.owncloud.android.db.PreferenceManager.getSortOrder;
+
 
 /**
  * This can be used to upload things to an ownCloud instance.
  */
 public class ReceiveExternalFilesActivity extends FileActivity
-        implements OnItemClickListener, View.OnClickListener, CopyAndUploadContentUrisTask.OnCopyTmpFilesTaskListener {
+        implements OnItemClickListener, View.OnClickListener, CopyAndUploadContentUrisTask.OnCopyTmpFilesTaskListener,
+        SortingOrderDialogFragment.OnSortingOrderListener {
 
     private static final String TAG = ReceiveExternalFilesActivity.class.getSimpleName();
 
@@ -235,13 +239,19 @@ public class ReceiveExternalFilesActivity extends FileActivity
     }
 
     @Override
-    protected void onDestroy(){
+    protected void onDestroy() {
         if (mSyncBroadcastReceiver != null) {
             unregisterReceiver(mSyncBroadcastReceiver);
         }
         super.onDestroy();
     }
 
+    @Override
+    public void onSortingOrderChosen(FileSortOrder newSortOrder) {
+        PreferenceManager.setSortOrder(getBaseContext(), mFile, newSortOrder);
+        populateDirectoryList();
+    }
+
     public static class DialogNoAccount extends DialogFragment {
         @NonNull
         @Override
@@ -823,7 +833,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
     }
 
     private Vector<OCFile> sortFileList(Vector<OCFile> files) {
-        FileSortOrder sortOrder = PreferenceManager.getSortOrder(this, null);
+        FileSortOrder sortOrder = PreferenceManager.getSortOrder(this, mFile);
         return sortOrder.sortCloudFiles(files);
     }
 
@@ -1017,9 +1027,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
         switch (item.getItemId()) {
             case R.id.action_create_dir:
                 CreateFolderDialogFragment dialog = CreateFolderDialogFragment.newInstance(mFile);
-                dialog.show(
-                        getSupportFragmentManager(),
-                        CreateFolderDialogFragment.CREATE_FOLDER_FRAGMENT);
+                dialog.show(getSupportFragmentManager(), CreateFolderDialogFragment.CREATE_FOLDER_FRAGMENT);
                 break;
             case android.R.id.home:
                 if ((mParents.size() > 1)) {
@@ -1029,7 +1037,12 @@ public class ReceiveExternalFilesActivity extends FileActivity
             case R.id.action_switch_account:
                 showAccountChooserDialog();
                 break;
-
+            case R.id.action_sort:
+                SortingOrderDialogFragment mSortingOrderDialogFragment = SortingOrderDialogFragment.newInstance(
+                        getSortOrder(this, mFile));
+                mSortingOrderDialogFragment.show(getSupportFragmentManager(),
+                        SortingOrderDialogFragment.SORTING_ORDER_FRAGRMENT);
+                break;
             default:
                 retval = super.onOptionsItemSelected(item);
                 break;

+ 2 - 1
src/main/java/com/owncloud/android/ui/dialog/SortingOrderDialogFragment.java

@@ -45,6 +45,7 @@ public class SortingOrderDialogFragment extends DialogFragment {
 
     private final static String TAG = SortingOrderDialogFragment.class.getSimpleName();
 
+    public static final String SORTING_ORDER_FRAGRMENT = "SORTING_ORDER_FRAGRMENT";
     private static final String KEY_SORT_ORDER = "SORT_ORDER";
 
     private View mView = null;
@@ -92,7 +93,7 @@ public class SortingOrderDialogFragment extends DialogFragment {
      * @param view the parent view
      */
     private void setupDialogElements(View view) {
-        mCancel = (AppCompatButton) view.findViewById(R.id.cancel);
+        mCancel = view.findViewById(R.id.cancel);
         mCancel.setTextColor(ThemeUtils.primaryAccentColor());
 
         mTaggedViews = new View[12];

+ 7 - 0
src/main/res/menu/receive_file_menu.xml

@@ -40,6 +40,13 @@
         android:orderInCategory="1"
         android:title="@string/actionbar_mkdir"
         app:showAsAction="never"/>
+    <item
+        android:id="@+id/action_sort"
+        android:contentDescription="@string/actionbar_sort"
+        android:icon="@drawable/ic_sort_variant"
+        android:orderInCategory="1"
+        android:title="@string/actionbar_sort"
+        app:showAsAction="never"/>
     <item
         android:id="@+id/action_select_all"
         android:contentDescription="@string/select_all"