From 192a37832597b03d0f2a3320db25b923d7d46cc2 Mon Sep 17 00:00:00 2001 From: queuejw Date: Wed, 26 Jun 2024 14:44:18 +0400 Subject: [PATCH] pre-alpha 5.0.1 --- .../java/ru/dimon6018/metrolauncher/Main.kt | 48 ++++++++++++------- .../main/res/layout/main_screen_laucnher.xml | 1 + 2 files changed, 32 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/ru/dimon6018/metrolauncher/Main.kt b/app/src/main/java/ru/dimon6018/metrolauncher/Main.kt index da6cb69..1e75f8a 100644 --- a/app/src/main/java/ru/dimon6018/metrolauncher/Main.kt +++ b/app/src/main/java/ru/dimon6018/metrolauncher/Main.kt @@ -14,10 +14,12 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.view.WindowManager +import android.view.inputmethod.EditorInfo import android.widget.AutoCompleteTextView import android.widget.FrameLayout import android.widget.ImageView import android.widget.LinearLayout +import android.widget.TextView.OnEditorActionListener import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatDelegate @@ -87,6 +89,7 @@ class Main : AppCompatActivity() { private var appList: MutableList? = null private val hashCache = ArrayMap() private var searchAdapter: SearchAdapter? = null + private var filteredList: ArrayList? = null private val packageReceiver = PackageChangesReceiver() @@ -302,7 +305,8 @@ class Main : AppCompatActivity() { layoutManager = LinearLayoutManager(this@Main, LinearLayoutManager.VERTICAL, false) adapter = searchAdapter } - (bottomViewSearchBar!!.editText as? AutoCompleteTextView)?.addTextChangedListener(object : + val text = (bottomViewSearchBar!!.editText as? AutoCompleteTextView) + text?.addTextChangedListener(object : TextWatcher { override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) { filterSearchText(s.toString()) @@ -310,6 +314,16 @@ class Main : AppCompatActivity() { override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {} override fun afterTextChanged(s: Editable) {} }) + text?.setOnEditorActionListener(OnEditorActionListener { _, actionId, _ -> + if (actionId == EditorInfo.IME_ACTION_GO) { + if(filteredList != null) { + runApp( filteredList!![0].appPackage!!) + hideSearchResults() + } + return@OnEditorActionListener true + } + false + }) } } private fun hideSearchResults() { @@ -352,7 +366,7 @@ class Main : AppCompatActivity() { if(appList == null) { return } - val filteredList: ArrayList = ArrayList() + filteredList = ArrayList() val locale = Locale.getDefault() if(text.isEmpty()) { hideSearchResults() @@ -363,14 +377,14 @@ class Main : AppCompatActivity() { for(i in 0..= max) { + if(filteredList!!.size >= max) { break } - filteredList.add(item) + filteredList!!.add(item) } } - if (filteredList.isNotEmpty()) { - searchAdapter?.setData(filteredList) + if (filteredList!!.isNotEmpty()) { + searchAdapter?.setData(filteredList!!) } } private fun setAppTheme() { @@ -395,6 +409,17 @@ class Main : AppCompatActivity() { super.onDestroy() unregisterPackageReceiver(this, packageReceiver) } + private fun runApp(app: String) { + isAppOpened = true + when (app) { + "ru.dimon6018.metrolauncher" -> { + startActivity(Intent(this@Main, SettingsActivity::class.java)) + } + else -> { + startActivity(Intent(this@Main.packageManager.getLaunchIntentForPackage(app)).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)) + } + } + } companion object { var isLandscape: Boolean = false } @@ -453,16 +478,5 @@ class Main : AppCompatActivity() { } } } - private fun runApp(app: String) { - isAppOpened = true - when (app) { - "ru.dimon6018.metrolauncher" -> { - startActivity(Intent(this@Main, SettingsActivity::class.java)) - } - else -> { - startActivity(Intent(this@Main.packageManager.getLaunchIntentForPackage(app)).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)) - } - } - } } } \ No newline at end of file diff --git a/app/src/main/res/layout/main_screen_laucnher.xml b/app/src/main/res/layout/main_screen_laucnher.xml index a5755a8..de5f164 100644 --- a/app/src/main/res/layout/main_screen_laucnher.xml +++ b/app/src/main/res/layout/main_screen_laucnher.xml @@ -92,6 +92,7 @@ android:layout_height="match_parent" android:fontFamily="@font/roboto_regular" android:inputType="text" + android:imeOptions="actionGo" android:paddingStart="8dp" android:paddingEnd="8dp" android:textColor="?attr/colorOnBackground"