Эх сурвалжийг харах

Update branch master with released code for version 1.9.1

David A. Velasco 9 жил өмнө
parent
commit
7366dbff09

+ 2 - 2
AndroidManifest.xml

@@ -19,8 +19,8 @@
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.owncloud.android"
-    android:versionCode="10900000"
-    android:versionName="1.9.0" >
+    android:versionCode="10900100"
+    android:versionName="1.9.1" >
 
     <uses-sdk
         android:minSdkVersion="14"

+ 10 - 0
CHANGELOG.md

@@ -1,3 +1,13 @@
+## 1.9.1 (February 2016)
+- Set and edit permissions on internal shared data
+- Instant uploads: avoid file duplications, set policy in app settings
+- Control duplication of files uploaded via 'Upload' button
+- Select view mode: either list or grid per folder
+- More Material Design: buttons and checkboxes
+- Fixed battery drain in automatic synchronization
+- Security fixes related to passcode
+- Wording fixes
+
 ## 1.9.0 (December 2015)
 - Share privately with users or groups in your server
 - Share link with password protection and expiration date

+ 2 - 2
oc_jb_workaround/AndroidManifest.xml

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.owncloud.android.workaround.accounts"
-    android:versionCode="0100026"
-    android:versionName="1.0.26" >
+    android:versionCode="0100027"
+    android:versionName="1.0.27" >
 
     <uses-sdk
         android:minSdkVersion="16"

+ 1 - 1
owncloud-android-library

@@ -1 +1 @@
-Subproject commit 95919c9005aac54e7707f0fdc3c5b9dfdb29dac1
+Subproject commit a953a890d3c61de3ac4bc42bb844cf0c03ac91b7

+ 1 - 1
res/values/setup.xml

@@ -36,7 +36,7 @@
     <color name="primary_button_background_color">@color/owncloud_blue_accent</color>
     <color name="primary_button_text_color">@color/white</color>
     <color name="secondary_button_background_color">#D6D7D7</color>
-    <color name="secondary_button_text_color">@color/color_accent</color>
+    <color name="secondary_button_text_color">@color/black</color>
     <color name="drawer_header_color">@color/owncloud_blue_accent</color>
 
     <!-- Button -->

+ 1 - 4
res/values/strings.xml

@@ -97,7 +97,7 @@
     <string name="common_error_unknown">Unknown error</string>
     <string name="about_title">About</string>
     <string name="change_password">Change password</string>
-    <string name="delete_account">Delete account</string>
+    <string name="delete_account">Remove account</string>
     <string name="create_account">Create account</string>
     <string name="upload_chooser_title">Upload from &#8230;</string>
     <string name="uploader_info_dirname">Folder name</string>
@@ -207,9 +207,6 @@
     <string name="confirmation_remove_alert">"Do you really want to remove %1$s?"</string>
     <string name="confirmation_remove_folder_alert">"Do you really want to remove %1$s and its contents?"</string>
     <string name="confirmation_remove_local">Local only</string>
-    <string name="confirmation_remove_folder_local">Local only</string>
-    <string name="confirmation_remove_remote">From server</string>
-    <string name="confirmation_remove_remote_and_local">Remote &amp; local</string>
     <string name="remove_success_msg">"Removal succeeded"</string>
     <string name="remove_fail_msg">"Removal failed"</string>
     <string name="rename_dialog_title">Enter a new name</string>

+ 4 - 1
src/com/owncloud/android/providers/FileContentProvider.java

