• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2014 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.compat;
18 
19 import android.content.ComponentName;
20 import android.content.Context;
21 import android.content.Intent;
22 import android.content.pm.LauncherApps;
23 import android.graphics.Rect;
24 import android.graphics.drawable.Drawable;
25 import android.os.Bundle;
26 
27 import com.android.launcher3.Utilities;
28 import com.android.launcher3.shortcuts.ShortcutInfoCompat;
29 
30 import java.util.List;
31 
32 public abstract class LauncherAppsCompat {
33 
34     public interface OnAppsChangedCallbackCompat {
onPackageRemoved(String packageName, UserHandleCompat user)35         void onPackageRemoved(String packageName, UserHandleCompat user);
onPackageAdded(String packageName, UserHandleCompat user)36         void onPackageAdded(String packageName, UserHandleCompat user);
onPackageChanged(String packageName, UserHandleCompat user)37         void onPackageChanged(String packageName, UserHandleCompat user);
onPackagesAvailable(String[] packageNames, UserHandleCompat user, boolean replacing)38         void onPackagesAvailable(String[] packageNames, UserHandleCompat user, boolean replacing);
onPackagesUnavailable(String[] packageNames, UserHandleCompat user, boolean replacing)39         void onPackagesUnavailable(String[] packageNames, UserHandleCompat user, boolean replacing);
onPackagesSuspended(String[] packageNames, UserHandleCompat user)40         void onPackagesSuspended(String[] packageNames, UserHandleCompat user);
onPackagesUnsuspended(String[] packageNames, UserHandleCompat user)41         void onPackagesUnsuspended(String[] packageNames, UserHandleCompat user);
onShortcutsChanged(String packageName, List<ShortcutInfoCompat> shortcuts, UserHandleCompat user)42         void onShortcutsChanged(String packageName, List<ShortcutInfoCompat> shortcuts,
43                 UserHandleCompat user);
44     }
45 
LauncherAppsCompat()46     protected LauncherAppsCompat() {
47     }
48 
49     private static LauncherAppsCompat sInstance;
50     private static Object sInstanceLock = new Object();
51 
getInstance(Context context)52     public static LauncherAppsCompat getInstance(Context context) {
53         synchronized (sInstanceLock) {
54             if (sInstance == null) {
55                 if (Utilities.ATLEAST_LOLLIPOP) {
56                     sInstance = new LauncherAppsCompatVL(context.getApplicationContext());
57                 } else {
58                     sInstance = new LauncherAppsCompatV16(context.getApplicationContext());
59                 }
60             }
61             return sInstance;
62         }
63     }
64 
getActivityList(String packageName, UserHandleCompat user)65     public abstract List<LauncherActivityInfoCompat> getActivityList(String packageName,
66             UserHandleCompat user);
resolveActivity(Intent intent, UserHandleCompat user)67     public abstract LauncherActivityInfoCompat resolveActivity(Intent intent,
68             UserHandleCompat user);
startActivityForProfile(ComponentName component, UserHandleCompat user, Rect sourceBounds, Bundle opts)69     public abstract void startActivityForProfile(ComponentName component, UserHandleCompat user,
70             Rect sourceBounds, Bundle opts);
showAppDetailsForProfile(ComponentName component, UserHandleCompat user)71     public abstract void showAppDetailsForProfile(ComponentName component, UserHandleCompat user);
addOnAppsChangedCallback(OnAppsChangedCallbackCompat listener)72     public abstract void addOnAppsChangedCallback(OnAppsChangedCallbackCompat listener);
removeOnAppsChangedCallback(OnAppsChangedCallbackCompat listener)73     public abstract void removeOnAppsChangedCallback(OnAppsChangedCallbackCompat listener);
isPackageEnabledForProfile(String packageName, UserHandleCompat user)74     public abstract boolean isPackageEnabledForProfile(String packageName, UserHandleCompat user);
isActivityEnabledForProfile(ComponentName component, UserHandleCompat user)75     public abstract boolean isActivityEnabledForProfile(ComponentName component,
76             UserHandleCompat user);
isPackageSuspendedForProfile(String packageName, UserHandleCompat user)77     public abstract boolean isPackageSuspendedForProfile(String packageName, UserHandleCompat user);
78 }
79