X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/c38a3b2ef12a3f6b4b1f0dad611d31cbd0686793..73f8797b7572e431037fd5ee55c24237c544dfcb:/src/com/owncloud/android/ui/activity/AuthenticatorActivity.java diff --git a/src/com/owncloud/android/ui/activity/AuthenticatorActivity.java b/src/com/owncloud/android/ui/activity/AuthenticatorActivity.java index 5035269a..fb5c711b 100644 --- a/src/com/owncloud/android/ui/activity/AuthenticatorActivity.java +++ b/src/com/owncloud/android/ui/activity/AuthenticatorActivity.java @@ -112,6 +112,8 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity private boolean mStatusCorrect, mIsSslConn; private RemoteOperationResult mLastSslUntrustedServerResult; + public static final String PARAM_ACCOUNTNAME = "param_Accountname"; + public static final String PARAM_USERNAME = "param_Username"; public static final String PARAM_HOSTNAME = "param_Hostname"; @@ -196,6 +198,19 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity mStatusText = mStatusIcon = 0; mStatusCorrect = false; mIsSslConn = false; + + String accountName = getIntent().getExtras().getString(PARAM_ACCOUNTNAME); + String tokenType = getIntent().getExtras().getString(AccountAuthenticator.KEY_AUTH_TOKEN_TYPE); + if (AccountAuthenticator.AUTH_TOKEN_TYPE_ACCESS_TOKEN.equals(tokenType)) { + CheckBox oAuth2Check = (CheckBox) findViewById(R.id.oauth_onOff_check); + oAuth2Check.setChecked(true); + changeViewByOAuth2Check(true); + } + + if (accountName != null) { + ((TextView) findViewById(R.id.account_username)).setText(accountName.substring(0, accountName.lastIndexOf('@'))); + tv.setText(accountName.substring(accountName.lastIndexOf('@') + 1)); + } } iv.setOnClickListener(this); iv2.setOnClickListener(this); @@ -509,7 +524,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity URL uri = null; mDiscoveredVersion = mConnChkRunnable.getDiscoveredVersion(); - String webdav_path = AccountUtils.getWebdavPath(mDiscoveredVersion); + String webdav_path = AccountUtils.getWebdavPath(mDiscoveredVersion, false); if (webdav_path == null) { onAuthenticationResult(false, getString(R.string.auth_bad_oc_version_title)); @@ -613,7 +628,6 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity findViewById(R.id.buttonOK).setEnabled(mStatusCorrect); } - @Override public void onFocusChange(View view, boolean hasFocus) { if (view.getId() == R.id.host_URL) { if (!hasFocus) { @@ -1028,7 +1042,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity showDialog(DIALOG_LOGIN_PROGRESS); String accessToken = ((GetOAuth2AccessToken)operation).getResultTokenMap().get(OAuth2Context.KEY_ACCESS_TOKEN); - Log.d(TAG, "ACCESS TOKEN: " + accessToken); + Log.d(TAG, "Got ACCESS TOKEN: " + accessToken); mAuthChkOperation = new ExistenceCheckOperation("", this, accessToken); WebdavClient client = OwnCloudClientUtils.createOwnCloudClient(uri, getApplicationContext()); mAuthChkOperation.execute(client, this, mHandler); @@ -1050,9 +1064,8 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity if (result.isSuccess()) { TextView tv = (TextView) findViewById(R.id.oAuth_URL); - tv.setError("OOOOOKKKKKK"); - Log.d(TAG, "OOOOK!!!!"); - /** + Log.d(TAG, "Checked access - time to save the account"); + Uri uri = Uri.parse(mBaseUrl); String username = "OAuth_user" + (new java.util.Random(System.currentTimeMillis())).nextLong(); String accountName = username + "@" + uri.getHost(); @@ -1062,8 +1075,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity // TODO - check that accountName does not exist Account account = new Account(accountName, AccountAuthenticator.ACCOUNT_TYPE); AccountManager accManager = AccountManager.get(this); - /// TODO SAVE THE ACCESS TOKEN, HERE OR IN SOME BETTER PLACE - //accManager.addAccountExplicitly(account, mAccesToken, null); //// IS THIS REALLY NEEDED? IS NOT REDUNDANT WITH SETACCOUNTAUTHENTICATORRESULT? + accManager.addAccountExplicitly(account, "", null); // with our implementation, the password is never input in the app // Add this account as default in the preferences, if there is none Account defaultAccount = AccountUtils.getCurrentOwnCloudAccount(this); @@ -1077,12 +1089,13 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity final Intent intent = new Intent(); intent.putExtra(AccountManager.KEY_ACCOUNT_TYPE, AccountAuthenticator.ACCOUNT_TYPE); intent.putExtra(AccountManager.KEY_ACCOUNT_NAME, account.name); - intent.putExtra(AccountManager.KEY_AUTHTOKEN, AccountAuthenticator.ACCOUNT_TYPE); intent.putExtra(AccountManager.KEY_USERDATA, username); - intent.putExtra(AccountManager.KEY_AUTHTOKEN, mAccessToken) + accManager.setAuthToken(account, AccountAuthenticator.AUTH_TOKEN_TYPE_ACCESS_TOKEN, ((ExistenceCheckOperation) operation).getAccessToken()); + accManager.setUserData(account, AccountAuthenticator.KEY_OC_VERSION, mConnChkRunnable.getDiscoveredVersion().toString()); accManager.setUserData(account, AccountAuthenticator.KEY_OC_BASE_URL, mBaseUrl); + accManager.setUserData(account, AccountAuthenticator.KEY_SUPPORTS_OAUTH2, "TRUE"); setAccountAuthenticatorResult(intent.getExtras()); setResult(RESULT_OK, intent); @@ -1093,12 +1106,11 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity ContentResolver.requestSync(account, "org.owncloud", bundle); finish(); - */ } else { TextView tv = (TextView) findViewById(R.id.oAuth_URL); tv.setError(result.getLogMessage()); - Log.d(TAG, "NOOOOO " + result.getLogMessage()); + Log.d(TAG, "Access failed: " + result.getLogMessage()); } } }