Merge "[Autofill PCC]: Optimize PCC Detection calling" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
a3f65104cc
@@ -760,6 +760,12 @@ public final class AutofillManagerService
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Called by Shell command
|
||||||
|
String getFieldDetectionServiceName(@UserIdInt int userId) {
|
||||||
|
enforceCallingPermissionForManagement();
|
||||||
|
return mFieldClassificationResolver.readServiceName(userId);
|
||||||
|
}
|
||||||
|
|
||||||
// Called by Shell command
|
// Called by Shell command
|
||||||
boolean setTemporaryDetectionService(@UserIdInt int userId, @NonNull String serviceName,
|
boolean setTemporaryDetectionService(@UserIdInt int userId, @NonNull String serviceName,
|
||||||
int durationMs) {
|
int durationMs) {
|
||||||
@@ -903,9 +909,9 @@ public final class AutofillManagerService
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether the Autofill PCC Classification feature is enabled.
|
* Whether the Autofill PCC Classification feature flag is enabled.
|
||||||
*/
|
*/
|
||||||
public boolean isPccClassificationEnabled() {
|
public boolean isPccClassificationFlagEnabled() {
|
||||||
synchronized (mFlagLock) {
|
synchronized (mFlagLock) {
|
||||||
return mPccClassificationEnabled;
|
return mPccClassificationEnabled;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1730,6 +1730,23 @@ final class AutofillManagerServiceImpl
|
|||||||
return mRemoteFieldClassificationService;
|
return mRemoteFieldClassificationService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean isPccClassificationEnabled() {
|
||||||
|
boolean result = isPccClassificationEnabledInternal();
|
||||||
|
if (sVerbose) {
|
||||||
|
Slog.v(TAG, "pccEnabled: " + result);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isPccClassificationEnabledInternal() {
|
||||||
|
boolean flagEnabled = mMaster.isPccClassificationFlagEnabled();
|
||||||
|
if (!flagEnabled) return false;
|
||||||
|
synchronized (mLock) {
|
||||||
|
return getRemoteFieldClassificationServiceLocked() != null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the {@link AutofillManagerService#mFieldClassificationResolver}
|
* Called when the {@link AutofillManagerService#mFieldClassificationResolver}
|
||||||
* changed (among other places).
|
* changed (among other places).
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import android.os.RemoteCallback;
|
|||||||
import android.os.ShellCommand;
|
import android.os.ShellCommand;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.service.autofill.AutofillFieldClassificationService.Scores;
|
import android.service.autofill.AutofillFieldClassificationService.Scores;
|
||||||
|
import android.text.TextUtils;
|
||||||
import android.view.autofill.AutofillManager;
|
import android.view.autofill.AutofillManager;
|
||||||
|
|
||||||
import com.android.internal.os.IResultReceiver;
|
import com.android.internal.os.IResultReceiver;
|
||||||
@@ -154,6 +155,8 @@ public final class AutofillManagerServiceShellCommand extends ShellCommand {
|
|||||||
return getBindInstantService(pw);
|
return getBindInstantService(pw);
|
||||||
case "default-augmented-service-enabled":
|
case "default-augmented-service-enabled":
|
||||||
return getDefaultAugmentedServiceEnabled(pw);
|
return getDefaultAugmentedServiceEnabled(pw);
|
||||||
|
case "field-detection-service-enabled":
|
||||||
|
return isFieldDetectionServiceEnabled(pw);
|
||||||
case "saved-password-count":
|
case "saved-password-count":
|
||||||
return getSavedPasswordCount(pw);
|
return getSavedPasswordCount(pw);
|
||||||
default:
|
default:
|
||||||
@@ -343,6 +346,14 @@ public final class AutofillManagerServiceShellCommand extends ShellCommand {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int isFieldDetectionServiceEnabled(PrintWriter pw) {
|
||||||
|
final int userId = getNextIntArgRequired();
|
||||||
|
String name = mService.getFieldDetectionServiceName(userId);
|
||||||
|
boolean enabled = !TextUtils.isEmpty(name);
|
||||||
|
pw.println(enabled);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
private int setTemporaryAugmentedService(PrintWriter pw) {
|
private int setTemporaryAugmentedService(PrintWriter pw) {
|
||||||
final int userId = getNextIntArgRequired();
|
final int userId = getNextIntArgRequired();
|
||||||
final String serviceName = getNextArg();
|
final String serviceName = getNextArg();
|
||||||
|
|||||||
@@ -798,7 +798,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
|
|||||||
* Returns empty list if PCC is off or no types available
|
* Returns empty list if PCC is off or no types available
|
||||||
*/
|
*/
|
||||||
private List<String> getTypeHintsForProvider() {
|
private List<String> getTypeHintsForProvider() {
|
||||||
if (!mService.getMaster().isPccClassificationEnabled()) {
|
if (!mService.isPccClassificationEnabled()) {
|
||||||
return Collections.EMPTY_LIST;
|
return Collections.EMPTY_LIST;
|
||||||
}
|
}
|
||||||
final String typeHints = mService.getMaster().getPccProviderHints();
|
final String typeHints = mService.getMaster().getPccProviderHints();
|
||||||
@@ -1200,7 +1200,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
|
|||||||
// structure is taken. This causes only one fill request per burst of focus changes.
|
// structure is taken. This causes only one fill request per burst of focus changes.
|
||||||
cancelCurrentRequestLocked();
|
cancelCurrentRequestLocked();
|
||||||
|
|
||||||
if (mService.getMaster().isPccClassificationEnabled()
|
if (mService.isPccClassificationEnabled()
|
||||||
&& mClassificationState.mHintsToAutofillIdMap == null) {
|
&& mClassificationState.mHintsToAutofillIdMap == null) {
|
||||||
if (sVerbose) {
|
if (sVerbose) {
|
||||||
Slog.v(TAG, "triggering field classification");
|
Slog.v(TAG, "triggering field classification");
|
||||||
@@ -1631,7 +1631,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
|
|||||||
Slog.d(TAG, "DBG: computeDatasetsForProviderAndUpdateContainer: "
|
Slog.d(TAG, "DBG: computeDatasetsForProviderAndUpdateContainer: "
|
||||||
+ autofillProviderContainer);
|
+ autofillProviderContainer);
|
||||||
}
|
}
|
||||||
if (!mService.getMaster().isPccClassificationEnabled()) {
|
if (!mService.isPccClassificationEnabled()) {
|
||||||
if (sVerbose) {
|
if (sVerbose) {
|
||||||
Slog.v(TAG, "PCC classification is disabled");
|
Slog.v(TAG, "PCC classification is disabled");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user