Better error handling for generic IOException
This commit is contained in:
committed by
Vincent Breitmoser
parent
0920d97572
commit
ed4e21957c
@@ -233,6 +233,7 @@ public abstract class BaseSecurityTokenActivity extends BaseActivity
|
||||
}
|
||||
|
||||
private void handleSecurityTokenError(SecurityTokenConnection stConnection, IOException e) {
|
||||
Log.d(Constants.TAG, "Exception in handleSecurityTokenError", e);
|
||||
|
||||
if (e instanceof TagLostException) {
|
||||
onSecurityTokenError(getString(R.string.security_token_error_tag_lost));
|
||||
@@ -254,12 +255,8 @@ public abstract class BaseSecurityTokenActivity extends BaseActivity
|
||||
return;
|
||||
}
|
||||
|
||||
short status;
|
||||
if (e instanceof CardException) {
|
||||
status = ((CardException) e).getResponseCode();
|
||||
} else {
|
||||
status = -1;
|
||||
}
|
||||
short status = ((CardException) e).getResponseCode();
|
||||
|
||||
// Wrong PIN, a status of 63CX indicates X attempts remaining.
|
||||
// NOTE: Used in ykneo-openpgp version < 1.0.10, changed to 0x6982 in 1.0.11
|
||||
@@ -279,13 +276,8 @@ public abstract class BaseSecurityTokenActivity extends BaseActivity
|
||||
return;
|
||||
}
|
||||
|
||||
Log.d(Constants.TAG, "security token exception", e);
|
||||
|
||||
// Otherwise, all status codes are fixed values.
|
||||
switch (status) {
|
||||
|
||||
// These error conditions are likely to be experienced by an end user.
|
||||
|
||||
/* OpenPGP Card Spec: Security status not satisfied, PW wrong,
|
||||
PW not checked (command not allowed), Secure messaging incorrect (checksum and/or cryptogram) */
|
||||
// NOTE: Used in ykneo-openpgp >= 1.0.11 for wrong PIN
|
||||
@@ -353,8 +345,6 @@ public abstract class BaseSecurityTokenActivity extends BaseActivity
|
||||
} else {
|
||||
promptFidesmoAppInstall();
|
||||
}
|
||||
} else { // Other (possibly) compatible hardware
|
||||
onSecurityTokenError(getString(R.string.security_token_error_pgp_app_not_installed));
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -387,7 +377,14 @@ public abstract class BaseSecurityTokenActivity extends BaseActivity
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// fallback for generic IOException
|
||||
if (e.getMessage() != null) {
|
||||
onSecurityTokenError(getString(R.string.security_token_error, e.getMessage()));
|
||||
} else {
|
||||
onSecurityTokenError(getString(R.string.security_token_error_generic));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1580,6 +1580,7 @@
|
||||
<string name="security_token_error_header">"Security Token reported invalid %s byte."</string>
|
||||
<string name="security_token_error_tag_lost">"Security Token has been taken off too early. Keep the Security Token at the back until the operation finishes."</string>
|
||||
<string name="security_token_error_iso_dep_not_supported">"Security Token does not support the required communication standard (ISO-DEP, ISO 14443-4)"</string>
|
||||
<string name="security_token_error_generic">"Generic Error: Most probably, the Security Token has been taken off too early."</string>
|
||||
<string name="security_token_not_supported">"This Security Token is not supported by OpenKeychain."</string>
|
||||
<string name="security_token_error_try_again">"Try again"</string>
|
||||
<string name="btn_delete_original">Delete original file</string>
|
||||
|
||||
Reference in New Issue
Block a user