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

Merge branch 'master' into develop

masensio 11 жил өмнө
parent
commit
c9a68d67e9

+ 3 - 3
AndroidManifest.xml

@@ -3,7 +3,7 @@
   ownCloud Android client application
 
   Copyright (C) 2012  Bartek Przybylski
-  Copyright (C) 2012-2013 ownCloud Inc.
+  Copyright (C) 2012-2014 ownCloud Inc.
 
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License version 2,
@@ -18,8 +18,8 @@
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
  -->
 <manifest package="com.owncloud.android"
-    android:versionCode="105004"
-    android:versionName="1.5.4" xmlns:android="http://schemas.android.com/apk/res/android">
+    android:versionCode="105005"
+    android:versionName="1.5.5" xmlns:android="http://schemas.android.com/apk/res/android">
 
     <uses-permission android:name="android.permission.GET_ACCOUNTS" />
     <uses-permission android:name="android.permission.USE_CREDENTIALS" />

+ 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="0100013"
-    android:versionName="1.0.13" >
+    android:versionCode="0100014"
+    android:versionName="1.0.14" >
 
     <uses-sdk
         android:minSdkVersion="16"

BIN
res/drawable-hdpi/notification_icon.png


BIN
res/drawable-mdpi/notification_icon.png


BIN
res/drawable-xhdpi/notification_icon.png


+ 1 - 2
res/layout/preview_image_fragment.xml

@@ -26,13 +26,12 @@
     android:background="@color/background_color" 
     android:gravity="center_horizontal"
 -->
-
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:id="@+id/top"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
-    android:background="@color/background_color"
+    android:background="#000000"
     tools:context=".ui.fragment.PreviewImageFragment" >
 
     <ProgressBar 

+ 1 - 1
res/values/strings.xml

@@ -166,7 +166,7 @@
 	<string name="auth_connecting_auth_server">Connecting to authentication server…</string>
 	<string name="auth_unsupported_auth_method">The server does not support this authentication method</string>    
 	<string name="auth_unsupported_multiaccount">%1$s does not support multiple accounts</string>
-	<string name="auth_fail_get_user_name">Your server is not returning a correct user id, contact with your admin please</string>
+	<string name="auth_fail_get_user_name">Your server is not returning a correct user id, please contact an administrator</string>
 	<string name="auth_can_not_auth_against_server">Can not authenticate against this server</string>
     
     <string name="fd_keep_in_sync">Keep file up to date</string>

+ 1 - 0
src/com/owncloud/android/files/services/FileUploader.java

@@ -849,6 +849,7 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
                 }
             }
             
+            errorBuilder.setContentText(content);
             mNotificationManager.notify(R.string.uploader_upload_failed_ticker, errorBuilder.build());
         }
 

+ 3 - 1
src/com/owncloud/android/operations/DetectAuthenticationMethodOperation.java

