@@ -690,9 +690,20 @@ class HomeScreenGrid(context: Context, attrs: AttributeSet, defStyle: Int) : Rel
690690 draggedItem!! .activityInfo
691691 )
692692
693+ fun finalizeFolderOrder (newItem : HomeScreenGridItem ) {
694+ if (newParentId != null && gridItems.any { it.parentId == newParentId && it.left == newItem.left }) {
695+ gridItems.filter { it.parentId == newParentId && it.left >= newItem.left && it.id != newItem.id}.forEach {
696+ it.left + = 1
697+ }
698+
699+ context.homeScreenGridItemsDB.shiftFolderItems(newParentId, newItem.left - 1 , + 1 , newItem.id)
700+ }
701+ }
702+
693703 if (newHomeScreenGridItem.type == ITEM_TYPE_ICON ) {
694704 ensureBackgroundThread {
695705 storeAndShowGridItem(newHomeScreenGridItem)
706+ finalizeFolderOrder(newHomeScreenGridItem)
696707 }
697708 } else if (newHomeScreenGridItem.type == ITEM_TYPE_SHORTCUT ) {
698709 (context as ? MainActivity )?.handleShorcutCreation(newHomeScreenGridItem.activityInfo!! ) { shortcutId, label, icon ->
@@ -702,19 +713,10 @@ class HomeScreenGrid(context: Context, attrs: AttributeSet, defStyle: Int) : Rel
702713 newHomeScreenGridItem.icon = icon.toBitmap()
703714 newHomeScreenGridItem.drawable = icon
704715 storeAndShowGridItem(newHomeScreenGridItem)
716+ finalizeFolderOrder(newHomeScreenGridItem)
705717 }
706718 }
707719 }
708-
709- ensureBackgroundThread {
710- if (newParentId != null && gridItems.any { it.parentId == newParentId && it.left == finalXIndex }) {
711- gridItems.filter { it.parentId == newParentId && it.left >= finalXIndex }.forEach {
712- it.left + = 1
713- }
714-
715- context.homeScreenGridItemsDB.shiftFolderItems(newParentId, left - 1 , + 1 )
716- }
717- }
718720 }
719721
720722 draggedItem = null
0 commit comments