* @return webdav path for given OC version, null if OC version unknown\r
*/\r
public static String getWebdavPath(OwnCloudVersion version) {\r
- if (version.compareTo(OwnCloudVersion.owncloud_v4) >= 0)\r
- return WEBDAV_PATH_4_0;\r
- if (version.compareTo(OwnCloudVersion.owncloud_v3) >= 0\r
- || version.compareTo(OwnCloudVersion.owncloud_v2) >= 0)\r
- return WEBDAV_PATH_2_0;\r
- if (version.compareTo(OwnCloudVersion.owncloud_v1) >= 0)\r
- return WEBDAV_PATH_1_2;\r
+ if (version != null) {\r
+ if (version.compareTo(OwnCloudVersion.owncloud_v4) >= 0)\r
+ return WEBDAV_PATH_4_0;\r
+ if (version.compareTo(OwnCloudVersion.owncloud_v3) >= 0\r
+ || version.compareTo(OwnCloudVersion.owncloud_v2) >= 0)\r
+ return WEBDAV_PATH_2_0;\r
+ if (version.compareTo(OwnCloudVersion.owncloud_v1) >= 0)\r
+ return WEBDAV_PATH_1_2;\r
+ }\r
return null;\r
}\r
\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
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 happen\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
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