@Override public Object call(Object who, Method method, Object... args) throws Throwable { boolean slice = ParceledListSliceCompat.isReturnParceledListSlice(method); int userId = VUserHandle.myUserId(); List<ResolveInfo> appResult = VPackageManager.get().queryIntentActivities((Intent) args[0], (String) args[1], (Integer) args[2], userId); Object _hostResult = method.invoke(who, args); if (_hostResult != null) { List<ResolveInfo> hostResult = slice ? ParceledListSlice.getList.call(_hostResult) : (List) _hostResult; if (hostResult != null) { Iterator<ResolveInfo> iterator = hostResult.iterator(); while (iterator.hasNext()) { ResolveInfo info = iterator.next(); if (info == null || info.activityInfo == null || !isVisiblePackage(info.activityInfo.applicationInfo)) { iterator.remove(); } } appResult.addAll(hostResult); } } if (slice) { return ParceledListSliceCompat.create(appResult); } return appResult; }
@Override public Object call(Object who, Method method, Object... args) throws Throwable { boolean slice = ParceledListSliceCompat.isReturnParceledListSlice(method); int userId = VUserHandle.myUserId(); List<ResolveInfo> appResult = VPackageManager.get().queryIntentActivities((Intent) args[0], (String) args[1], (Integer) args[2], userId); Object _hostResult = method.invoke(who, args); if (_hostResult != null) { List<ResolveInfo> hostResult = slice ? ParceledListSlice.getList.call(_hostResult) : (List) _hostResult; if (hostResult != null) { Iterator<ResolveInfo> iterator = hostResult.iterator(); while (iterator.hasNext()) { ResolveInfo info = iterator.next(); if (info == null || info.activityInfo == null || !isVisiblePackage(info.activityInfo.applicationInfo)) { iterator.remove(); } } appResult.addAll(hostResult); } } if (slice) { return ParceledListSliceCompat.create(appResult); } return appResult; }
@Override public Object call(Object who, Method method, Object... args) throws Throwable { boolean slice = ParceledListSliceCompat.isReturnParceledListSlice(method); int userId = VUserHandle.myUserId(); List<ResolveInfo> appResult = VPackageManager.get().queryIntentActivities((Intent) args[0], (String) args[1], (Integer) args[2], userId); Object _hostResult = method.invoke(who, args); if (_hostResult != null) { List<ResolveInfo> hostResult = slice ? (List<ResolveInfo>) ParceledListSlice.getList.call(_hostResult) : (List) _hostResult; if (hostResult != null) { hostResult.removeIf(info -> info == null || info.activityInfo == null || !isVisiblePackage(info.activityInfo.applicationInfo)); appResult.addAll(hostResult); } } if (slice) { return ParceledListSliceCompat.create(appResult); } return appResult; }