void createShortcutStubApkForAsync(AppInfo appInfo, String appLabel, String versionName, int versionCode, Consumer<File> onApkFileReady) {
        disposables.add(Single.create((SingleOnSubscribe<File>) emitter ->
                        emitter.onSuccess(ShortcutHelper.createShortcutStubApkFor(getApplication(), appInfo, appLabel, versionName, versionCode)))
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(onApkFileReady::accept, throwable -> {
                    XLog.e("createShortcutStubApkForAsync error", throwable);
                    Toast.makeText(getApplication(), throwable.getMessage(), Toast.LENGTH_LONG).show();
                }));
    }
Null means we load all pkgs
android/app/src/main/java/now/fortuitous/thanos/power/SmartFreezeAppsViewModel.java