2022-10-02 23:06:56 +02:00
|
|
|
/*
|
|
|
|
|
* Copyright (C) 2008 The Android Open Source Project
|
|
|
|
|
*
|
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
|
*
|
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
*
|
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
|
* limitations under the License.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
package android.content.pm;
|
|
|
|
|
|
2023-06-22 11:45:46 +02:00
|
|
|
// import android.text.TextUtils;
|
2022-10-02 23:06:56 +02:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Information you can retrieve about a particular security permission
|
|
|
|
|
* group known to the system. This corresponds to information collected from the
|
|
|
|
|
* AndroidManifest.xml's <permission-group> tags.
|
|
|
|
|
*/
|
|
|
|
|
public class PermissionGroupInfo extends PackageItemInfo {
|
2023-06-22 11:45:46 +02:00
|
|
|
/**
|
|
|
|
|
* A string resource identifier (in the package's resources) of this
|
|
|
|
|
* permission's description. From the "description" attribute or,
|
|
|
|
|
* if not set, 0.
|
|
|
|
|
*/
|
|
|
|
|
public int descriptionRes;
|
2022-10-02 23:06:56 +02:00
|
|
|
|
2023-06-22 11:45:46 +02:00
|
|
|
/**
|
|
|
|
|
* The description string provided in the AndroidManifest file, if any. You
|
|
|
|
|
* probably don't want to use this, since it will be null if the description
|
|
|
|
|
* is in a resource. You probably want
|
|
|
|
|
* {@link PermissionInfo#loadDescription} instead.
|
|
|
|
|
*/
|
|
|
|
|
public CharSequence nonLocalizedDescription;
|
2022-10-02 23:06:56 +02:00
|
|
|
|
2023-06-22 11:45:46 +02:00
|
|
|
/**
|
|
|
|
|
* Flag for {@link #flags}, corresponding to <code>personalInfo</code>
|
|
|
|
|
* value of {@link android.R.attr#permissionGroupFlags}.
|
|
|
|
|
*/
|
|
|
|
|
public static final int FLAG_PERSONAL_INFO = 1 << 0;
|
2022-10-02 23:06:56 +02:00
|
|
|
|
2023-06-22 11:45:46 +02:00
|
|
|
/**
|
|
|
|
|
* Additional flags about this group as given by
|
|
|
|
|
* {@link android.R.attr#permissionGroupFlags}.
|
|
|
|
|
*/
|
|
|
|
|
public int flags;
|
2022-10-02 23:06:56 +02:00
|
|
|
|
2023-06-22 11:45:46 +02:00
|
|
|
/**
|
|
|
|
|
* Prioritization of this group, for visually sorting with other groups.
|
|
|
|
|
*/
|
|
|
|
|
public int priority;
|
2022-10-02 23:06:56 +02:00
|
|
|
|
2023-06-22 11:45:46 +02:00
|
|
|
public PermissionGroupInfo() {
|
|
|
|
|
}
|
2022-10-02 23:06:56 +02:00
|
|
|
|
2023-06-22 11:45:46 +02:00
|
|
|
public PermissionGroupInfo(PermissionGroupInfo orig) {
|
|
|
|
|
super(orig);
|
|
|
|
|
descriptionRes = orig.descriptionRes;
|
|
|
|
|
nonLocalizedDescription = orig.nonLocalizedDescription;
|
|
|
|
|
flags = orig.flags;
|
|
|
|
|
priority = orig.priority;
|
|
|
|
|
}
|
2022-10-02 23:06:56 +02:00
|
|
|
|
2023-06-22 11:45:46 +02:00
|
|
|
/**
|
|
|
|
|
* Retrieve the textual description of this permission. This
|
|
|
|
|
* will call back on the given PackageManager to load the description from
|
|
|
|
|
* the application.
|
|
|
|
|
*
|
|
|
|
|
* @param pm A PackageManager from which the label can be loaded; usually
|
|
|
|
|
* the PackageManager from which you originally retrieved this item.
|
|
|
|
|
*
|
|
|
|
|
* @return Returns a CharSequence containing the permission's description.
|
|
|
|
|
* If there is no description, null is returned.
|
|
|
|
|
*/
|
|
|
|
|
public CharSequence loadDescription(PackageManager pm) {
|
|
|
|
|
if (nonLocalizedDescription != null) {
|
|
|
|
|
return nonLocalizedDescription;
|
|
|
|
|
}
|
|
|
|
|
if (descriptionRes != 0) {
|
|
|
|
|
CharSequence label = pm.getText(packageName, descriptionRes, null);
|
|
|
|
|
if (label != null) {
|
|
|
|
|
return label;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
2022-10-02 23:06:56 +02:00
|
|
|
|
2023-06-22 11:45:46 +02:00
|
|
|
public String toString() {
|
|
|
|
|
return "PermissionGroupInfo{" + Integer.toHexString(System.identityHashCode(this)) + " " + name + " flgs=0x" + Integer.toHexString(flags) + "}";
|
|
|
|
|
}
|
2022-10-02 23:06:56 +02:00
|
|
|
|
2023-06-22 11:45:46 +02:00
|
|
|
public int describeContents() {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|