Merge branch 'develop' into check_server_certificates_in_SSO_webview
authormasensio <masensio@solidgear.es>
Mon, 10 Mar 2014 10:08:42 +0000 (11:08 +0100)
committermasensio <masensio@solidgear.es>
Mon, 10 Mar 2014 10:08:42 +0000 (11:08 +0100)
1  2 
res/values/setup.xml
res/values/strings.xml
src/com/owncloud/android/authentication/SsoWebViewClient.java
src/com/owncloud/android/syncadapter/FileSyncAdapter.java
src/com/owncloud/android/ui/activity/CopyToClipboardActivity.java
src/com/owncloud/android/ui/activity/FileDisplayActivity.java
src/com/owncloud/android/ui/preview/PreviewImageActivity.java
src/com/owncloud/android/ui/preview/PreviewVideoActivity.java

      
      <!-- Flags to setup the authentication methods available in the app -->
      <string name="auth_method_oauth2">off</string>
 -    <string name="auth_method_saml_web_sso">off</string>
 +    <string name="auth_method_saml_web_sso">on</string>
      
+     <!-- Flags to enable/disable some features -->
+     <string name = "send_files_to_other_apps">on</string>
+     
+     
      <!-- Colors -->
      <color name="login_background_color">#FFFFFF</color>
      <color name="login_logo_background_color">#FFFFFF</color>
Simple merge
  
  package com.owncloud.android.authentication;
  
 +import java.io.ByteArrayInputStream;
  import java.lang.ref.WeakReference;
 +import java.security.cert.Certificate;
 +import java.security.cert.CertificateException;
 +import java.security.cert.CertificateFactory;
 +import java.security.cert.X509Certificate;
  
- import com.owncloud.android.R;
- import com.owncloud.android.ui.dialog.SslUntrustedCertDialog;
 +import com.owncloud.android.lib.common.network.NetworkUtils;
 +import com.actionbarsherlock.app.SherlockFragmentActivity;
- import com.owncloud.android.ui.dialog.SslUntrustedCertDialog.OnSslUntrustedCertListener;
 +import com.owncloud.android.ui.dialog.SslUntrustedCertDialogABSTRACT;
  import com.owncloud.android.utils.Log_OC;
  
 +import android.content.Context;
  import android.graphics.Bitmap;
 +import android.net.http.SslCertificate;
  import android.net.http.SslError;
 +import android.os.Bundle;
  import android.os.Handler;
  import android.os.Message;
 +import android.support.v4.app.FragmentManager;
 +import android.support.v4.app.FragmentTransaction;
  import android.view.KeyEvent;
  import android.view.View;
  import android.webkit.CookieManager;
@@@ -30,7 -30,7 +30,6 @@@ import com.owncloud.android.R
  import com.owncloud.android.authentication.AuthenticatorActivity;
  import com.owncloud.android.datamodel.FileDataStorageManager;
  import com.owncloud.android.datamodel.OCFile;
--import com.owncloud.android.lib.common.accounts.AccountUtils.Constants;
  import com.owncloud.android.lib.common.operations.RemoteOperationResult;
  import com.owncloud.android.operations.SynchronizeFolderOperation;
  import com.owncloud.android.operations.UpdateOCVersionOperation;
@@@ -41,7 -41,7 +40,6 @@@ import com.owncloud.android.utils.Log_O
  
  
  import android.accounts.Account;
--import android.accounts.AccountManager;
  import android.accounts.AccountsException;
  import android.app.Notification;
  import android.app.NotificationManager;
@@@ -22,7 -22,7 +22,6 @@@ import com.owncloud.android.R
  import android.app.Activity;
  import android.content.ClipData;
  import android.content.Intent;
--import android.os.Build;
  import android.os.Bundle;
  import android.text.ClipboardManager;
  import android.widget.Toast;
@@@ -141,7 -143,7 +142,9 @@@ OCFileListFragment.ContainerActivity, F
      private boolean mSyncInProgress = false;
      //private boolean mRefreshSharesInProgress = false;
  
 +    private String DIALOG_UNTRUSTED_CERT;
++    
+     private OCFile mWaitingToSend;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          mRefreshSharesInProgress = true;
      }
      */
 +    
 +    /**
 +     * Show untrusted cert dialog 
 +     */
 +    public void showUntrustedCertDialog(RemoteOperationResult result) {
 +        // Show a dialog with the certificate info
 +        SslUntrustedCertDialog dialog = SslUntrustedCertDialog.newInstance(result, this);
 +        FragmentManager fm = getSupportFragmentManager();
 +        FragmentTransaction ft = fm.beginTransaction();
 +        dialog.show(ft, DIALOG_UNTRUSTED_CERT);
 +        
 +    }
 +    
 +    /**
 +     * Dismiss untrusted cert dialog
 +     */
 +    public void dismissUntrustedCertDialog(){
 +        Fragment frag = getSupportFragmentManager().findFragmentByTag(DIALOG_UNTRUSTED_CERT);
 +        if (frag != null) {
 +            SslUntrustedCertDialog dialog = (SslUntrustedCertDialog) frag;
 +            dialog.dismiss();
 +        }
 +    }
 +
 +    @Override
 +    public void onCancelCertificate() {
 +        // TODO Auto-generated method stub
 +        
 +    }
  
+     /**
+      * Requests the download of the received {@link OCFile} , updates the UI
+      * to monitor the download progress and prepares the activity to send the file
+      * when the download finishes.
+      * 
+      * @param file          {@link OCFile} to download and preview.
+      */
+     @Override
+     public void startDownloadForSending(OCFile file) {
+         mWaitingToSend = file;
+         requestForDownload(mWaitingToSend);
+         boolean hasSecondFragment = (getSecondFragment()!= null);
+         updateFragmentsVisibility(hasSecondFragment);
+     }
+     
+     private void requestForDownload(OCFile file) {
+         Account account = getAccount();
+         if (!mDownloaderBinder.isDownloading(account, file)) {
+             Intent i = new Intent(this, FileDownloader.class);
+             i.putExtra(FileDownloader.EXTRA_ACCOUNT, account);
+             i.putExtra(FileDownloader.EXTRA_FILE, file);
+             startService(i);
+         }
+     }
+     
+     private void sendDownloadedFile(){
+         getFileOperationsHelper().sendDownloadedFile(mWaitingToSend, this);
+         mWaitingToSend = null;
+     }
+     
  }