summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java
diff options
context:
space:
mode:
authorTony Wickham <twickham@google.com>2017-03-29 15:30:43 -0700
committerTony Wickham <twickham@google.com>2017-04-04 14:36:52 -0700
commit86222d23e28a09a7a26e7a0d4b4830ded2efb384 (patch)
treee746881bea2f4173b6d4db0b63f195e02db7fe5e /src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java
parent2f54a1625ae031ffbb2a99a00c7b25de3c677828 (diff)
downloadandroid_packages_apps_Trebuchet-86222d23e28a09a7a26e7a0d4b4830ded2efb384.tar.gz
android_packages_apps_Trebuchet-86222d23e28a09a7a26e7a0d4b4830ded2efb384.tar.bz2
android_packages_apps_Trebuchet-86222d23e28a09a7a26e7a0d4b4830ded2efb384.zip
Add support for getting widgets/shortucts for a particular package/user
Bug: 34940468 Bug: 33553066 Change-Id: I5d0131df206c6a13d4227ad28c5b094bbf1343df
Diffstat (limited to 'src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java')
-rw-r--r--src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java b/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java
index 61dd1a5b7..f239f5c31 100644
--- a/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java
+++ b/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java
@@ -22,36 +22,48 @@ import android.appwidget.AppWidgetProviderInfo;
import android.content.ActivityNotFoundException;
import android.content.ComponentName;
import android.content.Context;
-import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
+import android.support.annotation.Nullable;
import android.widget.Toast;
import com.android.launcher3.LauncherAppWidgetProviderInfo;
import com.android.launcher3.R;
import com.android.launcher3.util.ComponentKey;
+import com.android.launcher3.util.PackageUserKey;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
class AppWidgetManagerCompatVL extends AppWidgetManagerCompat {
private final UserManager mUserManager;
- private final PackageManager mPm;
AppWidgetManagerCompatVL(Context context) {
super(context);
- mPm = context.getPackageManager();
mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
}
@Override
- public List<AppWidgetProviderInfo> getAllProviders() {
- ArrayList<AppWidgetProviderInfo> providers = new ArrayList<AppWidgetProviderInfo>();
- for (UserHandle user : mUserManager.getUserProfiles()) {
- providers.addAll(mAppWidgetManager.getInstalledProvidersForProfile(user));
+ public List<AppWidgetProviderInfo> getAllProviders(@Nullable PackageUserKey packageUser) {
+ if (packageUser == null) {
+ ArrayList<AppWidgetProviderInfo> providers = new ArrayList<AppWidgetProviderInfo>();
+ for (UserHandle user : mUserManager.getUserProfiles()) {
+ providers.addAll(mAppWidgetManager.getInstalledProvidersForProfile(user));
+ }
+ return providers;
+ }
+ // Only get providers for the given package/user.
+ List<AppWidgetProviderInfo> providers = new ArrayList<>(mAppWidgetManager
+ .getInstalledProvidersForProfile(packageUser.mUser));
+ Iterator<AppWidgetProviderInfo> iterator = providers.iterator();
+ while (iterator.hasNext()) {
+ if (!iterator.next().provider.getPackageName().equals(packageUser.mPackageName)) {
+ iterator.remove();
+ }
}
return providers;
}