Merge branch 'sortingFiles' of https://github.com/tobiasKaminsky/android into sorting...
[pub/Android/ownCloud.git] / src / com / owncloud / android / ui / fragment / OCFileListFragment.java
index caba72b..0b1059f 100644 (file)
@@ -34,15 +34,16 @@ import com.owncloud.android.R;
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.files.FileMenuFilter;
+import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.ui.activity.FileDisplayActivity;
 import com.owncloud.android.ui.activity.MoveActivity;
+import com.owncloud.android.ui.activity.OnEnforceableRefreshListener;
 import com.owncloud.android.ui.adapter.FileListListAdapter;
 import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
 import com.owncloud.android.ui.dialog.RemoveFileDialogFragment;
 import com.owncloud.android.ui.dialog.RenameFileDialogFragment;
 import com.owncloud.android.ui.preview.PreviewImageFragment;
 import com.owncloud.android.ui.preview.PreviewMediaFragment;
-import com.owncloud.android.utils.Log_OC;
 
 /**
  * A Fragment that lists all files and folders in a given path.
@@ -54,340 +55,348 @@ import com.owncloud.android.utils.Log_OC;
  * @author David A. Velasco
  */
 public class OCFileListFragment extends ExtendedListFragment {
+    
+    private static final String TAG = OCFileListFragment.class.getSimpleName();
+
+    private static final String MY_PACKAGE = OCFileListFragment.class.getPackage() != null ?
+            OCFileListFragment.class.getPackage().getName() : "com.owncloud.android.ui.fragment";
+            
+    public final static String ARG_JUST_FOLDERS = MY_PACKAGE + ".JUST_FOLDERS";
+    public final static String ARG_ALLOW_CONTEXTUAL_ACTIONS = MY_PACKAGE + ".ALLOW_CONTEXTUAL";
+            
+    private static final String KEY_FILE = MY_PACKAGE + ".extra.FILE";
+
+    private FileFragment.ContainerActivity mContainerActivity;
+   
+    private OCFile mFile = null;
+    private FileListListAdapter mAdapter;
+    
+    private OCFile mTargetFile;
+
+    
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+        Log_OC.e(TAG, "onAttach");
+        try {
+            mContainerActivity = (FileFragment.ContainerActivity) activity;
+            
+        } catch (ClassCastException e) {
+            throw new ClassCastException(activity.toString() + " must implement " + 
+                    FileFragment.ContainerActivity.class.getSimpleName());
+        }
+        try {
+            setOnRefreshListener((OnEnforceableRefreshListener) activity);
+            
+        } catch (ClassCastException e) {
+            throw new ClassCastException(activity.toString() + " must implement " + 
+                    SwipeRefreshLayout.OnRefreshListener.class.getSimpleName());
+        }
+    }
+
+    
+    @Override
+    public void onDetach() {
+        setOnRefreshListener(null);
+        mContainerActivity = null;
+        super.onDetach();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        Log_OC.e(TAG, "onActivityCreated() start");
+        
+        if (savedInstanceState != null) {
+            mFile = savedInstanceState.getParcelable(KEY_FILE);
+        }
+        
+        Bundle args = getArguments();
+        boolean justFolders = (args == null) ? false : args.getBoolean(ARG_JUST_FOLDERS, false); 
+        mAdapter = new FileListListAdapter(
+                justFolders,
+                getSherlockActivity(), 
+                mContainerActivity
+        );
+        setListAdapter(mAdapter);
+        
+        registerForContextMenu(getListView());
+        getListView().setOnCreateContextMenuListener(this);
+  }
+    
+    /**
+     * Saves the current listed folder.
+     */
+    @Override
+    public void onSaveInstanceState (Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putParcelable(KEY_FILE, mFile);
+    }
+    
+    /**
+     * Call this, when the user presses the up button.
+     * 
+     * Tries to move up the current folder one level. If the parent folder was removed from the 
+     * database, it continues browsing up until finding an existing folders.
+     * 
+     * return       Count of folder levels browsed up.
+     */
+    public int onBrowseUp() {
+        OCFile parentDir = null;
+        int moveCount = 0;
+        
+        if(mFile != null){
+            FileDataStorageManager storageManager = mContainerActivity.getStorageManager();
+            
+            String parentPath = null;
+            if (mFile.getParentId() != FileDataStorageManager.ROOT_PARENT_ID) {
+                parentPath = new File(mFile.getRemotePath()).getParent();
+                parentPath = parentPath.endsWith(OCFile.PATH_SEPARATOR) ? parentPath : 
+                       parentPath + OCFile.PATH_SEPARATOR;
+                parentDir = storageManager.getFileByPath(parentPath);
+                moveCount++;
+            } else {
+                parentDir = storageManager.getFileByPath(OCFile.ROOT_PATH);
+            }
+            while (parentDir == null) {
+                parentPath = new File(parentPath).getParent();
+                parentPath = parentPath.endsWith(OCFile.PATH_SEPARATOR) ? parentPath : 
+                       parentPath + OCFile.PATH_SEPARATOR;
+                parentDir = storageManager.getFileByPath(parentPath);
+                moveCount++;
+            }   // exit is granted because storageManager.getFileByPath("/") never returns null
+            mFile = parentDir;
+            
+            listDirectory(mFile);
+
+            onRefresh(false);
+            
+            // restore index and top position
+            restoreIndexAndTopPosition();
+            
+        }   // else - should never happen now
+   
+        return moveCount;
+    }
+    
+    @Override
+    public void onItemClick(AdapterView<?> l, View v, int position, long id) {
+        OCFile file = (OCFile) mAdapter.getItem(position);
+        if (file != null) {
+            if (file.isFolder()) { 
+                // update state and view of this fragment
+                listDirectory(file);
+                // then, notify parent activity to let it update its state and view
+                mContainerActivity.onBrowsedDownTo(file);
+                // save index and top position
+                saveIndexAndTopPosition(position);
+                
+            } else { /// Click on a file
+                if (PreviewImageFragment.canBePreviewed(file)) {
+                    // preview image - it handles the download, if needed
+                    ((FileDisplayActivity)mContainerActivity).startImagePreview(file);
+                    
+                } else if (file.isDown()) {
+                    if (PreviewMediaFragment.canBePreviewed(file)) {
+                        // media preview
+                        ((FileDisplayActivity)mContainerActivity).startMediaPreview(file, 0, true);
+                    } else {
+                        mContainerActivity.getFileOperationsHelper().openFile(file);
+                    }
+                    
+                } else {
+                    // automatic download, preview on finish
+                    ((FileDisplayActivity)mContainerActivity).startDownloadForPreview(file);
+                }
+                    
+            }
+            
+        } else {
+            Log_OC.d(TAG, "Null object in ListAdapter!!");
+        }
+        
+    }
+    
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onCreateContextMenu (
+            ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
+        super.onCreateContextMenu(menu, v, menuInfo);
+        Bundle args = getArguments();
+        boolean allowContextualActions = 
+                (args == null) ? true : args.getBoolean(ARG_ALLOW_CONTEXTUAL_ACTIONS, true); 
+        if (allowContextualActions) {
+            MenuInflater inflater = getSherlockActivity().getMenuInflater();
+            inflater.inflate(R.menu.file_actions_menu, menu);
+            AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
+            OCFile targetFile = (OCFile) mAdapter.getItem(info.position);
+            
+            if (mContainerActivity.getStorageManager() != null) {
+                FileMenuFilter mf = new FileMenuFilter(
+                    targetFile,
+                    mContainerActivity.getStorageManager().getAccount(),
+                    mContainerActivity,
+                    getSherlockActivity()
+                );
+                mf.filter(menu);
+            }
+            
+            /// additional restrictions for this fragment 
+            // TODO allow in the future 'open with' for previewable files
+            MenuItem item = menu.findItem(R.id.action_open_file_with);
+            if (item != null) {
+                item.setVisible(false);
+                item.setEnabled(false);
+            }
+            /// TODO break this direct dependency on FileDisplayActivity... if possible
+            FileFragment frag = ((FileDisplayActivity)getSherlockActivity()).getSecondFragment();
+            if (frag != null && frag instanceof FileDetailFragment && 
+                    frag.getFile().getFileId() == targetFile.getFileId()) {
+                item = menu.findItem(R.id.action_see_details);
+                if (item != null) {
+                    item.setVisible(false);
+                    item.setEnabled(false);
+                }
+            }
+        }
+    }
+    
+    
+    /**
+     * {@inhericDoc}
+     */
+    @Override
+    public boolean onContextItemSelected (MenuItem item) {
+        AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();        
+        mTargetFile = (OCFile) mAdapter.getItem(info.position);
+        switch (item.getItemId()) {                
+            case R.id.action_share_file: {
+                mContainerActivity.getFileOperationsHelper().shareFileWithLink(mTargetFile);
+                return true;
+            }
+            case R.id.action_unshare_file: {
+                mContainerActivity.getFileOperationsHelper().unshareFileWithLink(mTargetFile);
+                return true;
+            }
+            case R.id.action_rename_file: {
+                RenameFileDialogFragment dialog = RenameFileDialogFragment.newInstance(mTargetFile);
+                dialog.show(getFragmentManager(), FileDetailFragment.FTAG_RENAME_FILE);
+                return true;
+            }
+            case R.id.action_remove_file: {
+                RemoveFileDialogFragment dialog = RemoveFileDialogFragment.newInstance(mTargetFile);
+                dialog.show(getFragmentManager(), ConfirmationDialogFragment.FTAG_CONFIRMATION);
+                return true;
+            }
+            case R.id.action_download_file: 
+            case R.id.action_sync_file: {
+                mContainerActivity.getFileOperationsHelper().syncFile(mTargetFile);
+                return true;
+            }
+            case R.id.action_cancel_download:
+            case R.id.action_cancel_upload: {
+                ((FileDisplayActivity)mContainerActivity).cancelTransference(mTargetFile);
+                return true;
+            }
+            case R.id.action_see_details: {
+                mContainerActivity.showDetails(mTargetFile);
+                return true;
+            }
+            case R.id.action_send_file: {
+                // Obtain the file
+                if (!mTargetFile.isDown()) {  // Download the file
+                    Log_OC.d(TAG, mTargetFile.getRemotePath() + " : File must be downloaded");
+                    ((FileDisplayActivity)mContainerActivity).startDownloadForSending(mTargetFile);
+                    
+                } else {
+                    mContainerActivity.getFileOperationsHelper().sendDownloadedFile(mTargetFile);
+                }
+                return true;
+            }
+            case R.id.action_move: {
+                Intent action = new Intent(getActivity(), MoveActivity.class);
+
+                // Pass mTargetFile that contains info of selected file/folder
+                action.putExtra(MoveActivity.EXTRA_TARGET_FILE, mTargetFile);
+                getActivity().startActivityForResult(action, FileDisplayActivity.ACTION_MOVE_FILES);
+                return true;
+            }
+            default:
+                return super.onContextItemSelected(item); 
+        }
+    }
+
+
+    /**
+     * Use this to query the {@link OCFile} that is currently
+     * being displayed by this fragment
+     * @return The currently viewed OCFile
+     */
+    public OCFile getCurrentFile(){
+        return mFile;
+    }
+    
+    /**
+     * Calls {@link OCFileListFragment#listDirectory(OCFile)} with a null parameter
+     */
+    public void listDirectory(){
+        listDirectory(null);
+    }
+    
+    /**
+     * Lists the given directory on the view. When the input parameter is null,
+     * it will either refresh the last known directory. list the root
+     * if there never was a directory.
+     * 
+     * @param directory File to be listed
+     */
+    public void listDirectory(OCFile directory) {
+        FileDataStorageManager storageManager = mContainerActivity.getStorageManager();
+        if (storageManager != null) {
+
+            // Check input parameters for null
+            if(directory == null){
+                if(mFile != null){
+                    directory = mFile;
+                } else {
+                    directory = storageManager.getFileByPath("/");
+                    if (directory == null) return; // no files, wait for sync
+                }
+            }
+        
+        
+            // If that's not a directory -> List its parent
+            if(!directory.isFolder()){
+                Log_OC.w(TAG, "You see, that is not a directory -> " + directory.toString());
+                directory = storageManager.getFileById(directory.getParentId());
+            }
+
+            mAdapter.swapDirectory(directory, storageManager);
+            if (mFile == null || !mFile.equals(directory)) {
+                mList.setSelectionFromTop(0, 0);
+            }
+            mFile = directory;
+        }
+    }
+    
+    public void sortByName(boolean descending) {
+        mAdapter.setSortOrder(FileListListAdapter.SORT_NAME, descending);
+    }
+
+    public void sortByDate(boolean descending) {
+        mAdapter.setSortOrder(FileListListAdapter.SORT_DATE, descending);
+    }
+
+    public void sortBySize(boolean descending) {
+        mAdapter.setSortOrder(FileListListAdapter.SORT_SIZE, descending);
+    }  
 
