1c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu/* 2c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu * Copyright (C) 2011 The Android Open Source Project 3c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu * 4c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu * Licensed under the Apache License, Version 2.0 (the "License"); 5c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu * you may not use this file except in compliance with the License. 6c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu * You may obtain a copy of the License at 7c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu * 8c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu * http://www.apache.org/licenses/LICENSE-2.0 9c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu * 10c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu * Unless required by applicable law or agreed to in writing, software 11c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu * distributed under the License is distributed on an "AS IS" BASIS, 12c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu * See the License for the specific language governing permissions and 14c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu * limitations under the License. 15c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu */ 16c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu 17c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liupackage com.android.settingslib; 18c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu 19c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liuimport android.os.Parcel; 20c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liuimport android.os.Parcelable; 21c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liuimport android.util.SparseBooleanArray; 22c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu 23c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liupublic class AppItem implements Comparable<AppItem>, Parcelable { 24c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu public static final int CATEGORY_USER = 0; 25c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu public static final int CATEGORY_APP_TITLE = 1; 26c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu public static final int CATEGORY_APP = 2; 27c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu 28c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu public final int key; 29c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu public boolean restricted; 30c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu public int category; 31c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu 32c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu public SparseBooleanArray uids = new SparseBooleanArray(); 33c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu public long total; 34c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu 35c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu public AppItem() { 36c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu this.key = 0; 37c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu } 38c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu 39c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu public AppItem(int key) { 40c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu this.key = key; 41c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu } 42c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu 43c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu public AppItem(Parcel parcel) { 44c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu key = parcel.readInt(); 45c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu uids = parcel.readSparseBooleanArray(); 46c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu total = parcel.readLong(); 47c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu } 48c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu 49c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu public void addUid(int uid) { 50c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu uids.put(uid, true); 51c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu } 52c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu 53c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu @Override 54c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu public void writeToParcel(Parcel dest, int flags) { 55c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu dest.writeInt(key); 56c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu dest.writeSparseBooleanArray(uids); 57c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu dest.writeLong(total); 58c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu } 59c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu 60c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu @Override 61c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu public int describeContents() { 62c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu return 0; 63c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu } 64c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu 65c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu @Override 66c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu public int compareTo(AppItem another) { 67c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu int comparison = Integer.compare(category, another.category); 68c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu if (comparison == 0) { 69c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu comparison = Long.compare(another.total, total); 70c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu } 71c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu return comparison; 72c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu } 73c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu 74c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu public static final Creator<AppItem> CREATOR = new Creator<AppItem>() { 75c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu @Override 76c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu public AppItem createFromParcel(Parcel in) { 77c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu return new AppItem(in); 78c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu } 79c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu 80c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu @Override 81c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu public AppItem[] newArray(int size) { 82c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu return new AppItem[size]; 83c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu } 84c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu }; 85c4a4064c1297dc879d64b0bae198e903b9a6fc9aWei Liu} 86