diff options
| -rw-r--r-- | api/current.txt | 4 | ||||
| -rw-r--r-- | api/system-current.txt | 4 | ||||
| -rw-r--r-- | api/test-current.txt | 4 | ||||
| -rw-r--r-- | core/java/android/service/autofill/AutofillService.java | 31 |
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}. |