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