Skip to content

Commit 645dee4

Browse files
committed
adding an initial implementation of icon hiding
1 parent 415c850 commit 645dee4

File tree

5 files changed

+27
-2
lines changed

5 files changed

+27
-2
lines changed

app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import com.simplemobiletools.launcher.fragments.WidgetsFragment
4343
import com.simplemobiletools.launcher.helpers.*
4444
import com.simplemobiletools.launcher.interfaces.FlingListener
4545
import com.simplemobiletools.launcher.models.AppLauncher
46+
import com.simplemobiletools.launcher.models.HiddenIcon
4647
import com.simplemobiletools.launcher.models.HomeScreenGridItem
4748
import kotlinx.android.synthetic.main.activity_main.*
4849
import 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()

app/src/main/kotlin/com/simplemobiletools/launcher/extensions/Context.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import com.simplemobiletools.launcher.R
1212
import com.simplemobiletools.launcher.databases.AppsDatabase
1313
import com.simplemobiletools.launcher.helpers.Config
1414
import com.simplemobiletools.launcher.interfaces.AppLaunchersDao
15+
import com.simplemobiletools.launcher.interfaces.HiddenIconDao
1516
import com.simplemobiletools.launcher.interfaces.HomeScreenGridItemsDao
1617

1718
val Context.config: Config get() = Config.newInstance(applicationContext)
@@ -20,6 +21,8 @@ val Context.launchersDB: AppLaunchersDao get() = AppsDatabase.getInstance(applic
2021

2122
val Context.homeScreenGridItemsDB: HomeScreenGridItemsDao get() = AppsDatabase.getInstance(applicationContext).HomeScreenGridItemsDao()
2223

24+
val Context.hiddenIconsDB: HiddenIconDao get() = AppsDatabase.getInstance(applicationContext).HiddenIconsDao()
25+
2326
fun Context.getColumnCount(): Int {
2427
return if (portrait) {
2528
resources.getInteger(R.integer.portrait_column_count)

app/src/main/kotlin/com/simplemobiletools/launcher/models/AppLauncher.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ data class AppLauncher(
3636
return copy(id = null, drawable = null).toString()
3737
}
3838

39+
fun getLauncherIdentifier() = "$packageName/$activityName"
40+
3941
override fun compareTo(other: AppLauncher): Int {
4042
var result = when {
4143
sorting and SORT_BY_TITLE != 0 -> title.normalizeString().lowercase().compareTo(other.title.normalizeString().lowercase())

app/src/main/kotlin/com/simplemobiletools/launcher/models/HiddenIcon.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,6 @@ data class HiddenIcon(
1313
@Ignore var drawable: Drawable? = null,
1414
) {
1515
constructor() : this(null, "", "", "", null)
16+
17+
fun getIconIdentifier() = "$packageName/$activityName"
1618
}

app/src/main/res/menu/menu_app_icon.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@
66
android:icon="@drawable/ic_info_vector"
77
android:title="@string/app_info"
88
app:showAsAction="always" />
9+
<item
10+
android:id="@+id/hide_icon"
11+
android:icon="@drawable/ic_hide_vector"
12+
android:title="@string/hide"
13+
app:showAsAction="always" />
914
<item
1015
android:id="@+id/resize"
1116
android:icon="@drawable/ic_resize_vector"

0 commit comments

Comments
 (0)