Fix location services for all profiles

Bug: 330538899
Bug: 333507072
Test: atest LocationInjectedServicesPreferenceControllerTest
Test: manual
Change-Id: Ia42e59b73b9b7c84ecb89082e968b801e1fd1302
This commit is contained in:
Manish Singh
2024-04-09 15:41:26 +00:00
parent cf7cfa6a0c
commit cace44f497
7 changed files with 247 additions and 9 deletions

View File

@@ -22,6 +22,7 @@ import android.os.UserHandle;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.Utils;
import com.android.settings.widget.RestrictedAppPreference;
import java.util.List;
@@ -40,6 +41,7 @@ public class LocationInjectedServicesForWorkPreferenceController extends
@Override
protected void injectLocationServices(PreferenceScreen screen) {
final int managedProfileId = Utils.getManagedProfileId(mUserManager, UserHandle.myUserId());
final Map<Integer, List<Preference>> prefs = getLocationServices();
for (Map.Entry<Integer, List<Preference>> entry : prefs.entrySet()) {
for (Preference pref : entry.getValue()) {
@@ -47,7 +49,7 @@ public class LocationInjectedServicesForWorkPreferenceController extends
((RestrictedAppPreference) pref).checkRestrictionAndSetDisabled();
}
}
if (entry.getKey() != UserHandle.myUserId()) {
if (entry.getKey() == managedProfileId) {
LocationSettings.addPreferencesSorted(entry.getValue(), screen);
}
}