Loading services/autofill/java/com/android/server/autofill/Helper.java +8 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import com.android.internal.util.ArrayUtils; import com.android.server.utils.Slogf; import java.io.PrintWriter; import java.lang.ref.WeakReference; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Arrays; Loading Loading @@ -319,6 +320,13 @@ public final class Helper { return context.createDisplayContext(display); } static <T> @Nullable T weakDeref(WeakReference<T> weakRef, String tag, String prefix) { T deref = weakRef.get(); if (deref == null) { Slog.wtf(tag, prefix + "fail to deref " + weakRef); } return deref; } private interface ViewNodeFilter { boolean matches(ViewNode node); Loading services/autofill/java/com/android/server/autofill/RemoteFieldClassificationService.java +22 −1 Original line number Diff line number Diff line Loading @@ -44,6 +44,8 @@ import android.util.Slog; import com.android.internal.infra.AbstractRemoteService; import com.android.internal.infra.ServiceConnector; import java.lang.ref.WeakReference; /** * Class responsible for connection with the Remote {@link FieldClassificationService}. * This class is instantiated when {@link AutofillManagerServiceImpl} is established. Loading Loading @@ -133,7 +135,8 @@ final class RemoteFieldClassificationService } public void onFieldClassificationRequest(@NonNull FieldClassificationRequest request, FieldClassificationServiceCallbacks fieldClassificationServiceCallbacks) { WeakReference<FieldClassificationServiceCallbacks> fieldClassificationServiceCallbacksWeakRef) { final long startTime = SystemClock.elapsedRealtime(); if (sVerbose) { Slog.v(TAG, "onFieldClassificationRequest request:" + request); Loading Loading @@ -170,6 +173,15 @@ final class RemoteFieldClassificationService Slog.d(TAG, "onSuccess " + msg); } } FieldClassificationServiceCallbacks fieldClassificationServiceCallbacks = Helper.weakDeref( fieldClassificationServiceCallbacksWeakRef, TAG, "onSuccess " ); if (fieldClassificationServiceCallbacks == null) { return; } fieldClassificationServiceCallbacks .onClassificationRequestSuccess(response); } Loading @@ -180,6 +192,15 @@ final class RemoteFieldClassificationService if (sDebug) { Slog.d(TAG, "onFailure"); } FieldClassificationServiceCallbacks fieldClassificationServiceCallbacks = Helper.weakDeref( fieldClassificationServiceCallbacksWeakRef, TAG, "onFailure " ); if (fieldClassificationServiceCallbacks == null) { return; } fieldClassificationServiceCallbacks .onClassificationRequestFailure(0, null); } Loading services/autofill/java/com/android/server/autofill/Session.java +5 −1 Original line number Diff line number Diff line Loading @@ -850,8 +850,12 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState RemoteFieldClassificationService remoteFieldClassificationService = mService.getRemoteFieldClassificationServiceLocked(); if (remoteFieldClassificationService != null) { WeakReference<RemoteFieldClassificationService.FieldClassificationServiceCallbacks> fieldClassificationServiceCallbacksWeakRef = new WeakReference<>(Session.this); remoteFieldClassificationService.onFieldClassificationRequest( mClassificationState.mPendingFieldClassificationRequest, Session.this); mClassificationState.mPendingFieldClassificationRequest, fieldClassificationServiceCallbacksWeakRef); } mClassificationState.onFieldClassificationRequestSent(); } Loading Loading
services/autofill/java/com/android/server/autofill/Helper.java +8 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import com.android.internal.util.ArrayUtils; import com.android.server.utils.Slogf; import java.io.PrintWriter; import java.lang.ref.WeakReference; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Arrays; Loading Loading @@ -319,6 +320,13 @@ public final class Helper { return context.createDisplayContext(display); } static <T> @Nullable T weakDeref(WeakReference<T> weakRef, String tag, String prefix) { T deref = weakRef.get(); if (deref == null) { Slog.wtf(tag, prefix + "fail to deref " + weakRef); } return deref; } private interface ViewNodeFilter { boolean matches(ViewNode node); Loading
services/autofill/java/com/android/server/autofill/RemoteFieldClassificationService.java +22 −1 Original line number Diff line number Diff line Loading @@ -44,6 +44,8 @@ import android.util.Slog; import com.android.internal.infra.AbstractRemoteService; import com.android.internal.infra.ServiceConnector; import java.lang.ref.WeakReference; /** * Class responsible for connection with the Remote {@link FieldClassificationService}. * This class is instantiated when {@link AutofillManagerServiceImpl} is established. Loading Loading @@ -133,7 +135,8 @@ final class RemoteFieldClassificationService } public void onFieldClassificationRequest(@NonNull FieldClassificationRequest request, FieldClassificationServiceCallbacks fieldClassificationServiceCallbacks) { WeakReference<FieldClassificationServiceCallbacks> fieldClassificationServiceCallbacksWeakRef) { final long startTime = SystemClock.elapsedRealtime(); if (sVerbose) { Slog.v(TAG, "onFieldClassificationRequest request:" + request); Loading Loading @@ -170,6 +173,15 @@ final class RemoteFieldClassificationService Slog.d(TAG, "onSuccess " + msg); } } FieldClassificationServiceCallbacks fieldClassificationServiceCallbacks = Helper.weakDeref( fieldClassificationServiceCallbacksWeakRef, TAG, "onSuccess " ); if (fieldClassificationServiceCallbacks == null) { return; } fieldClassificationServiceCallbacks .onClassificationRequestSuccess(response); } Loading @@ -180,6 +192,15 @@ final class RemoteFieldClassificationService if (sDebug) { Slog.d(TAG, "onFailure"); } FieldClassificationServiceCallbacks fieldClassificationServiceCallbacks = Helper.weakDeref( fieldClassificationServiceCallbacksWeakRef, TAG, "onFailure " ); if (fieldClassificationServiceCallbacks == null) { return; } fieldClassificationServiceCallbacks .onClassificationRequestFailure(0, null); } Loading
services/autofill/java/com/android/server/autofill/Session.java +5 −1 Original line number Diff line number Diff line Loading @@ -850,8 +850,12 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState RemoteFieldClassificationService remoteFieldClassificationService = mService.getRemoteFieldClassificationServiceLocked(); if (remoteFieldClassificationService != null) { WeakReference<RemoteFieldClassificationService.FieldClassificationServiceCallbacks> fieldClassificationServiceCallbacksWeakRef = new WeakReference<>(Session.this); remoteFieldClassificationService.onFieldClassificationRequest( mClassificationState.mPendingFieldClassificationRequest, Session.this); mClassificationState.mPendingFieldClassificationRequest, fieldClassificationServiceCallbacksWeakRef); } mClassificationState.onFieldClassificationRequestSent(); } Loading