@@ -43,6 +43,7 @@ import com.simplemobiletools.launcher.fragments.WidgetsFragment
4343import com.simplemobiletools.launcher.helpers.*
4444import com.simplemobiletools.launcher.interfaces.FlingListener
4545import com.simplemobiletools.launcher.models.AppLauncher
46+ import com.simplemobiletools.launcher.models.HiddenIcon
4647import com.simplemobiletools.launcher.models.HomeScreenGridItem
4748import kotlinx.android.synthetic.main.activity_main.*
4849import kotlinx.android.synthetic.main.activity_main.view.*
@@ -326,7 +327,9 @@ class MainActivity : SimpleActivity(), FlingListener {
326327 (Math .abs(mTouchDownX - event.x) > mMoveGestureThreshold) || (Math .abs(mTouchDownY - event.y) > mMoveGestureThreshold)
327328
328329 private fun refetchLaunchers () {
329- val launchers = getAllAppLaunchers()
330+ val hiddenIcons = hiddenIconsDB.getHiddenIcons().map { it.getIconIdentifier() }
331+ val launchers = getAllAppLaunchers().filter { ! hiddenIcons.contains(it.getLauncherIdentifier()) }.toMutableList() as ArrayList <AppLauncher >
332+
330333 (all_apps_fragment as AllAppsFragment ).gotLaunchers(launchers)
331334 (widgets_fragment as WidgetsFragment ).getAppWidgets()
332335
@@ -485,7 +488,7 @@ class MainActivity : SimpleActivity(), FlingListener {
485488 }
486489
487490 private fun handleGridItemPopupMenu (anchorView : View , gridItem : HomeScreenGridItem , isOnAllAppsFragment : Boolean ): PopupMenu {
488- var visibleMenuButtons = 5
491+ var visibleMenuButtons = 6
489492 visibleMenuButtons - = when (gridItem.type) {
490493 ITEM_TYPE_ICON -> 1
491494 ITEM_TYPE_WIDGET -> 3
@@ -511,13 +514,15 @@ class MainActivity : SimpleActivity(), FlingListener {
511514
512515 inflate(R .menu.menu_app_icon)
513516 menu.findItem(R .id.rename).isVisible = gridItem.type == ITEM_TYPE_ICON && ! isOnAllAppsFragment
517+ menu.findItem(R .id.hide_icon).isVisible = gridItem.type == ITEM_TYPE_ICON && isOnAllAppsFragment
514518 menu.findItem(R .id.resize).isVisible = gridItem.type == ITEM_TYPE_WIDGET
515519 menu.findItem(R .id.app_info).isVisible = gridItem.type == ITEM_TYPE_ICON
516520 menu.findItem(R .id.uninstall).isVisible = gridItem.type == ITEM_TYPE_ICON
517521 menu.findItem(R .id.remove).isVisible = ! isOnAllAppsFragment
518522 setOnMenuItemClickListener { item ->
519523 resetFragmentTouches()
520524 when (item.itemId) {
525+ R .id.hide_icon -> hideIcon(gridItem)
521526 R .id.rename -> renameItem(gridItem)
522527 R .id.resize -> home_screen_grid.widgetLongPressed(gridItem)
523528 R .id.app_info -> launchAppInfo(gridItem.packageName)
@@ -552,6 +557,14 @@ class MainActivity : SimpleActivity(), FlingListener {
552557 showFragment(widgets_fragment)
553558 }
554559
560+ private fun hideIcon (item : HomeScreenGridItem ) {
561+ ensureBackgroundThread {
562+ val hiddenIcon = HiddenIcon (null , item.packageName, item.activityName, item.title, null )
563+ hiddenIconsDB.insert(hiddenIcon)
564+ refetchLaunchers()
565+ }
566+ }
567+
555568 private fun renameItem (homeScreenGridItem : HomeScreenGridItem ) {
556569 RenameItemDialog (this , homeScreenGridItem) {
557570 home_screen_grid.fetchGridItems()
0 commit comments