From: Braden Farmer Date: Tue, 7 Mar 2017 07:23:11 +0000 (-0700) Subject: Fix some visual weirdness / rare crashes with pinning apps X-Git-Tag: android-x86-7.1-r1~246 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=c5bb5a8191a7651bb6c0f739b2d5c12dd1d04952;p=android-x86%2Fpackages-apps-Taskbar.git Fix some visual weirdness / rare crashes with pinning apps --- diff --git a/app/src/main/java/com/farmerbb/taskbar/service/TaskbarService.java b/app/src/main/java/com/farmerbb/taskbar/service/TaskbarService.java index d9ec0dbb..8981bfe8 100644 --- a/app/src/main/java/com/farmerbb/taskbar/service/TaskbarService.java +++ b/app/src/main/java/com/farmerbb/taskbar/service/TaskbarService.java @@ -451,17 +451,22 @@ public class TaskbarService extends Service { @TargetApi(Build.VERSION_CODES.LOLLIPOP_MR1) private void updateRecentApps(final boolean firstRefresh) { final PackageManager pm = getPackageManager(); - PinnedBlockedApps pba = PinnedBlockedApps.getInstance(this); final List entries = new ArrayList<>(); List launcherAppCache = new ArrayList<>(); int maxNumOfEntries = U.getMaxNumOfEntries(this); int realNumOfPinnedApps = 0; - - if(pba.getPinnedApps().size() > 0) { + + PinnedBlockedApps pba = PinnedBlockedApps.getInstance(this); + List pinnedApps = pba.getPinnedApps(); + List blockedApps = pba.getBlockedApps(); + List applicationIdsToRemove = new ArrayList<>(); + + // Filter out anything on the pinned/blocked apps lists + if(pinnedApps.size() > 0) { UserManager userManager = (UserManager) getSystemService(USER_SERVICE); LauncherApps launcherApps = (LauncherApps) getSystemService(LAUNCHER_APPS_SERVICE); - for(AppEntry entry : pba.getPinnedApps()) { + for(AppEntry entry : pinnedApps) { boolean packageEnabled = launcherApps.isPackageEnabled(entry.getPackageName(), userManager.getUserForSerialNumber(entry.getUserId(this))); @@ -469,9 +474,17 @@ public class TaskbarService extends Service { entries.add(entry); else realNumOfPinnedApps--; + + applicationIdsToRemove.add(entry.getPackageName()); } - realNumOfPinnedApps = realNumOfPinnedApps + pba.getPinnedApps().size(); + realNumOfPinnedApps = realNumOfPinnedApps + pinnedApps.size(); + } + + if(blockedApps.size() > 0) { + for(AppEntry entry : blockedApps) { + applicationIdsToRemove.add(entry.getPackageName()); + } } // Get list of all recently used apps @@ -523,17 +536,6 @@ public class TaskbarService extends Service { } } - // Filter out anything on the pinned/blocked apps lists - List applicationIdsToRemove = new ArrayList<>(); - - for(AppEntry entry : pba.getPinnedApps()) { - applicationIdsToRemove.add(entry.getPackageName()); - } - - for(AppEntry entry : pba.getBlockedApps()) { - applicationIdsToRemove.add(entry.getPackageName()); - } - // Filter out the currently running foreground app, if requested by the user SharedPreferences pref = U.getSharedPreferences(this); if(pref.getBoolean("hide_foreground", false)) {