Don't care if we get UI_REQUIRED state
GET_SIGN_KEY_ID is a valid call without registration in newer OpenKeychain. For older versions, it doesn't matter since we get the registration dialog in a pending intent that will be called as usual.
This commit is contained in:
parent
f0c438e2d4
commit
ff8a6f0100
1 changed files with 10 additions and 12 deletions
|
@ -72,21 +72,14 @@ public class OpenPgpKeyPreference extends Preference implements OpenPgpApiManage
|
||||||
@Override
|
@Override
|
||||||
protected void onClick() {
|
protected void onClick() {
|
||||||
switch (openPgpApiManager.getOpenPgpProviderState()) {
|
switch (openPgpApiManager.getOpenPgpProviderState()) {
|
||||||
|
// The GET_SIGN_KEY action is special, in that it can be used as an implicit registration
|
||||||
|
// to the API. Therefore, we can ignore the UI_REQUIRED here. If it comes up regardless,
|
||||||
|
// it will also work as a regular pending intent.
|
||||||
|
case UI_REQUIRED:
|
||||||
case OK: {
|
case OK: {
|
||||||
apiGetOrStartPendingIntent();
|
apiGetOrStartPendingIntent();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case UI_REQUIRED: {
|
|
||||||
try {
|
|
||||||
Activity act = (Activity) getContext();
|
|
||||||
act.startIntentSenderFromChild(
|
|
||||||
act, openPgpApiManager.getUserInteractionPendingIntent().getIntentSender(),
|
|
||||||
REQUEST_CODE_API_MANAGER, null, 0, 0, 0);
|
|
||||||
} catch (IntentSender.SendIntentException e) {
|
|
||||||
Log.e(OpenPgpApi.TAG, "SendIntentException", e);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default: {
|
default: {
|
||||||
refreshTitleAndSummary();
|
refreshTitleAndSummary();
|
||||||
openPgpApiManager.refreshConnection();
|
openPgpApiManager.refreshConnection();
|
||||||
|
@ -100,6 +93,9 @@ public class OpenPgpKeyPreference extends Preference implements OpenPgpApiManage
|
||||||
if (openPgpApiManager.getOpenPgpProviderState() == OpenPgpProviderState.OK) {
|
if (openPgpApiManager.getOpenPgpProviderState() == OpenPgpProviderState.OK) {
|
||||||
apiRetrievePendingIntentAndKeyInfo();
|
apiRetrievePendingIntentAndKeyInfo();
|
||||||
} else {
|
} else {
|
||||||
|
pendingIntentSelectKey = null;
|
||||||
|
pendingIntentRunImmediately = false;
|
||||||
|
cachedActivityResultData = null;
|
||||||
refreshTitleAndSummary();
|
refreshTitleAndSummary();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -304,7 +300,9 @@ public class OpenPgpKeyPreference extends Preference implements OpenPgpApiManage
|
||||||
cachedActivityResultData = data;
|
cachedActivityResultData = data;
|
||||||
// this might happen early in the lifecycle (e.g. before onResume). if the provider isn't connected
|
// this might happen early in the lifecycle (e.g. before onResume). if the provider isn't connected
|
||||||
// here, apiRetrievePendingIntentAndKeyInfo() will be called as soon as it is.
|
// here, apiRetrievePendingIntentAndKeyInfo() will be called as soon as it is.
|
||||||
if (openPgpApiManager.getOpenPgpProviderState() == OpenPgpProviderState.OK) {
|
OpenPgpProviderState openPgpProviderState = openPgpApiManager.getOpenPgpProviderState();
|
||||||
|
if (openPgpProviderState == OpenPgpProviderState.OK ||
|
||||||
|
openPgpProviderState == OpenPgpProviderState.UI_REQUIRED) {
|
||||||
apiRetrievePendingIntentAndKeyInfo();
|
apiRetrievePendingIntentAndKeyInfo();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue