summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.txt4
-rw-r--r--api/system-current.txt4
-rw-r--r--api/test-current.txt4
-rw-r--r--core/java/android/service/autofill/AutofillService.java31
4 files changed, 25 insertions, 18 deletions
diff --git a/api/current.txt b/api/current.txt
index e8c13ece884e..7c1e2a64ac63 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -37024,8 +37024,8 @@ package android.service.autofill {
method public final android.os.IBinder onBind(android.content.Intent);
method public void onConnected();
method public void onDisconnected();
- method public void onFillRequest(android.service.autofill.FillRequest, android.os.CancellationSignal, android.service.autofill.FillCallback);
- method public void onSaveRequest(android.service.autofill.SaveRequest, android.service.autofill.SaveCallback);
+ method public abstract void onFillRequest(android.service.autofill.FillRequest, android.os.CancellationSignal, android.service.autofill.FillCallback);
+ method public abstract void onSaveRequest(android.service.autofill.SaveRequest, android.service.autofill.SaveCallback);
field public static final java.lang.String SERVICE_INTERFACE = "android.service.autofill.AutofillService";
field public static final java.lang.String SERVICE_META_DATA = "android.autofill";
}
diff --git a/api/system-current.txt b/api/system-current.txt
index c8742bbf883f..51a04898ce4f 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -40140,8 +40140,8 @@ package android.service.autofill {
method public final android.os.IBinder onBind(android.content.Intent);
method public void onConnected();
method public void onDisconnected();
- method public void onFillRequest(android.service.autofill.FillRequest, android.os.CancellationSignal, android.service.autofill.FillCallback);
- method public void onSaveRequest(android.service.autofill.SaveRequest, android.service.autofill.SaveCallback);
+ method public abstract void onFillRequest(android.service.autofill.FillRequest, android.os.CancellationSignal, android.service.autofill.FillCallback);
+ method public abstract void onSaveRequest(android.service.autofill.SaveRequest, android.service.autofill.SaveCallback);
field public static final java.lang.String SERVICE_INTERFACE = "android.service.autofill.AutofillService";
field public static final java.lang.String SERVICE_META_DATA = "android.autofill";
}
diff --git a/api/test-current.txt b/api/test-current.txt
index adc305b01582..9ce51444eb7e 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -37178,8 +37178,8 @@ package android.service.autofill {
method public final android.os.IBinder onBind(android.content.Intent);
method public void onConnected();
method public void onDisconnected();
- method public void onFillRequest(android.service.autofill.FillRequest, android.os.CancellationSignal, android.service.autofill.FillCallback);
- method public void onSaveRequest(android.service.autofill.SaveRequest, android.service.autofill.SaveCallback);
+ method public abstract void onFillRequest(android.service.autofill.FillRequest, android.os.CancellationSignal, android.service.autofill.FillCallback);
+ method public abstract void onSaveRequest(android.service.autofill.SaveRequest, android.service.autofill.SaveCallback);
field public static final java.lang.String SERVICE_INTERFACE = "android.service.autofill.AutofillService";
field public static final java.lang.String SERVICE_META_DATA = "android.autofill";
}
diff --git a/core/java/android/service/autofill/AutofillService.java b/core/java/android/service/autofill/AutofillService.java
index c229d1d2dc56..cb47c104ed9f 100644
--- a/core/java/android/service/autofill/AutofillService.java
+++ b/core/java/android/service/autofill/AutofillService.java
@@ -114,7 +114,13 @@ public abstract class AutofillService extends Service {
final IFillCallback callback = (IFillCallback) args.arg3;
final FillCallback fillCallback = new FillCallback(callback, request.getId());
args.recycle();
- onFillRequest(request, cancellation, fillCallback);
+ // TODO(b/37563972): temporary try-catch hack to support old method
+ try {
+ onFillRequest(request, cancellation, fillCallback);
+ } catch (AbstractMethodError e) {
+ onFillRequest(request.getStructure(), request.getClientState(),
+ request.getFlags(), cancellation, fillCallback);
+ }
break;
} case MSG_ON_SAVE_REQUEST: {
final SomeArgs args = (SomeArgs) msg.obj;
@@ -122,7 +128,14 @@ public abstract class AutofillService extends Service {
final ISaveCallback callback = (ISaveCallback) args.arg2;
final SaveCallback saveCallback = new SaveCallback(callback);
args.recycle();
- onSaveRequest(request, saveCallback);
+ // TODO(b/37563972): temporary try-catch hack to support old method
+ try {
+ onSaveRequest(request, saveCallback);
+ } catch (AbstractMethodError e) {
+ final List<FillContext> contexts = request.getFillContexts();
+ onSaveRequest(contexts.get(contexts.size() - 1).getStructure(),
+ request.getClientState(), saveCallback);
+ }
break;
} case MSG_DISCONNECT: {
onDisconnected();
@@ -179,11 +192,8 @@ public abstract class AutofillService extends Service {
* handling this fill request in order to save resources.
* @param callback object used to notify the result of the request.
*/
- public void onFillRequest(@NonNull FillRequest request,
- @NonNull CancellationSignal cancellationSignal, @NonNull FillCallback callback) {
- onFillRequest(request.getStructure(), request.getClientState(), request.getFlags(),
- cancellationSignal, callback);
- }
+ public abstract void onFillRequest(@NonNull FillRequest request,
+ @NonNull CancellationSignal cancellationSignal, @NonNull FillCallback callback);
/**
* Called by the Android system do decide if an {@link Activity} can be autofilled by the
@@ -225,11 +235,8 @@ public abstract class AutofillService extends Service {
* See {@link FillResponse} for examples of multiple-sections requests.
* @param callback object used to notify the result of the request.
*/
- public void onSaveRequest(@NonNull SaveRequest request, @NonNull SaveCallback callback) {
- final List<FillContext> contexts = request.getFillContexts();
- onSaveRequest(contexts.get(contexts.size() - 1).getStructure(),
- request.getClientState(), callback);
- }
+ public abstract void onSaveRequest(@NonNull SaveRequest request,
+ @NonNull SaveCallback callback);
/**
* Called when user requests service to save the fields of an {@link Activity}.