Move to Android N-MR1 SDK.
[android_tools.git] / sdk / sources / android-25 / android / content / pm / EphemeralApplicationInfo.java
blob87663f12e637a321b2ce2ab5027f2495a1855b4d
1 /*
2 * Copyright (C) 2015 The Android Open Source Project
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package android.content.pm;
19 import android.annotation.NonNull;
20 import android.annotation.Nullable;
21 import android.graphics.drawable.Drawable;
22 import android.os.Parcel;
23 import android.os.Parcelable;
25 /**
26 * This class represents the state of an ephemeral app.
28 * @hide
30 public final class EphemeralApplicationInfo implements Parcelable {
31 private final ApplicationInfo mApplicationInfo;
33 private final String mPackageName;
34 private final CharSequence mLabelText;
36 private final String[] mRequestedPermissions;
37 private final String[] mGrantedPermissions;
39 public EphemeralApplicationInfo(ApplicationInfo appInfo,
40 String[] requestedPermissions, String[] grantedPermissions) {
41 mApplicationInfo = appInfo;
42 mPackageName = null;
43 mLabelText = null;
44 mRequestedPermissions = requestedPermissions;
45 mGrantedPermissions = grantedPermissions;
48 public EphemeralApplicationInfo(String packageName, CharSequence label,
49 String[] requestedPermissions, String[] grantedPermissions) {
50 mApplicationInfo = null;
51 mPackageName = packageName;
52 mLabelText = label;
53 mRequestedPermissions = requestedPermissions;
54 mGrantedPermissions = grantedPermissions;
57 private EphemeralApplicationInfo(Parcel parcel) {
58 mPackageName = parcel.readString();
59 mLabelText = parcel.readCharSequence();
60 mRequestedPermissions = parcel.readStringArray();
61 mGrantedPermissions = parcel.createStringArray();
62 mApplicationInfo = parcel.readParcelable(null);
65 public @NonNull String getPackageName() {
66 if (mApplicationInfo != null) {
67 return mApplicationInfo.packageName;
69 return mPackageName;
72 public @NonNull CharSequence loadLabel(@NonNull PackageManager packageManager) {
73 if (mApplicationInfo != null) {
74 return mApplicationInfo.loadLabel(packageManager);
76 return mLabelText;
79 public @NonNull Drawable loadIcon(@NonNull PackageManager packageManager) {
80 if (mApplicationInfo != null) {
81 return mApplicationInfo.loadIcon(packageManager);
83 return packageManager.getEphemeralApplicationIcon(mPackageName);
86 public @Nullable String[] getRequestedPermissions() {
87 return mRequestedPermissions;
90 public @Nullable String[] getGrantedPermissions() {
91 return mGrantedPermissions;
94 @Override
95 public int describeContents() {
96 return 0;
99 @Override
100 public void writeToParcel(Parcel parcel, int flags) {
101 parcel.writeString(mPackageName);
102 parcel.writeCharSequence(mLabelText);
103 parcel.writeStringArray(mRequestedPermissions);
104 parcel.writeStringArray(mGrantedPermissions);
105 parcel.writeParcelable(mApplicationInfo, flags);
108 public static final Creator<EphemeralApplicationInfo> CREATOR =
109 new Creator<EphemeralApplicationInfo>() {
110 @Override
111 public EphemeralApplicationInfo createFromParcel(Parcel parcel) {
112 return new EphemeralApplicationInfo(parcel);
115 @Override
116 public EphemeralApplicationInfo[] newArray(int size) {
117 return new EphemeralApplicationInfo[0];