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