@@ -95,9 +95,11 @@ public class DetectAuthenticationMethodOperation extends RemoteOperation {
         
         // try to access the root folder, following redirections but not SAML SSO redirections
         result = operation.execute(client);
-        while (result.isTemporalRedirection() && !result.isIdPRedirection()) {
+        String redirectedLocation = result.getRedirectedLocation(); 
+        while (redirectedLocation != null && redirectedLocation.length() > 0 && !result.isIdPRedirection()) {
             client.setWebdavUri(Uri.parse(result.getRedirectedLocation()));
             result = operation.execute(client);
+            redirectedLocation = result.getRedirectedLocation();
         } 
 
         // analyze response  

+ 64 - 56
src/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -19,6 +19,8 @@
 package com.owncloud.android.ui.activity;
 
 import java.io.File;
+import java.io.InvalidClassException;
+
 import android.accounts.Account;
 import android.app.AlertDialog;
 import android.app.Dialog;
@@ -908,71 +910,77 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
          */
         @Override
         public void onReceive(Context context, Intent intent) {
-            String event = intent.getAction();
-            Log_OC.d(TAG, "Received broadcast " + event);
-            String accountName = intent.getStringExtra(FileSyncAdapter.EXTRA_ACCOUNT_NAME);
-            String synchFolderRemotePath = intent.getStringExtra(FileSyncAdapter.EXTRA_FOLDER_PATH); 
-            RemoteOperationResult synchResult = (RemoteOperationResult)intent.getSerializableExtra(FileSyncAdapter.EXTRA_RESULT);
-            boolean sameAccount = (getAccount() != null && accountName.equals(getAccount().name) && getStorageManager() != null); 
-
-            if (sameAccount) {
-                
-                if (FileSyncAdapter.EVENT_FULL_SYNC_START.equals(event)) {
-                    mSyncInProgress = true;
+            try {
+                String event = intent.getAction();
+                Log_OC.d(TAG, "Received broadcast " + event);
+                String accountName = intent.getStringExtra(FileSyncAdapter.EXTRA_ACCOUNT_NAME);
+                String synchFolderRemotePath = intent.getStringExtra(FileSyncAdapter.EXTRA_FOLDER_PATH); 
+                RemoteOperationResult synchResult = (RemoteOperationResult)intent.getSerializableExtra(FileSyncAdapter.EXTRA_RESULT);
+                boolean sameAccount = (getAccount() != null && accountName.equals(getAccount().name) && getStorageManager() != null); 
+    
+                if (sameAccount) {
                     
-                } else {
-                    OCFile currentFile = (getFile() == null) ? null : getStorageManager().getFileByPath(getFile().getRemotePath());
-                    OCFile currentDir = (getCurrentDir() == null) ? null : getStorageManager().getFileByPath(getCurrentDir().getRemotePath());
-
-                    if (currentDir == null) {
-                        // current folder was removed from the server 
-                        Toast.makeText( FileDisplayActivity.this, 
-                                        String.format(getString(R.string.sync_current_folder_was_removed), mDirectories.getItem(0)), 
-                                        Toast.LENGTH_LONG)
-                            .show();
-                        browseToRoot();
+                    if (FileSyncAdapter.EVENT_FULL_SYNC_START.equals(event)) {
+                        mSyncInProgress = true;
                         
                     } else {
-                        if (currentFile == null && !getFile().isFolder()) {
-                            // currently selected file was removed in the server, and now we know it
-                            cleanSecondFragment();
-                            currentFile = currentDir;
-                        }
-                    
-                        if (synchFolderRemotePath != null && currentDir.getRemotePath().equals(synchFolderRemotePath)) {
-                            OCFileListFragment fileListFragment = getListOfFilesFragment();
-                            if (fileListFragment != null) {
-                                fileListFragment.listDirectory(currentDir);
+                        OCFile currentFile = (getFile() == null) ? null : getStorageManager().getFileByPath(getFile().getRemotePath());
+                        OCFile currentDir = (getCurrentDir() == null) ? null : getStorageManager().getFileByPath(getCurrentDir().getRemotePath());
+    
+                        if (currentDir == null) {
+                            // current folder was removed from the server 
+                            Toast.makeText( FileDisplayActivity.this, 
+                                            String.format(getString(R.string.sync_current_folder_was_removed), mDirectories.getItem(0)), 
+                                            Toast.LENGTH_LONG)
+                                .show();
+                            browseToRoot();
+                            
+                        } else {
+                            if (currentFile == null && !getFile().isFolder()) {
+                                // currently selected file was removed in the server, and now we know it
+                                cleanSecondFragment();
+                                currentFile = currentDir;
+                            }
+                        
+                            if (synchFolderRemotePath != null && currentDir.getRemotePath().equals(synchFolderRemotePath)) {
+                                OCFileListFragment fileListFragment = getListOfFilesFragment();
+                                if (fileListFragment != null) {
+                                    fileListFragment.listDirectory(currentDir);
+                                }
                             }
+                            setFile(currentFile);
                         }
-                        setFile(currentFile);
-                    }
-                    
-                    mSyncInProgress = (!FileSyncAdapter.EVENT_FULL_SYNC_END.equals(event) && !SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_SHARES_SYNCED.equals(event));
+                        
+                        mSyncInProgress = (!FileSyncAdapter.EVENT_FULL_SYNC_END.equals(event) && !SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_SHARES_SYNCED.equals(event));
+                                
+                        /*
+                        if (synchResult != null && 
+                            synchResult.isSuccess() &&
+                                (SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_SYNCED.equals(event) || 
+                                    FileSyncAdapter.EVENT_FULL_SYNC_FOLDER_CONTENTS_SYNCED.equals(event)
+                                ) &&
+                                !mRefreshSharesInProgress &&
+                                getFileOperationsHelper().isSharedSupported(FileDisplayActivity.this)
+                            ) {
+                            startGetShares();
+                        }
+                        */
                             
-                    /*
-                    if (synchResult != null && 
-                        synchResult.isSuccess() &&
-                            (SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_SYNCED.equals(event) || 
-                                FileSyncAdapter.EVENT_FULL_SYNC_FOLDER_CONTENTS_SYNCED.equals(event)
-                            ) &&
-                            !mRefreshSharesInProgress &&
-                            getFileOperationsHelper().isSharedSupported(FileDisplayActivity.this)
-                        ) {
-                        startGetShares();
+                        }
+                        removeStickyBroadcast(intent);
+                        Log_OC.d(TAG, "Setting progress visibility to " + mSyncInProgress);
+                        setSupportProgressBarIndeterminateVisibility(mSyncInProgress /*|| mRefreshSharesInProgress*/);
+                }
+                
+                if (synchResult != null) {
+                    if (synchResult.getCode().equals(RemoteOperationResult.ResultCode.SSL_RECOVERABLE_PEER_UNVERIFIED)) {
+                        mLastSslUntrustedServerResult = synchResult;
                     }
-                    */
-                    
                 }
+            } catch (RuntimeException e) {
+                // avoid app crashes after changing the serial id of RemoteOperationResult 
+                // in owncloud library with broadcast notifications pending to process
                 removeStickyBroadcast(intent);
-                Log_OC.d(TAG, "Setting progress visibility to " + mSyncInProgress);
-                setSupportProgressBarIndeterminateVisibility(mSyncInProgress /*|| mRefreshSharesInProgress*/);
-            }
-            
-            if (synchResult != null) {
-                if (synchResult.getCode().equals(RemoteOperationResult.ResultCode.SSL_RECOVERABLE_PEER_UNVERIFIED)) {
-                    mLastSslUntrustedServerResult = synchResult;
-                }
             }
         }
     }