1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
use super::resources::{DrawableResource, Resource, StringResource, StringResourceOrString}; use serde::{Deserialize, Serialize}; /// Declares a name for a logical grouping of related permissions. /// /// Individual permission join the group through the permissionGroup attribute of the /// [`<permission>`] element. Members of a group are presented together in /// the user interface. /// /// Note that this element does not declare a permission itself, only a category in which /// permissions can be placed. See the [`<permission>`] element for element for /// information on declaring permissions and assigning them to groups. /// /// ## XML Syntax /// ```xml /// <permission-group android:description="string resource" /// android:icon="drawable resource" /// android:label="string resource" /// android:name="string" /> /// ``` /// /// ## Contained in /// * [`<manifest>`] /// /// ## Introduced in /// API Level 1 /// /// [`<manifest>`]: crate::AndroidManifest /// [`<permission>`]: crate::Permission #[derive(Debug, Deserialize, Serialize, YaSerialize, YaDeserialize, PartialEq, Default, Clone)] pub struct PermissionGroup { /// User-readable text that describes the group. The text should be longer and more /// explanatory than the label. This attribute must be set as a reference to a /// string resource. Unlike the label attribute, it cannot be a raw string. #[yaserde(attribute, prefix = "android")] pub description: Option<Resource<StringResource>>, /// An icon representing the permission. This attribute must be set as a reference to /// a drawable resource containing the image definition. #[yaserde(attribute, prefix = "android")] pub icon: Option<Resource<DrawableResource>>, /// A user-readable name for the group. As a convenience, the label can be directly /// set as a raw string while you're developing the application. However, when the /// application is ready to be published, it should be set as a reference to a /// string resource, so that it can be localized like other strings in the user /// interface. #[yaserde(attribute, prefix = "android")] pub label: Option<StringResourceOrString>, /// The name of the group. This is the name that can be assigned to a /// [`<permission>`] element's [`<permissionGroup>`] attribute. /// /// [`<permission>`]: crate::Permission /// [`<permissionGroup>`]: crate::Permission#structfield.permission_group #[yaserde(attribute, prefix = "android")] pub name: Option<String>, }