Merge pull request #152 from owncloud/oauth_login
[pub/Android/ownCloud.git] / src / com / owncloud / android / authentication / AuthenticatorActivity.java
index 44ebf6a..ef5c21b 100644 (file)
@@ -3,9 +3,8 @@
  *   Copyright (C) 2012-2013 ownCloud Inc.\r
  *\r
  *   This program is free software: you can redistribute it and/or modify\r
- *   it under the terms of the GNU General Public License as published by\r
- *   the Free Software Foundation, either version 2 of the License, or\r
- *   (at your option) any later version.\r
+ *   it under the terms of the GNU General Public License version 2,\r
+ *   as published by the Free Software Foundation.\r
  *\r
  *   This program is distributed in the hope that it will be useful,\r
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of\r
@@ -20,6 +19,7 @@
 package com.owncloud.android.authentication;\r
 \r
 import com.owncloud.android.AccountUtils;\r
+import com.owncloud.android.Log_OC;\r
 import com.owncloud.android.ui.dialog.SslValidatorDialog;\r
 import com.owncloud.android.ui.dialog.SslValidatorDialog.OnSslValidatorListener;\r
 import com.owncloud.android.utils.OwnCloudVersion;\r
@@ -47,7 +47,6 @@ import android.os.Bundle;
 import android.os.Handler;\r
 import android.preference.PreferenceManager;\r
 import android.text.InputType;\r
-import android.util.Log;\r
 import android.view.View;\r
 import android.view.View.OnFocusChangeListener;\r
 import android.view.Window;\r
@@ -87,6 +86,10 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
     private static final String KEY_IS_SSL_CONN = "IS_SSL_CONN";\r
     private static final String KEY_OAUTH2_STATUS_TEXT = "OAUTH2_STATUS_TEXT";\r
     private static final String KEY_OAUTH2_STATUS_ICON = "OAUTH2_STATUS_ICON";\r
+    \r
+    private static final String OAUTH_MODE_ON = "on";\r
+    private static final String OAUTH_MODE_OFF = "off";\r
+    private static final String OAUTH_MODE_OPTIONAL = "optional";\r
 \r
     private static final int DIALOG_LOGIN_PROGRESS = 0;\r
     private static final int DIALOG_SSL_VALIDATOR = 1;\r
@@ -154,7 +157,6 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
         mOkButton = findViewById(R.id.buttonOK);\r
         mAuthStatusLayout = (TextView) findViewById(R.id.auth_status_text); \r
         \r
