Loading res/xml/roles.xml +3 −0 Original line number Diff line number Diff line Loading @@ -79,6 +79,7 @@ defaultHolders="config_defaultAssistant" description="@string/role_assistant_description" exclusive="true" fallBackToDefaultHolder="true" showNone="true" label="@string/role_assistant_label" requestable="false" Loading Loading @@ -167,6 +168,7 @@ defaultHolders="config_defaultDialer" description="@string/role_dialer_description" exclusive="true" fallBackToDefaultHolder="true" label="@string/role_dialer_label" requestDescription="@string/role_dialer_request_description" requestTitle="@string/role_dialer_request_title" Loading Loading @@ -426,6 +428,7 @@ name="android.app.role.SYSTEM_GALLERY" defaultHolders="config_systemGallery" exclusive="true" fallBackToDefaultHolder="true" systemOnly="true" visible="false"> <permissions> Loading src/com/android/permissioncontroller/role/model/AssistantRoleBehavior.java +0 −7 Original line number Diff line number Diff line Loading @@ -38,7 +38,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.permissioncontroller.R; import com.android.permissioncontroller.permission.utils.CollectionUtils; import com.android.permissioncontroller.role.utils.UserUtils; import org.xmlpull.v1.XmlPullParserException; Loading Loading @@ -79,12 +78,6 @@ public class AssistantRoleBehavior implements RoleBehavior { return !UserUtils.isWorkProfile(user, context); } @Nullable @Override public String getFallbackHolder(@NonNull Role role, @NonNull Context context) { return CollectionUtils.firstOrNull(role.getDefaultHolders(context)); } @Override public boolean isVisibleAsUser(@NonNull Role role, @NonNull UserHandle user, @NonNull Context context) { Loading src/com/android/permissioncontroller/role/model/DialerRoleBehavior.java +0 −7 Original line number Diff line number Diff line Loading @@ -27,7 +27,6 @@ import androidx.annotation.Nullable; import androidx.preference.Preference; import com.android.permissioncontroller.R; import com.android.permissioncontroller.permission.utils.CollectionUtils; import java.util.Objects; Loading Loading @@ -68,12 +67,6 @@ public class DialerRoleBehavior implements RoleBehavior { context); } @Nullable @Override public String getFallbackHolder(@NonNull Role role, @NonNull Context context) { return CollectionUtils.firstOrNull(role.getDefaultHolders(context)); } @Override public boolean isVisibleAsUser(@NonNull Role role, @NonNull UserHandle user, @NonNull Context context) { Loading src/com/android/permissioncontroller/role/model/Role.java +16 −2 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import androidx.annotation.StringRes; import androidx.preference.Preference; import com.android.permissioncontroller.Constants; import com.android.permissioncontroller.permission.utils.CollectionUtils; import com.android.permissioncontroller.permission.utils.Utils; import com.android.permissioncontroller.role.ui.TwoTargetPreference; import com.android.permissioncontroller.role.utils.PackageUtils; Loading Loading @@ -98,6 +99,11 @@ public class Role { */ private final boolean mExclusive; /** * Whether this role should fall back to the default holder. */ private final boolean mFallBackToDefaultHolder; /** * The string resource for the label of this role. */ Loading Loading @@ -186,7 +192,7 @@ public class Role { public Role(@NonNull String name, @Nullable RoleBehavior behavior, @Nullable String defaultHoldersResourceName, @StringRes int descriptionResource, boolean exclusive, @StringRes int labelResource, boolean exclusive, boolean fallBackToDefaultHolder, @StringRes int labelResource, @StringRes int requestDescriptionResource, @StringRes int requestTitleResource, boolean requestable, @StringRes int searchKeywordsResource, @StringRes int shortLabelResource, boolean showNone, boolean systemOnly, Loading @@ -198,6 +204,7 @@ public class Role { mDefaultHoldersResourceName = defaultHoldersResourceName; mDescriptionResource = descriptionResource; mExclusive = exclusive; mFallBackToDefaultHolder = fallBackToDefaultHolder; mLabelResource = labelResource; mRequestDescriptionResource = requestDescriptionResource; mRequestTitleResource = requestTitleResource; Loading Loading @@ -416,7 +423,13 @@ public class Role { */ @Nullable public String getFallbackHolder(@NonNull Context context) { if (mBehavior != null && !isNoneHolderSelected(context)) { if (isNoneHolderSelected(context)) { return null; } if (mFallBackToDefaultHolder) { return CollectionUtils.firstOrNull(getDefaultHolders(context)); } if (mBehavior != null) { return mBehavior.getFallbackHolder(this, context); } return null; Loading Loading @@ -860,6 +873,7 @@ public class Role { + ", mDefaultHoldersResourceName=" + mDefaultHoldersResourceName + ", mDescriptionResource=" + mDescriptionResource + ", mExclusive=" + mExclusive + ", mFallBackToDefaultHolder=" + mFallBackToDefaultHolder + ", mLabelResource=" + mLabelResource + ", mRequestDescriptionResource=" + mRequestDescriptionResource + ", mRequestTitleResource=" + mRequestTitleResource Loading src/com/android/permissioncontroller/role/model/RoleParser.java +8 −3 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ public class RoleParser { private static final String ATTRIBUTE_DEFAULT_HOLDERS = "defaultHolders"; private static final String ATTRIBUTE_DESCRIPTION = "description"; private static final String ATTRIBUTE_EXCLUSIVE = "exclusive"; private static final String ATTRIBUTE_FALL_BACK_TO_DEFAULT_HOLDER = "fallBackToDefaultHolder"; private static final String ATTRIBUTE_LABEL = "label"; private static final String ATTRIBUTE_REQUEST_TITLE = "requestTitle"; private static final String ATTRIBUTE_REQUEST_DESCRIPTION = "requestDescription"; Loading Loading @@ -323,6 +324,9 @@ public class RoleParser { return null; } boolean fallBackToDefaultHolder = getAttributeBooleanValue(parser, ATTRIBUTE_FALL_BACK_TO_DEFAULT_HOLDER, false); boolean requestable = getAttributeBooleanValue(parser, ATTRIBUTE_REQUESTABLE, visible); Integer requestDescriptionResource; Integer requestTitleResource; Loading Loading @@ -436,9 +440,10 @@ public class RoleParser { preferredActivities = Collections.emptyList(); } return new Role(name, behavior, defaultHoldersResourceName, descriptionResource, exclusive, labelResource, requestDescriptionResource, requestTitleResource, requestable, searchKeywordsResource, shortLabelResource, showNone, systemOnly, visible, requiredComponents, permissions, appOpPermissions, appOps, preferredActivities); fallBackToDefaultHolder, labelResource, requestDescriptionResource, requestTitleResource, requestable, searchKeywordsResource, shortLabelResource, showNone, systemOnly, visible, requiredComponents, permissions, appOpPermissions, appOps, preferredActivities); } @NonNull Loading Loading
res/xml/roles.xml +3 −0 Original line number Diff line number Diff line Loading @@ -79,6 +79,7 @@ defaultHolders="config_defaultAssistant" description="@string/role_assistant_description" exclusive="true" fallBackToDefaultHolder="true" showNone="true" label="@string/role_assistant_label" requestable="false" Loading Loading @@ -167,6 +168,7 @@ defaultHolders="config_defaultDialer" description="@string/role_dialer_description" exclusive="true" fallBackToDefaultHolder="true" label="@string/role_dialer_label" requestDescription="@string/role_dialer_request_description" requestTitle="@string/role_dialer_request_title" Loading Loading @@ -426,6 +428,7 @@ name="android.app.role.SYSTEM_GALLERY" defaultHolders="config_systemGallery" exclusive="true" fallBackToDefaultHolder="true" systemOnly="true" visible="false"> <permissions> Loading
src/com/android/permissioncontroller/role/model/AssistantRoleBehavior.java +0 −7 Original line number Diff line number Diff line Loading @@ -38,7 +38,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.permissioncontroller.R; import com.android.permissioncontroller.permission.utils.CollectionUtils; import com.android.permissioncontroller.role.utils.UserUtils; import org.xmlpull.v1.XmlPullParserException; Loading Loading @@ -79,12 +78,6 @@ public class AssistantRoleBehavior implements RoleBehavior { return !UserUtils.isWorkProfile(user, context); } @Nullable @Override public String getFallbackHolder(@NonNull Role role, @NonNull Context context) { return CollectionUtils.firstOrNull(role.getDefaultHolders(context)); } @Override public boolean isVisibleAsUser(@NonNull Role role, @NonNull UserHandle user, @NonNull Context context) { Loading
src/com/android/permissioncontroller/role/model/DialerRoleBehavior.java +0 −7 Original line number Diff line number Diff line Loading @@ -27,7 +27,6 @@ import androidx.annotation.Nullable; import androidx.preference.Preference; import com.android.permissioncontroller.R; import com.android.permissioncontroller.permission.utils.CollectionUtils; import java.util.Objects; Loading Loading @@ -68,12 +67,6 @@ public class DialerRoleBehavior implements RoleBehavior { context); } @Nullable @Override public String getFallbackHolder(@NonNull Role role, @NonNull Context context) { return CollectionUtils.firstOrNull(role.getDefaultHolders(context)); } @Override public boolean isVisibleAsUser(@NonNull Role role, @NonNull UserHandle user, @NonNull Context context) { Loading
src/com/android/permissioncontroller/role/model/Role.java +16 −2 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import androidx.annotation.StringRes; import androidx.preference.Preference; import com.android.permissioncontroller.Constants; import com.android.permissioncontroller.permission.utils.CollectionUtils; import com.android.permissioncontroller.permission.utils.Utils; import com.android.permissioncontroller.role.ui.TwoTargetPreference; import com.android.permissioncontroller.role.utils.PackageUtils; Loading Loading @@ -98,6 +99,11 @@ public class Role { */ private final boolean mExclusive; /** * Whether this role should fall back to the default holder. */ private final boolean mFallBackToDefaultHolder; /** * The string resource for the label of this role. */ Loading Loading @@ -186,7 +192,7 @@ public class Role { public Role(@NonNull String name, @Nullable RoleBehavior behavior, @Nullable String defaultHoldersResourceName, @StringRes int descriptionResource, boolean exclusive, @StringRes int labelResource, boolean exclusive, boolean fallBackToDefaultHolder, @StringRes int labelResource, @StringRes int requestDescriptionResource, @StringRes int requestTitleResource, boolean requestable, @StringRes int searchKeywordsResource, @StringRes int shortLabelResource, boolean showNone, boolean systemOnly, Loading @@ -198,6 +204,7 @@ public class Role { mDefaultHoldersResourceName = defaultHoldersResourceName; mDescriptionResource = descriptionResource; mExclusive = exclusive; mFallBackToDefaultHolder = fallBackToDefaultHolder; mLabelResource = labelResource; mRequestDescriptionResource = requestDescriptionResource; mRequestTitleResource = requestTitleResource; Loading Loading @@ -416,7 +423,13 @@ public class Role { */ @Nullable public String getFallbackHolder(@NonNull Context context) { if (mBehavior != null && !isNoneHolderSelected(context)) { if (isNoneHolderSelected(context)) { return null; } if (mFallBackToDefaultHolder) { return CollectionUtils.firstOrNull(getDefaultHolders(context)); } if (mBehavior != null) { return mBehavior.getFallbackHolder(this, context); } return null; Loading Loading @@ -860,6 +873,7 @@ public class Role { + ", mDefaultHoldersResourceName=" + mDefaultHoldersResourceName + ", mDescriptionResource=" + mDescriptionResource + ", mExclusive=" + mExclusive + ", mFallBackToDefaultHolder=" + mFallBackToDefaultHolder + ", mLabelResource=" + mLabelResource + ", mRequestDescriptionResource=" + mRequestDescriptionResource + ", mRequestTitleResource=" + mRequestTitleResource Loading
src/com/android/permissioncontroller/role/model/RoleParser.java +8 −3 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ public class RoleParser { private static final String ATTRIBUTE_DEFAULT_HOLDERS = "defaultHolders"; private static final String ATTRIBUTE_DESCRIPTION = "description"; private static final String ATTRIBUTE_EXCLUSIVE = "exclusive"; private static final String ATTRIBUTE_FALL_BACK_TO_DEFAULT_HOLDER = "fallBackToDefaultHolder"; private static final String ATTRIBUTE_LABEL = "label"; private static final String ATTRIBUTE_REQUEST_TITLE = "requestTitle"; private static final String ATTRIBUTE_REQUEST_DESCRIPTION = "requestDescription"; Loading Loading @@ -323,6 +324,9 @@ public class RoleParser { return null; } boolean fallBackToDefaultHolder = getAttributeBooleanValue(parser, ATTRIBUTE_FALL_BACK_TO_DEFAULT_HOLDER, false); boolean requestable = getAttributeBooleanValue(parser, ATTRIBUTE_REQUESTABLE, visible); Integer requestDescriptionResource; Integer requestTitleResource; Loading Loading @@ -436,9 +440,10 @@ public class RoleParser { preferredActivities = Collections.emptyList(); } return new Role(name, behavior, defaultHoldersResourceName, descriptionResource, exclusive, labelResource, requestDescriptionResource, requestTitleResource, requestable, searchKeywordsResource, shortLabelResource, showNone, systemOnly, visible, requiredComponents, permissions, appOpPermissions, appOps, preferredActivities); fallBackToDefaultHolder, labelResource, requestDescriptionResource, requestTitleResource, requestable, searchKeywordsResource, shortLabelResource, showNone, systemOnly, visible, requiredComponents, permissions, appOpPermissions, appOps, preferredActivities); } @NonNull Loading