make AppShortcuts hideable

This commit is contained in:
MM20
2022-03-21 20:33:19 +01:00
parent d080d71e0f
commit afd793fc85
4 changed files with 48 additions and 17 deletions
@@ -7,6 +7,7 @@ import android.content.pm.PackageManager
import android.os.Process
import androidx.core.content.getSystemService
import com.github.promeg.pinyinhelper.Pinyin
import de.mm20.launcher2.hiddenitems.HiddenItemsRepository
import de.mm20.launcher2.permissions.PermissionGroup
import de.mm20.launcher2.permissions.PermissionsManager
import de.mm20.launcher2.preferences.LauncherDataStore
@@ -32,6 +33,7 @@ interface AppShortcutRepository {
internal class AppShortcutRepositoryImpl(
private val context: Context,
private val permissionsManager: PermissionsManager,
private val hiddenItemsRepository: HiddenItemsRepository,
private val dataStore: LauncherDataStore,
) : AppShortcutRepository {
@@ -107,18 +109,23 @@ internal class AppShortcutRepositoryImpl(
val pm = context.packageManager
send(shortcuts.map {
val label = try {
pm.getApplicationInfo(it.`package`, 0).loadLabel(pm).toString()
} catch (e: PackageManager.NameNotFoundException) {
""
}
AppShortcut(
context,
it,
label
hiddenItemsRepository.hiddenItemsKeys.collectLatest { hidden ->
send(
shortcuts.mapNotNull {
val label = try {
pm.getApplicationInfo(it.`package`, 0).loadLabel(pm).toString()
} catch (e: PackageManager.NameNotFoundException) {
""
}
AppShortcut(
context,
it,
label
).takeIf { !hidden.contains(it.key) }
}.sorted()
)
}.sorted())
}
}
}
}
@@ -4,5 +4,5 @@ import org.koin.android.ext.koin.androidContext
import org.koin.dsl.module
val appShortcutsModule = module {
single<AppShortcutRepository> { AppShortcutRepositoryImpl(androidContext(), get(), get()) }
single<AppShortcutRepository> { AppShortcutRepositoryImpl(androidContext(), get(), get(), get()) }
}