115a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root/*
215a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Copyright (C) 2007 The Android Open Source Project
315a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root *
415a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Licensed under the Apache License, Version 2.0 (the "License");
515a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * you may not use this file except in compliance with the License.
615a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * You may obtain a copy of the License at
715a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root *
815a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root *      http://www.apache.org/licenses/LICENSE-2.0
915a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root *
1015a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Unless required by applicable law or agreed to in writing, software
1115a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * distributed under the License is distributed on an "AS IS" BASIS,
1215a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1315a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * See the License for the specific language governing permissions and
1415a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * limitations under the License.
1515a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root */
1615a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root
17a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapupackage android.content.pm;
18a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu
19a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapuimport android.os.Parcel;
20a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapuimport android.os.Parcelable;
21a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu
22a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu/**
23a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu * Basic information about a package as specified in its manifest.
24a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu * Utility class used in PackageManager methods
25a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu * @hide
26a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu */
27a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapupublic class PackageInfoLite implements Parcelable {
28a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu    /**
29a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu     * The name of this package.  From the <manifest> tag's "name"
30a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu     * attribute.
31a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu     */
32a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu    public String packageName;
33a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu
34a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu    /**
35a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu     * Specifies the recommended install location. Can be one of
36a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu     * {@link #PackageHelper.RECOMMEND_INSTALL_INTERNAL} to install on internal storage
37a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu     * {@link #PackageHelper.RECOMMEND_INSTALL_EXTERNAL} to install on external media
38a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu     * {@link PackageHelper.RECOMMEND_FAILED_INSUFFICIENT_STORAGE} for storage errors
39a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu     * {@link PackageHelper.RECOMMEND_FAILED_INVALID_APK} for parse errors.
40a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu     */
41a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu    public int recommendedInstallLocation;
42a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu    public int installLocation;
43a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu
44a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu    public PackageInfoLite() {
45a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu    }
46a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu
47a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu    public String toString() {
48a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu        return "PackageInfoLite{"
49a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu            + Integer.toHexString(System.identityHashCode(this))
50a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu            + " " + packageName + "}";
51a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu    }
52a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu
53a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu    public int describeContents() {
54a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu        return 0;
55a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu    }
56a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu
57a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu    public void writeToParcel(Parcel dest, int parcelableFlags) {
58a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu        dest.writeString(packageName);
59a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu        dest.writeInt(recommendedInstallLocation);
60a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu        dest.writeInt(installLocation);
61a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu    }
62a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu
63a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu    public static final Parcelable.Creator<PackageInfoLite> CREATOR
64a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu            = new Parcelable.Creator<PackageInfoLite>() {
65a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu        public PackageInfoLite createFromParcel(Parcel source) {
66a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu            return new PackageInfoLite(source);
67a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu        }
68a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu
69a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu        public PackageInfoLite[] newArray(int size) {
70a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu            return new PackageInfoLite[size];
71a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu        }
72a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu    };
73a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu
74a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu    private PackageInfoLite(Parcel source) {
75a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu        packageName = source.readString();
76a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu        recommendedInstallLocation = source.readInt();
77a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu        installLocation = source.readInt();
78a2b6c3775ed6b8924232d6a01bae4a19740a15f8Suchi Amalapurapu    }
7915a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root}
80