@@ -280,7 +280,10 @@ public class FileContentProvider extends ContentProvider {
         int newShareType = newShare.getAsInteger(ProviderTableMeta.OCSHARES_SHARE_TYPE);
         if (newShareType == ShareType.PUBLIC_LINK.getValue()) {
             fileValues.put(ProviderTableMeta.FILE_SHARED_VIA_LINK, 1);
-        } else if (newShareType == ShareType.USER.getValue() || newShareType == ShareType.GROUP.getValue()) {
+        } else if (
+                newShareType == ShareType.USER.getValue() ||
+                newShareType == ShareType.GROUP.getValue() ||
+                newShareType == ShareType.FEDERATED.getValue() ) {
             fileValues.put(ProviderTableMeta.FILE_SHARED_WITH_SHAREE, 1);
         }
 

+ 2 - 0
src/com/owncloud/android/ui/activity/FileActivity.java

@@ -909,6 +909,8 @@ public class FileActivity extends AppCompatActivity
      * Show loading dialog
      */
     public void showLoadingDialog(String message) {
+        // grant that only one waiting dialog is shown
+        dismissLoadingDialog();
         // Construct dialog
         LoadingDialog loading = new LoadingDialog(message);
         FragmentManager fm = getSupportFragmentManager();

+ 7 - 9
src/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -23,7 +23,6 @@
 package com.owncloud.android.ui.activity;
 
 import android.accounts.Account;
-import android.accounts.AccountManager;
 import android.accounts.AuthenticatorException;
 import android.annotation.TargetApi;
 import android.content.BroadcastReceiver;
@@ -56,7 +55,6 @@ import android.view.MenuItem;
 import android.view.View;
 import android.widget.ProgressBar;
 import android.widget.RelativeLayout;
-import android.widget.TextView;
 import android.widget.Toast;
 
 import com.owncloud.android.MainApp;
@@ -67,11 +65,6 @@ import com.owncloud.android.files.services.FileDownloader;
 import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
 import com.owncloud.android.files.services.FileUploader;
 import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
-import com.owncloud.android.lib.common.OwnCloudAccount;
-import com.owncloud.android.lib.common.OwnCloudClient;
-import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
-import com.owncloud.android.lib.common.OwnCloudCredentials;
-import com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundException;
 import com.owncloud.android.lib.common.network.CertificateCombinedException;
 import com.owncloud.android.lib.common.operations.RemoteOperation;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
@@ -625,14 +618,19 @@ public class FileDisplayActivity extends HookActivity
 
         if (requestCode == ACTION_SELECT_CONTENT_FROM_APPS && (resultCode == RESULT_OK ||
                 resultCode == UploadFilesActivity.RESULT_OK_AND_MOVE)) {
+
             //getClipData is only supported on api level 16+, Jelly Bean
-            if (data.getData() == null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN){
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN &&
+                    data.getClipData() != null &&
+                    data.getClipData().getItemCount() > 0) {
+
                 for( int i = 0; i < data.getClipData().getItemCount(); i++){
                     Intent intent = new Intent();
                     intent.setData(data.getClipData().getItemAt(i).getUri());
                     requestSimpleUpload(intent, resultCode);
                 }
-            }else {
+
+            } else {
                 requestSimpleUpload(data, resultCode);
             }
         } else if (requestCode == ACTION_SELECT_MULTIPLE_FILES && (resultCode == RESULT_OK ||

+ 6 - 28
src/com/owncloud/android/ui/activity/PassCodeActivity.java

@@ -43,8 +43,6 @@ import android.widget.Toast;
 import com.owncloud.android.R;
 import com.owncloud.android.lib.common.utils.Log_OC;
 
-import java.util.Arrays;
-
 public class PassCodeActivity extends AppCompatActivity {
 
     private static final String TAG = PassCodeActivity.class.getSimpleName();
@@ -153,7 +151,7 @@ public class PassCodeActivity extends AppCompatActivity {
             mBCancel.setOnClickListener(new OnClickListener() {
                 @Override
                 public void onClick(View v) {
-                    revertActionAndExit();
+                    finish();
                 }
             });
         } else {
@@ -376,7 +374,7 @@ public class PassCodeActivity extends AppCompatActivity {
 
         boolean result = true;
         for (int i = 0; i < mPassCodeDigits.length && result; i++) {
-            result = result && (mPassCodeDigits[i] != null) &&
+            result = (mPassCodeDigits[i] != null) &&
                     mPassCodeDigits[i].equals(savedPassCodeDigits[i]);
         }
         return result;
@@ -393,8 +391,7 @@ public class PassCodeActivity extends AppCompatActivity {
 
         boolean result = true;
         for (int i = 0; i < mPassCodeEditTexts.length && result; i++) {
-            result = result &&
-                    ((mPassCodeEditTexts[i].getText().toString()).equals(mPassCodeDigits[i]));
+            result = ((mPassCodeEditTexts[i].getText().toString()).equals(mPassCodeDigits[i]));
         }
         return result;
     }
@@ -422,8 +419,8 @@ public class PassCodeActivity extends AppCompatActivity {
         if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount()== 0){
             if (ACTION_REQUEST_WITH_RESULT.equals(getIntent().getAction()) ||
                     ACTION_CHECK_WITH_RESULT.equals(getIntent().getAction())) {
-                revertActionAndExit();
-            }
+                finish();
+            }   // else, do nothing, but report that the key was consumed to stay alive
             return true;
         }
         return super.onKeyDown(keyCode, event);
@@ -442,25 +439,6 @@ public class PassCodeActivity extends AppCompatActivity {
         finish();
     }
 
-    /**
-     * Cancellation of ACTION_ENABLE or ACTION_DISABLE; reverts the enable or disable action done by
-     * {@link Preferences}, then finishes.
-     */
-    protected void revertActionAndExit() {
-        SharedPreferences.Editor appPrefsE = PreferenceManager
-                .getDefaultSharedPreferences(getApplicationContext()).edit();
-
-        SharedPreferences appPrefs = PreferenceManager
-                .getDefaultSharedPreferences(getApplicationContext());
-
-        boolean state = appPrefs.getBoolean(PREFERENCE_SET_PASSCODE, false);
-        appPrefsE.putBoolean(PREFERENCE_SET_PASSCODE, !state);
-        // TODO WIP: this is reverting the value of the preference because it was changed BEFORE
-        // entering
-        // TODO         in this activity; was the PreferenceCheckBox in the caller who did it
-        appPrefsE.commit();
-        finish();
-    }
 
     @Override
     public void onSaveInstanceState(Bundle outState) {
@@ -504,7 +482,7 @@ public class PassCodeActivity extends AppCompatActivity {
          *  - moves the focus automatically to the next field
          *  - for the last field, triggers the processing of the full pass code
          *
-         * @param s
+         * @param s     Changed text
          */
         @Override
         public void afterTextChanged(Editable s) {

+ 1 - 4
src/com/owncloud/android/ui/dialog/RemoveFileDialogFragment.java

@@ -54,20 +54,17 @@ implements ConfirmationDialogFragmentListener {
         
         int messageStringId = R.string.confirmation_remove_alert;
         
-        int posBtn = R.string.confirmation_remove_remote;
         int negBtn = -1;
         if (file.isFolder()) {
             messageStringId = R.string.confirmation_remove_folder_alert;
-            posBtn = R.string.confirmation_remove_remote_and_local;
             negBtn = R.string.confirmation_remove_local;
         } else if (file.isDown()) {
-            posBtn = R.string.confirmation_remove_remote_and_local;
             negBtn = R.string.confirmation_remove_local;
         }
         
         args.putInt(ARG_CONF_RESOURCE_ID, messageStringId);
         args.putStringArray(ARG_CONF_ARGUMENTS, new String[]{file.getFileName()});
-        args.putInt(ARG_POSITIVE_BTN_RES, posBtn);
+        args.putInt(ARG_POSITIVE_BTN_RES, R.string.common_yes);
         args.putInt(ARG_NEUTRAL_BTN_RES, R.string.common_no);
         args.putInt(ARG_NEGATIVE_BTN_RES, negBtn);
         args.putParcelable(ARG_TARGET_FILE, file);

+ 6 - 7
src/com/owncloud/android/ui/dialog/UploadSourceDialogFragment.java

@@ -31,6 +31,7 @@ import android.support.v4.app.DialogFragment;
 import com.owncloud.android.R;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.ui.activity.FileActivity;
+import com.owncloud.android.ui.activity.FileDisplayActivity;
 import com.owncloud.android.ui.activity.UploadFilesActivity;
 
 
@@ -45,9 +46,6 @@ public class UploadSourceDialogFragment extends DialogFragment {
     private final static String ARG_ACCOUNT =  UploadSourceDialogFragment.class.getSimpleName() +
             ".ARG_ACCOUNT";
 
-    public static final int ACTION_SELECT_CONTENT_FROM_APPS = 1;
-    public static final int ACTION_SELECT_MULTIPLE_FILES = 2;
-
     public static UploadSourceDialogFragment newInstance(Account account) {
         UploadSourceDialogFragment f = new UploadSourceDialogFragment();
         Bundle args = new Bundle();
@@ -82,7 +80,10 @@ public class UploadSourceDialogFragment extends DialogFragment {
                     //startActivityForResult(action, ACTION_SELECT_MULTIPLE_FILES);
                     // this flow seems broken;
                     // Actionbarsherlock, maybe?
-                    getActivity().startActivityForResult(action, ACTION_SELECT_MULTIPLE_FILES);
+                    getActivity().startActivityForResult(
+                            action,
+                            FileDisplayActivity.ACTION_SELECT_MULTIPLE_FILES
+                    );
 
                 } else if (item == 1) {
                     Intent action = new Intent(Intent.ACTION_GET_CONTENT);
@@ -91,11 +92,9 @@ public class UploadSourceDialogFragment extends DialogFragment {
                     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
                         action.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
                     }
-                    //startActivityForResult(   // this flow seems broken;
-                                                // Actionbarsherlock, maybe?
                     getActivity().startActivityForResult(
                             Intent.createChooser(action, getString(R.string.upload_chooser_title)),
-                            ACTION_SELECT_CONTENT_FROM_APPS
+                            FileDisplayActivity.ACTION_SELECT_CONTENT_FROM_APPS
                     );
                 }
             }