DO Disclosures: detailed application lists
Add UI that lists enterprise set default apps for handling important intents (opening browser, using camera, phone, etc). Bug: 32692748 Test: m RunSettingsRoboTests Change-Id: I75bb97d1b3728b1dcb90981b24d12edf510c4b04
This commit is contained in:
@@ -22,6 +22,7 @@ import android.content.Intent;
|
||||
import android.content.pm.ComponentInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.content.pm.UserInfo;
|
||||
import android.os.RemoteException;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
@@ -31,6 +32,7 @@ import android.view.View;
|
||||
import com.android.settings.applications.instantapps.InstantAppButtonsController;
|
||||
import com.android.settings.enterprise.DevicePolicyManagerWrapper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -103,36 +105,34 @@ public class ApplicationFeatureProviderImpl implements ApplicationFeatureProvide
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<PersistentPreferredActivityInfo> findPersistentPreferredActivities(
|
||||
Intent[] intents) {
|
||||
final Set<PersistentPreferredActivityInfo> activities = new ArraySet<>();
|
||||
final List<UserHandle> users = mUm.getUserProfiles();
|
||||
public List<UserAppInfo> findPersistentPreferredActivities(int userId, Intent[] intents) {
|
||||
final List<UserAppInfo> preferredActivities = new ArrayList<>();
|
||||
final Set<UserAppInfo> uniqueApps = new ArraySet<>();
|
||||
final UserInfo userInfo = mUm.getUserInfo(userId);
|
||||
for (final Intent intent : intents) {
|
||||
for (final UserHandle user : users) {
|
||||
final int userId = user.getIdentifier();
|
||||
try {
|
||||
final ResolveInfo resolveInfo = mPms.findPersistentPreferredActivity(intent,
|
||||
userId);
|
||||
if (resolveInfo != null) {
|
||||
ComponentInfo componentInfo = null;
|
||||
if (resolveInfo.activityInfo != null) {
|
||||
componentInfo = resolveInfo.activityInfo;
|
||||
} else if (resolveInfo.serviceInfo != null) {
|
||||
componentInfo = resolveInfo.serviceInfo;
|
||||
} else if (resolveInfo.providerInfo != null) {
|
||||
componentInfo = resolveInfo.providerInfo;
|
||||
}
|
||||
if (componentInfo != null) {
|
||||
activities.add(new PersistentPreferredActivityInfo(
|
||||
componentInfo.packageName, userId));
|
||||
try {
|
||||
final ResolveInfo resolveInfo =
|
||||
mPms.findPersistentPreferredActivity(intent, userId);
|
||||
if (resolveInfo != null) {
|
||||
ComponentInfo componentInfo = null;
|
||||
if (resolveInfo.activityInfo != null) {
|
||||
componentInfo = resolveInfo.activityInfo;
|
||||
} else if (resolveInfo.serviceInfo != null) {
|
||||
componentInfo = resolveInfo.serviceInfo;
|
||||
} else if (resolveInfo.providerInfo != null) {
|
||||
componentInfo = resolveInfo.providerInfo;
|
||||
}
|
||||
if (componentInfo != null) {
|
||||
UserAppInfo info = new UserAppInfo(userInfo, componentInfo.applicationInfo);
|
||||
if (uniqueApps.add(info)) {
|
||||
preferredActivities.add(info);
|
||||
}
|
||||
}
|
||||
} catch (RemoteException exception) {
|
||||
}
|
||||
} catch (RemoteException exception) {
|
||||
}
|
||||
|
||||
}
|
||||
return activities;
|
||||
return preferredActivities;
|
||||
}
|
||||
|
||||
private static class CurrentUserAndManagedProfilePolicyInstalledAppCounter
|
||||
|
Reference in New Issue
Block a user