From ebe0f73068f8934742013b65ea0674f19ac82a2d Mon Sep 17 00:00:00 2001 From: Magnus Sjoqvist Date: Wed, 8 Oct 2014 15:15:57 +0200 Subject: [PATCH 1/7] Added feature for remembering last upload location when sharing a file. Also added an option to turn it off in prefrences. --- res/values-it/strings.xml | 2 + res/values-sv/strings.xml | 2 + res/values/strings.xml | 8 ++-- res/xml/preferences.xml | 3 ++ .../android/ui/activity/Preferences.java | 24 +++++++++++- .../android/ui/activity/Uploader.java | 39 ++++++++++++++++++- 6 files changed, 72 insertions(+), 6 deletions(-) diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index b21685e57ea..bbd3c4f19e1 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -30,6 +30,8 @@ Consiglia ad un amico Segnalazioni Imprint + Salvare l\'ultimo percorso usata per l\'upload + Salva la posizione Prova %1$s sul tuo smartphone! \"Vorrei invitarti ad usare %1$s sul tuo smartphone!\nScaricalo qui: %2$s\"\n\t Verifica server diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index 8be33d921b8..10727c06850 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -30,6 +30,8 @@ Rekommendera till en vän Feedback Imprint + Kom ihåg uppladdningsplats + Kom ihåg senaste uppladdningsplatsen för delning Försök %1$s på din smarttelefon! \"Jag vill bjuda in dig att använda %1$s på din smartphone\nLadda ner här: %2$s\"\n\t Kontrollera Server diff --git a/res/values/strings.xml b/res/values/strings.xml index c1a1e2cbaa9..cf4dffbd4f1 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -31,8 +31,11 @@ Recommend to a friend Feedback Imprint - - "Try %1$s on your smartphone!" + Remember share location + Remember last share upload location + + + "Try %1$s on your smartphone!" "I want to invite you to use %1$s on your smartphone!\nDownload here: %2$s" @@ -269,5 +272,4 @@ An error occurred while waiting for the server, the operation couldn\'t have been done An error occurred while waiting for the server, the operation couldn\'t have been done The operation couldn\'t be completed, server is unavailable - diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml index 69b4b284a0f..8aa945cf8fb 100644 --- a/res/xml/preferences.xml +++ b/res/xml/preferences.xml @@ -31,6 +31,9 @@ + (); - mParents.add(""); + + + + + SharedPreferences appPreferences = PreferenceManager + .getDefaultSharedPreferences(getApplicationContext()); + + mSaveUploadLocation = appPreferences.getBoolean("save_last_upload_location", false); + + if(mSaveUploadLocation) + { + String last_path = appPreferences.getString("last_upload_path", ""); + + if(last_path.equals("/")) { + mParents.add(""); + } + else{ + String[] dir_names = last_path.split("/"); + for (String dir : dir_names) + mParents.add(dir); + } + } + else { + mParents.add(""); + } + if (prepareStreamsToUpload()) { mAccountManager = (AccountManager) getSystemService(Context.ACCOUNT_SERVICE); Account[] accounts = mAccountManager.getAccountsByType(MainApp.getAccountType()); @@ -289,6 +317,7 @@ private void populateDirectoryList() { setContentView(R.layout.uploader_layout); String full_path = ""; + for (String a : mParents) full_path += a + "/"; @@ -408,6 +437,14 @@ else if (mimeType.contains("audio")) { intent.putExtra(FileUploader.KEY_REMOTE_FILE, remote.toArray(new String[remote.size()])); intent.putExtra(FileUploader.KEY_ACCOUNT, mAccount); startService(intent); + + if(mSaveUploadLocation){ + SharedPreferences.Editor appPrefs = PreferenceManager + .getDefaultSharedPreferences(getApplicationContext()).edit(); + appPrefs.putString("last_upload_path", mUploadPath); + appPrefs.commit(); + } + finish(); } From dd807540574a4202a81e5c22c9aebc9c4ddbcac5 Mon Sep 17 00:00:00 2001 From: Magnus Sjoqvist Date: Fri, 10 Oct 2014 11:13:25 +0200 Subject: [PATCH 2/7] Fixed merge --- .../android/ui/activity/Uploader.java | 34 ++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/src/com/owncloud/android/ui/activity/Uploader.java b/src/com/owncloud/android/ui/activity/Uploader.java index 9cf82564ce2..75b171b2fe4 100644 --- a/src/com/owncloud/android/ui/activity/Uploader.java +++ b/src/com/owncloud/android/ui/activity/Uploader.java @@ -64,6 +64,25 @@ import android.widget.SimpleAdapter; import android.widget.Toast; +import com.actionbarsherlock.app.ActionBar; +import com.actionbarsherlock.app.SherlockListActivity; +import com.owncloud.android.MainApp; +import com.owncloud.android.R; +import com.owncloud.android.authentication.AccountAuthenticator; +import com.owncloud.android.datamodel.FileDataStorageManager; +import com.owncloud.android.datamodel.OCFile; +import com.owncloud.android.files.services.FileUploader; +import com.owncloud.android.utils.DisplayUtils; +import com.owncloud.android.utils.Log_OC; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Stack; +import java.util.Vector; + /** * This can be used to upload things to an ownCloud instance. @@ -71,7 +90,7 @@ * @author Bartek Przybylski * */ -public class Uploader extends ListActivity implements OnItemClickListener, android.view.View.OnClickListener { +public class Uploader extends SherlockListActivity implements OnItemClickListener, android.view.View.OnClickListener { private static final String TAG = "ownCloudUploader"; private Account mAccount; @@ -94,11 +113,10 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - getWindow().requestFeature(Window.FEATURE_NO_TITLE); mParents = new Stack(); - - + ActionBar actionBar = getSherlock().getActionBar(); + actionBar.setIcon(DisplayUtils.getSeasonalIconId()); SharedPreferences appPreferences = PreferenceManager .getDefaultSharedPreferences(getApplicationContext()); @@ -316,6 +334,14 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { private void populateDirectoryList() { setContentView(R.layout.uploader_layout); + String current_dir = mParents.peek(); + if(current_dir.equals("")){ + getActionBar().setTitle(getString(R.string.default_display_name_for_root_folder)); + } + else{ + getActionBar().setTitle(current_dir); + } + String full_path = ""; for (String a : mParents) From 4275f02cab7b82a9b1488dd8324ce1b805c5bf56 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 10 Oct 2014 15:27:54 +0200 Subject: [PATCH 3/7] Fixed imports and added comments --- .../android/ui/activity/Preferences.java | 17 +++++++---------- .../owncloud/android/ui/activity/Uploader.java | 9 ++++----- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/com/owncloud/android/ui/activity/Preferences.java b/src/com/owncloud/android/ui/activity/Preferences.java index 32bd11d2c7c..6719824a5fc 100644 --- a/src/com/owncloud/android/ui/activity/Preferences.java +++ b/src/com/owncloud/android/ui/activity/Preferences.java @@ -103,18 +103,15 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { pSaveLocation.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { - if( newValue instanceof Boolean) - { - if(!(Boolean) newValue) - { - SharedPreferences.Editor appPrefs = PreferenceManager + //The saved path is removed when the preference is turned off + if( newValue instanceof Boolean && !(Boolean) newValue) { + SharedPreferences.Editor appPrefs = PreferenceManager .getDefaultSharedPreferences(getApplicationContext()).edit(); - appPrefs.remove("last_upload_path"); - appPrefs.commit(); - } - } - return true; + appPrefs.remove("last_upload_path"); + appPrefs.apply(); } + return true; + } }); } diff --git a/src/com/owncloud/android/ui/activity/Uploader.java b/src/com/owncloud/android/ui/activity/Uploader.java index 75b171b2fe4..238b85c29b8 100644 --- a/src/com/owncloud/android/ui/activity/Uploader.java +++ b/src/com/owncloud/android/ui/activity/Uploader.java @@ -39,7 +39,6 @@ import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.app.Dialog; -import android.app.ListActivity; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; @@ -56,7 +55,6 @@ import android.provider.MediaStore.Images; import android.provider.MediaStore.Video; import android.view.View; -import android.view.Window; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Button; @@ -122,11 +120,11 @@ protected void onCreate(Bundle savedInstanceState) { .getDefaultSharedPreferences(getApplicationContext()); mSaveUploadLocation = appPreferences.getBoolean("save_last_upload_location", false); - + //If the users has enabled last upload path saving then populate mParents with the previous path if(mSaveUploadLocation) { String last_path = appPreferences.getString("last_upload_path", ""); - + // "/" equals root-directory if(last_path.equals("/")) { mParents.add(""); } @@ -464,11 +462,12 @@ else if (mimeType.contains("audio")) { intent.putExtra(FileUploader.KEY_ACCOUNT, mAccount); startService(intent); + //If the user has enabled last upload path then save the path to shared preferences if(mSaveUploadLocation){ SharedPreferences.Editor appPrefs = PreferenceManager .getDefaultSharedPreferences(getApplicationContext()).edit(); appPrefs.putString("last_upload_path", mUploadPath); - appPrefs.commit(); + appPrefs.apply(); } finish(); From 89627024b194f735e4f46f740cb064c778e2a2ec Mon Sep 17 00:00:00 2001 From: Magnus Sjoqvist Date: Tue, 14 Oct 2014 11:21:50 +0200 Subject: [PATCH 4/7] Added check for that the last upload folder still exists --- .../android/ui/activity/Uploader.java | 66 +++++++++++-------- 1 file changed, 39 insertions(+), 27 deletions(-) diff --git a/src/com/owncloud/android/ui/activity/Uploader.java b/src/com/owncloud/android/ui/activity/Uploader.java index 238b85c29b8..cfc07431a93 100644 --- a/src/com/owncloud/android/ui/activity/Uploader.java +++ b/src/com/owncloud/android/ui/activity/Uploader.java @@ -116,28 +116,6 @@ protected void onCreate(Bundle savedInstanceState) { ActionBar actionBar = getSherlock().getActionBar(); actionBar.setIcon(DisplayUtils.getSeasonalIconId()); - SharedPreferences appPreferences = PreferenceManager - .getDefaultSharedPreferences(getApplicationContext()); - - mSaveUploadLocation = appPreferences.getBoolean("save_last_upload_location", false); - //If the users has enabled last upload path saving then populate mParents with the previous path - if(mSaveUploadLocation) - { - String last_path = appPreferences.getString("last_upload_path", ""); - // "/" equals root-directory - if(last_path.equals("/")) { - mParents.add(""); - } - else{ - String[] dir_names = last_path.split("/"); - for (String dir : dir_names) - mParents.add(dir); - } - } - else { - mParents.add(""); - } - if (prepareStreamsToUpload()) { mAccountManager = (AccountManager) getSystemService(Context.ACCOUNT_SERVICE); Account[] accounts = mAccountManager.getAccountsByType(MainApp.getAccountType()); @@ -148,8 +126,37 @@ protected void onCreate(Bundle savedInstanceState) { Log_OC.i(TAG, "More then one ownCloud is available"); showDialog(DIALOG_MULTIPLE_ACCOUNT); } else { + mAccount = accounts[0]; mStorageManager = new FileDataStorageManager(mAccount, getContentResolver()); + + SharedPreferences appPreferences = PreferenceManager + .getDefaultSharedPreferences(getApplicationContext()); + + mSaveUploadLocation = appPreferences.getBoolean("save_last_upload_location", false); + + //If the users has enabled last upload path saving then populate mParents with the previous path + if(mSaveUploadLocation) + { + String last_path = appPreferences.getString("last_upload_path", ""); + // "/" equals root-directory + if(last_path.equals("/")) { + mParents.add(""); + } + else{ + String[] dir_names = last_path.split("/"); + for (String dir : dir_names) + mParents.add(dir); + } + //Make sure that path still exists, if it doesn't pop the stack and try the previous path + while(!mStorageManager.fileExists(generatePath(mParents))){ + mParents.pop(); + } + } + else { + mParents.add(""); + } + populateDirectoryList(); } } else { @@ -340,13 +347,10 @@ private void populateDirectoryList() { getActionBar().setTitle(current_dir); } - String full_path = ""; - - for (String a : mParents) - full_path += a + "/"; + String full_path = generatePath(mParents); Log_OC.d(TAG, "Populating view with content of : " + full_path); - + mFile = mStorageManager.getFileByPath(full_path); if (mFile != null) { Vector files = mStorageManager.getFolderContent(mFile); @@ -370,6 +374,14 @@ private void populateDirectoryList() { } } + private String generatePath(Stack dirs) { + String full_path = ""; + + for (String a : dirs) + full_path += a + "/"; + return full_path; + } + private boolean prepareStreamsToUpload() { if (getIntent().getAction().equals(Intent.ACTION_SEND)) { mStreamsToUpload = new ArrayList(); From dedd5bb36ba203a051484b3004ddd78c67534ef8 Mon Sep 17 00:00:00 2001 From: Magnus Sjoqvist Date: Mon, 20 Oct 2014 14:48:06 +0200 Subject: [PATCH 5/7] Fixed log import --- src/com/owncloud/android/ui/activity/Uploader.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/owncloud/android/ui/activity/Uploader.java b/src/com/owncloud/android/ui/activity/Uploader.java index d45ed4b04ba..f6ff5987172 100644 --- a/src/com/owncloud/android/ui/activity/Uploader.java +++ b/src/com/owncloud/android/ui/activity/Uploader.java @@ -71,7 +71,7 @@ import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.files.services.FileUploader; import com.owncloud.android.utils.DisplayUtils; -import com.owncloud.android.utils.Log_OC; +import com.owncloud.android.lib.common.utils.Log_OC; import java.io.File; import java.util.ArrayList; From 2b1865d1d003ca4021a12ad17f14da578f60bad2 Mon Sep 17 00:00:00 2001 From: Magnus Sjoqvist Date: Tue, 21 Oct 2014 16:17:00 +0200 Subject: [PATCH 6/7] Removes translations --- res/values-it/strings.xml | 2 -- res/values-sv/strings.xml | 2 -- 2 files changed, 4 deletions(-) diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 7423cbfe15a..d4507602624 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -30,8 +30,6 @@ Consiglia ad un amico Segnalazioni Imprint - Salvare l\'ultimo percorso usata per l\'upload - Salva la posizione Prova %1$s sul tuo smartphone! Vorrei invitarti a usare %1$s sul tuo smartphone!\nScarica qui: %2$s Verifica server diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index 7328f8ea18d..be0067470b0 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -30,8 +30,6 @@ Rekommendera till en vän Feedback Imprint - Kom ihåg uppladdningsplats - Kom ihåg senaste uppladdningsplatsen för delning Försök %1$s på din smarttelefon! Jag skulle vilja bjuda in dig till att använda %1$s på din smartphone!\nLadda ner här: %2$s Kontrollera Server From 52bf54a00d9afcd26c11592392d2a6471ea8ca79 Mon Sep 17 00:00:00 2001 From: Magnus Sjoqvist Date: Tue, 21 Oct 2014 17:27:47 +0200 Subject: [PATCH 7/7] Removes remember last share location setting --- res/xml/preferences.xml | 5 +- .../android/ui/activity/Preferences.java | 20 ------- .../android/ui/activity/Uploader.java | 59 ++++++++----------- 3 files changed, 25 insertions(+), 59 deletions(-) diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml index bda15014a53..3b8b3e81b5f 100644 --- a/res/xml/preferences.xml +++ b/res/xml/preferences.xml @@ -29,10 +29,6 @@ / --> - - @@ -60,6 +56,7 @@ + diff --git a/src/com/owncloud/android/ui/activity/Preferences.java b/src/com/owncloud/android/ui/activity/Preferences.java index 8840eee923c..d078b1e2688 100644 --- a/src/com/owncloud/android/ui/activity/Preferences.java +++ b/src/com/owncloud/android/ui/activity/Preferences.java @@ -51,7 +51,6 @@ import com.owncloud.android.authentication.AccountUtils; import com.owncloud.android.authentication.AuthenticatorActivity; import com.owncloud.android.db.DbHandler; -import com.owncloud.android.ui.CheckBoxPreferenceWithLongTitle; import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.ui.LongClickableCheckBoxPreference; import com.owncloud.android.utils.DisplayUtils; @@ -69,7 +68,6 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa private DbHandler mDbHandler; private CheckBoxPreference pCode; - private CheckBoxPreference pSaveLocation; private Preference pAboutApp; private PreferenceCategory mAccountsPrefCategory = null; @@ -136,24 +134,6 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { } - pSaveLocation = (CheckBoxPreferenceWithLongTitle) findPreference("save_last_upload_location"); - if(pSaveLocation != null){ - pSaveLocation.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - //The saved path is removed when the preference is turned off - if( newValue instanceof Boolean && !(Boolean) newValue) { - SharedPreferences.Editor appPrefs = PreferenceManager - .getDefaultSharedPreferences(getApplicationContext()).edit(); - appPrefs.remove("last_upload_path"); - appPrefs.commit(); - } - return true; - } - }); - } - - PreferenceCategory preferenceCategory = (PreferenceCategory) findPreference("more"); boolean helpEnabled = getResources().getBoolean(R.bool.help_enabled); diff --git a/src/com/owncloud/android/ui/activity/Uploader.java b/src/com/owncloud/android/ui/activity/Uploader.java index f6ff5987172..ebc5f377b9e 100644 --- a/src/com/owncloud/android/ui/activity/Uploader.java +++ b/src/com/owncloud/android/ui/activity/Uploader.java @@ -99,7 +99,6 @@ public class Uploader extends SherlockListActivity implements OnItemClickListene private String mUploadPath; private FileDataStorageManager mStorageManager; private OCFile mFile; - private boolean mSaveUploadLocation; private final static int DIALOG_NO_ACCOUNT = 0; private final static int DIALOG_WAITING = 1; @@ -127,38 +126,30 @@ protected void onCreate(Bundle savedInstanceState) { showDialog(DIALOG_MULTIPLE_ACCOUNT); } else { - mAccount = accounts[0]; - mStorageManager = new FileDataStorageManager(mAccount, getContentResolver()); - - SharedPreferences appPreferences = PreferenceManager - .getDefaultSharedPreferences(getApplicationContext()); + mAccount = accounts[0]; + mStorageManager = new FileDataStorageManager(mAccount, getContentResolver()); - mSaveUploadLocation = appPreferences.getBoolean("save_last_upload_location", false); + SharedPreferences appPreferences = PreferenceManager + .getDefaultSharedPreferences(getApplicationContext()); - //If the users has enabled last upload path saving then populate mParents with the previous path - if(mSaveUploadLocation) - { - String last_path = appPreferences.getString("last_upload_path", ""); - // "/" equals root-directory - if(last_path.equals("/")) { - mParents.add(""); - } - else{ - String[] dir_names = last_path.split("/"); - for (String dir : dir_names) - mParents.add(dir); - } - //Make sure that path still exists, if it doesn't pop the stack and try the previous path - while(!mStorageManager.fileExists(generatePath(mParents))){ - mParents.pop(); - } - } - else { + String last_path = appPreferences.getString("last_upload_path", ""); + // "/" equals root-directory + if(last_path.equals("/")) { mParents.add(""); } - - populateDirectoryList(); + else{ + String[] dir_names = last_path.split("/"); + for (String dir : dir_names) + mParents.add(dir); + } + //Make sure that path still exists, if it doesn't pop the stack and try the previous path + while(!mStorageManager.fileExists(generatePath(mParents))){ + mParents.pop(); + } } + + populateDirectoryList(); + } else { showDialog(DIALOG_NO_STREAM); } @@ -474,13 +465,11 @@ else if (mimeType.contains("audio")) { intent.putExtra(FileUploader.KEY_ACCOUNT, mAccount); startService(intent); - //If the user has enabled last upload path then save the path to shared preferences - if(mSaveUploadLocation){ - SharedPreferences.Editor appPrefs = PreferenceManager - .getDefaultSharedPreferences(getApplicationContext()).edit(); - appPrefs.putString("last_upload_path", mUploadPath); - appPrefs.apply(); - } + //Save the path to shared preferences + SharedPreferences.Editor appPrefs = PreferenceManager + .getDefaultSharedPreferences(getApplicationContext()).edit(); + appPrefs.putString("last_upload_path", mUploadPath); + appPrefs.apply(); finish(); }