Forráskód Böngészése

feat(drawer): Start first app by pressing Enter in search field (#158)

Klaus-Hendrik Wolf 2 éve
szülő
commit
2c599936cc

+ 4 - 0
app/src/main/java/com/sduduzog/slimlauncher/adapters/AppDrawerAdapter.kt

@@ -44,6 +44,10 @@ class AppDrawerAdapter(
         }
         }
     }
     }
 
 
+    fun getFirstApp(): UnlauncherApp {
+        return filteredApps.first()
+    }
+
     override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
     override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
         val view = LayoutInflater.from(parent.context)
         val view = LayoutInflater.from(parent.context)
             .inflate(R.layout.add_app_fragment_list_item, parent, false)
             .inflate(R.layout.add_app_fragment_list_item, parent, false)

+ 12 - 0
app/src/main/java/com/sduduzog/slimlauncher/ui/main/HomeFragment.kt

@@ -14,6 +14,7 @@ import android.view.LayoutInflater
 import android.view.MenuItem
 import android.view.MenuItem
 import android.view.View
 import android.view.View
 import android.view.ViewGroup
 import android.view.ViewGroup
+import android.view.inputmethod.EditorInfo
 import android.view.inputmethod.InputMethodManager
 import android.view.inputmethod.InputMethodManager
 import android.widget.PopupMenu
 import android.widget.PopupMenu
 import android.widget.Toast
 import android.widget.Toast
@@ -204,6 +205,17 @@ class HomeFragment : BaseFragment(), OnLaunchAppListener {
 
 
         app_drawer_edit_text.addTextChangedListener(appDrawerAdapter.searchBoxListener)
         app_drawer_edit_text.addTextChangedListener(appDrawerAdapter.searchBoxListener)
 
 
+        app_drawer_edit_text.setOnEditorActionListener { _, actionId, _ ->
+                if(actionId == EditorInfo.IME_ACTION_DONE && appDrawerAdapter.itemCount > 0) {
+                    val firstApp = appDrawerAdapter.getFirstApp()
+                    launchApp(firstApp.packageName, firstApp.className, firstApp.userSerial)
+                    home_fragment.transitionToStart()
+                    true
+                } else {
+                    false
+                }
+            }
+
         home_fragment.setTransitionListener(object : TransitionListener {
         home_fragment.setTransitionListener(object : TransitionListener {
             override fun onTransitionCompleted(motionLayout: MotionLayout?, currentId: Int) {
             override fun onTransitionCompleted(motionLayout: MotionLayout?, currentId: Int) {
                 val inputMethodManager = requireContext().getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager
                 val inputMethodManager = requireContext().getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager