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
196eb77633d9fc8996f44b36e11a722e3b729c7588Felipe Lemeimport android.content.ComponentName;
203461d3c069468e176fab6bc8b8e78c8e6bc81e8bFelipe Lemeimport android.graphics.Rect;
215381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Lemeimport android.os.Bundle;
22bab851c7c9dfe6f3d063a1009c4d57cfa2ff005cFelipe Lemeimport android.os.IBinder;
23cc684ed41f17ccdce45a056fd4034efc35b213d5Philip P. Moltmannimport android.service.autofill.FillEventHistory;
24640f30a7763b0a4b80c767acb84c740aac04768bFelipe Lemeimport android.view.autofill.AutofillId;
25640f30a7763b0a4b80c767acb84c740aac04768bFelipe Lemeimport android.view.autofill.AutofillValue;
26782043caf81055aa1c331e9cc15b24a10e1bf17aSvet Ganovimport android.view.autofill.IAutoFillManagerClient;
275381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme
285381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme/**
2929a5b0d0f1cc7fd6cbfe97c816b8a687d9e438ccFelipe Leme * Mediator between apps being auto-filled and auto-fill service implementations.
305381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme *
315381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme * {@hide}
325381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme */
33782043caf81055aa1c331e9cc15b24a10e1bf17aSvet Ganovinterface IAutoFillManager {
349f9ee25515591ef33281708c0ab911962f4364a6Felipe Leme    // Returns flags: FLAG_ADD_CLIENT_ENABLED | FLAG_ADD_CLIENT_DEBUG | FLAG_ADD_CLIENT_VERBOSE
359f9ee25515591ef33281708c0ab911962f4364a6Felipe Leme    int addClient(in IAutoFillManagerClient client, int userId);
36134cee27b8a54ff4c8bebda51c5fe4a4e6f1fd8aPhilip P. Moltmann    int startSession(IBinder activityToken, in IBinder appCallback, in AutofillId autoFillId,
37134cee27b8a54ff4c8bebda51c5fe4a4e6f1fd8aPhilip P. Moltmann            in Rect bounds, in AutofillValue value, int userId, boolean hasCallback, int flags,
386eb77633d9fc8996f44b36e11a722e3b729c7588Felipe Leme            in ComponentName componentName);
39cc684ed41f17ccdce45a056fd4034efc35b213d5Philip P. Moltmann    FillEventHistory getFillEventHistory();
40eab62baabf290ea6671577a66cfc9fdd1b145d0ePhilip P. Moltmann    boolean restoreSession(int sessionId, in IBinder activityToken, in IBinder appCallback);
41f20a037ba2a6990bb51ad40ee18c7af18464f620Svet Ganov    void updateSession(int sessionId, in AutofillId id, in Rect bounds,
420aa4c5065d1495ec0b2c6fe15324569f31dcbdb1Felipe Leme            in AutofillValue value, int action, int flags, int userId);
437f33cd350be4278ce5d4ef460c11e4dbaf9c473bFelipe Leme    int updateOrRestartSession(IBinder activityToken, in IBinder appCallback,
447f33cd350be4278ce5d4ef460c11e4dbaf9c473bFelipe Leme            in AutofillId autoFillId, in Rect bounds, in AutofillValue value, int userId,
456eb77633d9fc8996f44b36e11a722e3b729c7588Felipe Leme            boolean hasCallback, int flags, in ComponentName componentName, int sessionId,
466eb77633d9fc8996f44b36e11a722e3b729c7588Felipe Leme            int action);
47eab62baabf290ea6671577a66cfc9fdd1b145d0ePhilip P. Moltmann    void finishSession(int sessionId, int userId);
48eab62baabf290ea6671577a66cfc9fdd1b145d0ePhilip P. Moltmann    void cancelSession(int sessionId, int userId);
49a9379d0b44ca1f68a0036d2b65218e17fa348514Svetoslav Ganov    void setAuthenticationResult(in Bundle data, int sessionId, int authenticationId, int userId);
50f20a037ba2a6990bb51ad40ee18c7af18464f620Svet Ganov    void setHasCallback(int sessionId, int userId, boolean hasIt);
51f20a037ba2a6990bb51ad40ee18c7af18464f620Svet Ganov    void disableOwnedAutofillServices(int userId);
52db041188bc9ca03bed3c14a7ca1b3eb9524a9287Felipe Leme    boolean isServiceSupported(int userId);
53db041188bc9ca03bed3c14a7ca1b3eb9524a9287Felipe Leme    boolean isServiceEnabled(int userId, String packageName);
54c24a56ae065bfc4b21f646d0c754b5f4db7c7be5Felipe Leme    void onPendingSaveUi(int operation, IBinder token);
555381aa4b585f3fa2a315d88e910111173e2ef77dFelipe Leme}
56