@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().queryIntentContentProviders((Intent) args[0], (String) args[1], (Integer) args[2], userId); Object _hostResult = method.invoke(who, args); 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.providerInfo == null || !isVisiblePackage(info.providerInfo.applicationInfo)) { iterator.remove(); } } appResult.addAll(hostResult); } if (ParceledListSliceCompat.isReturnParceledListSlice(method)) { 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().queryIntentContentProviders((Intent) args[0], (String) args[1], (Integer) args[2], userId); Object _hostResult = method.invoke(who, args); 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.providerInfo == null || !isVisiblePackage(info.providerInfo.applicationInfo)) { iterator.remove(); } } appResult.addAll(hostResult); } if (ParceledListSliceCompat.isReturnParceledListSlice(method)) { 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().queryIntentContentProviders((Intent) args[0], (String) args[1], (Integer) args[2], userId); Object _hostResult = method.invoke(who, args); List<ResolveInfo> hostResult = slice ? (List<ResolveInfo>) ParceledListSlice.getList.call(_hostResult) : (List) _hostResult; if (hostResult != null) { hostResult.removeIf(info -> info == null || info.providerInfo == null || !isVisiblePackage(info.providerInfo.applicationInfo)); appResult.addAll(hostResult); } if (ParceledListSliceCompat.isReturnParceledListSlice(method)) { return ParceledListSliceCompat.create(appResult); } return appResult; }