diff options
-rw-r--r-- | src/com/android/launcher3/Folder.java | 4 | ||||
-rw-r--r-- | src/com/android/launcher3/FolderIcon.java | 2 | ||||
-rw-r--r-- | src/com/android/launcher3/Launcher.java | 14 | ||||
-rw-r--r-- | src/com/android/launcher3/LauncherModel.java | 16 | ||||
-rw-r--r-- | src/com/android/launcher3/Workspace.java | 18 |
5 files changed, 44 insertions, 10 deletions
diff --git a/src/com/android/launcher3/Folder.java b/src/com/android/launcher3/Folder.java index 54d2793e0..0aacff4d5 100644 --- a/src/com/android/launcher3/Folder.java +++ b/src/com/android/launcher3/Folder.java @@ -1202,7 +1202,7 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList } private void replaceFolderWithFinalItem() { - if (mInfo.hidden) { + if (mInfo.hidden && getItemCount() >= 1) { return; } // Add the last remaining child to the workspace in place of the folder @@ -1245,7 +1245,7 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList if (finalChild != null) { mFolderIcon.performDestroyAnimation(finalChild, onCompleteRunnable); } else { - onCompleteRunnable.run(); + mLauncher.runOnUiThread(onCompleteRunnable); } mDestroyed = true; } diff --git a/src/com/android/launcher3/FolderIcon.java b/src/com/android/launcher3/FolderIcon.java index 78e8c3a9b..5ea5ee9e2 100644 --- a/src/com/android/launcher3/FolderIcon.java +++ b/src/com/android/launcher3/FolderIcon.java @@ -690,7 +690,7 @@ public class FolderIcon extends FrameLayout implements FolderListener { public void onAnimationEnd(Animator animation) { mAnimating = false; if (onCompleteRunnable != null) { - onCompleteRunnable.run(); + mLauncher.runOnUiThread(onCompleteRunnable); } } }); diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 1d1208f94..edfcc6c9b 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -456,10 +456,21 @@ public class Launcher extends Activity return Log.isLoggable(propertyName, Log.VERBOSE); } + Runnable mUpdateDynamicGridRunnable = new Runnable() { + @Override + public void run() { + updateDynamicGrid(); + } + }; + private BroadcastReceiver protectedAppsChangedReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { // Update the workspace + if (waitUntilResume(mUpdateDynamicGridRunnable, true)) { + return; + } + updateDynamicGrid(); } }; @@ -1329,7 +1340,8 @@ public class Launcher extends Activity protected void startThemeSettings() { Intent chooser = new Intent(Intent.ACTION_MAIN) .addCategory(OverviewSettingsPanel.THEME_CHOOSER_CATEGORY) - .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + .addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); try { startActivity(chooser); } catch (ActivityNotFoundException e) { diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java index b9ea057b5..9f89b3a95 100644 --- a/src/com/android/launcher3/LauncherModel.java +++ b/src/com/android/launcher3/LauncherModel.java @@ -2445,17 +2445,27 @@ public class LauncherModel extends BroadcastReceiver { int NN = shortcuts.size() - 1; for (int j = NN; j >= 0; j--) { - ShortcutInfo sci = shortcuts.get(j); + final ShortcutInfo sci = shortcuts.get(j); if (sci.intent != null && sci.intent.getComponent() != null) { if (!folder.hidden){ if (mHiddenApps.contains(sci.intent.getComponent())) { LauncherModel.deleteItemFromDatabase(mContext, sci); - folder.remove(sci); + Runnable r = new Runnable() { + public void run() { + folder.remove(sci); + } + }; + runOnMainThread(r, MAIN_THREAD_BINDING_RUNNABLE); } } else { if (!mHiddenApps.contains(sci.intent.getComponent())) { LauncherModel.deleteItemFromDatabase(mContext, sci); - folder.remove(sci); + Runnable r = new Runnable() { + public void run() { + folder.remove(sci); + } + }; + runOnMainThread(r, MAIN_THREAD_BINDING_RUNNABLE); } } diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index e935c99af..478b261e9 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -1337,7 +1337,7 @@ public class Workspace extends SmoothPagedView float mAnimationStartOffset; private final int ANIMATION_DURATION = 250; // Don't use all the wallpaper for parallax until you have at least this many pages - private final int MIN_PARALLAX_PAGE_SPAN = 3; + private final int MIN_PARALLAX_PAGE_SPAN = 2; int mNumScreens; boolean mCompletedInitialOffset; @@ -1390,8 +1390,8 @@ public class Workspace extends SmoothPagedView } private float wallpaperOffsetForCurrentScroll() { - if (getChildCount() <= 1) { - return 0; + if (getNumScreensExcludingEmptyAndCustom() <= 1) { + return mWallpaperIsLiveWallpaper ? 0 : 0.5f; } // Exclude the leftmost page @@ -2767,6 +2767,18 @@ public class Workspace extends SmoothPagedView v.getWidth() + padding, v.getHeight() + padding, Bitmap.Config.ARGB_8888); } + // Special case for dragging All Apps button + if (v.getTag() instanceof ItemInfo) { + ItemInfo info = (ItemInfo) v.getTag(); + if (info.itemType == LauncherSettings.Favorites.ITEM_TYPE_ALLAPPS) { + // Special case for all apps icon + Drawable d = ((TextView) v).getCompoundDrawables()[1]; + Rect r = d.getBounds(); + b = Bitmap.createBitmap(r.width() + padding, + r.height() + padding, Bitmap.Config.ARGB_8888); + } + } + canvas.setBitmap(b); drawDragView(v, canvas, padding, true); canvas.setBitmap(null); |