blob: 863b0ad9c3d4ae0ff6fd03097f9e6da06095d21d [file] [log] [blame]
/*
* Copyright (C) 2019 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.permission;
import static com.android.internal.util.Preconditions.checkArgumentNonnegative;
import static com.android.internal.util.Preconditions.checkNotNull;
import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
/**
* This class contains information about how a runtime permission
* is used. A single runtime permission presented to the user may
* correspond to multiple platform defined permissions, e.g. the
* location permission may control both the coarse and fine platform
* permissions.
*
* @hide
*/
@SystemApi
public final class RuntimePermissionUsageInfo implements Parcelable {
private final @NonNull String mName;
private final int mNumUsers;
/**
* Creates a new instance.
*
* @param name The permission group name.
* @param numUsers The number of apps that have used this permission.
*/
public RuntimePermissionUsageInfo(@NonNull String name, int numUsers) {
checkNotNull(name);
checkArgumentNonnegative(numUsers);
mName = name;
mNumUsers = numUsers;
}
private RuntimePermissionUsageInfo(Parcel parcel) {
this(parcel.readString(), parcel.readInt());
}
/**
* @return The number of apps that accessed this permission
*/
public int getAppAccessCount() {
return mNumUsers;
}
/**
* Gets the permission group name.
*
* @return The name.
*/
public @NonNull String getName() {
return mName;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int flags) {
parcel.writeString(mName);
parcel.writeInt(mNumUsers);
}
public static final @android.annotation.NonNull Creator<RuntimePermissionUsageInfo> CREATOR =
new Creator<RuntimePermissionUsageInfo>() {
public RuntimePermissionUsageInfo createFromParcel(Parcel source) {
return new RuntimePermissionUsageInfo(source);
}
public RuntimePermissionUsageInfo[] newArray(int size) {
return new RuntimePermissionUsageInfo[size];
}
};
}