Merge "Force hiding fill UI when it's destroyed." into udc-qpr-dev
This commit is contained in:
@@ -4213,6 +4213,14 @@ public final class AutofillManager {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void requestHideFillUiWhenDestroyed(int sessionId, AutofillId id) {
|
||||
final AutofillManager afm = mAfm.get();
|
||||
if (afm != null) {
|
||||
afm.post(() -> afm.requestHideFillUi(id, true));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyNoFillUi(int sessionId, AutofillId id, int sessionFinishedState) {
|
||||
final AutofillManager afm = mAfm.get();
|
||||
|
||||
@@ -78,6 +78,11 @@ oneway interface IAutoFillManagerClient {
|
||||
*/
|
||||
void requestHideFillUi(int sessionId, in AutofillId id);
|
||||
|
||||
/**
|
||||
* Requests hiding the fill UI when it's destroyed
|
||||
*/
|
||||
void requestHideFillUiWhenDestroyed(int sessionId, in AutofillId id);
|
||||
|
||||
/**
|
||||
* Notifies no fill UI will be shown, and also mark the state as finished if necessary (if
|
||||
* sessionFinishedState != 0).
|
||||
|
||||
@@ -2401,6 +2401,21 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void requestHideFillUiWhenDestroyed(AutofillId id) {
|
||||
synchronized (mLock) {
|
||||
// NOTE: We allow this call in a destroyed state as the UI is
|
||||
// asked to go away after we get destroyed, so let it do that.
|
||||
try {
|
||||
mClient.requestHideFillUiWhenDestroyed(this.id, id);
|
||||
} catch (RemoteException e) {
|
||||
Slog.e(TAG, "Error requesting to hide fill UI", e);
|
||||
}
|
||||
|
||||
mInlineSessionController.hideInlineSuggestionsUiLocked(id);
|
||||
}
|
||||
}
|
||||
|
||||
// AutoFillUiCallback
|
||||
@Override
|
||||
public void cancelSession() {
|
||||
|
||||
@@ -95,6 +95,7 @@ public final class AutoFillUI {
|
||||
void requestShowFillUi(AutofillId id, int width, int height,
|
||||
IAutofillWindowPresenter presenter);
|
||||
void requestHideFillUi(AutofillId id);
|
||||
void requestHideFillUiWhenDestroyed(AutofillId id);
|
||||
void startIntentSenderAndFinishSession(IntentSender intentSender);
|
||||
void startIntentSender(IntentSender intentSender, Intent intent);
|
||||
void dispatchUnhandledKey(AutofillId id, KeyEvent keyEvent);
|
||||
@@ -288,6 +289,13 @@ public final class AutoFillUI {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void requestHideFillUiWhenDestroyed() {
|
||||
if (mCallback != null) {
|
||||
mCallback.requestHideFillUiWhenDestroyed(focusedId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startIntentSender(IntentSender intentSender) {
|
||||
if (mCallback != null) {
|
||||
|
||||
@@ -91,6 +91,7 @@ final class FillUi {
|
||||
void requestShowFillUi(int width, int height,
|
||||
IAutofillWindowPresenter windowPresenter);
|
||||
void requestHideFillUi();
|
||||
void requestHideFillUiWhenDestroyed();
|
||||
void startIntentSender(IntentSender intentSender);
|
||||
void dispatchUnhandledKey(KeyEvent keyEvent);
|
||||
void cancelSession();
|
||||
@@ -482,7 +483,7 @@ final class FillUi {
|
||||
}
|
||||
mCallback.onDestroy();
|
||||
if (notifyClient) {
|
||||
mCallback.requestHideFillUi();
|
||||
mCallback.requestHideFillUiWhenDestroyed();
|
||||
}
|
||||
mDestroyed = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user