sort the displayed apps in lowercase and remove duplicates

This commit is contained in:
tibbi 2016-08-13 21:44:28 +02:00
parent dbcb1817bf
commit c0e3e25be0
2 changed files with 9 additions and 5 deletions

View File

@ -7,9 +7,8 @@ import android.view.ViewGroup
import com.simplemobiletools.applauncher.R import com.simplemobiletools.applauncher.R
import com.simplemobiletools.applauncher.models.AppLauncher import com.simplemobiletools.applauncher.models.AppLauncher
import kotlinx.android.synthetic.main.app_launcher_dialog_item.view.* import kotlinx.android.synthetic.main.app_launcher_dialog_item.view.*
import java.util.*
class RecyclerAdapter(val launchers: ArrayList<AppLauncher>, val itemClick: (AppLauncher) -> Unit) : class RecyclerAdapter(val launchers: List<AppLauncher>, val itemClick: (AppLauncher) -> Unit) :
RecyclerView.Adapter<RecyclerAdapter.ViewHolder>() { RecyclerView.Adapter<RecyclerAdapter.ViewHolder>() {
override fun onBindViewHolder(holder: ViewHolder, position: Int) { override fun onBindViewHolder(holder: ViewHolder, position: Int) {

View File

@ -12,6 +12,7 @@ import com.simplemobiletools.applauncher.adapters.RecyclerAdapter
import com.simplemobiletools.applauncher.models.AppLauncher import com.simplemobiletools.applauncher.models.AppLauncher
import kotlinx.android.synthetic.main.launcher_picker.view.* import kotlinx.android.synthetic.main.launcher_picker.view.*
import java.util.* import java.util.*
import kotlin.comparisons.compareBy
class AddAppDialog() : DialogFragment() { class AddAppDialog() : DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
@ -38,11 +39,15 @@ class AddAppDialog() : DialogFragment() {
val list = packageManager.queryIntentActivities(intent, PackageManager.PERMISSION_GRANTED) val list = packageManager.queryIntentActivities(intent, PackageManager.PERMISSION_GRANTED)
for (info in list) { for (info in list) {
val componentInfo = info.activityInfo.applicationInfo val componentInfo = info.activityInfo.applicationInfo
apps.add(AppLauncher(componentInfo.loadLabel(packageManager).toString(), componentInfo.packageName, 0, componentInfo.loadIcon(packageManager))) val label = componentInfo.loadLabel(packageManager).toString()
val pkgName = componentInfo.packageName
val icon = componentInfo.loadIcon(packageManager)
apps.add(AppLauncher(label, pkgName, 0, icon))
} }
apps.sortBy { it.name } val sorted = apps.sortedWith(compareBy { it.name.toLowerCase() })
recyclerView.launchers_holder.adapter = RecyclerAdapter(apps) { val unique = sorted.distinctBy { it.pkgName }
recyclerView.launchers_holder.adapter = RecyclerAdapter(unique) {
} }
} }