X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/dbe0ff54aedb6eab3e9c596f48fc816ef7ee43e8..a99a28cc61d48eca63803c3d661ea1be14f99aec:/src/com/owncloud/android/ui/activity/UploadFilesActivity.java diff --git a/src/com/owncloud/android/ui/activity/UploadFilesActivity.java b/src/com/owncloud/android/ui/activity/UploadFilesActivity.java index 1509797e..d6665e2b 100644 --- a/src/com/owncloud/android/ui/activity/UploadFilesActivity.java +++ b/src/com/owncloud/android/ui/activity/UploadFilesActivity.java @@ -20,32 +20,39 @@ package com.owncloud.android.ui.activity; -import java.io.File; - import android.accounts.Account; +import android.app.AlertDialog; +import android.content.DialogInterface; import android.content.Intent; +import android.content.SharedPreferences; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; +import android.preference.PreferenceManager; import android.support.v4.app.DialogFragment; import android.support.v7.app.ActionBar; +import android.view.Menu; +import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.Button; +import android.widget.RadioButton; import android.widget.TextView; import com.owncloud.android.R; +import com.owncloud.android.files.services.FileUploader; import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.ui.dialog.ConfirmationDialogFragment; -import com.owncloud.android.ui.dialog.IndeterminateProgressDialog; import com.owncloud.android.ui.dialog.ConfirmationDialogFragment.ConfirmationDialogFragmentListener; +import com.owncloud.android.ui.dialog.IndeterminateProgressDialog; import com.owncloud.android.ui.fragment.LocalFileListFragment; -import com.owncloud.android.utils.DisplayUtils; import com.owncloud.android.utils.FileStorageUtils; +import java.io.File; + /** * Displays local files and let the user choose what of them wants to upload @@ -58,32 +65,35 @@ public class UploadFilesActivity extends FileActivity implements private ArrayAdapter mDirectories; private File mCurrentDir = null; - private LocalFileListFragment mFileListFragment; - private Button mCancelBtn; - private Button mUploadBtn; - private Account mAccountOnCreation; - private DialogFragment mCurrentDialog; + protected LocalFileListFragment mFileListFragment; + protected Button mCancelBtn; + protected Button mUploadBtn; + protected Account mAccountOnCreation; + protected DialogFragment mCurrentDialog; public static final String EXTRA_CHOSEN_FILES = UploadFilesActivity.class.getCanonicalName() + ".EXTRA_CHOSEN_FILES"; public static final int RESULT_OK_AND_MOVE = RESULT_FIRST_USER; - private static final String KEY_DIRECTORY_PATH = + public static final String KEY_DIRECTORY_PATH = UploadFilesActivity.class.getCanonicalName() + ".KEY_DIRECTORY_PATH"; private static final String TAG = "UploadFilesActivity"; private static final String WAIT_DIALOG_TAG = "WAIT"; private static final String QUERY_TO_MOVE_DIALOG_TAG = "QUERY_TO_MOVE"; - - + private RadioButton mRadioBtnCopyFiles; + private RadioButton mRadioBtnMoveFiles; + + @Override public void onCreate(Bundle savedInstanceState) { Log_OC.d(TAG, "onCreate() start"); super.onCreate(savedInstanceState); if(savedInstanceState != null) { - mCurrentDir = new File(savedInstanceState.getString( - UploadFilesActivity.KEY_DIRECTORY_PATH)); + mCurrentDir = new File(savedInstanceState.getString(KEY_DIRECTORY_PATH)); + } else if (getIntent() != null && getIntent().hasExtra(KEY_DIRECTORY_PATH)) { + mCurrentDir = new File(getIntent().getStringExtra(KEY_DIRECTORY_PATH)); } else { mCurrentDir = Environment.getExternalStorageDirectory(); } @@ -113,6 +123,21 @@ public class UploadFilesActivity extends FileActivity implements mCancelBtn.setOnClickListener(this); mUploadBtn = (Button) findViewById(R.id.upload_files_btn_upload); mUploadBtn.setOnClickListener(this); + + SharedPreferences appPreferences = PreferenceManager + .getDefaultSharedPreferences(getApplicationContext()); + + Integer localBehaviour = appPreferences.getInt("prefs_uploader_behaviour", FileUploader.LOCAL_BEHAVIOUR_COPY); + + mRadioBtnMoveFiles = (RadioButton) findViewById(R.id.upload_radio_move); + if (localBehaviour == FileUploader.LOCAL_BEHAVIOUR_MOVE){ + mRadioBtnMoveFiles.setChecked(true); + } + + mRadioBtnCopyFiles = (RadioButton) findViewById(R.id.upload_radio_copy); + if (localBehaviour == FileUploader.LOCAL_BEHAVIOUR_COPY){ + mRadioBtnCopyFiles.setChecked(true); + } // Action bar setup @@ -133,6 +158,13 @@ public class UploadFilesActivity extends FileActivity implements Log_OC.d(TAG, "onCreate() end"); } + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.uploader_menu, menu); + return true; + } + @Override public boolean onOptionsItemSelected(MenuItem item) { @@ -144,6 +176,34 @@ public class UploadFilesActivity extends FileActivity implements } break; } + case R.id.action_sort: { + SharedPreferences appPreferences = PreferenceManager + .getDefaultSharedPreferences(this); + + // Read sorting order, default to sort by name ascending + Integer sortOrder = appPreferences + .getInt("sortOrder", FileStorageUtils.SORT_NAME); + + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(R.string.actionbar_sort_title) + .setSingleChoiceItems(R.array.actionbar_sortby, sortOrder , + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + switch (which){ + case 0: + mFileListFragment.sortByName(true); + break; + case 1: + mFileListFragment.sortByDate(false); + break; + } + + dialog.dismiss(); + } + }); + builder.create().show(); + break; + } default: retval = super.onOptionsItemSelected(item); } @@ -343,9 +403,22 @@ public class UploadFilesActivity extends FileActivity implements // return the list of selected files (success) Intent data = new Intent(); data.putExtra(EXTRA_CHOSEN_FILES, mFileListFragment.getCheckedFilePaths()); - setResult(RESULT_OK, data); + + SharedPreferences.Editor appPreferencesEditor = PreferenceManager + .getDefaultSharedPreferences(getApplicationContext()).edit(); + + + if (mRadioBtnMoveFiles.isChecked()){ + setResult(RESULT_OK_AND_MOVE, data); + appPreferencesEditor.putInt("prefs_uploader_behaviour", + FileUploader.LOCAL_BEHAVIOUR_MOVE); + } else { + setResult(RESULT_OK, data); + appPreferencesEditor.putInt("prefs_uploader_behaviour", + FileUploader.LOCAL_BEHAVIOUR_COPY); + } + appPreferencesEditor.apply(); finish(); - } else { // show a dialog to query the user if wants to move the selected files // to the ownCloud folder instead of copying