X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/75fd0f40c642f3a4fc66dfa17620417d78dd2571..df001d5dfd541cfe58fd964d47db3f4ea98d99fc:/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 533bb991..99ca54ec 100644 --- a/src/com/owncloud/android/ui/activity/Uploader.java +++ b/src/com/owncloud/android/ui/activity/Uploader.java @@ -33,8 +33,8 @@ import java.util.Vector; import android.accounts.Account; import android.accounts.AccountManager; -import android.app.AlertDialog; -import android.app.AlertDialog.Builder; +import android.support.v7.app.AlertDialog; +import android.support.v7.app.AlertDialog.Builder; import android.app.Dialog; import android.app.ProgressDialog; import android.content.Context; @@ -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; @@ -64,6 +66,7 @@ import android.widget.AdapterView.OnItemClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; +import android.widget.ProgressBar; import android.widget.SimpleAdapter; import android.widget.Toast; @@ -81,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; /** @@ -146,11 +150,6 @@ public class Uploader extends FileActivity if (mAccountSelected) { setAccount((Account) savedInstanceState.getParcelable(FileActivity.EXTRA_ACCOUNT)); } - - - ActionBar actionBar = getSupportActionBar(); - actionBar.setIcon(DisplayUtils.getSeasonalIconId()); - } @Override @@ -206,10 +205,19 @@ public class Uploader extends FileActivity final AlertDialog.Builder builder = new Builder(this); switch (id) { case DIALOG_WAITING: - ProgressDialog pDialog = new ProgressDialog(this); + final ProgressDialog pDialog = new ProgressDialog(this, R.style.ProgressDialogTheme); pDialog.setIndeterminate(false); pDialog.setCancelable(false); pDialog.setMessage(getResources().getString(R.string.uploader_info_uploading)); + pDialog.setOnShowListener(new DialogInterface.OnShowListener() { + @Override + public void onShow(DialogInterface dialog) { + ProgressBar v = (ProgressBar) pDialog.findViewById(android.R.id.progress); + v.getIndeterminateDrawable().setColorFilter(getResources().getColor(R.color.color_accent), + android.graphics.PorterDuff.Mode.MULTIPLY); + + } + }); return pDialog; case DIALOG_NO_ACCOUNT: builder.setIcon(android.R.drawable.ic_dialog_alert); @@ -328,6 +336,8 @@ public class Uploader extends FileActivity Log_OC.d(TAG, "on item click"); // TODO Enable when "On Device" is recovered ? Vector tmpfiles = getStorageManager().getFolderContent(mFile /*, false*/); + tmpfiles = sortFileList(tmpfiles); + if (tmpfiles.size() <= 0) return; // filter on dirtype Vector files = new Vector(); @@ -356,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; @@ -393,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); @@ -414,31 +424,46 @@ public class Uploader extends FileActivity if (mFile != null) { // TODO Enable when "On Device" is recovered ? 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.textView1}); + 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.sortFolder(files); + return files; + } + private String generatePath(Stack dirs) { String full_path = ""; @@ -601,10 +626,8 @@ public class Uploader extends FileActivity private void onCreateFolderOperationFinish(CreateFolderOperation operation, RemoteOperationResult result) { if (result.isSuccess()) { - dismissLoadingDialog(); populateDirectoryList(); } else { - dismissLoadingDialog(); try { Toast msg = Toast.makeText(this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), @@ -638,6 +661,7 @@ public class Uploader extends FileActivity mParents.add(""); } else{ String[] dir_names = last_path.split("/"); + mParents.clear(); for (String dir : dir_names) mParents.add(dir); } @@ -647,11 +671,26 @@ 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_upload).setVisible(false); + 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();