mirror of
https://github.com/nextcloud/android.git
synced 2024-11-27 09:39:25 +03:00
Merge pull request #172 from owncloud/login_view_layout_improvements
OC-65, OC-216: Hide Refresh Button.
This commit is contained in:
commit
8a4a9f02bb
6 changed files with 150 additions and 128 deletions
|
@ -1,8 +1,9 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<classpath>
|
<classpath>
|
||||||
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
|
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
|
||||||
<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
|
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
|
||||||
<classpathentry kind="src" path="src"/>
|
<classpathentry kind="src" path="src"/>
|
||||||
<classpathentry kind="src" path="gen"/>
|
<classpathentry kind="src" path="gen"/>
|
||||||
|
<classpathentry kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
|
||||||
<classpathentry kind="output" path="bin/classes"/>
|
<classpathentry kind="output" path="bin/classes"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
||||||
|
org.eclipse.jdt.core.compiler.compliance=1.6
|
||||||
|
org.eclipse.jdt.core.compiler.source=1.6
|
||||||
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
|
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
|
||||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
||||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
|
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<classpath>
|
<classpath>
|
||||||
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
|
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
|
||||||
<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
|
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
|
||||||
<classpathentry kind="src" path="src"/>
|
<classpathentry kind="src" path="src"/>
|
||||||
<classpathentry kind="src" path="gen"/>
|
<classpathentry kind="src" path="gen"/>
|
||||||
|
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
|
||||||
<classpathentry kind="output" path="bin/classes"/>
|
<classpathentry kind="output" path="bin/classes"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
|
@ -77,7 +77,7 @@ import eu.alefzero.webdav.WebdavClient;
|
||||||
* @author David A. Velasco
|
* @author David A. Velasco
|
||||||
*/
|
*/
|
||||||
public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
implements OnRemoteOperationListener, OnSslValidatorListener, OnFocusChangeListener, OnEditorActionListener {
|
implements OnRemoteOperationListener, OnSslValidatorListener, OnFocusChangeListener, OnEditorActionListener {
|
||||||
|
|
||||||
private static final String TAG = AuthenticatorActivity.class.getSimpleName();
|
private static final String TAG = AuthenticatorActivity.class.getSimpleName();
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
public static final String EXTRA_USER_NAME = "USER_NAME";
|
public static final String EXTRA_USER_NAME = "USER_NAME";
|
||||||
public static final String EXTRA_HOST_NAME = "HOST_NAME";
|
public static final String EXTRA_HOST_NAME = "HOST_NAME";
|
||||||
public static final String EXTRA_ACTION = "ACTION";
|
public static final String EXTRA_ACTION = "ACTION";
|
||||||
|
|
||||||
private static final String KEY_HOST_URL_TEXT = "HOST_URL_TEXT";
|
private static final String KEY_HOST_URL_TEXT = "HOST_URL_TEXT";
|
||||||
private static final String KEY_OC_VERSION = "OC_VERSION";
|
private static final String KEY_OC_VERSION = "OC_VERSION";
|
||||||
private static final String KEY_ACCOUNT = "ACCOUNT";
|
private static final String KEY_ACCOUNT = "ACCOUNT";
|
||||||
|
@ -97,7 +97,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
private static final String KEY_IS_SSL_CONN = "IS_SSL_CONN";
|
private static final String KEY_IS_SSL_CONN = "IS_SSL_CONN";
|
||||||
private static final String KEY_AUTH_STATUS_TEXT = "AUTH_STATUS_TEXT";
|
private static final String KEY_AUTH_STATUS_TEXT = "AUTH_STATUS_TEXT";
|
||||||
private static final String KEY_AUTH_STATUS_ICON = "AUTH_STATUS_ICON";
|
private static final String KEY_AUTH_STATUS_ICON = "AUTH_STATUS_ICON";
|
||||||
|
|
||||||
private static final String OAUTH_MODE_ON = "on";
|
private static final String OAUTH_MODE_ON = "on";
|
||||||
private static final String OAUTH_MODE_OFF = "off";
|
private static final String OAUTH_MODE_OFF = "off";
|
||||||
private static final String OAUTH_MODE_OPTIONAL = "optional";
|
private static final String OAUTH_MODE_OPTIONAL = "optional";
|
||||||
|
@ -110,14 +110,14 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
public static final byte ACTION_CREATE = 0;
|
public static final byte ACTION_CREATE = 0;
|
||||||
public static final byte ACTION_UPDATE_TOKEN = 1;
|
public static final byte ACTION_UPDATE_TOKEN = 1;
|
||||||
|
|
||||||
|
|
||||||
private String mHostBaseUrl;
|
private String mHostBaseUrl;
|
||||||
private OwnCloudVersion mDiscoveredVersion;
|
private OwnCloudVersion mDiscoveredVersion;
|
||||||
|
|
||||||
private int mServerStatusText, mServerStatusIcon;
|
private int mServerStatusText, mServerStatusIcon;
|
||||||
private boolean mServerIsChecked, mServerIsValid, mIsSslConn;
|
private boolean mServerIsChecked, mServerIsValid, mIsSslConn;
|
||||||
private int mAuthStatusText, mAuthStatusIcon;
|
private int mAuthStatusText, mAuthStatusIcon;
|
||||||
|
|
||||||
private final Handler mHandler = new Handler();
|
private final Handler mHandler = new Handler();
|
||||||
private Thread mOperationThread;
|
private Thread mOperationThread;
|
||||||
private OwnCloudServerCheckOperation mOcServerChkOperation;
|
private OwnCloudServerCheckOperation mOcServerChkOperation;
|
||||||
|
@ -125,12 +125,12 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
private RemoteOperationResult mLastSslUntrustedServerResult;
|
private RemoteOperationResult mLastSslUntrustedServerResult;
|
||||||
|
|
||||||
private Uri mNewCapturedUriFromOAuth2Redirection;
|
private Uri mNewCapturedUriFromOAuth2Redirection;
|
||||||
|
|
||||||
private AccountManager mAccountMgr;
|
private AccountManager mAccountMgr;
|
||||||
private boolean mJustCreated;
|
private boolean mJustCreated;
|
||||||
private byte mAction;
|
private byte mAction;
|
||||||
private Account mAccount;
|
private Account mAccount;
|
||||||
|
|
||||||
private ImageView mViewPasswordButton;
|
private ImageView mViewPasswordButton;
|
||||||
private EditText mHostUrlInput;
|
private EditText mHostUrlInput;
|
||||||
private EditText mUsernameInput;
|
private EditText mUsernameInput;
|
||||||
|
@ -139,11 +139,11 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
private String mOAuthAccessToken;
|
private String mOAuthAccessToken;
|
||||||
private View mOkButton;
|
private View mOkButton;
|
||||||
private TextView mAuthStatusLayout;
|
private TextView mAuthStatusLayout;
|
||||||
|
|
||||||
private TextView mOAuthAuthEndpointText;
|
private TextView mOAuthAuthEndpointText;
|
||||||
private TextView mOAuthTokenEndpointText;
|
private TextView mOAuthTokenEndpointText;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*
|
*
|
||||||
|
@ -153,7 +153,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
|
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
|
||||||
|
|
||||||
/// set view and get references to view elements
|
/// set view and get references to view elements
|
||||||
setContentView(R.layout.account_setup);
|
setContentView(R.layout.account_setup);
|
||||||
mViewPasswordButton = (ImageView) findViewById(R.id.viewPasswordButton);
|
mViewPasswordButton = (ImageView) findViewById(R.id.viewPasswordButton);
|
||||||
|
@ -165,7 +165,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
mOAuth2Check = (CheckBox) findViewById(R.id.oauth_onOff_check);
|
mOAuth2Check = (CheckBox) findViewById(R.id.oauth_onOff_check);
|
||||||
mOkButton = findViewById(R.id.buttonOK);
|
mOkButton = findViewById(R.id.buttonOK);
|
||||||
mAuthStatusLayout = (TextView) findViewById(R.id.auth_status_text);
|
mAuthStatusLayout = (TextView) findViewById(R.id.auth_status_text);
|
||||||
|
|
||||||
/// complete label for 'register account' button
|
/// complete label for 'register account' button
|
||||||
Button b = (Button) findViewById(R.id.account_register);
|
Button b = (Button) findViewById(R.id.account_register);
|
||||||
if (b != null) {
|
if (b != null) {
|
||||||
|
@ -186,11 +186,11 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
mServerIsChecked = false;
|
mServerIsChecked = false;
|
||||||
mIsSslConn = false;
|
mIsSslConn = false;
|
||||||
mAuthStatusText = mAuthStatusIcon = 0;
|
mAuthStatusText = mAuthStatusIcon = 0;
|
||||||
|
|
||||||
/// retrieve extras from intent
|
/// retrieve extras from intent
|
||||||
String tokenType = getIntent().getExtras().getString(AccountAuthenticator.KEY_AUTH_TOKEN_TYPE);
|
String tokenType = getIntent().getExtras().getString(AccountAuthenticator.KEY_AUTH_TOKEN_TYPE);
|
||||||
boolean oAuthRequired = AccountAuthenticator.AUTH_TOKEN_TYPE_ACCESS_TOKEN.equals(tokenType) || OAUTH_MODE_ON.equals(getString(R.string.oauth2_mode));
|
boolean oAuthRequired = AccountAuthenticator.AUTH_TOKEN_TYPE_ACCESS_TOKEN.equals(tokenType) || OAUTH_MODE_ON.equals(getString(R.string.oauth2_mode));
|
||||||
|
|
||||||
mAccount = getIntent().getExtras().getParcelable(EXTRA_ACCOUNT);
|
mAccount = getIntent().getExtras().getParcelable(EXTRA_ACCOUNT);
|
||||||
if (mAccount != null) {
|
if (mAccount != null) {
|
||||||
String ocVersion = mAccountMgr.getUserData(mAccount, AccountAuthenticator.KEY_OC_VERSION);
|
String ocVersion = mAccountMgr.getUserData(mAccount, AccountAuthenticator.KEY_OC_VERSION);
|
||||||
|
@ -205,7 +205,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
}
|
}
|
||||||
mOAuth2Check.setChecked(oAuthRequired);
|
mOAuth2Check.setChecked(oAuthRequired);
|
||||||
changeViewByOAuth2Check(oAuthRequired);
|
changeViewByOAuth2Check(oAuthRequired);
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
/// connection state and info
|
/// connection state and info
|
||||||
|
@ -216,33 +216,33 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
mIsSslConn = savedInstanceState.getBoolean(KEY_IS_SSL_CONN);
|
mIsSslConn = savedInstanceState.getBoolean(KEY_IS_SSL_CONN);
|
||||||
mAuthStatusText = savedInstanceState.getInt(KEY_AUTH_STATUS_TEXT);
|
mAuthStatusText = savedInstanceState.getInt(KEY_AUTH_STATUS_TEXT);
|
||||||
mAuthStatusIcon = savedInstanceState.getInt(KEY_AUTH_STATUS_ICON);
|
mAuthStatusIcon = savedInstanceState.getInt(KEY_AUTH_STATUS_ICON);
|
||||||
|
|
||||||
/// server data
|
/// server data
|
||||||
String ocVersion = savedInstanceState.getString(KEY_OC_VERSION);
|
String ocVersion = savedInstanceState.getString(KEY_OC_VERSION);
|
||||||
if (ocVersion != null) {
|
if (ocVersion != null) {
|
||||||
mDiscoveredVersion = new OwnCloudVersion(ocVersion);
|
mDiscoveredVersion = new OwnCloudVersion(ocVersion);
|
||||||
}
|
}
|
||||||
mHostBaseUrl = savedInstanceState.getString(KEY_HOST_URL_TEXT);
|
mHostBaseUrl = savedInstanceState.getString(KEY_HOST_URL_TEXT);
|
||||||
|
|
||||||
// account data, if updating
|
// account data, if updating
|
||||||
mAccount = savedInstanceState.getParcelable(KEY_ACCOUNT);
|
mAccount = savedInstanceState.getParcelable(KEY_ACCOUNT);
|
||||||
|
|
||||||
// check if server check was interrupted by a configuration change
|
// check if server check was interrupted by a configuration change
|
||||||
if (savedInstanceState.getBoolean(KEY_SERVER_CHECK_IN_PROGRESS, false)) {
|
if (savedInstanceState.getBoolean(KEY_SERVER_CHECK_IN_PROGRESS, false)) {
|
||||||
checkOcServer();
|
checkOcServer();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
showServerStatus();
|
showServerStatus();
|
||||||
showAuthStatus();
|
showAuthStatus();
|
||||||
if (mServerIsChecked && !mServerIsValid) showRefreshButton();
|
if (mServerIsChecked && !mServerIsValid) showRefreshButton();
|
||||||
mOkButton.setEnabled(mServerIsValid); // state not automatically recovered in configuration changes
|
mOkButton.setEnabled(mServerIsValid); // state not automatically recovered in configuration changes
|
||||||
|
|
||||||
if (!OAUTH_MODE_OPTIONAL.equals(getString(R.string.oauth2_mode))) {
|
if (!OAUTH_MODE_OPTIONAL.equals(getString(R.string.oauth2_mode))) {
|
||||||
mOAuth2Check.setVisibility(View.GONE);
|
mOAuth2Check.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mAction == ACTION_UPDATE_TOKEN) {
|
if (mAction == ACTION_UPDATE_TOKEN) {
|
||||||
/// lock things that should not change
|
/// lock things that should not change
|
||||||
mHostUrlInput.setEnabled(false);
|
mHostUrlInput.setEnabled(false);
|
||||||
|
@ -252,10 +252,10 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
checkOcServer();
|
checkOcServer();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mPasswordInput.setText(""); // clean password to avoid social hacking (disadvantage: password in removed if the device is turned aside)
|
mPasswordInput.setText(""); // clean password to avoid social hacking (disadvantage: password in removed if the device is turned aside)
|
||||||
mJustCreated = true;
|
mJustCreated = true;
|
||||||
|
|
||||||
/// bind view elements to listeners
|
/// bind view elements to listeners
|
||||||
mHostUrlInput.setOnFocusChangeListener(this);
|
mHostUrlInput.setOnFocusChangeListener(this);
|
||||||
mHostUrlInput.setOnTouchListener(new RightDrawableOnTouchListener() {
|
mHostUrlInput.setOnTouchListener(new RightDrawableOnTouchListener() {
|
||||||
|
@ -279,13 +279,13 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onTextChanged(CharSequence s, int start, int before, int count) {}
|
public void onTextChanged(CharSequence s, int start, int before, int count) {}
|
||||||
|
|
||||||
});
|
});
|
||||||
mPasswordInput.setOnFocusChangeListener(this);
|
mPasswordInput.setOnFocusChangeListener(this);
|
||||||
mPasswordInput.setImeOptions(EditorInfo.IME_ACTION_DONE);
|
mPasswordInput.setImeOptions(EditorInfo.IME_ACTION_DONE);
|
||||||
mPasswordInput.setOnEditorActionListener(this);
|
mPasswordInput.setOnEditorActionListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Saves relevant state before {@link #onPause()}
|
* Saves relevant state before {@link #onPause()}
|
||||||
*
|
*
|
||||||
|
@ -297,7 +297,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
@Override
|
@Override
|
||||||
protected void onSaveInstanceState(Bundle outState) {
|
protected void onSaveInstanceState(Bundle outState) {
|
||||||
super.onSaveInstanceState(outState);
|
super.onSaveInstanceState(outState);
|
||||||
|
|
||||||
/// connection state and info
|
/// connection state and info
|
||||||
outState.putInt(KEY_SERVER_STATUS_TEXT, mServerStatusText);
|
outState.putInt(KEY_SERVER_STATUS_TEXT, mServerStatusText);
|
||||||
outState.putInt(KEY_SERVER_STATUS_ICON, mServerStatusIcon);
|
outState.putInt(KEY_SERVER_STATUS_ICON, mServerStatusIcon);
|
||||||
|
@ -307,18 +307,18 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
outState.putBoolean(KEY_IS_SSL_CONN, mIsSslConn);
|
outState.putBoolean(KEY_IS_SSL_CONN, mIsSslConn);
|
||||||
outState.putInt(KEY_AUTH_STATUS_ICON, mAuthStatusIcon);
|
outState.putInt(KEY_AUTH_STATUS_ICON, mAuthStatusIcon);
|
||||||
outState.putInt(KEY_AUTH_STATUS_TEXT, mAuthStatusText);
|
outState.putInt(KEY_AUTH_STATUS_TEXT, mAuthStatusText);
|
||||||
|
|
||||||
/// server data
|
/// server data
|
||||||
if (mDiscoveredVersion != null) {
|
if (mDiscoveredVersion != null) {
|
||||||
outState.putString(KEY_OC_VERSION, mDiscoveredVersion.toString());
|
outState.putString(KEY_OC_VERSION, mDiscoveredVersion.toString());
|
||||||
}
|
}
|
||||||
outState.putString(KEY_HOST_URL_TEXT, mHostBaseUrl);
|
outState.putString(KEY_HOST_URL_TEXT, mHostBaseUrl);
|
||||||
|
|
||||||
/// account data, if updating
|
/// account data, if updating
|
||||||
if (mAccount != null) {
|
if (mAccount != null) {
|
||||||
outState.putParcelable(KEY_ACCOUNT, mAccount);
|
outState.putParcelable(KEY_ACCOUNT, mAccount);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -338,7 +338,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The redirection triggered by the OAuth authentication server as response to the GET AUTHORIZATION, and
|
* The redirection triggered by the OAuth authentication server as response to the GET AUTHORIZATION, and
|
||||||
* deferred in {@link #onNewIntent(Intent)}, is processed here.
|
* deferred in {@link #onNewIntent(Intent)}, is processed here.
|
||||||
|
@ -354,15 +354,15 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
else
|
else
|
||||||
Toast.makeText(this, R.string.auth_expired_basic_auth_toast, Toast.LENGTH_LONG).show();
|
Toast.makeText(this, R.string.auth_expired_basic_auth_toast, Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mNewCapturedUriFromOAuth2Redirection != null) {
|
if (mNewCapturedUriFromOAuth2Redirection != null) {
|
||||||
getOAuth2AccessTokenFromCapturedRedirection();
|
getOAuth2AccessTokenFromCapturedRedirection();
|
||||||
}
|
}
|
||||||
|
|
||||||
mJustCreated = false;
|
mJustCreated = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parses the redirection with the response to the GET AUTHORIZATION request to the
|
* Parses the redirection with the response to the GET AUTHORIZATION request to the
|
||||||
* oAuth server and requests for the access token (GET ACCESS TOKEN)
|
* oAuth server and requests for the access token (GET ACCESS TOKEN)
|
||||||
|
@ -371,34 +371,39 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
/// Parse data from OAuth redirection
|
/// Parse data from OAuth redirection
|
||||||
String queryParameters = mNewCapturedUriFromOAuth2Redirection.getQuery();
|
String queryParameters = mNewCapturedUriFromOAuth2Redirection.getQuery();
|
||||||
mNewCapturedUriFromOAuth2Redirection = null;
|
mNewCapturedUriFromOAuth2Redirection = null;
|
||||||
|
|
||||||
/// Showing the dialog with instructions for the user.
|
/// Showing the dialog with instructions for the user.
|
||||||
showDialog(DIALOG_OAUTH2_LOGIN_PROGRESS);
|
showDialog(DIALOG_OAUTH2_LOGIN_PROGRESS);
|
||||||
|
|
||||||
/// GET ACCESS TOKEN to the oAuth server
|
/// GET ACCESS TOKEN to the oAuth server
|
||||||
RemoteOperation operation = new OAuth2GetAccessToken( getString(R.string.oauth2_client_id),
|
RemoteOperation operation = new OAuth2GetAccessToken( getString(R.string.oauth2_client_id),
|
||||||
getString(R.string.oauth2_redirect_uri),
|
getString(R.string.oauth2_redirect_uri),
|
||||||
getString(R.string.oauth2_grant_type),
|
getString(R.string.oauth2_grant_type),
|
||||||
queryParameters);
|
queryParameters);
|
||||||
//WebdavClient client = OwnCloudClientUtils.createOwnCloudClient(Uri.parse(getString(R.string.oauth2_url_endpoint_access)), getApplicationContext());
|
//WebdavClient client = OwnCloudClientUtils.createOwnCloudClient(Uri.parse(getString(R.string.oauth2_url_endpoint_access)), getApplicationContext());
|
||||||
WebdavClient client = OwnCloudClientUtils.createOwnCloudClient(Uri.parse(mOAuthTokenEndpointText.getText().toString().trim()), getApplicationContext());
|
WebdavClient client = OwnCloudClientUtils.createOwnCloudClient(Uri.parse(mOAuthTokenEndpointText.getText().toString().trim()), getApplicationContext());
|
||||||
operation.execute(client, this, mHandler);
|
operation.execute(client, this, mHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the change of focus on the text inputs for the server URL and the password
|
* Handles the change of focus on the text inputs for the server URL and the password
|
||||||
*/
|
*/
|
||||||
public void onFocusChange(View view, boolean hasFocus) {
|
public void onFocusChange(View view, boolean hasFocus) {
|
||||||
if (view.getId() == R.id.hostUrlInput && !hasFocus) {
|
if (view.getId() == R.id.hostUrlInput) {
|
||||||
onUrlInputFocusLost((TextView) view);
|
if (!hasFocus) {
|
||||||
|
onUrlInputFocusLost((TextView) view);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
hideRefreshButton();
|
||||||
|
}
|
||||||
|
|
||||||
} else if (view.getId() == R.id.account_password) {
|
} else if (view.getId() == R.id.account_password) {
|
||||||
onPasswordFocusChanged((TextView) view, hasFocus);
|
onPasswordFocusChanged((TextView) view, hasFocus);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles changes in focus on the text input for the server URL.
|
* Handles changes in focus on the text input for the server URL.
|
||||||
|
@ -463,7 +468,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cancels the authenticator activity
|
* Cancels the authenticator activity
|
||||||
*
|
*
|
||||||
|
@ -477,9 +482,9 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
setResult(RESULT_CANCELED); // TODO review how is this related to AccountAuthenticator (debugging)
|
setResult(RESULT_CANCELED); // TODO review how is this related to AccountAuthenticator (debugging)
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks the credentials of the user in the root of the ownCloud server
|
* Checks the credentials of the user in the root of the ownCloud server
|
||||||
* before creating a new local account.
|
* before creating a new local account.
|
||||||
|
@ -504,16 +509,16 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
Log_OC.wtf(TAG, "The user was allowed to click 'connect' to an unchecked server!!");
|
Log_OC.wtf(TAG, "The user was allowed to click 'connect' to an unchecked server!!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mOAuth2Check.isChecked()) {
|
if (mOAuth2Check.isChecked()) {
|
||||||
startOauthorization();
|
startOauthorization();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
checkBasicAuthorization();
|
checkBasicAuthorization();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests the credentials entered by the user performing a check of existence on
|
* Tests the credentials entered by the user performing a check of existence on
|
||||||
* the root folder of the ownCloud server.
|
* the root folder of the ownCloud server.
|
||||||
|
@ -521,14 +526,14 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
private void checkBasicAuthorization() {
|
private void checkBasicAuthorization() {
|
||||||
/// get the path to the root folder through WebDAV from the version server
|
/// get the path to the root folder through WebDAV from the version server
|
||||||
String webdav_path = AccountUtils.getWebdavPath(mDiscoveredVersion, false);
|
String webdav_path = AccountUtils.getWebdavPath(mDiscoveredVersion, false);
|
||||||
|
|
||||||
/// get basic credentials entered by user
|
/// get basic credentials entered by user
|
||||||
String username = mUsernameInput.getText().toString();
|
String username = mUsernameInput.getText().toString();
|
||||||
String password = mPasswordInput.getText().toString();
|
String password = mPasswordInput.getText().toString();
|
||||||
|
|
||||||
/// be gentle with the user
|
/// be gentle with the user
|
||||||
showDialog(DIALOG_LOGIN_PROGRESS);
|
showDialog(DIALOG_LOGIN_PROGRESS);
|
||||||
|
|
||||||
/// test credentials accessing the root folder
|
/// test credentials accessing the root folder
|
||||||
mAuthCheckOperation = new ExistenceCheckOperation("", this, false);
|
mAuthCheckOperation = new ExistenceCheckOperation("", this, false);
|
||||||
WebdavClient client = OwnCloudClientUtils.createOwnCloudClient(Uri.parse(mHostBaseUrl + webdav_path), this);
|
WebdavClient client = OwnCloudClientUtils.createOwnCloudClient(Uri.parse(mHostBaseUrl + webdav_path), this);
|
||||||
|
@ -546,7 +551,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
mAuthStatusIcon = R.drawable.progress_small;
|
mAuthStatusIcon = R.drawable.progress_small;
|
||||||
mAuthStatusText = R.string.oauth_login_connection;
|
mAuthStatusText = R.string.oauth_login_connection;
|
||||||
showAuthStatus();
|
showAuthStatus();
|
||||||
|
|
||||||
// GET AUTHORIZATION request
|
// GET AUTHORIZATION request
|
||||||
//Uri uri = Uri.parse(getString(R.string.oauth2_url_endpoint_auth));
|
//Uri uri = Uri.parse(getString(R.string.oauth2_url_endpoint_auth));
|
||||||
Uri uri = Uri.parse(mOAuthAuthEndpointText.getText().toString().trim());
|
Uri uri = Uri.parse(mOAuthAuthEndpointText.getText().toString().trim());
|
||||||
|
@ -562,7 +567,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
startActivity(i);
|
startActivity(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Callback method invoked when a RemoteOperation executed by this Activity finishes.
|
* Callback method invoked when a RemoteOperation executed by this Activity finishes.
|
||||||
*
|
*
|
||||||
|
@ -573,16 +578,16 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
|
|
||||||
if (operation instanceof OwnCloudServerCheckOperation) {
|
if (operation instanceof OwnCloudServerCheckOperation) {
|
||||||
onOcServerCheckFinish((OwnCloudServerCheckOperation) operation, result);
|
onOcServerCheckFinish((OwnCloudServerCheckOperation) operation, result);
|
||||||
|
|
||||||
} else if (operation instanceof OAuth2GetAccessToken) {
|
} else if (operation instanceof OAuth2GetAccessToken) {
|
||||||
onGetOAuthAccessTokenFinish((OAuth2GetAccessToken)operation, result);
|
onGetOAuthAccessTokenFinish((OAuth2GetAccessToken)operation, result);
|
||||||
|
|
||||||
} else if (operation instanceof ExistenceCheckOperation) {
|
} else if (operation instanceof ExistenceCheckOperation) {
|
||||||
onAuthorizationCheckFinish((ExistenceCheckOperation)operation, result);
|
onAuthorizationCheckFinish((ExistenceCheckOperation)operation, result);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Processes the result of the server check performed when the user finishes the enter of the
|
* Processes the result of the server check performed when the user finishes the enter of the
|
||||||
|
@ -598,7 +603,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
mServerIsValid = result.isSuccess();
|
mServerIsValid = result.isSuccess();
|
||||||
mIsSslConn = (result.getCode() == ResultCode.OK_SSL);
|
mIsSslConn = (result.getCode() == ResultCode.OK_SSL);
|
||||||
mOcServerChkOperation = null;
|
mOcServerChkOperation = null;
|
||||||
|
|
||||||
/// update status icon and text
|
/// update status icon and text
|
||||||
if (mServerIsValid) {
|
if (mServerIsValid) {
|
||||||
hideRefreshButton();
|
hideRefreshButton();
|
||||||
|
@ -607,22 +612,22 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
}
|
}
|
||||||
updateServerStatusIconAndText(result);
|
updateServerStatusIconAndText(result);
|
||||||
showServerStatus();
|
showServerStatus();
|
||||||
|
|
||||||
/// very special case (TODO: move to a common place for all the remote operations)
|
/// very special case (TODO: move to a common place for all the remote operations)
|
||||||
if (result.getCode() == ResultCode.SSL_RECOVERABLE_PEER_UNVERIFIED) {
|
if (result.getCode() == ResultCode.SSL_RECOVERABLE_PEER_UNVERIFIED) {
|
||||||
mLastSslUntrustedServerResult = result;
|
mLastSslUntrustedServerResult = result;
|
||||||
showDialog(DIALOG_SSL_VALIDATOR);
|
showDialog(DIALOG_SSL_VALIDATOR);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// retrieve discovered version and normalize server URL
|
/// retrieve discovered version and normalize server URL
|
||||||
mDiscoveredVersion = operation.getDiscoveredVersion();
|
mDiscoveredVersion = operation.getDiscoveredVersion();
|
||||||
mHostBaseUrl = normalizeUrl(mHostUrlInput.getText().toString());
|
mHostBaseUrl = normalizeUrl(mHostUrlInput.getText().toString());
|
||||||
|
|
||||||
/// allow or not the user try to access the server
|
/// allow or not the user try to access the server
|
||||||
mOkButton.setEnabled(mServerIsValid);
|
mOkButton.setEnabled(mServerIsValid);
|
||||||
|
|
||||||
} // else nothing ; only the last check operation is considered;
|
} // else nothing ; only the last check operation is considered;
|
||||||
// multiple can be triggered if the user amends a URL before a previous check can be triggered
|
// multiple can be triggered if the user amends a URL before a previous check can be triggered
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -636,7 +641,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
} else {
|
} else {
|
||||||
url = "http://" + url;
|
url = "http://" + url;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if (url.endsWith("/")) {
|
if (url.endsWith("/")) {
|
||||||
url = url.substring(0, url.length() - 1);
|
url = url.substring(0, url.length() - 1);
|
||||||
|
@ -658,7 +663,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
mServerStatusIcon = android.R.drawable.ic_secure;
|
mServerStatusIcon = android.R.drawable.ic_secure;
|
||||||
mServerStatusText = R.string.auth_secure_connection;
|
mServerStatusText = R.string.auth_secure_connection;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OK_NO_SSL:
|
case OK_NO_SSL:
|
||||||
case OK:
|
case OK:
|
||||||
if (mHostUrlInput.getText().toString().trim().toLowerCase().startsWith("http://") ) {
|
if (mHostUrlInput.getText().toString().trim().toLowerCase().startsWith("http://") ) {
|
||||||
|
@ -669,12 +674,12 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
mServerStatusIcon = android.R.drawable.ic_partial_secure;
|
mServerStatusIcon = android.R.drawable.ic_partial_secure;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NO_NETWORK_CONNECTION:
|
case NO_NETWORK_CONNECTION:
|
||||||
mServerStatusIcon = R.drawable.no_network;
|
mServerStatusIcon = R.drawable.no_network;
|
||||||
mServerStatusText = R.string.auth_no_net_conn_title;
|
mServerStatusText = R.string.auth_no_net_conn_title;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SSL_RECOVERABLE_PEER_UNVERIFIED:
|
case SSL_RECOVERABLE_PEER_UNVERIFIED:
|
||||||
mServerStatusText = R.string.auth_ssl_unverified_server_title;
|
mServerStatusText = R.string.auth_ssl_unverified_server_title;
|
||||||
break;
|
break;
|
||||||
|
@ -735,7 +740,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
mAuthStatusIcon = android.R.drawable.ic_secure;
|
mAuthStatusIcon = android.R.drawable.ic_secure;
|
||||||
mAuthStatusText = R.string.auth_secure_connection;
|
mAuthStatusText = R.string.auth_secure_connection;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OK_NO_SSL:
|
case OK_NO_SSL:
|
||||||
case OK:
|
case OK:
|
||||||
if (mHostUrlInput.getText().toString().trim().toLowerCase().startsWith("http://") ) {
|
if (mHostUrlInput.getText().toString().trim().toLowerCase().startsWith("http://") ) {
|
||||||
|
@ -746,12 +751,12 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
mAuthStatusIcon = android.R.drawable.ic_partial_secure;
|
mAuthStatusIcon = android.R.drawable.ic_partial_secure;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NO_NETWORK_CONNECTION:
|
case NO_NETWORK_CONNECTION:
|
||||||
mAuthStatusIcon = R.drawable.no_network;
|
mAuthStatusIcon = R.drawable.no_network;
|
||||||
mAuthStatusText = R.string.auth_no_net_conn_title;
|
mAuthStatusText = R.string.auth_no_net_conn_title;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SSL_RECOVERABLE_PEER_UNVERIFIED:
|
case SSL_RECOVERABLE_PEER_UNVERIFIED:
|
||||||
mAuthStatusText = R.string.auth_ssl_unverified_server_title;
|
mAuthStatusText = R.string.auth_ssl_unverified_server_title;
|
||||||
break;
|
break;
|
||||||
|
@ -817,7 +822,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
if (result.isSuccess() && webdav_path != null) {
|
if (result.isSuccess() && webdav_path != null) {
|
||||||
/// be gentle with the user
|
/// be gentle with the user
|
||||||
showDialog(DIALOG_LOGIN_PROGRESS);
|
showDialog(DIALOG_LOGIN_PROGRESS);
|
||||||
|
|
||||||
/// time to test the retrieved access token on the ownCloud server
|
/// time to test the retrieved access token on the ownCloud server
|
||||||
mOAuthAccessToken = ((OAuth2GetAccessToken)operation).getResultTokenMap().get(OAuth2Constants.KEY_ACCESS_TOKEN);
|
mOAuthAccessToken = ((OAuth2GetAccessToken)operation).getResultTokenMap().get(OAuth2Constants.KEY_ACCESS_TOKEN);
|
||||||
Log_OC.d(TAG, "Got ACCESS TOKEN: " + mOAuthAccessToken);
|
Log_OC.d(TAG, "Got ACCESS TOKEN: " + mOAuthAccessToken);
|
||||||
|
@ -825,7 +830,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
WebdavClient client = OwnCloudClientUtils.createOwnCloudClient(Uri.parse(mHostBaseUrl + webdav_path), this);
|
WebdavClient client = OwnCloudClientUtils.createOwnCloudClient(Uri.parse(mHostBaseUrl + webdav_path), this);
|
||||||
client.setBearerCredentials(mOAuthAccessToken);
|
client.setBearerCredentials(mOAuthAccessToken);
|
||||||
mAuthCheckOperation.execute(client, this, mHandler);
|
mAuthCheckOperation.execute(client, this, mHandler);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
updateAuthStatusIconAndText(result);
|
updateAuthStatusIconAndText(result);
|
||||||
showAuthStatus();
|
showAuthStatus();
|
||||||
|
@ -833,7 +838,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Processes the result of the access check performed to try the user credentials.
|
* Processes the result of the access check performed to try the user credentials.
|
||||||
*
|
*
|
||||||
|
@ -848,19 +853,19 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
} catch (IllegalArgumentException e) {
|
} catch (IllegalArgumentException e) {
|
||||||
// NOTHING TO DO ; can't find out what situation that leads to the exception in this code, but user logs signal that it happens
|
// NOTHING TO DO ; can't find out what situation that leads to the exception in this code, but user logs signal that it happens
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result.isSuccess()) {
|
if (result.isSuccess()) {
|
||||||
Log_OC.d(TAG, "Successful access - time to save the account");
|
Log_OC.d(TAG, "Successful access - time to save the account");
|
||||||
|
|
||||||
if (mAction == ACTION_CREATE) {
|
if (mAction == ACTION_CREATE) {
|
||||||
createAccount();
|
createAccount();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
updateToken();
|
updateToken();
|
||||||
}
|
}
|
||||||
|
|
||||||
finish();
|
finish();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
updateAuthStatusIconAndText(result);
|
updateAuthStatusIconAndText(result);
|
||||||
showAuthStatus();
|
showAuthStatus();
|
||||||
|
@ -868,7 +873,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the proper response to get that the Account Authenticator that started this activity saves
|
* Sets the proper response to get that the Account Authenticator that started this activity saves
|
||||||
* a new authorization token for mAccount.
|
* a new authorization token for mAccount.
|
||||||
|
@ -900,7 +905,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
private void createAccount() {
|
private void createAccount() {
|
||||||
/// create and save new ownCloud account
|
/// create and save new ownCloud account
|
||||||
boolean isOAuth = mOAuth2Check.isChecked();
|
boolean isOAuth = mOAuth2Check.isChecked();
|
||||||
|
|
||||||
Uri uri = Uri.parse(mHostBaseUrl);
|
Uri uri = Uri.parse(mHostBaseUrl);
|
||||||
String username = mUsernameInput.getText().toString().trim();
|
String username = mUsernameInput.getText().toString().trim();
|
||||||
if (isOAuth) {
|
if (isOAuth) {
|
||||||
|
@ -942,10 +947,10 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
mAccountMgr.setUserData(mAccount, AccountAuthenticator.KEY_OC_BASE_URL, mHostBaseUrl);
|
mAccountMgr.setUserData(mAccount, AccountAuthenticator.KEY_OC_BASE_URL, mHostBaseUrl);
|
||||||
if (isOAuth)
|
if (isOAuth)
|
||||||
mAccountMgr.setUserData(mAccount, AccountAuthenticator.KEY_SUPPORTS_OAUTH2, "TRUE"); // TODO this flag should be unnecessary
|
mAccountMgr.setUserData(mAccount, AccountAuthenticator.KEY_SUPPORTS_OAUTH2, "TRUE"); // TODO this flag should be unnecessary
|
||||||
|
|
||||||
setAccountAuthenticatorResult(intent.getExtras());
|
setAccountAuthenticatorResult(intent.getExtras());
|
||||||
setResult(RESULT_OK, intent);
|
setResult(RESULT_OK, intent);
|
||||||
|
|
||||||
/// immediately request for the synchronization of the new account
|
/// immediately request for the synchronization of the new account
|
||||||
Bundle bundle = new Bundle();
|
Bundle bundle = new Bundle();
|
||||||
bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
|
bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
|
||||||
|
@ -976,7 +981,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
|
@ -991,17 +996,17 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
working_dialog.setIndeterminate(true);
|
working_dialog.setIndeterminate(true);
|
||||||
working_dialog.setCancelable(true);
|
working_dialog.setCancelable(true);
|
||||||
working_dialog
|
working_dialog
|
||||||
.setOnCancelListener(new DialogInterface.OnCancelListener() {
|
.setOnCancelListener(new DialogInterface.OnCancelListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onCancel(DialogInterface dialog) {
|
public void onCancel(DialogInterface dialog) {
|
||||||
/// TODO study if this is enough
|
/// TODO study if this is enough
|
||||||
Log_OC.i(TAG, "Login canceled");
|
Log_OC.i(TAG, "Login canceled");
|
||||||
if (mOperationThread != null) {
|
if (mOperationThread != null) {
|
||||||
mOperationThread.interrupt();
|
mOperationThread.interrupt();
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
dialog = working_dialog;
|
dialog = working_dialog;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1031,11 +1036,11 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
builder.setMessage(getResources().getString(R.string.ssl_validator_not_saved));
|
builder.setMessage(getResources().getString(R.string.ssl_validator_not_saved));
|
||||||
builder.setCancelable(false);
|
builder.setCancelable(false);
|
||||||
builder.setPositiveButton(R.string.common_ok, new DialogInterface.OnClickListener() {
|
builder.setPositiveButton(R.string.common_ok, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
dialog = builder.create();
|
dialog = builder.create();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1045,7 +1050,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
return dialog;
|
return dialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Starts and activity to open the 'new account' page in the ownCloud web site
|
* Starts and activity to open the 'new account' page in the ownCloud web site
|
||||||
*
|
*
|
||||||
|
@ -1057,7 +1062,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
startActivity(register);
|
startActivity(register);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates the content and visibility state of the icon and text associated
|
* Updates the content and visibility state of the icon and text associated
|
||||||
* to the last check on the ownCloud server.
|
* to the last check on the ownCloud server.
|
||||||
|
@ -1067,16 +1072,16 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
|
|
||||||
if (mServerStatusIcon == 0 && mServerStatusText == 0) {
|
if (mServerStatusIcon == 0 && mServerStatusText == 0) {
|
||||||
tv.setVisibility(View.INVISIBLE);
|
tv.setVisibility(View.INVISIBLE);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
tv.setText(mServerStatusText);
|
tv.setText(mServerStatusText);
|
||||||
tv.setCompoundDrawablesWithIntrinsicBounds(mServerStatusIcon, 0, 0, 0);
|
tv.setCompoundDrawablesWithIntrinsicBounds(mServerStatusIcon, 0, 0, 0);
|
||||||
tv.setVisibility(View.VISIBLE);
|
tv.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates the content and visibility state of the icon and text associated
|
* Updates the content and visibility state of the icon and text associated
|
||||||
* to the interactions with the OAuth authorization server.
|
* to the interactions with the OAuth authorization server.
|
||||||
|
@ -1084,7 +1089,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
private void showAuthStatus() {
|
private void showAuthStatus() {
|
||||||
if (mAuthStatusIcon == 0 && mAuthStatusText == 0) {
|
if (mAuthStatusIcon == 0 && mAuthStatusText == 0) {
|
||||||
mAuthStatusLayout.setVisibility(View.INVISIBLE);
|
mAuthStatusLayout.setVisibility(View.INVISIBLE);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
mAuthStatusLayout.setText(mAuthStatusText);
|
mAuthStatusLayout.setText(mAuthStatusText);
|
||||||
mAuthStatusLayout.setCompoundDrawablesWithIntrinsicBounds(mAuthStatusIcon, 0, 0, 0);
|
mAuthStatusLayout.setCompoundDrawablesWithIntrinsicBounds(mAuthStatusIcon, 0, 0, 0);
|
||||||
|
@ -1092,15 +1097,15 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void showRefreshButton() {
|
private void showRefreshButton() {
|
||||||
mHostUrlInput.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_action_refresh_black, 0);
|
mHostUrlInput.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_action_refresh_black, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void hideRefreshButton() {
|
private void hideRefreshButton() {
|
||||||
mHostUrlInput.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
|
mHostUrlInput.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the refresh button in the input field for ownCloud host is clicked.
|
* Called when the refresh button in the input field for ownCloud host is clicked.
|
||||||
*
|
*
|
||||||
|
@ -1111,8 +1116,8 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
public void onRefreshClick(View view) {
|
public void onRefreshClick(View view) {
|
||||||
checkOcServer();
|
checkOcServer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the eye icon in the password field is clicked.
|
* Called when the eye icon in the password field is clicked.
|
||||||
*
|
*
|
||||||
|
@ -1134,8 +1139,8 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
mPasswordInput.setInputType(input_type);
|
mPasswordInput.setInputType(input_type);
|
||||||
mPasswordInput.setSelection(selectionStart, selectionEnd);
|
mPasswordInput.setSelection(selectionStart, selectionEnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the checkbox for OAuth authorization is clicked.
|
* Called when the checkbox for OAuth authorization is clicked.
|
||||||
*
|
*
|
||||||
|
@ -1148,7 +1153,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
changeViewByOAuth2Check(oAuth2Check.isChecked());
|
changeViewByOAuth2Check(oAuth2Check.isChecked());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Changes the visibility of input elements depending upon the kind of authorization
|
* Changes the visibility of input elements depending upon the kind of authorization
|
||||||
* chosen by the user: basic or OAuth
|
* chosen by the user: basic or OAuth
|
||||||
|
@ -1156,7 +1161,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
* @param checked 'True' when OAuth is selected.
|
* @param checked 'True' when OAuth is selected.
|
||||||
*/
|
*/
|
||||||
public void changeViewByOAuth2Check(Boolean checked) {
|
public void changeViewByOAuth2Check(Boolean checked) {
|
||||||
|
|
||||||
if (checked) {
|
if (checked) {
|
||||||
mOAuthAuthEndpointText.setVisibility(View.VISIBLE);
|
mOAuthAuthEndpointText.setVisibility(View.VISIBLE);
|
||||||
mOAuthTokenEndpointText.setVisibility(View.VISIBLE);
|
mOAuthTokenEndpointText.setVisibility(View.VISIBLE);
|
||||||
|
@ -1172,7 +1177,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called from SslValidatorDialog when a new server certificate was correctly saved.
|
* Called from SslValidatorDialog when a new server certificate was correctly saved.
|
||||||
*/
|
*/
|
||||||
|
@ -1206,11 +1211,11 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
return false; // always return false to grant that the software keyboard is hidden anyway
|
return false; // always return false to grant that the software keyboard is hidden anyway
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private abstract static class RightDrawableOnTouchListener implements OnTouchListener {
|
private abstract static class RightDrawableOnTouchListener implements OnTouchListener {
|
||||||
|
|
||||||
private int fuzz = 10;
|
private int fuzz = 10;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
|
@ -1229,16 +1234,16 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
final int y = (int) event.getY();
|
final int y = (int) event.getY();
|
||||||
final Rect bounds = rightDrawable.getBounds();
|
final Rect bounds = rightDrawable.getBounds();
|
||||||
if (x >= (view.getRight() - bounds.width() - fuzz) && x <= (view.getRight() - view.getPaddingRight() + fuzz)
|
if (x >= (view.getRight() - bounds.width() - fuzz) && x <= (view.getRight() - view.getPaddingRight() + fuzz)
|
||||||
&& y >= (view.getPaddingTop() - fuzz) && y <= (view.getHeight() - view.getPaddingBottom()) + fuzz) {
|
&& y >= (view.getPaddingTop() - fuzz) && y <= (view.getHeight() - view.getPaddingBottom()) + fuzz) {
|
||||||
|
|
||||||
return onDrawableTouch(event);
|
return onDrawableTouch(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract boolean onDrawableTouch(final MotionEvent event);
|
public abstract boolean onDrawableTouch(final MotionEvent event);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,5 +6,6 @@
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
|
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
|
||||||
<classpathentry kind="src" path="src"/>
|
<classpathentry kind="src" path="src"/>
|
||||||
<classpathentry kind="src" path="gen"/>
|
<classpathentry kind="src" path="gen"/>
|
||||||
|
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
|
||||||
<classpathentry kind="output" path="bin/classes"/>
|
<classpathentry kind="output" path="bin/classes"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
11
tests/.settings/org.eclipse.jdt.core.prefs
Normal file
11
tests/.settings/org.eclipse.jdt.core.prefs
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||||
|
org.eclipse.jdt.core.compiler.compliance=1.6
|
||||||
|
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||||
|
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||||
|
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||||
|
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||||
|
org.eclipse.jdt.core.compiler.source=1.6
|
Loading…
Reference in a new issue