diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2019-05-13 18:07:48 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-05-13 18:07:48 +0000 |
commit | ba39e91dfd8353b73b6fc839c159691054f79845 (patch) | |
tree | 202e785bf37bba13cee002a70a3b8b2a989de8bc /src | |
parent | 88986b357dc6e4f19306e24b2da72928f5167701 (diff) | |
parent | c2e54bc2104655c448e4e8de44c42a9382f59c70 (diff) | |
download | android_packages_apps_Trebuchet-ba39e91dfd8353b73b6fc839c159691054f79845.tar.gz android_packages_apps_Trebuchet-ba39e91dfd8353b73b6fc839c159691054f79845.tar.bz2 android_packages_apps_Trebuchet-ba39e91dfd8353b73b6fc839c159691054f79845.zip |
Merge "Use LauncherApps#getAllPackageInstallerSessions to get all sessions." into ub-launcher3-qt-dev
Diffstat (limited to 'src')
4 files changed, 54 insertions, 2 deletions
diff --git a/src/com/android/launcher3/compat/LauncherAppsCompat.java b/src/com/android/launcher3/compat/LauncherAppsCompat.java index 4275f312b..58fc73d23 100644 --- a/src/com/android/launcher3/compat/LauncherAppsCompat.java +++ b/src/com/android/launcher3/compat/LauncherAppsCompat.java @@ -21,6 +21,7 @@ import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.LauncherActivityInfo; +import android.content.pm.PackageInstaller; import android.content.pm.ShortcutInfo; import android.graphics.Rect; import android.os.Bundle; @@ -56,7 +57,9 @@ public abstract class LauncherAppsCompat { public static LauncherAppsCompat getInstance(Context context) { synchronized (sInstanceLock) { if (sInstance == null) { - if (Utilities.ATLEAST_OREO) { + if (Utilities.ATLEAST_Q) { + sInstance = new LauncherAppsCompatVQ(context.getApplicationContext()); + } else if (Utilities.ATLEAST_OREO) { sInstance = new LauncherAppsCompatVO(context.getApplicationContext()); } else { sInstance = new LauncherAppsCompatVL(context.getApplicationContext()); @@ -83,4 +86,6 @@ public abstract class LauncherAppsCompat { UserHandle user); public abstract List<ShortcutConfigActivityInfo> getCustomShortcutActivityList( @Nullable PackageUserKey packageUser); + + public abstract List<PackageInstaller.SessionInfo> getAllPackageInstallerSessions(); } diff --git a/src/com/android/launcher3/compat/LauncherAppsCompatVL.java b/src/com/android/launcher3/compat/LauncherAppsCompatVL.java index fc48ba756..1d19b533a 100644 --- a/src/com/android/launcher3/compat/LauncherAppsCompatVL.java +++ b/src/com/android/launcher3/compat/LauncherAppsCompatVL.java @@ -22,6 +22,7 @@ import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.LauncherActivityInfo; import android.content.pm.LauncherApps; +import android.content.pm.PackageInstaller; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.ShortcutInfo; @@ -199,5 +200,10 @@ public class LauncherAppsCompatVL extends LauncherAppsCompat { } return result; } + + @Override + public List<PackageInstaller.SessionInfo> getAllPackageInstallerSessions() { + return mContext.getPackageManager().getPackageInstaller().getAllSessions(); + } } diff --git a/src/com/android/launcher3/compat/LauncherAppsCompatVQ.java b/src/com/android/launcher3/compat/LauncherAppsCompatVQ.java new file mode 100644 index 000000000..0a1811e34 --- /dev/null +++ b/src/com/android/launcher3/compat/LauncherAppsCompatVQ.java @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.launcher3.compat; + +import android.annotation.TargetApi; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageInstaller; + +import java.util.List; + +@TargetApi(29) +public class LauncherAppsCompatVQ extends LauncherAppsCompatVO { + + LauncherAppsCompatVQ(Context context) { + super(context); + } + + public List<PackageInstaller.SessionInfo> getAllPackageInstallerSessions() { + return mLauncherApps.getAllPackageInstallerSessions(); + } +} diff --git a/src/com/android/launcher3/compat/PackageInstallerCompatVL.java b/src/com/android/launcher3/compat/PackageInstallerCompatVL.java index fe7b4e5d0..a34ca50eb 100644 --- a/src/com/android/launcher3/compat/PackageInstallerCompatVL.java +++ b/src/com/android/launcher3/compat/PackageInstallerCompatVL.java @@ -27,6 +27,7 @@ import android.os.UserHandle; import android.text.TextUtils; import android.util.SparseArray; +import com.android.launcher3.Utilities; import com.android.launcher3.icons.IconCache; import com.android.launcher3.LauncherAppState; import com.android.launcher3.LauncherModel; @@ -49,6 +50,7 @@ public class PackageInstallerCompatVL extends PackageInstallerCompat { private final Handler mWorker; private final Context mAppContext; private final HashMap<String,Boolean> mSessionVerifiedMap = new HashMap<>(); + private final LauncherAppsCompat mLauncherApps; PackageInstallerCompatVL(Context context) { mAppContext = context.getApplicationContext(); @@ -56,6 +58,7 @@ public class PackageInstallerCompatVL extends PackageInstallerCompat { mCache = LauncherAppState.getInstance(context).getIconCache(); mWorker = new Handler(LauncherModel.getWorkerLooper()); mInstaller.registerSessionCallback(mCallback, mWorker); + mLauncherApps = LauncherAppsCompat.getInstance(context); } @Override @@ -171,7 +174,9 @@ public class PackageInstallerCompatVL extends PackageInstallerCompat { @Override public List<SessionInfo> getAllVerifiedSessions() { - List<SessionInfo> list = new ArrayList<>(mInstaller.getAllSessions()); + List<SessionInfo> list = new ArrayList<>(Utilities.ATLEAST_Q + ? mLauncherApps.getAllPackageInstallerSessions() + : mInstaller.getAllSessions()); Iterator<SessionInfo> it = list.iterator(); while (it.hasNext()) { if (verify(it.next()) == null) { |