1a7a0406958991f7a964370295821d8e477f503e9Svet Ganov/* 2a7a0406958991f7a964370295821d8e477f503e9Svet Ganov * Copyright (C) 2015 The Android Open Source Project 3a7a0406958991f7a964370295821d8e477f503e9Svet Ganov * 4a7a0406958991f7a964370295821d8e477f503e9Svet Ganov * Licensed under the Apache License, Version 2.0 (the "License"); 5a7a0406958991f7a964370295821d8e477f503e9Svet Ganov * you may not use this file except in compliance with the License. 6a7a0406958991f7a964370295821d8e477f503e9Svet Ganov * You may obtain a copy of the License at 7a7a0406958991f7a964370295821d8e477f503e9Svet Ganov * 8a7a0406958991f7a964370295821d8e477f503e9Svet Ganov * http://www.apache.org/licenses/LICENSE-2.0 9a7a0406958991f7a964370295821d8e477f503e9Svet Ganov * 10a7a0406958991f7a964370295821d8e477f503e9Svet Ganov * Unless required by applicable law or agreed to in writing, software 11a7a0406958991f7a964370295821d8e477f503e9Svet Ganov * distributed under the License is distributed on an "AS IS" BASIS, 12a7a0406958991f7a964370295821d8e477f503e9Svet Ganov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a7a0406958991f7a964370295821d8e477f503e9Svet Ganov * See the License for the specific language governing permissions and 14a7a0406958991f7a964370295821d8e477f503e9Svet Ganov * limitations under the License. 15a7a0406958991f7a964370295821d8e477f503e9Svet Ganov */ 16a7a0406958991f7a964370295821d8e477f503e9Svet Ganov 17a7a0406958991f7a964370295821d8e477f503e9Svet Ganovpackage com.android.packageinstaller.permission.model; 18a7a0406958991f7a964370295821d8e477f503e9Svet Ganov 19267c2bd39c248eea2679c0a8efa334d3155e262cSvet Ganovimport android.graphics.drawable.Drawable; 20a7a0406958991f7a964370295821d8e477f503e9Svet Ganov 21a7a0406958991f7a964370295821d8e477f503e9Svet Ganovpublic final class PermissionGroup implements Comparable<PermissionGroup> { 22a7a0406958991f7a964370295821d8e477f503e9Svet Ganov private final String mName; 23267c2bd39c248eea2679c0a8efa334d3155e262cSvet Ganov private final String mDeclaringPackage; 24a7a0406958991f7a964370295821d8e477f503e9Svet Ganov private final CharSequence mLabel; 25267c2bd39c248eea2679c0a8efa334d3155e262cSvet Ganov private final Drawable mIcon; 26785a9b6369db4c46a389a43ae30e1f6e8003366bSvet Ganov 27267c2bd39c248eea2679c0a8efa334d3155e262cSvet Ganov PermissionGroup(String name, String declaringPackage, 28267c2bd39c248eea2679c0a8efa334d3155e262cSvet Ganov CharSequence label, Drawable icon) { 29267c2bd39c248eea2679c0a8efa334d3155e262cSvet Ganov mDeclaringPackage = declaringPackage; 30a7a0406958991f7a964370295821d8e477f503e9Svet Ganov mName = name; 31a7a0406958991f7a964370295821d8e477f503e9Svet Ganov mLabel = label; 32267c2bd39c248eea2679c0a8efa334d3155e262cSvet Ganov mIcon = icon; 33a7a0406958991f7a964370295821d8e477f503e9Svet Ganov } 34a7a0406958991f7a964370295821d8e477f503e9Svet Ganov 35a7a0406958991f7a964370295821d8e477f503e9Svet Ganov public String getName() { 36a7a0406958991f7a964370295821d8e477f503e9Svet Ganov return mName; 37a7a0406958991f7a964370295821d8e477f503e9Svet Ganov } 38a7a0406958991f7a964370295821d8e477f503e9Svet Ganov 39267c2bd39c248eea2679c0a8efa334d3155e262cSvet Ganov public String getDeclaringPackage() { 40267c2bd39c248eea2679c0a8efa334d3155e262cSvet Ganov return mDeclaringPackage; 41a7a0406958991f7a964370295821d8e477f503e9Svet Ganov } 42a7a0406958991f7a964370295821d8e477f503e9Svet Ganov 43a7a0406958991f7a964370295821d8e477f503e9Svet Ganov public CharSequence getLabel() { 44a7a0406958991f7a964370295821d8e477f503e9Svet Ganov return mLabel; 45a7a0406958991f7a964370295821d8e477f503e9Svet Ganov } 46a7a0406958991f7a964370295821d8e477f503e9Svet Ganov 47267c2bd39c248eea2679c0a8efa334d3155e262cSvet Ganov public Drawable getIcon() { 48267c2bd39c248eea2679c0a8efa334d3155e262cSvet Ganov return mIcon; 490430e255aebb6cf64f65eeaaf052786ee2834819Svet Ganov } 500430e255aebb6cf64f65eeaaf052786ee2834819Svet Ganov 51a7a0406958991f7a964370295821d8e477f503e9Svet Ganov @Override 52a7a0406958991f7a964370295821d8e477f503e9Svet Ganov public int compareTo(PermissionGroup another) { 53267c2bd39c248eea2679c0a8efa334d3155e262cSvet Ganov return mLabel.toString().compareTo(another.mLabel.toString()); 54a7a0406958991f7a964370295821d8e477f503e9Svet Ganov } 55a7a0406958991f7a964370295821d8e477f503e9Svet Ganov 56a7a0406958991f7a964370295821d8e477f503e9Svet Ganov @Override 57a7a0406958991f7a964370295821d8e477f503e9Svet Ganov public boolean equals(Object obj) { 58a7a0406958991f7a964370295821d8e477f503e9Svet Ganov if (this == obj) { 59a7a0406958991f7a964370295821d8e477f503e9Svet Ganov return true; 60a7a0406958991f7a964370295821d8e477f503e9Svet Ganov } 61a7a0406958991f7a964370295821d8e477f503e9Svet Ganov 62a7a0406958991f7a964370295821d8e477f503e9Svet Ganov if (obj == null) { 63a7a0406958991f7a964370295821d8e477f503e9Svet Ganov return false; 64a7a0406958991f7a964370295821d8e477f503e9Svet Ganov } 65a7a0406958991f7a964370295821d8e477f503e9Svet Ganov 66a7a0406958991f7a964370295821d8e477f503e9Svet Ganov if (getClass() != obj.getClass()) { 67a7a0406958991f7a964370295821d8e477f503e9Svet Ganov return false; 68a7a0406958991f7a964370295821d8e477f503e9Svet Ganov } 69a7a0406958991f7a964370295821d8e477f503e9Svet Ganov 70a7a0406958991f7a964370295821d8e477f503e9Svet Ganov PermissionGroup other = (PermissionGroup) obj; 71a7a0406958991f7a964370295821d8e477f503e9Svet Ganov 72a7a0406958991f7a964370295821d8e477f503e9Svet Ganov if (mName == null) { 73a7a0406958991f7a964370295821d8e477f503e9Svet Ganov if (other.mName != null) { 74a7a0406958991f7a964370295821d8e477f503e9Svet Ganov return false; 75a7a0406958991f7a964370295821d8e477f503e9Svet Ganov } 76a7a0406958991f7a964370295821d8e477f503e9Svet Ganov } else if (!mName.equals(other.mName)) { 77a7a0406958991f7a964370295821d8e477f503e9Svet Ganov return false; 78a7a0406958991f7a964370295821d8e477f503e9Svet Ganov } 79a7a0406958991f7a964370295821d8e477f503e9Svet Ganov 80a7a0406958991f7a964370295821d8e477f503e9Svet Ganov return true; 81a7a0406958991f7a964370295821d8e477f503e9Svet Ganov } 82a7a0406958991f7a964370295821d8e477f503e9Svet Ganov 83a7a0406958991f7a964370295821d8e477f503e9Svet Ganov @Override 84a7a0406958991f7a964370295821d8e477f503e9Svet Ganov public int hashCode() { 85a7a0406958991f7a964370295821d8e477f503e9Svet Ganov return mName != null ? mName.hashCode() : 0; 86a7a0406958991f7a964370295821d8e477f503e9Svet Ganov } 87a7a0406958991f7a964370295821d8e477f503e9Svet Ganov} 88