Skip to content

Commit 68cf94b

Browse files
committed
allow removing hidden icons from the app settings
1 parent 0169862 commit 68cf94b

File tree

6 files changed

+43
-12
lines changed

6 files changed

+43
-12
lines changed

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.simplemobiletools.launcher.activities
33
import android.content.Intent
44
import android.content.pm.PackageManager
55
import android.os.Bundle
6+
import com.simplemobiletools.commons.extensions.normalizeString
67
import com.simplemobiletools.commons.helpers.NavigationIcon
78
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
89
import com.simplemobiletools.commons.views.MyGridLayoutManager
@@ -31,7 +32,14 @@ class HiddenIconsActivity : SimpleActivity() {
3132

3233
private fun updateIcons() {
3334
ensureBackgroundThread {
34-
val hiddenIcons = hiddenIconsDB.getHiddenIcons().toMutableList() as ArrayList<HiddenIcon>
35+
val hiddenIcons = hiddenIconsDB.getHiddenIcons().sortedWith(
36+
compareBy({
37+
it.title.normalizeString().lowercase()
38+
}, {
39+
it.packageName
40+
})
41+
).toMutableList() as ArrayList<HiddenIcon>
42+
3543
val intent = Intent(Intent.ACTION_MAIN, null)
3644
intent.addCategory(Intent.CATEGORY_LAUNCHER)
3745

app/src/main/kotlin/com/simplemobiletools/launcher/adapters/HiddenIconsAdapter.kt

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@ import com.simplemobiletools.commons.activities.BaseSimpleActivity
1111
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
1212
import com.simplemobiletools.commons.extensions.portrait
1313
import com.simplemobiletools.commons.extensions.realScreenSize
14+
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
1415
import com.simplemobiletools.commons.views.MyRecyclerView
1516
import com.simplemobiletools.launcher.R
17+
import com.simplemobiletools.launcher.extensions.hiddenIconsDB
1618
import com.simplemobiletools.launcher.models.HiddenIcon
1719
import kotlinx.android.synthetic.main.item_hidden_icon.view.*
1820

@@ -63,7 +65,21 @@ class HiddenIconsAdapter(
6365

6466
override fun getItemCount() = hiddenIcons.size
6567

66-
private fun unHideSelection() {}
68+
private fun getSelectedItems() = hiddenIcons.filter { selectedKeys.contains(it.hashCode()) } as ArrayList<HiddenIcon>
69+
70+
private fun unHideSelection() {
71+
val positions = getSelectedItemPositions()
72+
73+
ensureBackgroundThread {
74+
val selectedItems = getSelectedItems()
75+
activity.hiddenIconsDB.removeHiddenIcons(selectedItems)
76+
hiddenIcons.removeAll(selectedItems)
77+
78+
activity.runOnUiThread {
79+
removeSelectedItems(positions)
80+
}
81+
}
82+
}
6783

6884
private fun calculateIconWidth() {
6985
val currentColumnCount = activity.resources.getInteger(

app/src/main/kotlin/com/simplemobiletools/launcher/databases/AppsDatabase.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import androidx.room.migration.Migration
99
import androidx.sqlite.db.SupportSQLiteDatabase
1010
import com.simplemobiletools.launcher.helpers.Converters
1111
import com.simplemobiletools.launcher.interfaces.AppLaunchersDao
12-
import com.simplemobiletools.launcher.interfaces.HiddenIconDao
12+
import com.simplemobiletools.launcher.interfaces.HiddenIconsDao
1313
import com.simplemobiletools.launcher.interfaces.HomeScreenGridItemsDao
1414
import com.simplemobiletools.launcher.models.AppLauncher
1515
import com.simplemobiletools.launcher.models.HiddenIcon
@@ -23,7 +23,7 @@ abstract class AppsDatabase : RoomDatabase() {
2323

2424
abstract fun HomeScreenGridItemsDao(): HomeScreenGridItemsDao
2525

26-
abstract fun HiddenIconsDao(): HiddenIconDao
26+
abstract fun HiddenIconsDao(): HiddenIconsDao
2727

2828
companion object {
2929
private var db: AppsDatabase? = null

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +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
15+
import com.simplemobiletools.launcher.interfaces.HiddenIconsDao
1616
import com.simplemobiletools.launcher.interfaces.HomeScreenGridItemsDao
1717

1818
val Context.config: Config get() = Config.newInstance(applicationContext)
@@ -21,7 +21,7 @@ val Context.launchersDB: AppLaunchersDao get() = AppsDatabase.getInstance(applic
2121

2222
val Context.homeScreenGridItemsDB: HomeScreenGridItemsDao get() = AppsDatabase.getInstance(applicationContext).HomeScreenGridItemsDao()
2323

24-
val Context.hiddenIconsDB: HiddenIconDao get() = AppsDatabase.getInstance(applicationContext).HiddenIconsDao()
24+
val Context.hiddenIconsDB: HiddenIconsDao get() = AppsDatabase.getInstance(applicationContext).HiddenIconsDao()
2525

2626
fun Context.getColumnCount(): Int {
2727
return if (portrait) {

app/src/main/kotlin/com/simplemobiletools/launcher/fragments/AllAppsFragment.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,14 @@ class AllAppsFragment(context: Context, attributeSet: AttributeSet) : MyFragment
8686
}
8787

8888
fun gotLaunchers(appLaunchers: ArrayList<AppLauncher>) {
89-
val sorted = appLaunchers.sortedBy { it.title.normalizeString().lowercase() }.toMutableList() as ArrayList<AppLauncher>
89+
val sorted = appLaunchers.sortedWith(
90+
compareBy({
91+
it.title.normalizeString().lowercase()
92+
}, {
93+
it.packageName
94+
})
95+
).toMutableList() as ArrayList<AppLauncher>
96+
9097
setupAdapter(sorted)
9198
}
9299

Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
package com.simplemobiletools.launcher.interfaces
22

3-
import androidx.room.Dao
4-
import androidx.room.Insert
5-
import androidx.room.OnConflictStrategy
6-
import androidx.room.Query
3+
import androidx.room.*
74
import com.simplemobiletools.launcher.models.HiddenIcon
85

96
@Dao
10-
interface HiddenIconDao {
7+
interface HiddenIconsDao {
118
@Query("SELECT * FROM hidden_icons")
129
fun getHiddenIcons(): List<HiddenIcon>
1310

1411
@Insert(onConflict = OnConflictStrategy.REPLACE)
1512
fun insert(hiddenIcon: HiddenIcon): Long
13+
14+
@Delete
15+
fun removeHiddenIcons(icons: List<HiddenIcon>)
1616
}

0 commit comments

Comments
 (0)