diff --git a/app/src/main/kotlin/com/simplemobiletools/applauncher/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/applauncher/activities/MainActivity.kt index 9b29967..f8be2d5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/applauncher/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/applauncher/activities/MainActivity.kt @@ -29,11 +29,16 @@ class MainActivity : SimpleActivity() { val list = pm.queryIntentActivities(intent, PackageManager.PERMISSION_GRANTED) for (info in list) { val componentInfo = info.activityInfo.applicationInfo - apps.add(AppLauncher(componentInfo.loadLabel(pm).toString(), componentInfo.loadIcon(pm))) + apps.add(AppLauncher(componentInfo.loadLabel(pm).toString(), componentInfo.loadIcon(pm), componentInfo.packageName)) } apps.sortBy { it.name } - launchers_holder.adapter = LaunchersAdapter(apps) + launchers_holder.adapter = LaunchersAdapter(apps) { + val launchIntent = packageManager.getLaunchIntentForPackage(it.pkgName) + if (launchIntent != null) { + startActivity(launchIntent) + } + } } override fun onCreateOptionsMenu(menu: Menu?): Boolean { diff --git a/app/src/main/kotlin/com/simplemobiletools/applauncher/adapters/LaunchersAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/applauncher/adapters/LaunchersAdapter.kt index fe66da2..e853ec2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/applauncher/adapters/LaunchersAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/applauncher/adapters/LaunchersAdapter.kt @@ -9,25 +9,27 @@ import com.simplemobiletools.applauncher.models.AppLauncher import kotlinx.android.synthetic.main.app_launcher_item.view.* import java.util.* -class LaunchersAdapter(val launchers: ArrayList) : RecyclerView.Adapter() { +class LaunchersAdapter(val launchers: ArrayList, val itemClick: (AppLauncher) -> Unit) : + RecyclerView.Adapter() { override fun onBindViewHolder(holder: ViewHolder, position: Int) { holder.bindView(launchers[position]) } override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ViewHolder { val view = LayoutInflater.from(parent?.context).inflate(R.layout.app_launcher_item, parent, false) - return ViewHolder(view) + return ViewHolder(view, itemClick) } override fun getItemCount(): Int { return launchers.count() } - class ViewHolder(view: View) : RecyclerView.ViewHolder(view) { + class ViewHolder(view: View, val itemClick: (AppLauncher) -> Unit) : RecyclerView.ViewHolder(view) { fun bindView(launcher: AppLauncher) { with(launcher) { itemView.launcher_label.text = launcher.name itemView.launcher_icon.setImageDrawable(launcher.icon) + itemView.setOnClickListener { itemClick(this) } } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/applauncher/models/AppLauncher.kt b/app/src/main/kotlin/com/simplemobiletools/applauncher/models/AppLauncher.kt index 08d892e..470a34b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/applauncher/models/AppLauncher.kt +++ b/app/src/main/kotlin/com/simplemobiletools/applauncher/models/AppLauncher.kt @@ -2,4 +2,4 @@ package com.simplemobiletools.applauncher.models import android.graphics.drawable.Drawable -data class AppLauncher(val name: String, val icon: Drawable) { } +data class AppLauncher(val name: String, val icon: Drawable, val pkgName: String) {}