Move DeviceConfig check to Service

Moves DC feature flag evalutation to
service since clients do not have
permisssion.

Test: gts
Bug: 275754582
Change-Id: Ic56cae1ad52d9df2daab6c82da0e57087a91408c
This commit is contained in:
Becca Hughes
2023-03-29 23:50:30 +00:00
parent 71dac9dba1
commit 3b1802458d
3 changed files with 25 additions and 2 deletions

View File

@@ -460,9 +460,17 @@ public final class CredentialManager {
return false;
}
/**
* Returns whether the service is enabled.
*
* @hide
*/
private boolean isServiceEnabled() {
return DeviceConfig.getBoolean(
DeviceConfig.NAMESPACE_CREDENTIAL, DEVICE_CONFIG_ENABLE_CREDENTIAL_MANAGER, true);
try {
return mService.isServiceEnabled();
} catch (RemoteException e) {
return false;
}
}
/**

View File

@@ -58,5 +58,7 @@ interface ICredentialManager {
List<CredentialProviderInfo> getCredentialProviderServices(in int userId, in int providerFilter);
List<CredentialProviderInfo> getCredentialProviderServicesForTesting(in int providerFilter);
boolean isServiceEnabled();
}

View File

@@ -825,6 +825,19 @@ public final class CredentialManagerService
mContext, userId, providerFilter, getEnabledProviders());
}
@Override
public boolean isServiceEnabled() {
final long origId = Binder.clearCallingIdentity();
try {
return DeviceConfig.getBoolean(
DeviceConfig.NAMESPACE_CREDENTIAL,
CredentialManager.DEVICE_CONFIG_ENABLE_CREDENTIAL_MANAGER,
false);
} finally {
Binder.restoreCallingIdentity(origId);
}
}
@SuppressWarnings("GuardedBy") // ErrorProne requires service.mLock which is the same
// this.mLock
private Set<ComponentName> getEnabledProviders() {