15381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme/*
25381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme * Copyright (C) 2016 The Android Open Source Project
35381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme *
45381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme * Licensed under the Apache License, Version 2.0 (the "License");
55381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme * you may not use this file except in compliance with the License.
65381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme * You may obtain a copy of the License at
75381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme *
85381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme *      http://www.apache.org/licenses/LICENSE-2.0
95381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme *
105381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme * Unless required by applicable law or agreed to in writing, software
115381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme * distributed under the License is distributed on an "AS IS" BASIS,
125381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme * See the License for the specific language governing permissions and
145381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme * limitations under the License.
155381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme */
165381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme
17782043caf81055aa1c331e9cc15b24a10e1bf17aSvet Ganovpackage android.view.autofill;
185381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme
193461d3c069468e176fab6bc8b8e78c8e6bc81e8bFelipe Lemeimport android.graphics.Rect;
205381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Lemeimport android.os.Bundle;
21bab851c7c9dfe6f3d063a1009c4d57cfa2ff005cFelipe Lemeimport android.os.IBinder;
22cc684ed41f17ccdce45a056fd4034efc35b213d5Philip P. Moltmannimport android.service.autofill.FillEventHistory;
23640f30a7763b0a4b80c767acb84c740aac04768bFelipe Lemeimport android.view.autofill.AutofillId;
24640f30a7763b0a4b80c767acb84c740aac04768bFelipe Lemeimport android.view.autofill.AutofillValue;
25782043caf81055aa1c331e9cc15b24a10e1bf17aSvet Ganovimport android.view.autofill.IAutoFillManagerClient;
265381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme
275381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme/**
2829a5b0d0f1cc7fd6cbfe97c816b8a687d9e438ccFelipe Leme * Mediator between apps being auto-filled and auto-fill service implementations.
295381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme *
305381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme * {@hide}
315381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme */
32782043caf81055aa1c331e9cc15b24a10e1bf17aSvet Ganovinterface IAutoFillManager {
339f9ee25515591ef33281708c0ab911962f4364a6Felipe Leme    // Returns flags: FLAG_ADD_CLIENT_ENABLED | FLAG_ADD_CLIENT_DEBUG | FLAG_ADD_CLIENT_VERBOSE
349f9ee25515591ef33281708c0ab911962f4364a6Felipe Leme    int addClient(in IAutoFillManagerClient client, int userId);
35134cee27b8a54ff4c8bebda51c5fe4a4e6f1fd8aPhilip P. Moltmann    int startSession(IBinder activityToken, in IBinder appCallback, in AutofillId autoFillId,
36134cee27b8a54ff4c8bebda51c5fe4a4e6f1fd8aPhilip P. Moltmann            in Rect bounds, in AutofillValue value, int userId, boolean hasCallback, int flags,
37134cee27b8a54ff4c8bebda51c5fe4a4e6f1fd8aPhilip P. Moltmann            String packageName);
38cc684ed41f17ccdce45a056fd4034efc35b213d5Philip P. Moltmann    FillEventHistory getFillEventHistory();
39eab62baabf290ea6671577a66cfc9fdd1b145d0ePhilip P. Moltmann    boolean restoreSession(int sessionId, in IBinder activityToken, in IBinder appCallback);
40f20a037ba2a6990bb51ad40ee18c7af18464f620Svet Ganov    void updateSession(int sessionId, in AutofillId id, in Rect bounds,
410aa4c5065d1495ec0b2c6fe15324569f31dcbdb1Felipe Leme            in AutofillValue value, int action, int flags, int userId);
427f33cd350be4278ce5d4ef460c11e4dbaf9c473bFelipe Leme    int updateOrRestartSession(IBinder activityToken, in IBinder appCallback,
437f33cd350be4278ce5d4ef460c11e4dbaf9c473bFelipe Leme            in AutofillId autoFillId, in Rect bounds, in AutofillValue value, int userId,
447f33cd350be4278ce5d4ef460c11e4dbaf9c473bFelipe Leme            boolean hasCallback, int flags, String packageName, int sessionId, int action);
45eab62baabf290ea6671577a66cfc9fdd1b145d0ePhilip P. Moltmann    void finishSession(int sessionId, int userId);
46eab62baabf290ea6671577a66cfc9fdd1b145d0ePhilip P. Moltmann    void cancelSession(int sessionId, int userId);
47a9379d0b44ca1f68a0036d2b65218e17fa348514Svetoslav Ganov    void setAuthenticationResult(in Bundle data, int sessionId, int authenticationId, int userId);
48f20a037ba2a6990bb51ad40ee18c7af18464f620Svet Ganov    void setHasCallback(int sessionId, int userId, boolean hasIt);
49f20a037ba2a6990bb51ad40ee18c7af18464f620Svet Ganov    void disableOwnedAutofillServices(int userId);
50db041188bc9ca03bed3c14a7ca1b3eb9524a9287Felipe Leme    boolean isServiceSupported(int userId);
51db041188bc9ca03bed3c14a7ca1b3eb9524a9287Felipe Leme    boolean isServiceEnabled(int userId, String packageName);
525381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme}
53