Loading core/java/android/service/autofill/augmented/AugmentedAutofillService.java +20 −15 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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. Loading @@ -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 Loading Loading @@ -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(); } Loading @@ -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); } Loading Loading @@ -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 { Loading Loading @@ -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); Loading Loading @@ -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; Loading Loading @@ -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)); } Loading @@ -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)); } Loading @@ -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)); } Loading Loading @@ -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; } Loading core/java/android/service/autofill/augmented/FillCallback.java +2 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading core/java/android/service/autofill/augmented/FillController.java +2 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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"); } Loading core/java/android/service/autofill/augmented/FillWindow.java +12 −12 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 Loading Loading @@ -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; Loading @@ -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; Loading @@ -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) { Loading @@ -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) { Loading @@ -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; Loading @@ -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); Loading @@ -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); Loading Loading @@ -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)); } } Loading core/java/android/service/autofill/augmented/IAugmentedAutofillService.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -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, Loading Loading
core/java/android/service/autofill/augmented/AugmentedAutofillService.java +20 −15 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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. Loading @@ -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 Loading Loading @@ -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(); } Loading @@ -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); } Loading Loading @@ -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 { Loading Loading @@ -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); Loading Loading @@ -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; Loading Loading @@ -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)); } Loading @@ -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)); } Loading @@ -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)); } Loading Loading @@ -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; } Loading
core/java/android/service/autofill/augmented/FillCallback.java +2 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading
core/java/android/service/autofill/augmented/FillController.java +2 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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"); } Loading
core/java/android/service/autofill/augmented/FillWindow.java +12 −12 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 Loading Loading @@ -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; Loading @@ -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; Loading @@ -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) { Loading @@ -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) { Loading @@ -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; Loading @@ -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); Loading @@ -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); Loading Loading @@ -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)); } } Loading
core/java/android/service/autofill/augmented/IAugmentedAutofillService.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -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, Loading