-\r
         /// complete label for 'register account' button\r
         Button b = (Button) findViewById(R.id.account_register);\r
         if (b != null) {\r
@@ -179,7 +181,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
             \r
             /// retrieve extras from intent\r
             String tokenType = getIntent().getExtras().getString(AccountAuthenticator.KEY_AUTH_TOKEN_TYPE);\r
-            boolean oAuthRequired = AccountAuthenticator.AUTH_TOKEN_TYPE_ACCESS_TOKEN.equals(tokenType);\r
+            boolean oAuthRequired = AccountAuthenticator.AUTH_TOKEN_TYPE_ACCESS_TOKEN.equals(tokenType) || OAUTH_MODE_ON.equals(getString(R.string.oauth2_mode));\r
             \r
             mAccount = getIntent().getExtras().getParcelable(EXTRA_ACCOUNT);\r
             if (mAccount != null) {\r
@@ -201,6 +203,10 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
             loadSavedInstanceState(savedInstanceState);\r
         }\r
         \r
+        if (!OAUTH_MODE_OPTIONAL.equals(getString(R.string.oauth2_mode))) {\r
+            mOAuth2Check.setVisibility(View.GONE);\r
+        }\r
+        \r
         if (mAction == ACTION_UPDATE_TOKEN) {\r
             /// lock things that should not change\r
             mHostUrlInput.setEnabled(false);\r
@@ -295,7 +301,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
      */\r
     @Override\r
     protected void onNewIntent (Intent intent) {\r
-        Log.d(TAG, "onNewIntent()");\r
+        Log_OC.d(TAG, "onNewIntent()");\r
         Uri data = intent.getData();\r
         if (data != null && data.toString().startsWith(getString(R.string.oauth2_redirect_uri))) {\r
             mNewCapturedUriFromOAuth2Redirection = data;\r
@@ -470,7 +476,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
             mStatusText = R.string.auth_wtf_reenter_URL;\r
             updateConnStatus();\r
             mOkButton.setEnabled(false);\r
-            Log.wtf(TAG,  "The user was allowed to click 'connect' to an unchecked server!!");\r
+            Log_OC.wtf(TAG,  "The user was allowed to click 'connect' to an unchecked server!!");\r
             return;\r
         }\r
         \r
@@ -526,7 +532,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
         uriBuilder.appendQueryParameter(OAuth2Constants.KEY_SCOPE, getString(R.string.oauth2_scope));\r
         //uriBuilder.appendQueryParameter(OAuth2Constants.KEY_STATE, whateverwewant);\r
         uri = uriBuilder.build();\r
-        Log.d(TAG, "Starting browser to view " + uri.toString());\r
+        Log_OC.d(TAG, "Starting browser to view " + uri.toString());\r
         Intent i = new Intent(Intent.ACTION_VIEW, uri);\r
         startActivity(i);\r
     }\r
@@ -715,7 +721,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
             \r
             /// time to test the retrieved access token on the ownCloud server\r
             mOAuthAccessToken = ((OAuth2GetAccessToken)operation).getResultTokenMap().get(OAuth2Constants.KEY_ACCESS_TOKEN);\r
-            Log.d(TAG, "Got ACCESS TOKEN: " + mOAuthAccessToken);\r
+            Log_OC.d(TAG, "Got ACCESS TOKEN: " + mOAuthAccessToken);\r
             mAuthCheckOperation = new ExistenceCheckOperation("", this, false);\r
             WebdavClient client = OwnCloudClientUtils.createOwnCloudClient(Uri.parse(mHostBaseUrl + webdav_path), this);\r
             client.setBearerCredentials(mOAuthAccessToken);\r
@@ -724,7 +730,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
         } else {\r
             updateStatusIconAndText(result);\r
             updateAuthStatus();\r
-            Log.d(TAG, "Access failed: " + result.getLogMessage());\r
+            Log_OC.d(TAG, "Access failed: " + result.getLogMessage());\r
         }\r
     }\r
 \r
@@ -745,7 +751,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
         }\r
         \r
         if (result.isSuccess()) {\r
-            Log.d(TAG, "Successful access - time to save the account");\r
+            Log_OC.d(TAG, "Successful access - time to save the account");\r
 \r
             if (mAction == ACTION_CREATE) {\r
                 createAccount();\r
@@ -759,7 +765,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
         } else {\r
             updateStatusIconAndText(result);\r
             updateAuthStatus();\r
-            Log.d(TAG, "Access failed: " + result.getLogMessage());\r
+            Log_OC.d(TAG, "Access failed: " + result.getLogMessage());\r
         }\r
     }\r
 \r
@@ -867,7 +873,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
             break;\r
         }\r
         default:\r
-            Log.e(TAG, "Incorrect dialog called with id = " + id);\r
+            Log_OC.e(TAG, "Incorrect dialog called with id = " + id);\r
         }\r
     }\r
 \r
@@ -890,7 +896,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
                         @Override\r
                         public void onCancel(DialogInterface dialog) {\r
                             /// TODO study if this is enough\r
-                            Log.i(TAG, "Login canceled");\r
+                            Log_OC.i(TAG, "Login canceled");\r
                             if (mOperationThread != null) {\r
                                 mOperationThread.interrupt();\r
                                 finish();\r
@@ -909,7 +915,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
             .setOnCancelListener(new DialogInterface.OnCancelListener() {\r
                 @Override\r
                 public void onCancel(DialogInterface dialog) {\r
-                    Log.i(TAG, "Login canceled");\r
+                    Log_OC.i(TAG, "Login canceled");\r
                     finish();\r
                 }\r
             });\r
@@ -935,7 +941,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
             break;\r
         }\r
         default:\r
-            Log.e(TAG, "Incorrect dialog called with id = " + id);\r
+            Log_OC.e(TAG, "Incorrect dialog called with id = " + id);\r
         }\r
         return dialog;\r
     }\r