Loading app/src/main/java/foundation/e/blisslauncher/core/utils/AppUtils.java +47 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,9 @@ import foundation.e.blisslauncher.BlissLauncher; import foundation.e.blisslauncher.core.IconsHandler; import foundation.e.blisslauncher.core.database.model.ApplicationItem; import foundation.e.blisslauncher.features.launcher.AppProvider; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; Loading Loading @@ -138,4 +141,48 @@ public class AppUtils { return null; } public static List<ApplicationItem> createAppItems(Context context, String packageName, UserHandle userHandle) { List<ApplicationItem> items = new ArrayList<>(); if (AppProvider.DISABLED_PACKAGES.contains(packageName)) { return items; } if (sLauncherApps == null) { sLauncherApps = (LauncherApps) context.getSystemService( Context.LAUNCHER_APPS_SERVICE); } IconsHandler iconsHandler = BlissLauncher.getApplication(context).getIconsHandler(); List<LauncherActivityInfo> matches = sLauncherApps.getActivityList( packageName, userHandle.getRealHandle()); if (matches == null || matches.size() == 0) { return items; } for (LauncherActivityInfo info : matches) { if (info != null) { ApplicationItem applicationItem = new ApplicationItem(info, userHandle); ApplicationInfo appInfo = info.getApplicationInfo(); applicationItem.icon = iconsHandler.getDrawableIconForPackage( info, userHandle); String componentName = info.getComponentName().toString(); applicationItem.appType = iconsHandler.isClock(componentName) ? ApplicationItem.TYPE_CLOCK : (iconsHandler.isCalendar( componentName) ? ApplicationItem.TYPE_CALENDAR : ApplicationItem.TYPE_DEFAULT); applicationItem.title = info.getLabel().toString(); applicationItem.container = Constants.CONTAINER_DESKTOP; if (appInfo.packageName.equalsIgnoreCase("com.generalmagic.magicearth")) { applicationItem.title = "Maps"; } applicationItem.packageName = appInfo.packageName; items.add(applicationItem); } } return items; } } No newline at end of file app/src/main/java/foundation/e/blisslauncher/core/utils/FlagOp.java 0 → 100644 +16 −0 Original line number Diff line number Diff line package foundation.e.blisslauncher.core.utils; public interface FlagOp { FlagOp NO_OP = i -> i; int apply(int flags); static FlagOp addFlag(int flag) { return i -> i | flag; } static FlagOp removeFlag(int flag) { return i -> i & ~flag; } } app/src/main/java/foundation/e/blisslauncher/features/test/LauncherModel.java +22 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,8 @@ package foundation.e.blisslauncher.features.test; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.pm.LauncherActivityInfo; import android.content.pm.LauncherApps; import android.content.pm.ShortcutInfo; import android.os.Handler; import android.os.HandlerThread; Loading @@ -30,12 +32,20 @@ import android.util.Pair; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.List; import foundation.e.blisslauncher.core.UserManagerCompat; import foundation.e.blisslauncher.core.Utilities; import foundation.e.blisslauncher.core.database.model.ApplicationItem; import foundation.e.blisslauncher.core.database.model.LauncherItem; import foundation.e.blisslauncher.core.executors.MainThreadExecutor; import foundation.e.blisslauncher.core.utils.AppUtils; import foundation.e.blisslauncher.core.utils.Constants; import foundation.e.blisslauncher.core.utils.FlagOp; import foundation.e.blisslauncher.core.utils.ItemInfoMatcher; import foundation.e.blisslauncher.core.utils.Preconditions; import foundation.e.blisslauncher.features.shortcuts.InstallShortcutReceiver; Loading Loading @@ -91,7 +101,18 @@ public class LauncherModel extends BroadcastReceiver implements @Override public void onPackageAdded(String packageName, UserHandle user) { final Context context = mApp.getContext(); FlagOp flagOp = FlagOp.NO_OP; final HashSet<String> packageSet = new HashSet<>(Arrays.asList(packageName)); ItemInfoMatcher matcher = ItemInfoMatcher.ofPackages(packageSet, user); final List<LauncherItem> added = new ArrayList<>(); added.addAll(AppUtils.createAppItems(context, packageName, new foundation.e.blisslauncher.core.utils.UserHandle(UserManagerCompat .getInstance(context).getSerialNumberForUser(user), user) )); mUiExecutor.execute(() -> mCallbacks.get().bindAppsAdded(added)); } @Override Loading Loading
app/src/main/java/foundation/e/blisslauncher/core/utils/AppUtils.java +47 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,9 @@ import foundation.e.blisslauncher.BlissLauncher; import foundation.e.blisslauncher.core.IconsHandler; import foundation.e.blisslauncher.core.database.model.ApplicationItem; import foundation.e.blisslauncher.features.launcher.AppProvider; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; Loading Loading @@ -138,4 +141,48 @@ public class AppUtils { return null; } public static List<ApplicationItem> createAppItems(Context context, String packageName, UserHandle userHandle) { List<ApplicationItem> items = new ArrayList<>(); if (AppProvider.DISABLED_PACKAGES.contains(packageName)) { return items; } if (sLauncherApps == null) { sLauncherApps = (LauncherApps) context.getSystemService( Context.LAUNCHER_APPS_SERVICE); } IconsHandler iconsHandler = BlissLauncher.getApplication(context).getIconsHandler(); List<LauncherActivityInfo> matches = sLauncherApps.getActivityList( packageName, userHandle.getRealHandle()); if (matches == null || matches.size() == 0) { return items; } for (LauncherActivityInfo info : matches) { if (info != null) { ApplicationItem applicationItem = new ApplicationItem(info, userHandle); ApplicationInfo appInfo = info.getApplicationInfo(); applicationItem.icon = iconsHandler.getDrawableIconForPackage( info, userHandle); String componentName = info.getComponentName().toString(); applicationItem.appType = iconsHandler.isClock(componentName) ? ApplicationItem.TYPE_CLOCK : (iconsHandler.isCalendar( componentName) ? ApplicationItem.TYPE_CALENDAR : ApplicationItem.TYPE_DEFAULT); applicationItem.title = info.getLabel().toString(); applicationItem.container = Constants.CONTAINER_DESKTOP; if (appInfo.packageName.equalsIgnoreCase("com.generalmagic.magicearth")) { applicationItem.title = "Maps"; } applicationItem.packageName = appInfo.packageName; items.add(applicationItem); } } return items; } } No newline at end of file
app/src/main/java/foundation/e/blisslauncher/core/utils/FlagOp.java 0 → 100644 +16 −0 Original line number Diff line number Diff line package foundation.e.blisslauncher.core.utils; public interface FlagOp { FlagOp NO_OP = i -> i; int apply(int flags); static FlagOp addFlag(int flag) { return i -> i | flag; } static FlagOp removeFlag(int flag) { return i -> i & ~flag; } }
app/src/main/java/foundation/e/blisslauncher/features/test/LauncherModel.java +22 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,8 @@ package foundation.e.blisslauncher.features.test; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.pm.LauncherActivityInfo; import android.content.pm.LauncherApps; import android.content.pm.ShortcutInfo; import android.os.Handler; import android.os.HandlerThread; Loading @@ -30,12 +32,20 @@ import android.util.Pair; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.List; import foundation.e.blisslauncher.core.UserManagerCompat; import foundation.e.blisslauncher.core.Utilities; import foundation.e.blisslauncher.core.database.model.ApplicationItem; import foundation.e.blisslauncher.core.database.model.LauncherItem; import foundation.e.blisslauncher.core.executors.MainThreadExecutor; import foundation.e.blisslauncher.core.utils.AppUtils; import foundation.e.blisslauncher.core.utils.Constants; import foundation.e.blisslauncher.core.utils.FlagOp; import foundation.e.blisslauncher.core.utils.ItemInfoMatcher; import foundation.e.blisslauncher.core.utils.Preconditions; import foundation.e.blisslauncher.features.shortcuts.InstallShortcutReceiver; Loading Loading @@ -91,7 +101,18 @@ public class LauncherModel extends BroadcastReceiver implements @Override public void onPackageAdded(String packageName, UserHandle user) { final Context context = mApp.getContext(); FlagOp flagOp = FlagOp.NO_OP; final HashSet<String> packageSet = new HashSet<>(Arrays.asList(packageName)); ItemInfoMatcher matcher = ItemInfoMatcher.ofPackages(packageSet, user); final List<LauncherItem> added = new ArrayList<>(); added.addAll(AppUtils.createAppItems(context, packageName, new foundation.e.blisslauncher.core.utils.UserHandle(UserManagerCompat .getInstance(context).getSerialNumberForUser(user), user) )); mUiExecutor.execute(() -> mCallbacks.get().bindAppsAdded(added)); } @Override Loading