X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/8e3787909f253c66a91c137d25cb2b430cfe9dc3..e8f4a3f0e941bc9da5dd17314a4a4fa03d4ca14e:/src/com/owncloud/android/ui/activity/Uploader.java diff --git a/src/com/owncloud/android/ui/activity/Uploader.java b/src/com/owncloud/android/ui/activity/Uploader.java index 7bea4bb3..cd80a94e 100644 --- a/src/com/owncloud/android/ui/activity/Uploader.java +++ b/src/com/owncloud/android/ui/activity/Uploader.java @@ -57,6 +57,8 @@ 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.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; @@ -82,6 +84,7 @@ import com.owncloud.android.ui.dialog.LoadingDialog; import com.owncloud.android.utils.CopyTmpFileAsyncTask; import com.owncloud.android.utils.DisplayUtils; import com.owncloud.android.utils.ErrorMessageAdapter; +import com.owncloud.android.utils.FileStorageUtils; /** @@ -332,7 +335,9 @@ public class Uploader extends FileActivity // click on folder in the list Log_OC.d(TAG, "on item click"); // TODO Enable when "On Device" is recovered ? - Vector tmpfiles = getStorageManager().getFolderContent(mFile /*, false*/); + Vector tmpfiles = getStorageManager().getFolderContent(mFile , false); + tmpfiles = sortFileList(tmpfiles); + if (tmpfiles.size() <= 0) return; // filter on dirtype Vector files = new Vector(); @@ -361,9 +366,8 @@ public class Uploader extends FileActivity break; - case R.id.uploader_new_folder: - CreateFolderDialogFragment dialog = CreateFolderDialogFragment.newInstance(mFile); - dialog.show(getSupportFragmentManager(), "createdirdialog"); + case R.id.uploader_cancel: + finish(); break; @@ -398,16 +402,17 @@ public class Uploader extends FileActivity setContentView(R.layout.uploader_layout); ListView mListView = (ListView) findViewById(android.R.id.list); + ActionBar actionBar = getSupportActionBar(); String current_dir = mParents.peek(); if(current_dir.equals("")){ - getSupportActionBar().setTitle(getString(R.string.default_display_name_for_root_folder)); + actionBar.setTitle(getString(R.string.uploader_top_message)); } else{ - getSupportActionBar().setTitle(current_dir); + actionBar.setTitle(current_dir); } boolean notRoot = (mParents.size() > 1); - ActionBar actionBar = getSupportActionBar(); + actionBar.setDisplayHomeAsUpEnabled(notRoot); actionBar.setHomeButtonEnabled(notRoot); @@ -418,32 +423,47 @@ public class Uploader extends FileActivity mFile = getStorageManager().getFileByPath(full_path); if (mFile != null) { // TODO Enable when "On Device" is recovered ? - Vector files = getStorageManager().getFolderContent(mFile/*, false*/); + Vector files = getStorageManager().getFolderContent(mFile, false); + files = sortFileList(files); + List> data = new LinkedList>(); for (OCFile f : files) { - HashMap h = new HashMap(); if (f.isFolder()) { + HashMap h = new HashMap(); h.put("dirname", f.getFileName()); + h.put("last_mod", DisplayUtils.getRelativeTimestamp(this, f)); data.add(h); } } SimpleAdapter sa = new SimpleAdapter(this, data, R.layout.uploader_list_item_layout, - new String[] {"dirname"}, - new int[] {R.id.filename}); + new String[] {"dirname", "last_mod"}, + new int[] {R.id.filename, R.id.last_mod}); mListView.setAdapter(sa); Button btnChooseFolder = (Button) findViewById(R.id.uploader_choose_folder); btnChooseFolder.setOnClickListener(this); - Button btnNewFolder = (Button) findViewById(R.id.uploader_new_folder); + Button btnNewFolder = (Button) findViewById(R.id.uploader_cancel); btnNewFolder.setOnClickListener(this); mListView.setOnItemClickListener(this); } } + private Vector sortFileList(Vector files) { + SharedPreferences sharedPreferences = PreferenceManager + .getDefaultSharedPreferences(this); + + // Read sorting order, default to sort by name ascending + FileStorageUtils.mSortOrder = sharedPreferences.getInt("sortOrder", 0); + FileStorageUtils.mSortAscending = sharedPreferences.getBoolean("sortAscending", true); + + files = FileStorageUtils.sortOcFolder(files); + return files; + } + private String generatePath(Stack dirs) { String full_path = ""; @@ -607,9 +627,11 @@ public class Uploader extends FileActivity RemoteOperationResult result) { if (result.isSuccess()) { dismissLoadingDialog(); + String remotePath = operation.getRemotePath().substring(0, operation.getRemotePath().length() -1); + String newFolder = remotePath.substring(remotePath.lastIndexOf("/") + 1); + mParents.push(newFolder); populateDirectoryList(); } else { - dismissLoadingDialog(); try { Toast msg = Toast.makeText(this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), @@ -653,11 +675,25 @@ public class Uploader extends FileActivity } } + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.main_menu, menu); + menu.findItem(R.id.action_sort).setVisible(false); + menu.findItem(R.id.action_sync_account).setVisible(false); + return true; + } @Override public boolean onOptionsItemSelected(MenuItem item) { boolean retval = true; switch (item.getItemId()) { + case R.id.action_create_dir: + CreateFolderDialogFragment dialog = CreateFolderDialogFragment.newInstance(mFile); + dialog.show( + getSupportFragmentManager(), + CreateFolderDialogFragment.CREATE_FOLDER_FRAGMENT); + break; case android.R.id.home: if((mParents.size() > 1)) { onBackPressed();