Add try-catch for the augmented autofill UI to avoid crashing

It is hard to reproduce this issue, it would better add try-catch
for the augmented autofill UI as regular autofill UI did.

Bug: 149744098
Test: atest CtsAutoFillServiceTestCases
Change-Id: I808ac48476ef96b8944e762dd5c41413da3a2c2e
This commit is contained in:
lpeter
2020-06-16 13:57:01 +08:00
parent b74c1ad24a
commit d0bd08b4b9

View File

@@ -208,12 +208,18 @@ public final class FillWindow implements AutoCloseable {
if (sDebug) Log.d(TAG, "handleShow()");
synchronized (mLock) {
if (mWm != null && mFillView != null) {
p.flags |= WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;
if (!mShowing) {
mWm.addView(mFillView, p);
mShowing = true;
} else {
mWm.updateViewLayout(mFillView, p);
try {
p.flags |= WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;
if (!mShowing) {
mWm.addView(mFillView, p);
mShowing = true;
} else {
mWm.updateViewLayout(mFillView, p);
}
} catch (WindowManager.BadTokenException e) {
if (sDebug) Log.d(TAG, "Filed with token " + p.token + " gone.");
} catch (IllegalStateException e) {
if (sDebug) Log.d(TAG, "Exception showing window.");
}
}
}
@@ -223,8 +229,12 @@ public final class FillWindow implements AutoCloseable {
if (sDebug) Log.d(TAG, "handleHide()");
synchronized (mLock) {
if (mWm != null && mFillView != null && mShowing) {
mWm.removeView(mFillView);
mShowing = false;
try {
mWm.removeView(mFillView);
mShowing = false;
} catch (IllegalStateException e) {
if (sDebug) Log.d(TAG, "Exception hiding window.");
}
}
}
}