17767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn/*
27767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * Copyright (C) 2012 The Android Open Source Project
37767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn *
47767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License");
57767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * you may not use this file except in compliance with the License.
67767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * You may obtain a copy of the License at
77767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn *
87767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn *      http://www.apache.org/licenses/LICENSE-2.0
97767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn *
107767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * Unless required by applicable law or agreed to in writing, software
117767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS,
127767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * See the License for the specific language governing permissions and
147767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * limitations under the License.
157767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn */
167767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn
177767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackbornpackage android.content.pm;
187767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn
197767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackbornimport android.os.Parcel;
207767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackbornimport android.os.Parcelable;
217767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn
227767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn/** @hide */
2344e440cc7e834de7811f005998acb32716835b00Neil Fullerpublic class PackageCleanItem implements Parcelable {
24752cd922f7091dfd5401faf70dc248934a9dbb6dJeff Sharkey    public final int userId;
257767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    public final String packageName;
267767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    public final boolean andCode;
277767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn
28752cd922f7091dfd5401faf70dc248934a9dbb6dJeff Sharkey    public PackageCleanItem(int userId, String packageName, boolean andCode) {
29752cd922f7091dfd5401faf70dc248934a9dbb6dJeff Sharkey        this.userId = userId;
307767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        this.packageName = packageName;
317767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        this.andCode = andCode;
327767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    }
337767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn
347767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    @Override
357767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    public boolean equals(Object obj) {
367767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        if (this == obj) {
377767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn            return true;
387767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        }
397767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        try {
407767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn            if (obj != null) {
417767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn                PackageCleanItem other = (PackageCleanItem)obj;
42752cd922f7091dfd5401faf70dc248934a9dbb6dJeff Sharkey                return userId == other.userId && packageName.equals(other.packageName)
43752cd922f7091dfd5401faf70dc248934a9dbb6dJeff Sharkey                        && andCode == other.andCode;
447767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn            }
457767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        } catch (ClassCastException e) {
467767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        }
477767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        return false;
487767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    }
497767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn
507767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    @Override
517767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    public int hashCode() {
527767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        int result = 17;
53752cd922f7091dfd5401faf70dc248934a9dbb6dJeff Sharkey        result = 31 * result + userId;
547767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        result = 31 * result + packageName.hashCode();
557767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        result = 31 * result + (andCode ? 1 : 0);
567767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        return result;
577767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    }
587767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn
597767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    public int describeContents() {
607767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        return 0;
617767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    }
627767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn
637767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    public void writeToParcel(Parcel dest, int parcelableFlags) {
64752cd922f7091dfd5401faf70dc248934a9dbb6dJeff Sharkey        dest.writeInt(userId);
657767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        dest.writeString(packageName);
667767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        dest.writeInt(andCode ? 1 : 0);
677767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    }
687767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn
697767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    public static final Parcelable.Creator<PackageCleanItem> CREATOR
707767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn            = new Parcelable.Creator<PackageCleanItem>() {
717767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        public PackageCleanItem createFromParcel(Parcel source) {
727767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn            return new PackageCleanItem(source);
737767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        }
747767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn
757767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        public PackageCleanItem[] newArray(int size) {
767767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn            return new PackageCleanItem[size];
777767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        }
787767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    };
797767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn
807767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    private PackageCleanItem(Parcel source) {
81752cd922f7091dfd5401faf70dc248934a9dbb6dJeff Sharkey        userId = source.readInt();
827767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        packageName = source.readString();
837767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        andCode = source.readInt() != 0;
847767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    }
857767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn}
86