Merge "Unhardcoded Augmented Autofill debug constants." into qt-dev
am: 211ddf7040
Change-Id: Iccd19b19476fc4ead5cd2b2699833b46b6a0d970
This commit is contained in:
@@ -27,6 +27,7 @@ import android.app.Service;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Rect;
|
||||
import android.os.Build;
|
||||
import android.os.CancellationSignal;
|
||||
import android.os.Handler;
|
||||
import android.os.IBinder;
|
||||
@@ -67,9 +68,8 @@ public abstract class AugmentedAutofillService extends Service {
|
||||
|
||||
private static final String TAG = AugmentedAutofillService.class.getSimpleName();
|
||||
|
||||
// TODO(b/123100811): STOPSHIP use dynamic value, or change to false
|
||||
static final boolean DEBUG = true;
|
||||
static final boolean VERBOSE = false;
|
||||
static boolean sDebug = Build.IS_USER ? false : true;
|
||||
static boolean sVerbose = false;
|
||||
|
||||
/**
|
||||
* The {@link Intent} that must be declared as handled by the service.
|
||||
@@ -87,9 +87,9 @@ public abstract class AugmentedAutofillService extends Service {
|
||||
private final IAugmentedAutofillService mInterface = new IAugmentedAutofillService.Stub() {
|
||||
|
||||
@Override
|
||||
public void onConnected() {
|
||||
public void onConnected(boolean debug, boolean verbose) {
|
||||
mHandler.sendMessage(obtainMessage(AugmentedAutofillService::handleOnConnected,
|
||||
AugmentedAutofillService.this));
|
||||
AugmentedAutofillService.this, debug, verbose));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -190,7 +190,12 @@ public abstract class AugmentedAutofillService extends Service {
|
||||
public void onDisconnected() {
|
||||
}
|
||||
|
||||
private void handleOnConnected() {
|
||||
private void handleOnConnected(boolean debug, boolean verbose) {
|
||||
if (sDebug || debug) {
|
||||
Log.d(TAG, "handleOnConnected(): debug=" + debug + ", verbose=" + verbose);
|
||||
}
|
||||
sDebug = debug;
|
||||
sVerbose = verbose;
|
||||
onConnected();
|
||||
}
|
||||
|
||||
@@ -215,7 +220,7 @@ public abstract class AugmentedAutofillService extends Service {
|
||||
mAutofillProxies.put(sessionId, proxy);
|
||||
} else {
|
||||
// TODO(b/123099468): figure out if it's ok to reuse the proxy; add logging
|
||||
if (DEBUG) Log.d(TAG, "Reusing proxy for session " + sessionId);
|
||||
if (sDebug) Log.d(TAG, "Reusing proxy for session " + sessionId);
|
||||
proxy.update(focusedId, focusedValue, callback);
|
||||
}
|
||||
|
||||
@@ -248,11 +253,11 @@ public abstract class AugmentedAutofillService extends Service {
|
||||
|
||||
private void handleOnUnbind() {
|
||||
if (mAutofillProxies == null) {
|
||||
if (DEBUG) Log.d(TAG, "onUnbind(): no proxy to destroy");
|
||||
if (sDebug) Log.d(TAG, "onUnbind(): no proxy to destroy");
|
||||
return;
|
||||
}
|
||||
final int size = mAutofillProxies.size();
|
||||
if (DEBUG) Log.d(TAG, "onUnbind(): destroying " + size + " proxies");
|
||||
if (sDebug) Log.d(TAG, "onUnbind(): destroying " + size + " proxies");
|
||||
for (int i = 0; i < size; i++) {
|
||||
final AutofillProxy proxy = mAutofillProxies.valueAt(i);
|
||||
try {
|
||||
@@ -373,7 +378,7 @@ public abstract class AugmentedAutofillService extends Service {
|
||||
return null;
|
||||
}
|
||||
if (rect == null) {
|
||||
if (DEBUG) Log.d(TAG, "getViewCoordinates(" + mFocusedId + ") returned null");
|
||||
if (sDebug) Log.d(TAG, "getViewCoordinates(" + mFocusedId + ") returned null");
|
||||
return null;
|
||||
}
|
||||
mSmartSuggestion = new SystemPopupPresentationParams(this, rect);
|
||||
@@ -410,7 +415,7 @@ public abstract class AugmentedAutofillService extends Service {
|
||||
public void requestShowFillUi(int width, int height, Rect anchorBounds,
|
||||
IAutofillWindowPresenter presenter) throws RemoteException {
|
||||
if (mCancellationSignal.isCanceled()) {
|
||||
if (VERBOSE) {
|
||||
if (sVerbose) {
|
||||
Log.v(TAG, "requestShowFillUi() not showing because request is cancelled");
|
||||
}
|
||||
return;
|
||||
@@ -462,7 +467,7 @@ public abstract class AugmentedAutofillService extends Service {
|
||||
case REPORT_EVENT_ON_SUCCESS:
|
||||
if (mFirstOnSuccessTime == 0) {
|
||||
mFirstOnSuccessTime = SystemClock.elapsedRealtime();
|
||||
if (DEBUG) {
|
||||
if (sDebug) {
|
||||
Slog.d(TAG, "Service responded in " + TimeUtils.formatDuration(
|
||||
mFirstOnSuccessTime - mFirstRequestTime));
|
||||
}
|
||||
@@ -476,7 +481,7 @@ public abstract class AugmentedAutofillService extends Service {
|
||||
case REPORT_EVENT_UI_SHOWN:
|
||||
if (mUiFirstShownTime == 0) {
|
||||
mUiFirstShownTime = SystemClock.elapsedRealtime();
|
||||
if (DEBUG) {
|
||||
if (sDebug) {
|
||||
Slog.d(TAG, "UI shown in " + TimeUtils.formatDuration(
|
||||
mUiFirstShownTime - mFirstRequestTime));
|
||||
}
|
||||
@@ -485,7 +490,7 @@ public abstract class AugmentedAutofillService extends Service {
|
||||
case REPORT_EVENT_UI_DESTROYED:
|
||||
if (mUiFirstDestroyedTime == 0) {
|
||||
mUiFirstDestroyedTime = SystemClock.elapsedRealtime();
|
||||
if (DEBUG) {
|
||||
if (sDebug) {
|
||||
Slog.d(TAG, "UI destroyed in " + TimeUtils.formatDuration(
|
||||
mUiFirstDestroyedTime - mFirstRequestTime));
|
||||
}
|
||||
@@ -541,7 +546,7 @@ public abstract class AugmentedAutofillService extends Service {
|
||||
private void destroy() {
|
||||
synchronized (mLock) {
|
||||
if (mFillWindow != null) {
|
||||
if (DEBUG) Log.d(TAG, "destroying window");
|
||||
if (sDebug) Log.d(TAG, "destroying window");
|
||||
mFillWindow.destroy();
|
||||
mFillWindow = null;
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
package android.service.autofill.augmented;
|
||||
|
||||
import static android.service.autofill.augmented.AugmentedAutofillService.DEBUG;
|
||||
import static android.service.autofill.augmented.AugmentedAutofillService.sDebug;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
@@ -48,7 +48,7 @@ public final class FillCallback {
|
||||
* could not provide autofill for the request.
|
||||
*/
|
||||
public void onSuccess(@Nullable FillResponse response) {
|
||||
if (DEBUG) Log.d(TAG, "onSuccess(): " + response);
|
||||
if (sDebug) Log.d(TAG, "onSuccess(): " + response);
|
||||
|
||||
mProxy.report(AutofillProxy.REPORT_EVENT_ON_SUCCESS);
|
||||
if (response == null) return;
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
package android.service.autofill.augmented;
|
||||
|
||||
import static android.service.autofill.augmented.AugmentedAutofillService.DEBUG;
|
||||
import static android.service.autofill.augmented.AugmentedAutofillService.sDebug;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.SystemApi;
|
||||
@@ -56,7 +56,7 @@ public final class FillController {
|
||||
public void autofill(@NonNull List<Pair<AutofillId, AutofillValue>> values) {
|
||||
Preconditions.checkNotNull(values);
|
||||
|
||||
if (DEBUG) {
|
||||
if (sDebug) {
|
||||
Log.d(TAG, "autofill() with " + values.size() + " values");
|
||||
}
|
||||
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
*/
|
||||
package android.service.autofill.augmented;
|
||||
|
||||
import static android.service.autofill.augmented.AugmentedAutofillService.DEBUG;
|
||||
import static android.service.autofill.augmented.AugmentedAutofillService.VERBOSE;
|
||||
import static android.service.autofill.augmented.AugmentedAutofillService.sDebug;
|
||||
import static android.service.autofill.augmented.AugmentedAutofillService.sVerbose;
|
||||
|
||||
import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
|
||||
|
||||
@@ -100,7 +100,7 @@ public final class FillWindow implements AutoCloseable {
|
||||
* @throws IllegalArgumentException if the area is not compatible with this window
|
||||
*/
|
||||
public boolean update(@NonNull Area area, @NonNull View rootView, long flags) {
|
||||
if (DEBUG) {
|
||||
if (sDebug) {
|
||||
Log.d(TAG, "Updating " + area + " + with " + rootView);
|
||||
}
|
||||
// TODO(b/123100712): add test case for null
|
||||
@@ -141,7 +141,7 @@ public final class FillWindow implements AutoCloseable {
|
||||
mFillView.setOnTouchListener(
|
||||
(view, motionEvent) -> {
|
||||
if (motionEvent.getAction() == MotionEvent.ACTION_OUTSIDE) {
|
||||
if (VERBOSE) Log.v(TAG, "Outside touch detected, hiding the window");
|
||||
if (sVerbose) Log.v(TAG, "Outside touch detected, hiding the window");
|
||||
hide();
|
||||
}
|
||||
return false;
|
||||
@@ -149,7 +149,7 @@ public final class FillWindow implements AutoCloseable {
|
||||
);
|
||||
mShowing = false;
|
||||
mBounds = new Rect(area.getBounds());
|
||||
if (DEBUG) {
|
||||
if (sDebug) {
|
||||
Log.d(TAG, "Created FillWindow: params= " + smartSuggestion + " view=" + rootView);
|
||||
}
|
||||
mUpdateCalled = true;
|
||||
@@ -162,7 +162,7 @@ public final class FillWindow implements AutoCloseable {
|
||||
/** @hide */
|
||||
void show() {
|
||||
// TODO(b/123100712): check if updated first / throw exception
|
||||
if (DEBUG) Log.d(TAG, "show()");
|
||||
if (sDebug) Log.d(TAG, "show()");
|
||||
synchronized (mLock) {
|
||||
checkNotDestroyedLocked();
|
||||
if (mWm == null || mFillView == null) {
|
||||
@@ -187,7 +187,7 @@ public final class FillWindow implements AutoCloseable {
|
||||
* <p>The window is not destroyed and can be shown again
|
||||
*/
|
||||
private void hide() {
|
||||
if (DEBUG) Log.d(TAG, "hide()");
|
||||
if (sDebug) Log.d(TAG, "hide()");
|
||||
synchronized (mLock) {
|
||||
checkNotDestroyedLocked();
|
||||
if (mWm == null || mFillView == null) {
|
||||
@@ -204,7 +204,7 @@ public final class FillWindow implements AutoCloseable {
|
||||
}
|
||||
|
||||
private void handleShow(WindowManager.LayoutParams p) {
|
||||
if (DEBUG) Log.d(TAG, "handleShow()");
|
||||
if (sDebug) Log.d(TAG, "handleShow()");
|
||||
synchronized (mLock) {
|
||||
if (mWm != null && mFillView != null) {
|
||||
p.flags |= WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;
|
||||
@@ -219,7 +219,7 @@ public final class FillWindow implements AutoCloseable {
|
||||
}
|
||||
|
||||
private void handleHide() {
|
||||
if (DEBUG) Log.d(TAG, "handleHide()");
|
||||
if (sDebug) Log.d(TAG, "handleHide()");
|
||||
synchronized (mLock) {
|
||||
if (mWm != null && mFillView != null && mShowing) {
|
||||
mWm.removeView(mFillView);
|
||||
@@ -234,7 +234,7 @@ public final class FillWindow implements AutoCloseable {
|
||||
* <p>Once destroyed, this window cannot be used anymore
|
||||
*/
|
||||
public void destroy() {
|
||||
if (DEBUG) {
|
||||
if (sDebug) {
|
||||
Log.d(TAG,
|
||||
"destroy(): mDestroyed=" + mDestroyed + " mShowing=" + mShowing + " mFillView="
|
||||
+ mFillView);
|
||||
@@ -296,13 +296,13 @@ public final class FillWindow implements AutoCloseable {
|
||||
@Override
|
||||
public void show(WindowManager.LayoutParams p, Rect transitionEpicenter,
|
||||
boolean fitsSystemWindows, int layoutDirection) {
|
||||
if (DEBUG) Log.d(TAG, "FillWindowPresenter.show()");
|
||||
if (sDebug) Log.d(TAG, "FillWindowPresenter.show()");
|
||||
mUiThreadHandler.sendMessage(obtainMessage(FillWindow::handleShow, FillWindow.this, p));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hide(Rect transitionEpicenter) {
|
||||
if (DEBUG) Log.d(TAG, "FillWindowPresenter.hide()");
|
||||
if (sDebug) Log.d(TAG, "FillWindowPresenter.hide()");
|
||||
mUiThreadHandler.sendMessage(obtainMessage(FillWindow::handleHide, FillWindow.this));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ import java.util.List;
|
||||
* @hide
|
||||
*/
|
||||
oneway interface IAugmentedAutofillService {
|
||||
void onConnected();
|
||||
void onConnected(boolean debug, boolean verbose);
|
||||
void onDisconnected();
|
||||
void onFillRequest(int sessionId, in IBinder autofillManagerClient, int taskId,
|
||||
in ComponentName activityComponent, in AutofillId focusedId,
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package com.android.server.autofill;
|
||||
|
||||
import static com.android.server.autofill.Helper.sDebug;
|
||||
import static com.android.server.autofill.Helper.sVerbose;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
@@ -99,7 +100,7 @@ final class RemoteAugmentedAutofillService
|
||||
}
|
||||
try {
|
||||
if (state) {
|
||||
mService.onConnected();
|
||||
mService.onConnected(sDebug, sVerbose);
|
||||
} else {
|
||||
mService.onDisconnected();
|
||||
}
|
||||
|
||||
@@ -265,7 +265,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
|
||||
// main reason being the cases where user tap HOME.
|
||||
// Right now it's completely destroying the UI, but we need to decide whether / how to
|
||||
// properly recover it later (for example, if the user switches back to the activity,
|
||||
// should it be restored? Right not it kind of is, because Autofill's Session trigger a
|
||||
// should it be restored? Right now it kind of is, because Autofill's Session trigger a
|
||||
// new FillRequest, which in turn triggers the Augmented Autofill request again)
|
||||
@GuardedBy("mLock")
|
||||
@Nullable
|
||||
@@ -2755,9 +2755,6 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
|
||||
viewState.setState(ViewState.STATE_TRIGGERED_AUGMENTED_AUTOFILL);
|
||||
final AutofillValue currentValue = viewState.getCurrentValue();
|
||||
|
||||
// TODO(b/111330312): we might need to add a new state in the AutofillManager to optimize
|
||||
// further AFM -> AFMS calls.
|
||||
|
||||
if (mAugmentedRequestsLogs == null) {
|
||||
mAugmentedRequestsLogs = new ArrayList<>();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user