Fixed title in action bar when user clicks on upload notification in progress / failed
[pub/Android/ownCloud.git] / src / com / owncloud / android / authentication / AuthenticatorActivity.java
index 3ab7690..e8f42d9 100644 (file)
@@ -54,7 +54,6 @@ import android.view.MotionEvent;
 import android.view.View;\r
 import android.view.View.OnFocusChangeListener;\r
 import android.view.View.OnTouchListener;\r
 import android.view.View;\r
 import android.view.View.OnFocusChangeListener;\r
 import android.view.View.OnTouchListener;\r
-import android.view.Window;\r
 import android.view.inputmethod.EditorInfo;\r
 import android.webkit.HttpAuthHandler;\r
 import android.webkit.SslErrorHandler;\r
 import android.view.inputmethod.EditorInfo;\r
 import android.webkit.HttpAuthHandler;\r
 import android.webkit.SslErrorHandler;\r
@@ -206,7 +205,16 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
     protected void onCreate(Bundle savedInstanceState) {\r
         //Log_OC.wtf(TAG,  "onCreate init");\r
         super.onCreate(savedInstanceState);\r
     protected void onCreate(Bundle savedInstanceState) {\r
         //Log_OC.wtf(TAG,  "onCreate init");\r
         super.onCreate(savedInstanceState);\r
-        getWindow().requestFeature(Window.FEATURE_NO_TITLE);\r
+\r
+        // Workaround, for fixing a problem with Android Library Suppor v7 19\r
+        //getWindow().requestFeature(Window.FEATURE_NO_TITLE);\r
+        if (getSupportActionBar() != null) {\r
+            getSupportActionBar().hide();\r
+\r
+            getSupportActionBar().setDisplayHomeAsUpEnabled(false);\r
+            getSupportActionBar().setDisplayShowHomeEnabled(false);\r
+            getSupportActionBar().setDisplayShowTitleEnabled(false);\r
+        }\r
 \r
         mIsFirstAuthAttempt = true;\r
 \r
 \r
         mIsFirstAuthAttempt = true;\r
 \r
@@ -339,11 +347,8 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
             if (mAccount != null) {\r
                 mServerInfo.mBaseUrl = mAccountMgr.getUserData(mAccount, Constants.KEY_OC_BASE_URL);\r
                 // TODO do next in a setter for mBaseUrl\r
             if (mAccount != null) {\r
                 mServerInfo.mBaseUrl = mAccountMgr.getUserData(mAccount, Constants.KEY_OC_BASE_URL);\r
                 // TODO do next in a setter for mBaseUrl\r
-                mServerInfo.mIsSslConn = mServerInfo.mBaseUrl.startsWith("https://");   \r
-                String ocVersion = mAccountMgr.getUserData(mAccount, Constants.KEY_OC_VERSION);\r
-                if (ocVersion != null) {\r
-                    mServerInfo.mVersion = new OwnCloudVersion(ocVersion);\r
-                }\r
+                mServerInfo.mIsSslConn = mServerInfo.mBaseUrl.startsWith("https://");\r
+                mServerInfo.mVersion = AccountUtils.getServerVersion(mAccount);\r
             } else {\r
                 mServerInfo.mBaseUrl = getString(R.string.server_url).trim();\r
                 mServerInfo.mIsSslConn = mServerInfo.mBaseUrl.startsWith("https://");\r
             } else {\r
                 mServerInfo.mBaseUrl = getString(R.string.server_url).trim();\r
                 mServerInfo.mIsSslConn = mServerInfo.mBaseUrl.startsWith("https://");\r
@@ -561,7 +566,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
      * intended to defer the processing of the redirection caught in \r
      * {@link #onNewIntent(Intent)} until {@link #onResume()} \r
      * \r
      * intended to defer the processing of the redirection caught in \r
      * {@link #onNewIntent(Intent)} until {@link #onResume()} \r
      * \r
-     * See {@link #onSaveInstanceState(Bundle)}\r
+     * See {@link super#onSaveInstanceState(Bundle)}\r
      */\r
     @Override\r
     protected void onSaveInstanceState(Bundle outState) {\r
      */\r
     @Override\r
     protected void onSaveInstanceState(Bundle outState) {\r
@@ -787,7 +792,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
             Intent getServerInfoIntent = new Intent();\r
             getServerInfoIntent.setAction(OperationsService.ACTION_GET_SERVER_INFO);\r
             getServerInfoIntent.putExtra(\r
             Intent getServerInfoIntent = new Intent();\r
             getServerInfoIntent.setAction(OperationsService.ACTION_GET_SERVER_INFO);\r
             getServerInfoIntent.putExtra(\r
-                OperationsService.EXTRA_SERVER_URL, \r
+                OperationsService.EXTRA_SERVER_URL,\r
                 normalizeUrlSuffix(uri)\r
             );\r
             if (mOperationsServiceBinder != null) {\r
                 normalizeUrlSuffix(uri)\r
             );\r
             if (mOperationsServiceBinder != null) {\r
@@ -1002,7 +1007,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
 \r
             if ( mAction == ACTION_CREATE) {\r
                 mUsernameInput.setText(username);\r
 \r
             if ( mAction == ACTION_CREATE) {\r
                 mUsernameInput.setText(username);\r
-                success = createAccount();\r
+                success = createAccount(result);\r
             } else {\r
 \r
                 if (!mUsernameInput.getText().toString().equals(username)) {\r
             } else {\r
 \r
                 if (!mUsernameInput.getText().toString().equals(username)) {\r
@@ -1106,7 +1111,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
                     url = "http://" + url;\r
                 }\r
             }\r
                     url = "http://" + url;\r
                 }\r
             }\r
-        \r
+\r
             url = normalizeUrlSuffix(url);\r
         }\r
         return (url != null ? url : "");\r
             url = normalizeUrlSuffix(url);\r
         }\r
         return (url != null ? url : "");\r
@@ -1127,7 +1132,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
         if(url.toLowerCase().endsWith(AccountUtils.WEBDAV_PATH_4_0_AND_LATER)){\r
             url = url.substring(0, url.length() - AccountUtils.WEBDAV_PATH_4_0_AND_LATER.length());\r
         }\r
         if(url.toLowerCase().endsWith(AccountUtils.WEBDAV_PATH_4_0_AND_LATER)){\r
             url = url.substring(0, url.length() - AccountUtils.WEBDAV_PATH_4_0_AND_LATER.length());\r
         }\r
-        return (url != null ? url : "");\r
+        return url;\r
     }\r
 \r
 \r
     }\r
 \r
 \r
@@ -1356,8 +1361,9 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
             Log_OC.d(TAG, "Successful access - time to save the account");\r
 \r
             boolean success = false;\r
             Log_OC.d(TAG, "Successful access - time to save the account");\r
 \r
             boolean success = false;\r
+\r
             if (mAction == ACTION_CREATE) {\r
             if (mAction == ACTION_CREATE) {\r
-                success = createAccount();\r
+                success = createAccount(result);\r
 \r
             } else {\r
                 try {\r
 \r
             } else {\r
                 try {\r
@@ -1425,7 +1431,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
         response.putString(AccountManager.KEY_ACCOUNT_TYPE, mAccount.type);\r
 \r
         if (AccountTypeUtils.getAuthTokenTypeAccessToken(MainApp.getAccountType()).\r
         response.putString(AccountManager.KEY_ACCOUNT_TYPE, mAccount.type);\r
 \r
         if (AccountTypeUtils.getAuthTokenTypeAccessToken(MainApp.getAccountType()).\r
-                equals(mAuthTokenType)) { \r
+                equals(mAuthTokenType)) {\r
             response.putString(AccountManager.KEY_AUTHTOKEN, mAuthToken);\r
             // the next line is necessary, notifications are calling directly to the \r
             // AuthenticatorActivity to update, without AccountManager intervention\r
             response.putString(AccountManager.KEY_AUTHTOKEN, mAuthToken);\r
             // the next line is necessary, notifications are calling directly to the \r
             // AuthenticatorActivity to update, without AccountManager intervention\r
@@ -1455,13 +1461,18 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
      * \r
      * TODO Decide how to name the OAuth accounts\r
      */\r
      * \r
      * TODO Decide how to name the OAuth accounts\r
      */\r
-    private boolean createAccount() {\r
+    private boolean createAccount(RemoteOperationResult authResult) {\r
         /// create and save new ownCloud account\r
         boolean isOAuth = AccountTypeUtils.\r
                 getAuthTokenTypeAccessToken(MainApp.getAccountType()).equals(mAuthTokenType);\r
         boolean isSaml =  AccountTypeUtils.\r
                 getAuthTokenTypeSamlSessionCookie(MainApp.getAccountType()).equals(mAuthTokenType);\r
 \r
         /// create and save new ownCloud account\r
         boolean isOAuth = AccountTypeUtils.\r
                 getAuthTokenTypeAccessToken(MainApp.getAccountType()).equals(mAuthTokenType);\r
         boolean isSaml =  AccountTypeUtils.\r
                 getAuthTokenTypeSamlSessionCookie(MainApp.getAccountType()).equals(mAuthTokenType);\r
 \r
+        String lastPermanentLocation = authResult.getLastPermanentLocation();\r
+        if (lastPermanentLocation != null) {\r
+            mServerInfo.mBaseUrl = AccountUtils.trimWebdavSuffix(lastPermanentLocation);\r
+        }\r
+\r
         Uri uri = Uri.parse(mServerInfo.mBaseUrl);\r
         String username = mUsernameInput.getText().toString().trim();\r
         if (isOAuth) {\r
         Uri uri = Uri.parse(mServerInfo.mBaseUrl);\r
         String username = mUsernameInput.getText().toString().trim();\r
         if (isOAuth) {\r
@@ -1519,7 +1530,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
             /// add user data to the new account; TODO probably can be done in the last parameter \r
             //      addAccountExplicitly, or in KEY_USERDATA\r
             mAccountMgr.setUserData(\r
             /// add user data to the new account; TODO probably can be done in the last parameter \r
             //      addAccountExplicitly, or in KEY_USERDATA\r
             mAccountMgr.setUserData(\r
-                    mAccount, Constants.KEY_OC_VERSION,    mServerInfo.mVersion.getVersion()\r
+                    mAccount, Constants.KEY_OC_VERSION, mServerInfo.mVersion.getVersion()\r
             );\r
             mAccountMgr.setUserData(\r
                     mAccount, Constants.KEY_OC_BASE_URL,   mServerInfo.mBaseUrl\r
             );\r
             mAccountMgr.setUserData(\r
                     mAccount, Constants.KEY_OC_BASE_URL,   mServerInfo.mBaseUrl\r
@@ -1702,7 +1713,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
     }\r
 \r
 \r
     }\r
 \r
 \r
-    private void getRemoteUserNameOperation(String sessionCookie, boolean followRedirects) {\r
+    private void getRemoteUserNameOperation(String sessionCookie) {\r
         \r
         Intent getUserNameIntent = new Intent();\r
         getUserNameIntent.setAction(OperationsService.ACTION_GET_USER_NAME);\r
         \r
         Intent getUserNameIntent = new Intent();\r
         getUserNameIntent.setAction(OperationsService.ACTION_GET_USER_NAME);\r
@@ -1720,7 +1731,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
         if (sessionCookie != null && sessionCookie.length() > 0) {\r
             Log_OC.d(TAG, "Successful SSO - time to save the account");\r
             mAuthToken = sessionCookie;\r
         if (sessionCookie != null && sessionCookie.length() > 0) {\r
             Log_OC.d(TAG, "Successful SSO - time to save the account");\r
             mAuthToken = sessionCookie;\r
-            getRemoteUserNameOperation(sessionCookie, true);\r
+            getRemoteUserNameOperation(sessionCookie);\r
             Fragment fd = getSupportFragmentManager().findFragmentByTag(SAML_DIALOG_TAG);\r
             if (fd != null && fd instanceof DialogFragment) {\r
                 Dialog d = ((DialogFragment)fd).getDialog();\r
             Fragment fd = getSupportFragmentManager().findFragmentByTag(SAML_DIALOG_TAG);\r
             if (fd != null && fd instanceof DialogFragment) {\r
                 Dialog d = ((DialogFragment)fd).getDialog();\r
@@ -1754,7 +1765,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
             X509Certificate x509Certificate, SslError error, SslErrorHandler handler\r
         ) {\r
         // Show a dialog with the certificate info\r
             X509Certificate x509Certificate, SslError error, SslErrorHandler handler\r
         ) {\r
         // Show a dialog with the certificate info\r
-        SslUntrustedCertDialog dialog = null;\r
+        SslUntrustedCertDialog dialog;\r
         if (x509Certificate == null) {\r
             dialog = SslUntrustedCertDialog.newInstanceForEmptySslError(error, handler);\r
         } else {\r
         if (x509Certificate == null) {\r
             dialog = SslUntrustedCertDialog.newInstanceForEmptySslError(error, handler);\r
         } else {\r
@@ -1846,8 +1857,6 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
                 \r
                 doOnResumeAndBound();\r
                 \r
                 \r
                 doOnResumeAndBound();\r
                 \r
-            } else {\r
-                return;\r
             }\r
             \r
         }\r
             }\r
             \r
         }\r
@@ -1866,8 +1875,8 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
 \r
     /**\r
      * Create and show dialog for request authentication to the user\r
 \r
     /**\r
      * Create and show dialog for request authentication to the user\r
-     * @param webView\r
-     * @param handler\r
+     * @param webView   Web view to emebd into the authentication dialog.\r
+     * @param handler   Object responsible for catching and recovering HTTP authentication fails.\r
      */\r
     public void createAuthenticationDialog(WebView webView, HttpAuthHandler handler) {\r
 \r
      */\r
     public void createAuthenticationDialog(WebView webView, HttpAuthHandler handler) {\r
 \r
@@ -1898,5 +1907,4 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
         mIsFirstAuthAttempt = true;\r
     }\r
 \r
         mIsFirstAuthAttempt = true;\r
     }\r
 \r
-\r
 }\r
 }\r