Merge "Use PermissionControllerService.isRoleVisible() in app info shortcut."

This commit is contained in:
TreeHugger Robot
2019-03-04 22:49:23 +00:00
committed by Android (Google) Code Review
2 changed files with 61 additions and 15 deletions

View File

@@ -29,6 +29,8 @@ import com.android.internal.util.CollectionUtils;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import java.util.concurrent.Executor;
/*
* Abstract base controller for the default app shortcut preferences that launches the default app
* settings with the corresponding default app highlighted.
@@ -41,6 +43,8 @@ public abstract class DefaultAppShortcutPreferenceControllerBase extends BasePre
private final RoleManager mRoleManager;
private boolean mRoleVisible;
private boolean mAppQualified;
private PreferenceScreen mPreferenceScreen;
@@ -56,8 +60,13 @@ public abstract class DefaultAppShortcutPreferenceControllerBase extends BasePre
final PermissionControllerManager permissionControllerManager =
mContext.getSystemService(PermissionControllerManager.class);
permissionControllerManager.isApplicationQualifiedForRole(mRoleName, mPackageName,
mContext.getMainExecutor(), qualified -> {
final Executor executor = mContext.getMainExecutor();
permissionControllerManager.isRoleVisible(mRoleName, executor, visible -> {
mRoleVisible = visible;
refreshAvailability();
});
permissionControllerManager.isApplicationQualifiedForRole(mRoleName, mPackageName, executor,
qualified -> {
mAppQualified = qualified;
refreshAvailability();
});
@@ -85,7 +94,7 @@ public abstract class DefaultAppShortcutPreferenceControllerBase extends BasePre
if (mContext.getSystemService(UserManager.class).isManagedProfile()) {
return DISABLED_FOR_USER;
}
return mAppQualified ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
return mRoleVisible && mAppQualified ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
@Override