import android.content.DialogInterface;\r
import android.content.Intent;\r
import android.content.SharedPreferences;\r
+import android.net.Uri;\r
import android.os.Bundle;\r
import android.os.Handler;\r
import android.preference.PreferenceManager;\r
\r
finish();\r
} else {\r
- dismissDialog(DIALOG_LOGIN_PROGRESS);\r
+ try {\r
+ dismissDialog(DIALOG_LOGIN_PROGRESS);\r
+ } catch (IllegalArgumentException e) {\r
+ // NOTHING TO DO ; can't find out what situation that leads to the exception in this code, but user logs signal that it happens\r
+ }\r
TextView tv = (TextView) findViewById(R.id.account_username);\r
tv.setError(message);\r
}\r
}\r
public void onCancelClick(View view) {\r
+ setResult(RESULT_CANCELED);\r
finish();\r
}\r
\r
public void onOkClick(View view) {\r
String prefix = "";\r
String url = ((TextView) findViewById(R.id.host_URL)).getText()\r
- .toString();\r
+ .toString().trim();\r
if (mIsSslConn) {\r
prefix = "https://";\r
} else {\r
}\r
continueConnection(prefix);\r
}\r
+ \r
+ public void onRegisterClick(View view) {\r
+ Intent register = new Intent(Intent.ACTION_VIEW, Uri.parse("https://owncloud.com/mobile/new"));\r
+ setResult(RESULT_CANCELED);\r
+ startActivity(register);\r
+ }\r
\r
private void continueConnection(String prefix) {\r
String url = ((TextView) findViewById(R.id.host_URL)).getText()\r
- .toString();\r
+ .toString().trim();\r
String username = ((TextView) findViewById(R.id.account_username))\r
.getText().toString();\r
String password = ((TextView) findViewById(R.id.account_password))\r
URL uri = null;\r
String webdav_path = AccountUtils.getWebdavPath(mConnChkRunnable\r
.getDiscoveredVersion());\r
-\r
+ if (webdav_path == null) {\r
+ onAuthenticationResult(false, getString(R.string.auth_bad_oc_version_title));\r
+ return;\r
+ }\r
+ \r
try {\r
mBaseUrl = prefix + url;\r
String url_str = prefix + url + webdav_path;\r
uri = new URL(url_str);\r
} catch (MalformedURLException e) {\r
- // should not happend\r
- e.printStackTrace();\r
+ // should never happen\r
+ onAuthenticationResult(false, getString(R.string.auth_incorrect_address_title));\r
+ return;\r
}\r
\r
showDialog(DIALOG_LOGIN_PROGRESS);\r
mStatusText = mStatusIcon = 0;\r
mStatusCorrect = false;\r
String t_url = ((TextView) findViewById(R.id.host_URL)).getText()\r
- .toString().toLowerCase();\r
+ .toString().trim().toLowerCase();\r
\r
switch (type) {\r
case OK_SSL:\r
mStatusIcon = android.R.drawable.ic_partial_secure;\r
}\r
break;\r
+ case BAD_OC_VERSION:\r
+ mStatusIcon = R.drawable.common_error;\r
+ mStatusText = R.string.auth_bad_oc_version_title;\r
+ break;\r
+ case WRONG_CONNECTION:\r
+ mStatusIcon = R.drawable.common_error;\r
+ mStatusText = R.string.auth_wrong_connection_title;\r
+ break;\r
case TIMEOUT:\r
- case INORRECT_ADDRESS:\r
+ mStatusIcon = R.drawable.common_error;\r
+ mStatusText = R.string.auth_timeout_title;\r
+ break;\r
+ case INCORRECT_ADDRESS:\r
+ mStatusIcon = R.drawable.common_error;\r
+ mStatusText = R.string.auth_incorrect_address_title;\r
+ break;\r
+ case SSL_UNVERIFIED_SERVER:\r
+ mStatusIcon = R.drawable.common_error;\r
+ mStatusText = R.string.auth_ssl_unverified_server_title;\r
+ break;\r
case SSL_INIT_ERROR:\r
+ mStatusIcon = R.drawable.common_error;\r
+ mStatusText = R.string.auth_ssl_general_error_title;\r
+ break;\r
case HOST_NOT_AVAILABLE:\r
mStatusIcon = R.drawable.common_error;\r
- mStatusText = R.string.auth_unknow_host_title;\r
+ mStatusText = R.string.auth_unknown_host_title;\r
break;\r
case NO_NETWORK_CONNECTION:\r
mStatusIcon = R.drawable.no_network;\r
break;\r
case UNKNOWN_ERROR:\r
mStatusIcon = R.drawable.common_error;\r
- mStatusText = R.string.auth_unknow_error;\r
+ mStatusText = R.string.auth_unknown_error_title;\r
break;\r
case FILE_NOT_FOUND:\r
mStatusIcon = R.drawable.common_error;\r
if (view.getId() == R.id.host_URL) {\r
if (!hasFocus) {\r
TextView tv = ((TextView) findViewById(R.id.host_URL));\r
- String uri = tv.getText().toString();\r
+ String uri = tv.getText().toString().trim();\r
if (uri.length() != 0) {\r
setResultIconAndText(R.drawable.progress_small,\r
R.string.auth_testing_connection);\r
- findViewById(R.id.buttonOK).setEnabled(false); // avoid connect can be clicked if the test was previously passed\r
mConnChkRunnable = new ConnectionCheckerRunnable(uri, this);\r
mConnChkRunnable.setListener(this, mHandler);\r
mAuthThread = new Thread(mConnChkRunnable);\r
View.INVISIBLE);\r
setResultIconAndText(0, 0);\r
}\r
+ } else {\r
+ // avoids that the 'connect' button can be clicked if the test was previously passed\r
+ findViewById(R.id.buttonOK).setEnabled(false); \r
}\r
} else if (view.getId() == R.id.account_password) {\r
ImageView iv = (ImageView) findViewById(R.id.viewPassword);\r