diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 55982c4a..445e4c3f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -57,12 +57,17 @@ - - - - - - + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + > ${intent?.dataString}") // BLog.LOGE("onNewIntent intent?.data >> ${intent?.data}") + } else if (intent?.action == Intent.ACTION_WEB_SEARCH) { + openWithIntent(intent) } else { Blog.LOGE("onNewIntent intent?.hasExtra >> ${intent?.hasExtra(Intent.EXTRA_STREAM)}") @@ -501,6 +506,22 @@ internal class LauncherActivity : CommonActivity() { // } super.onNewIntent(intent) } + + private fun openWithIntent(intent: Intent){ + Blog.LOGE("intent >> ${intent}") + + intent.getStringExtra(SearchManager.QUERY)?.let { query-> + Blog.LOGE("intent >> ${query}") + supportFragmentManager.beginTransaction() + .replace(R.id.fragment_container, RssHome().apply { + arguments = Bundle().apply { + putString(SearchManager.QUERY, query) + } + }) + .commit() + } + } + var isKeyboardVisible = false @SuppressLint("NewApi", "MissingPermission") @@ -538,6 +559,10 @@ internal class LauncherActivity : CommonActivity() { Blog.LOGE("v >> ${v}") showContents(v.id) } + + if (intent?.action == Intent.ACTION_WEB_SEARCH) { + openWithIntent(intent) + } } fun showContents(id : Int) { @@ -635,7 +660,19 @@ internal class LauncherActivity : CommonActivity() { Blog.LOGE("LauncherActivity onResume") } - + private fun openSearch() { + val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager + val searchableInfo = searchManager.getSearchableInfo(componentName) + if (searchableInfo != null) { + val intent = Intent(Intent.ACTION_SEARCH).apply { +// setSearchableInfo(searchableInfo) + flags = Intent.FLAG_ACTIVITY_NEW_TASK + } + startActivity(intent) + } else { + // 검색 가능한 앱이 없을 경우 처리 + } + } val appDrawer by lazy { AppDrawer() } diff --git a/app/src/main/kotlin/bums/lunatic/launcher/apps/AppDrawer.kt b/app/src/main/kotlin/bums/lunatic/launcher/apps/AppDrawer.kt index 59ec2480..388afcd5 100644 --- a/app/src/main/kotlin/bums/lunatic/launcher/apps/AppDrawer.kt +++ b/app/src/main/kotlin/bums/lunatic/launcher/apps/AppDrawer.kt @@ -57,7 +57,7 @@ import java.util.concurrent.TimeUnit import java.util.regex.Pattern -internal class AppDrawer : CommonActivity() { +class AppDrawer : CommonActivity() { private lateinit var binding: AppDrawerBinding private var layoutType: Int = 0 diff --git a/app/src/main/kotlin/bums/lunatic/launcher/home/GeckoWeb.kt b/app/src/main/kotlin/bums/lunatic/launcher/home/GeckoWeb.kt index 0f465bcb..f26606ce 100644 --- a/app/src/main/kotlin/bums/lunatic/launcher/home/GeckoWeb.kt +++ b/app/src/main/kotlin/bums/lunatic/launcher/home/GeckoWeb.kt @@ -888,6 +888,8 @@ class GeckoWeb : BWebview { } } else if (url.startsWith("http") == false) { nUrl = lastDomain + } else { + nUrl = url.plus(param) } if (!privateMode && this.isVisible == false) { this.visibility = View.VISIBLE diff --git a/app/src/main/kotlin/bums/lunatic/launcher/home/RssHome.kt b/app/src/main/kotlin/bums/lunatic/launcher/home/RssHome.kt index 28c49747..207ae239 100644 --- a/app/src/main/kotlin/bums/lunatic/launcher/home/RssHome.kt +++ b/app/src/main/kotlin/bums/lunatic/launcher/home/RssHome.kt @@ -199,12 +199,16 @@ internal class RssHome : Fragment() { return false } }) - var useHiddenMenu = true + var openQuery = "" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + Blog.LOGE("arguments >>> ${arguments}") arguments?.let { - if(it.containsKey("HIDDEN") && it.getBoolean("HIDDEN")) { - useHiddenMenu = true + Blog.LOGE("arguments >>> ${arguments}") + if(it.containsKey("query") && it.getString("query")!!.length > 0) { + Blog.LOGE("it.getString ${it.getString("query")}") + openQuery = it.getString("query")!! + } } home = this @@ -334,7 +338,7 @@ internal class RssHome : Fragment() { if (binding.geckoWeb.lastedUrl?.contains("www.google") == true) { binding.geckoWeb.sendSearch(keyword) } else { - binding.geckoWeb.loadUrl("https://www.google.com/", if (keyword.length ?: 0 > 0) { "/?q=${keyword}" } else { null }) + binding.geckoWeb.loadUrl("https://www.google.com/", if (keyword.length ?: 0 > 0) { "search/?q=${keyword}" } else { null }) } binding.geckoWeb.privateMode = false } @@ -502,33 +506,10 @@ internal class RssHome : Fragment() { binding.share.setOnClickListener { binding.geckoWeb.saveMd() } - Blog.LOGE("useHiddenMenu >>> $useHiddenMenu") - if (useHiddenMenu) { - binding.search.setOnLongClickListener { - if (binding.geckoWeb.isVisible) { - binding.geckoWeb.visibility = View.GONE - } - binding.geckoWeb.visibility = View.GONE - ask() - true - } - binding.search.setOnClickListener { - if (binding.geckoWeb.isVisible) { - binding.geckoWeb.visibility = View.GONE - } - binding.geckoWeb.visibility = View.GONE - searchKeyword() - true - } - binding.privateBtn.setOnClickListener { - queryPrevate(true) - } - binding.privateBtn.setOnLongClickListener { - queryPrevate(false) - true - } - binding.privateBtn.visibility = View.VISIBLE - binding.search.visibility = View.VISIBLE + Blog.LOGE("useHiddenMenu >>> $openQuery") + if (openQuery.length > 0) { + binding.geckoWeb.loadUrl("https://www.google.com/search?q=${openQuery}") + openQuery = "" } else { binding.privateBtn.visibility = View.GONE binding.search.visibility = View.GONE diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9d7c59d1..60d9a42f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -179,4 +179,6 @@ test\n + + 응 내꺼얌 diff --git a/app/src/main/res/xml/searchable.xml b/app/src/main/res/xml/searchable.xml new file mode 100644 index 00000000..5aac4837 --- /dev/null +++ b/app/src/main/res/xml/searchable.xml @@ -0,0 +1,4 @@ + +