1 /*
2  * Copyright (C) 2020 The Android Open Source Project
3  *
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
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16 
17 package android.content.pm;
18 
19 import android.annotation.NonNull;
20 import android.compat.annotation.UnsupportedAppUsage;
21 import android.content.ComponentName;
22 import android.os.Parcel;
23 import android.os.Parcelable;
24 import android.os.UserHandle;
25 
26 /**
27  * @hide
28  */
29 public class LauncherActivityInfoInternal implements Parcelable {
30     @UnsupportedAppUsage
31     @NonNull private ActivityInfo mActivityInfo;
32     @NonNull private ComponentName mComponentName;
33     @NonNull private IncrementalStatesInfo mIncrementalStatesInfo;
34     @NonNull private UserHandle mUser;
35 
36     /**
37      * @param info ActivityInfo from which to create the LauncherActivityInfo.
38      * @param incrementalStatesInfo The package's states.
39      * @param user The user the activity info belongs to.
40      */
LauncherActivityInfoInternal(@onNull ActivityInfo info, @NonNull IncrementalStatesInfo incrementalStatesInfo, @NonNull UserHandle user)41     public LauncherActivityInfoInternal(@NonNull ActivityInfo info,
42             @NonNull IncrementalStatesInfo incrementalStatesInfo,
43             @NonNull UserHandle user) {
44         mActivityInfo = info;
45         mComponentName = new ComponentName(info.packageName, info.name);
46         mIncrementalStatesInfo = incrementalStatesInfo;
47         mUser = user;
48     }
49 
LauncherActivityInfoInternal(Parcel source)50     public LauncherActivityInfoInternal(Parcel source) {
51         mActivityInfo = source.readTypedObject(ActivityInfo.CREATOR);
52         mComponentName = new ComponentName(mActivityInfo.packageName, mActivityInfo.name);
53         mIncrementalStatesInfo = source.readTypedObject(IncrementalStatesInfo.CREATOR);
54         mUser = source.readTypedObject(UserHandle.CREATOR);
55     }
56 
getComponentName()57     public ComponentName getComponentName() {
58         return mComponentName;
59     }
60 
getActivityInfo()61     public ActivityInfo getActivityInfo() {
62         return mActivityInfo;
63     }
64 
getUser()65     public UserHandle getUser() {
66         return mUser;
67     }
68 
getIncrementalStatesInfo()69     public IncrementalStatesInfo getIncrementalStatesInfo() {
70         return mIncrementalStatesInfo;
71     }
72 
73     @Override
describeContents()74     public int describeContents() {
75         return 0;
76     }
77 
78     @Override
writeToParcel(Parcel dest, int flags)79     public void writeToParcel(Parcel dest, int flags) {
80         dest.writeTypedObject(mActivityInfo, flags);
81         dest.writeTypedObject(mIncrementalStatesInfo, flags);
82         dest.writeTypedObject(mUser, flags);
83     }
84 
85     public static final @android.annotation.NonNull Creator<LauncherActivityInfoInternal> CREATOR =
86             new Creator<LauncherActivityInfoInternal>() {
87         public LauncherActivityInfoInternal createFromParcel(Parcel source) {
88             return new LauncherActivityInfoInternal(source);
89         }
90         public LauncherActivityInfoInternal[] newArray(int size) {
91             return new LauncherActivityInfoInternal[size];
92         }
93     };
94 }
95