X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/2fcffbd3d580f41ecc114248f4d74a19a34b622b..f15c2f32ceea2f2e6abff36f828a37196db3040a:/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 fce4ddce..f93af1f3 100644 --- a/src/com/owncloud/android/ui/activity/UploadFilesActivity.java +++ b/src/com/owncloud/android/ui/activity/UploadFilesActivity.java @@ -20,33 +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.actionbarsherlock.app.ActionBar; -import com.actionbarsherlock.app.ActionBar.OnNavigationListener; -import com.actionbarsherlock.view.MenuItem; 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 @@ -54,7 +60,8 @@ import com.owncloud.android.utils.FileStorageUtils; */ public class UploadFilesActivity extends FileActivity implements - LocalFileListFragment.ContainerActivity, OnNavigationListener, OnClickListener, ConfirmationDialogFragmentListener { + LocalFileListFragment.ContainerActivity, ActionBar.OnNavigationListener, + OnClickListener, ConfirmationDialogFragmentListener { private ArrayAdapter mDirectories; private File mCurrentDir = null; @@ -74,15 +81,18 @@ public class UploadFilesActivity extends FileActivity implements 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( + UploadFilesActivity.KEY_DIRECTORY_PATH)); } else { mCurrentDir = Environment.getExternalStorageDirectory(); } @@ -92,7 +102,8 @@ public class UploadFilesActivity extends FileActivity implements /// USER INTERFACE // Drop-down navigation - mDirectories = new CustomArrayAdapter(this, R.layout.sherlock_spinner_dropdown_item); + mDirectories = new CustomArrayAdapter(this, + R.layout.support_simple_spinner_dropdown_item); File currDir = mCurrentDir; while(currDir != null && currDir.getParentFile() != null) { mDirectories.add(currDir.getName()); @@ -102,7 +113,8 @@ public class UploadFilesActivity extends FileActivity implements // Inflate and set the layout view setContentView(R.layout.upload_files_layout); - mFileListFragment = (LocalFileListFragment) getSupportFragmentManager().findFragmentById(R.id.local_files_list); + mFileListFragment = (LocalFileListFragment) + getSupportFragmentManager().findFragmentById(R.id.local_files_list); // Set input controllers @@ -110,12 +122,27 @@ 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 ActionBar actionBar = getSupportActionBar(); - actionBar.setIcon(DisplayUtils.getSeasonalIconId()); - actionBar.setHomeButtonEnabled(true); // mandatory since Android ICS, according to the official documentation + actionBar.setHomeButtonEnabled(true); // mandatory since Android ICS, according to the + // official documentation actionBar.setDisplayHomeAsUpEnabled(mCurrentDir != null && mCurrentDir.getName() != null); actionBar.setDisplayShowTitleEnabled(false); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); @@ -130,6 +157,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) { @@ -141,6 +175,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); } @@ -340,9 +402,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