10cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato/* 20cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * Copyright (C) 2010 The Android Open Source Project 30cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * 40cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * Licensed under the Apache License, Version 2.0 (the "License"); 50cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * you may not use this file except in compliance with the License. 60cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * You may obtain a copy of the License at 70cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * 80cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * http://www.apache.org/licenses/LICENSE-2.0 90cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * 100cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * Unless required by applicable law or agreed to in writing, software 110cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * distributed under the License is distributed on an "AS IS" BASIS, 120cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * See the License for the specific language governing permissions and 140cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * limitations under the License. 150cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato */ 160cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 170cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onoratopackage com.android.internal.statusbar; 180cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 190cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onoratoimport android.os.Parcel; 200cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onoratoimport android.os.Parcelable; 210cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 220cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato/** 230cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * @hide 240cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato */ 250cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onoratopublic class StatusBarIcon implements Parcelable { 260cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato public String iconPackage; 270cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato public int iconId; 280cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato public int iconLevel; 29514ad663f0a8b239cc59409175e0bd489c591aa0Joe Onorato public boolean visible = true; 3018e69dfc7235f8a4bfe257f9d1c43539049a22ceJoe Onorato public int number; 310cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 320cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato private StatusBarIcon() { 330cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 340cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 350cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato public StatusBarIcon(String iconPackage, int iconId, int iconLevel) { 360cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato this.iconPackage = iconPackage; 370cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato this.iconId = iconId; 380cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato this.iconLevel = iconLevel; 390cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 400cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 410e26dffd6cfcb09b08a94a857b891fdef7fe2b1eJoe Onorato public StatusBarIcon(String iconPackage, int iconId, int iconLevel, int number) { 420e26dffd6cfcb09b08a94a857b891fdef7fe2b1eJoe Onorato this.iconPackage = iconPackage; 430e26dffd6cfcb09b08a94a857b891fdef7fe2b1eJoe Onorato this.iconId = iconId; 440e26dffd6cfcb09b08a94a857b891fdef7fe2b1eJoe Onorato this.iconLevel = iconLevel; 450e26dffd6cfcb09b08a94a857b891fdef7fe2b1eJoe Onorato this.number = number; 460e26dffd6cfcb09b08a94a857b891fdef7fe2b1eJoe Onorato } 470e26dffd6cfcb09b08a94a857b891fdef7fe2b1eJoe Onorato 48514ad663f0a8b239cc59409175e0bd489c591aa0Joe Onorato public String toString() { 49514ad663f0a8b239cc59409175e0bd489c591aa0Joe Onorato return "StatusBarIcon(pkg=" + this.iconPackage + " id=0x" + Integer.toHexString(this.iconId) 5018e69dfc7235f8a4bfe257f9d1c43539049a22ceJoe Onorato + " level=" + this.iconLevel + " visible=" + visible 5118e69dfc7235f8a4bfe257f9d1c43539049a22ceJoe Onorato + " num=" + this.number + " )"; 52514ad663f0a8b239cc59409175e0bd489c591aa0Joe Onorato } 53514ad663f0a8b239cc59409175e0bd489c591aa0Joe Onorato 540cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato public StatusBarIcon clone() { 55514ad663f0a8b239cc59409175e0bd489c591aa0Joe Onorato StatusBarIcon that = new StatusBarIcon(this.iconPackage, this.iconId, this.iconLevel); 56514ad663f0a8b239cc59409175e0bd489c591aa0Joe Onorato that.visible = this.visible; 5718e69dfc7235f8a4bfe257f9d1c43539049a22ceJoe Onorato that.number = this.number; 58514ad663f0a8b239cc59409175e0bd489c591aa0Joe Onorato return that; 590cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 600cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 610cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato /** 620cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * Unflatten the StatusBarIcon from a parcel. 630cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato */ 640cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato public StatusBarIcon(Parcel in) { 650cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato readFromParcel(in); 660cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 670cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 680cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato public void readFromParcel(Parcel in) { 690cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato this.iconPackage = in.readString(); 700cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato this.iconId = in.readInt(); 710cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato this.iconLevel = in.readInt(); 72514ad663f0a8b239cc59409175e0bd489c591aa0Joe Onorato this.visible = in.readInt() != 0; 7318e69dfc7235f8a4bfe257f9d1c43539049a22ceJoe Onorato this.number = in.readInt(); 740cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 750cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 760cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato public void writeToParcel(Parcel out, int flags) { 770cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato out.writeString(this.iconPackage); 780cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato out.writeInt(this.iconId); 790cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato out.writeInt(this.iconLevel); 80e345fff2f80947b0a821f6674c197a02b7bff08eJoe Onorato out.writeInt(this.visible ? 1 : 0); 8118e69dfc7235f8a4bfe257f9d1c43539049a22ceJoe Onorato out.writeInt(this.number); 820cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 830cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 840cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato public int describeContents() { 850cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato return 0; 860cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 870cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 880cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato /** 890cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * Parcelable.Creator that instantiates StatusBarIcon objects 900cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato */ 910cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato public static final Parcelable.Creator<StatusBarIcon> CREATOR 920cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato = new Parcelable.Creator<StatusBarIcon>() 930cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato { 940cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato public StatusBarIcon createFromParcel(Parcel parcel) 950cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato { 960cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato return new StatusBarIcon(parcel); 970cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 980cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 990cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato public StatusBarIcon[] newArray(int size) 1000cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato { 1010cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato return new StatusBarIcon[size]; 1020cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 1030cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato }; 1040cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato} 1050cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 106