1 /**
2  * Copyright (C) 2019 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 com.android.launcher3.appprediction;
18 
19 import static com.android.quickstep.InstantAppResolverImpl.COMPONENT_CLASS_MARKER;
20 
21 import android.content.ComponentName;
22 import android.content.Context;
23 import android.content.Intent;
24 
25 import androidx.annotation.NonNull;
26 
27 import com.android.launcher3.LauncherSettings;
28 import com.android.launcher3.model.data.AppInfo;
29 import com.android.launcher3.model.data.WorkspaceItemInfo;
30 
31 public class InstantAppItemInfo extends AppInfo {
32 
InstantAppItemInfo(Intent intent, String packageName)33     public InstantAppItemInfo(Intent intent, String packageName) {
34         this.intent = intent;
35         this.componentName = new ComponentName(packageName, COMPONENT_CLASS_MARKER);
36     }
37 
38     @NonNull
39     @Override
getTargetComponent()40     public ComponentName getTargetComponent() {
41         return componentName;
42     }
43 
44     @NonNull
45     @Override
makeWorkspaceItem(Context context)46     public WorkspaceItemInfo makeWorkspaceItem(Context context) {
47         WorkspaceItemInfo workspaceItemInfo = super.makeWorkspaceItem(context);
48         workspaceItemInfo.itemType = LauncherSettings.Favorites.ITEM_TYPE_APPLICATION;
49         workspaceItemInfo.status = WorkspaceItemInfo.FLAG_AUTOINSTALL_ICON
50                 | WorkspaceItemInfo.FLAG_RESTORE_STARTED
51                 | WorkspaceItemInfo.FLAG_SUPPORTS_WEB_UI;
52         workspaceItemInfo.getIntent().setPackage(componentName.getPackageName());
53         return workspaceItemInfo;
54     }
55 }
56