Do not call SystemConfig.getInstance() from Bluetooth (1/2)

Move call to SystemConfig.getInstance into BluetoothManagerService

Bug: 145297991
Change-Id: I6edd91b831a240117757cb6683d8a373e861db99
This commit is contained in:
Jakub Pawlowski
2019-11-29 22:11:11 +01:00
parent ee207f0241
commit 3f0ce98cfa

View File

@@ -74,6 +74,7 @@ import com.android.server.pm.UserRestrictionsUtils;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Locale;
import java.util.Map;
@@ -695,6 +696,35 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
return mIsHearingAidProfileSupported;
}
@Override
/** @hide */
public java.util.List<String> getSystemConfigEnabledProfilesForPackage(String packageName) {
if (Binder.getCallingUid() != Process.BLUETOOTH_UID) {
Slog.w(TAG, "getSystemConfigEnabledProfilesForPackage(): not allowed for non-bluetooth");
return null;
}
SystemConfig systemConfig = SystemConfig.getInstance();
if (systemConfig == null) {
return null;
}
android.util.ArrayMap<String, Boolean> componentEnabledStates =
systemConfig.getComponentsEnabledStates(packageName);
if (componentEnabledStates == null) {
return null;
}
ArrayList enabledProfiles = new ArrayList<String>();
for (Map.Entry<String, Boolean> entry : componentEnabledStates.entrySet()) {
if (entry.getValue()) {
enabledProfiles.add(entry.getKey());
}
}
return enabledProfiles;
}
// Monitor change of BLE scan only mode settings.
private void registerForBleScanModeChange() {
ContentObserver contentObserver = new ContentObserver(null) {