aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--input/autofill/AutofillFramework/afservice/src/main/java/com/example/android/autofill/service/MyAutofillService.java29
1 files changed, 17 insertions, 12 deletions
diff --git a/input/autofill/AutofillFramework/afservice/src/main/java/com/example/android/autofill/service/MyAutofillService.java b/input/autofill/AutofillFramework/afservice/src/main/java/com/example/android/autofill/service/MyAutofillService.java
index ace2cefe..e9cdd6ca 100644
--- a/input/autofill/AutofillFramework/afservice/src/main/java/com/example/android/autofill/service/MyAutofillService.java
+++ b/input/autofill/AutofillFramework/afservice/src/main/java/com/example/android/autofill/service/MyAutofillService.java
@@ -147,15 +147,7 @@ public class MyAutofillService extends AutofillService {
private void fetchDataAndGenerateResponse(
HashMap<String, FieldTypeWithHeuristics> fieldTypesByAutofillHint, boolean responseAuth,
boolean datasetAuth, boolean manual, FillCallback callback) {
- if (manual) {
- IntentSender sender = ManualActivity.getManualIntentSenderForResponse(this);
- RemoteViews remoteViews = RemoteViewsHelper.viewsWithNoAuth(getPackageName(),
- getString(R.string.autofill_manual_prompt));
- FillResponse response = mResponseAdapter.buildManualResponse(sender, remoteViews);
- if (response != null) {
- callback.onSuccess(response);
- }
- } else if (responseAuth) {
+ if (responseAuth) {
// If the entire Autofill Response is authenticated, AuthActivity is used
// to generate Response.
IntentSender sender = AuthActivity.getAuthIntentSenderForResponse(this);
@@ -170,9 +162,22 @@ public class MyAutofillService extends AutofillService {
new DataCallback<List<DatasetWithFilledAutofillFields>>() {
@Override
public void onLoaded(List<DatasetWithFilledAutofillFields> datasets) {
- FillResponse response = mResponseAdapter.buildResponse(
- fieldTypesByAutofillHint, datasets, datasetAuth);
- callback.onSuccess(response);
+ if ((datasets == null || datasets.isEmpty()) && manual) {
+ IntentSender sender = ManualActivity
+ .getManualIntentSenderForResponse(MyAutofillService.this);
+ RemoteViews remoteViews = RemoteViewsHelper.viewsWithNoAuth(
+ getPackageName(),
+ getString(R.string.autofill_manual_prompt));
+ FillResponse response = mResponseAdapter.buildManualResponse(sender,
+ remoteViews);
+ if (response != null) {
+ callback.onSuccess(response);
+ }
+ } else {
+ FillResponse response = mResponseAdapter.buildResponse(
+ fieldTypesByAutofillHint, datasets, datasetAuth);
+ callback.onSuccess(response);
+ }
}
@Override