-       private static final String TAG = OCFileListFragment.class.getSimpleName();
-
-       private static final String MY_PACKAGE = OCFileListFragment.class.getPackage() != null ? OCFileListFragment.class
-                       .getPackage().getName() : "com.owncloud.android.ui.fragment";
-
-       public final static String ARG_JUST_FOLDERS = MY_PACKAGE + ".JUST_FOLDERS";
-       public final static String ARG_ALLOW_CONTEXTUAL_ACTIONS = MY_PACKAGE + ".ALLOW_CONTEXTUAL";
-
-       private static final String KEY_FILE = MY_PACKAGE + ".extra.FILE";
-
-       private FileFragment.ContainerActivity mContainerActivity;
-
-       private OCFile mFile = null;
-       private FileListListAdapter mAdapter;
-
-       private OCFile mTargetFile;
-
-       /**
-        * {@inheritDoc}
-        */
-       @Override
-       public void onAttach(Activity activity) {
-               super.onAttach(activity);
-               Log_OC.e(TAG, "onAttach");
-               try {
-                       mContainerActivity = (FileFragment.ContainerActivity) activity;
-
-               } catch (ClassCastException e) {
-                       throw new ClassCastException(activity.toString() + " must implement "
-                                       + FileFragment.ContainerActivity.class.getSimpleName());
-               }
-               try {
-                       setOnRefreshListener((SwipeRefreshLayout.OnRefreshListener) activity);
-
-               } catch (ClassCastException e) {
-                       throw new ClassCastException(activity.toString() + " must implement "
-                                       + SwipeRefreshLayout.OnRefreshListener.class.getSimpleName());
-               }
-       }
-
-       @Override
-       public void onDetach() {
-               setOnRefreshListener(null);
-               mContainerActivity = null;
-               super.onDetach();
-       }
-
-       /**
-        * {@inheritDoc}
-        */
-       @Override
-       public void onActivityCreated(Bundle savedInstanceState) {
-               super.onActivityCreated(savedInstanceState);
-               Log_OC.e(TAG, "onActivityCreated() start");
-
-               if (savedInstanceState != null) {
-                       mFile = savedInstanceState.getParcelable(KEY_FILE);
-               }
-
-               Bundle args = getArguments();
-               boolean justFolders = (args == null) ? false : args.getBoolean(ARG_JUST_FOLDERS, false);
-               mAdapter = new FileListListAdapter(justFolders, getSherlockActivity(), mContainerActivity);
-               setListAdapter(mAdapter);
-
-               registerForContextMenu(getListView());
-               getListView().setOnCreateContextMenuListener(this);
-       }
-
-       /**
-        * Saves the current listed folder.
-        */
-       @Override
-       public void onSaveInstanceState(Bundle outState) {
-               super.onSaveInstanceState(outState);
-               outState.putParcelable(KEY_FILE, mFile);
-       }
-
-       /**
-        * Call this, when the user presses the up button.
-        * 
-        * Tries to move up the current folder one level. If the parent folder was
-        * removed from the database, it continues browsing up until finding an
-        * existing folders.
-        * 
-        * return Count of folder levels browsed up.
-        */
-       public int onBrowseUp() {
-               OCFile parentDir = null;
-               int moveCount = 0;
-
-               if (mFile != null) {
-                       FileDataStorageManager storageManager = mContainerActivity.getStorageManager();
-
-                       String parentPath = null;
-                       if (mFile.getParentId() != FileDataStorageManager.ROOT_PARENT_ID) {
-                               parentPath = new File(mFile.getRemotePath()).getParent();
-                               parentPath = parentPath.endsWith(OCFile.PATH_SEPARATOR) ? parentPath : parentPath
-                                               + OCFile.PATH_SEPARATOR;
-                               parentDir = storageManager.getFileByPath(parentPath);
-                               moveCount++;
-                       } else {
-                               parentDir = storageManager.getFileByPath(OCFile.ROOT_PATH);
-                       }
-                       while (parentDir == null) {
-                               parentPath = new File(parentPath).getParent();
-                               parentPath = parentPath.endsWith(OCFile.PATH_SEPARATOR) ? parentPath : parentPath
-                                               + OCFile.PATH_SEPARATOR;
-                               parentDir = storageManager.getFileByPath(parentPath);
-                               moveCount++;
-                       } // exit is granted because storageManager.getFileByPath("/") never
-                               // returns null
-                       mFile = parentDir;
-
-                       listDirectory(mFile);
-
-                       onRefresh();
-
-                       // restore index and top position
-                       restoreIndexAndTopPosition();
-
-               } // else - should never happen now
-
-               return moveCount;
-       }
-
-       @Override
-       public void onItemClick(AdapterView<?> l, View v, int position, long id) {
-               OCFile file = (OCFile) mAdapter.getItem(position);
-               if (file != null) {
-                       if (file.isFolder()) {
-                               // update state and view of this fragment
-                               listDirectory(file);
-                               // then, notify parent activity to let it update its state and
-                               // view
-                               mContainerActivity.onBrowsedDownTo(file);
-                               // save index and top position
-                               saveIndexAndTopPosition(position);
-
-                       } else { // / Click on a file
-                               if (PreviewImageFragment.canBePreviewed(file)) {
-                                       // preview image - it handles the download, if needed
-                                       ((FileDisplayActivity) mContainerActivity).startImagePreview(file);
-
-                               } else if (file.isDown()) {
-                                       if (PreviewMediaFragment.canBePreviewed(file)) {
-                                               // media preview
-                                               ((FileDisplayActivity) mContainerActivity).startMediaPreview(file, 0, true);
-                                       } else {
-                                               mContainerActivity.getFileOperationsHelper().openFile(file);
-                                       }
-
-                               } else {
-                                       // automatic download, preview on finish
-                                       ((FileDisplayActivity) mContainerActivity).startDownloadForPreview(file);
-                               }
-
-                       }
-
-               } else {
-                       Log_OC.d(TAG, "Null object in ListAdapter!!");
-               }
-
-       }
-
-       /**
-        * {@inheritDoc}
-        */
-       @Override
-       public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
-               super.onCreateContextMenu(menu, v, menuInfo);
-               Bundle args = getArguments();
-               boolean allowContextualActions = (args == null) ? true : args.getBoolean(ARG_ALLOW_CONTEXTUAL_ACTIONS, true);
-               if (allowContextualActions) {
-                       MenuInflater inflater = getSherlockActivity().getMenuInflater();
-                       inflater.inflate(R.menu.file_actions_menu, menu);
-                       AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
-                       OCFile targetFile = (OCFile) mAdapter.getItem(info.position);
-
-                       if (mContainerActivity.getStorageManager() != null) {
-                               FileMenuFilter mf = new FileMenuFilter(targetFile, mContainerActivity.getStorageManager()
-                                               .getAccount(), mContainerActivity, getSherlockActivity());
-                               mf.filter(menu);
-                       }
-
-                       // / additional restrictions for this fragment
-                       // TODO allow in the future 'open with' for previewable files
-                       MenuItem item = menu.findItem(R.id.action_open_file_with);
-                       if (item != null) {
-                               item.setVisible(false);
-                               item.setEnabled(false);
-                       }
-                       // / TODO break this direct dependency on FileDisplayActivity... if
-                       // possible
-                       FileFragment frag = ((FileDisplayActivity) getSherlockActivity()).getSecondFragment();
-                       if (frag != null && frag instanceof FileDetailFragment
-                                       && frag.getFile().getFileId() == targetFile.getFileId()) {
-                               item = menu.findItem(R.id.action_see_details);
-                               if (item != null) {
-                                       item.setVisible(false);
-                                       item.setEnabled(false);
-                               }
-                       }
-               }
-       }
-
-       /**
-        * {@inhericDoc}
-        */
-       @Override
-       public boolean onContextItemSelected(MenuItem item) {
-               AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
-               mTargetFile = (OCFile) mAdapter.getItem(info.position);
-               switch (item.getItemId()) {
-               case R.id.action_share_file: {
-                       mContainerActivity.getFileOperationsHelper().shareFileWithLink(mTargetFile);
-                       return true;
-               }
-               case R.id.action_unshare_file: {
-                       mContainerActivity.getFileOperationsHelper().unshareFileWithLink(mTargetFile);
-                       return true;
-               }
-               case R.id.action_rename_file: {
-                       RenameFileDialogFragment dialog = RenameFileDialogFragment.newInstance(mTargetFile);
-                       dialog.show(getFragmentManager(), FileDetailFragment.FTAG_RENAME_FILE);
-                       return true;
-               }
-               case R.id.action_remove_file: {
-                       RemoveFileDialogFragment dialog = RemoveFileDialogFragment.newInstance(mTargetFile);
-                       dialog.show(getFragmentManager(), ConfirmationDialogFragment.FTAG_CONFIRMATION);
-                       return true;
-               }
-               case R.id.action_download_file:
-               case R.id.action_sync_file: {
-                       mContainerActivity.getFileOperationsHelper().syncFile(mTargetFile);
-                       return true;
-               }
-               case R.id.action_cancel_download:
-               case R.id.action_cancel_upload: {
-                       ((FileDisplayActivity) mContainerActivity).cancelTransference(mTargetFile);
-                       return true;
-               }
-               case R.id.action_see_details: {
-                       mContainerActivity.showDetails(mTargetFile);
-                       return true;
-               }
-               case R.id.action_send_file: {
-                       // Obtain the file
-                       if (!mTargetFile.isDown()) { // Download the file
-                               Log_OC.d(TAG, mTargetFile.getRemotePath() + " : File must be downloaded");
-                               ((FileDisplayActivity) mContainerActivity).startDownloadForSending(mTargetFile);
-
-                       } else {
-                               mContainerActivity.getFileOperationsHelper().sendDownloadedFile(mTargetFile);
-                       }
-                       return true;
-               }
-               case R.id.action_move: {
-                       Intent action = new Intent(getActivity(), MoveActivity.class);
-
-                       // Pass mTargetFile that contains info of selected file/folder
-                       action.putExtra(MoveActivity.EXTRA_TARGET_FILE, mTargetFile);
-                       getActivity().startActivityForResult(action, FileDisplayActivity.ACTION_MOVE_FILES);
-                       return true;
-               }
-               default:
-                       return super.onContextItemSelected(item);
-               }
-       }
-
-       /**
-        * Use this to query the {@link OCFile} that is currently being displayed by
-        * this fragment
-        * 
-        * @return The currently viewed OCFile
-        */
-       public OCFile getCurrentFile() {
-               return mFile;
-       }
-
-       /**
-        * Calls {@link OCFileListFragment#listDirectory(OCFile)} with a null
-        * parameter
-        */
-       public void listDirectory() {
-               listDirectory(null);
-       }
-
-       /**
-        * Lists the given directory on the view. When the input parameter is null,
-        * it will either refresh the last known directory. list the root if there
-        * never was a directory.
-        * 
-        * @param directory
-        *            File to be listed
-        */
-       public void listDirectory(OCFile directory) {
-               FileDataStorageManager storageManager = mContainerActivity.getStorageManager();
-               if (storageManager != null) {
-
-                       // Check input parameters for null
-                       if (directory == null) {
-                               if (mFile != null) {
-                                       directory = mFile;
-                               } else {
-                                       directory = storageManager.getFileByPath("/");
-                                       if (directory == null)
-                                               return; // no files, wait for sync
-                               }
-                       }
-
-                       // If that's not a directory -> List its parent
-                       if (!directory.isFolder()) {
-                               Log_OC.w(TAG, "You see, that is not a directory -> " + directory.toString());
-                               directory = storageManager.getFileById(directory.getParentId());
-                       }
-
-                       mAdapter.swapDirectory(directory, storageManager);
-                       if (mFile == null || !mFile.equals(directory)) {
-                               mList.setSelectionFromTop(0, 0);
-                       }
-                       mFile = directory;
-               }
-       }
-
-       public void sortByName(boolean descending) {
-               mAdapter.setSortOrder(FileListListAdapter.SORT_NAME, descending);
-       }
-
-       public void sortByDate(boolean descending) {
-               mAdapter.setSortOrder(FileListListAdapter.SORT_DATE, descending);
-       }
-
-       public void sortBySize(boolean descending) {
-               mAdapter.setSortOrder(FileListListAdapter.SORT_SIZE, descending);
-       }
 }