From f53ac1b0898827d38a3a7eec309f8a99b1949ec9 Mon Sep 17 00:00:00 2001 From: lunaticbum Date: Wed, 9 Oct 2024 10:29:04 +0900 Subject: [PATCH] ... --- .../rasel/lunar/launcher/apps/AppDrawer.kt | 190 ++++-------------- .../rasel/lunar/launcher/apps/AppsAdapter.kt | 2 +- .../rasel/lunar/launcher/home/LauncherHome.kt | 16 +- 3 files changed, 50 insertions(+), 158 deletions(-) diff --git a/app/src/main/kotlin/rasel/lunar/launcher/apps/AppDrawer.kt b/app/src/main/kotlin/rasel/lunar/launcher/apps/AppDrawer.kt index 9a5cb3e..9164dc5 100644 --- a/app/src/main/kotlin/rasel/lunar/launcher/apps/AppDrawer.kt +++ b/app/src/main/kotlin/rasel/lunar/launcher/apps/AppDrawer.kt @@ -209,6 +209,40 @@ internal class AppDrawer : Fragment() { false } } + binding.searchInput.setOnLongClickListener { + WorkersDb.getRealm().apply { + var newQ = query() + appQuery = newQ.sort(Pair("clickCount", Sort.DESCENDING),Pair("lastUseDate",Sort.DESCENDING)).find() + appQuery?.let { + if(it.size > 0) { + WorkersDb.getRealm().apply { + packageList.clear() + packageList.addAll(copyFromRealm(it)) + binding.appsList.post { if (packageList.size > 0) { + appsAdapter?.updateData(packageList) + } } + } + } + } + } + WorkersDb.getRealm().apply { + var newQ = query() + contactQuery = newQ.sort(Pair("touchCount", Sort.DESCENDING),Pair("lastedTouchDateTime",Sort.DESCENDING)).find() + contactQuery?.let { + if (it.size > 0) { + contactList.clear() + contactList.addAll(copyFromRealm(it).toList()) + binding.contactList.post { + if (contactList.size > 0) { + contactAdapter?.updateData(contactList) + } + } + } + } + + } + true + } binding.searchInput.doOnTextChanged{ inputText, _, _, _ -> binding.searchInput.text?.let { binding.searchInput.setSelection(it.length) } filterAppsList(inputText.toString()) @@ -216,86 +250,9 @@ internal class AppDrawer : Fragment() { } fun checkResult(keyword: String) { - -// if(!isAdded || !isResumed || keyword.length < 1) return -// var dialog : AlertDialog.Builder? = null -// var filted = packageList.filter { it.appName.equals(keyword) } -// BLog.LOGE("filted >> ${filted.size}") -// var filtedContact = contactList.filter { it.name.equals(keyword) } -// BLog.LOGE("filtedContact >> ${filtedContact.size}") -// if (keyword.length > 0 && (packageList.size == 1 || filted.size > 0)) { -// dialog = AlertDialog.Builder(requireContext()) -// dialog?.setTitle("앱 실행 확인") -// if (packageList.size == 1) { -// dialog?.setMessage("${keyword} 검색 결과 '${packageList[0].appName}' 준비됨") -// dialog?.setPositiveButton("실행") { s, d -> -// runonUi { -// startActivity(packageManager?.getLaunchIntentForPackage(packageList[0].pkgName!!)) -// s.dismiss() -// } -// } -// } else if (filted.size > 0) { -// dialog?.setMessage("${keyword} 검색 결과 '${filted[0].appName}' 준비됨") -// dialog?.setPositiveButton("${filted[0].appName} 실행") { s, d -> -// runonUi { -// startActivity(packageManager?.getLaunchIntentForPackage(filted[0].pkgName!!)) -// s.dismiss() -// } -// } -// if(filted.size > 1) { -// dialog?.setNeutralButton("${filted[1].appName} 실행") { s, d -> -// runonUi { -// startActivity(packageManager?.getLaunchIntentForPackage(filted[1].pkgName!!)) -// s.dismiss() -// } -// } -// } -// } -// dialog?.setCancelable(false) -// dialog?.setNegativeButton("취소") { s, d -> -// runonUi { s.dismiss() } -// } -// dialog?.setOnDismissListener { registCancelSearch() } -// dialog?.show() -// } else if (contactList.size == 1 || filtedContact.size > 0) { -// dialog = AlertDialog.Builder(requireContext()) -// dialog?.setTitle("연락처 실행 확인") -// dialog?.setCancelable(false) -// dialog?.setNegativeButton("취소") { s, d -> -// runonUi { s.dismiss() } -// } -// if (contactList.size == 1) { -// dialog?.setMessage("${keyword} 검색 결과 '${contactList[0].name}' 준비됨") -// dialog?.setPositiveButton("자세히 보기") { s, d -> -// runonUi { -// ContactMenu().show(childFragmentManager, contactList[0].id.toString()) -// s.dismiss() -// } -// } -// } else if(filtedContact.size > 0) { -// dialog?.setMessage("${keyword} 검색 결과 '${filtedContact[0].name}' 준비됨") -// dialog?.setPositiveButton("'${filtedContact[0].name},\n${filtedContact[0].phoneNumber}'\n자세히 보기") { s, d -> -// runonUi { -// ContactMenu().show(childFragmentManager, filtedContact[0].id.toString()) -// s.dismiss() -// } -// } -// if (filtedContact.size > 1) { -// dialog?.setNeutralButton("'${filtedContact[1].name},\n${filtedContact[1].phoneNumber}'\n자세히 보기") { s, d -> -// runonUi { -// ContactMenu().show(childFragmentManager, filtedContact[1].id.toString()) -// s.dismiss() -// } -// } -// } -// } -// dialog?.setOnDismissListener { registCancelSearch() } -// dialog?.show() -// } else { - lActivity?.openSearchMenus(keyword) { - registCancelSearch() - } -// } + lActivity?.openSearchMenus(keyword) { + registCancelSearch() + } } @@ -328,9 +285,8 @@ internal class AppDrawer : Fragment() { val cancelSearch = Runnable { lActivity?.viewPager?.currentItem = 1 } fun registCancelSearch() { -// BLog.LOGE("Called registCancelSearch") chechHandler.removeCallbacks(cancelSearch) - chechHandler.postDelayed(cancelSearch, 8000L) + chechHandler.postDelayed(cancelSearch, 15000L) } fun clearCancelSearch() { @@ -343,13 +299,6 @@ internal class AppDrawer : Fragment() { } private fun setLayout() { -// when (layoutType) { -// 0, 1 -> { -// binding.appsList.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL,false) -// appsAdapter!!.updateGravity(settingsPrefs!!.getInt(KEY_DRAW_ALIGN, Gravity.CENTER)) -// } -// 2 -> binding.appsList.layoutManager = GridLayoutManager(requireContext(), Math.min(settingsPrefs!!.getInt(KEY_GRID_COLUMNS, DEFAULT_GRID_COLUMNS), 4), GridLayoutManager.HORIZONTAL,false) -// } binding.appsList.layoutManager = GridLayoutManager(requireContext(), 2, GridLayoutManager.HORIZONTAL,false) binding.contactList.layoutManager = GridLayoutManager(requireContext(), 2, GridLayoutManager.HORIZONTAL,false) /* initialize apps list adapter */ @@ -383,14 +332,9 @@ internal class AppDrawer : Fragment() { WorkersDb.getRealm().apply { packageList.clear() packageList.addAll(copyFromRealm(it)) -// BLog.LOGE("packageList >>> ${packageList.size}") binding.appsList.post { if (packageList.size > 0) { appsAdapter?.updateData(packageList) } } -// val clo = packageList.clone() -// appNames.clear() -// appNames.addAll(packageList.filter { it.koreanName?.trim()?.length ?: 0 < 1 }) -// getHangule() } } } @@ -405,30 +349,22 @@ internal class AppDrawer : Fragment() { var newQ = query() if (keyword != null && keyword.length > 0) { if(Pattern.matches("^[0-9]*\$", keyword)){ - keyword.split("").forEach { - if (it.length > 0) newQ = newQ.query("phoneNumber CONTAINS $0", keyword) - } + keyword.split("").forEach { if (it.length > 0) newQ = newQ.query("phoneNumber CONTAINS $0", keyword) } } else { - newQ = newQ.query( - "name CONTAINS $0 OR chosung CONTAINS $0", - keyword - ) + newQ = newQ.query("name CONTAINS $0 OR chosung CONTAINS $0", keyword) } } - contactQuery = newQ.sort(Pair("touchCount", Sort.DESCENDING),Pair("lastedTouchDateTime",Sort.DESCENDING)).limit(18).find() contactQuery?.let { if (it.size > 0) WorkersDb.getRealm().apply { contactList.clear() contactList.addAll(copyFromRealm(it).toList()) -// BLog.LOGE("packageList >>> ${contactList.size}") binding.contactList.post { if (contactList.size > 0) { contactAdapter?.updateData(contactList) } } } } - } } @@ -519,53 +455,9 @@ internal class AppDrawer : Fragment() { // } } - var lastSearchStringLength = 0 - var lastSearchString : String = "" + private fun filterAppsList(searchString: String) { - /* check each app name and add if it matches the search string */ fetchApps(searchString) -// if (searchString.length > 0 && (lastSearchStringLength != searchString.length || lastSearchString.equals(searchString) == false)) { -// BLog.LOGE("START FILTER") -// packageList.clear() -// for (pkg in oringinPackageList) { -// if (pkg.appName!!.contains(searchString,true) || pkg.category!!.contains(searchString,true) || pkg.pkgName!!.contains(searchString,true)) { -// BLog.LOGE("pkg >>> ${pkg.category} , ${pkg.appName}") -// packageList.add(pkg) -// } -// } -// packageList.sortBy { it.appName } -// BLog.LOGE("MIDDLE FILTER") -// -// appsAdapter?.updateData(packageList) -// -// contactList.clear() -// for (item in originContactList) { -// if (item.name!!.contains(searchString) || item.phoneNumber!!.contains(searchString)) { -// contactList.add(item) -// } -// } -// contactList.sortBy { it.name } -// contactAdapter?.updateData(contactList) -// BLog.LOGE("END FILTER") -// -// -// } else if(lastSearchStringLength == 0){ -// contactList.clear() -// for (item in originContactList) { -// contactList.add(item) -// } -// packageList.clear() -// for (resolver in oringinPackageList) { -// packageList.add(resolver) -// } -// appsAdapter?.updateData(packageList) -// contactAdapter?.updateData(contactList) -// } else { -// afterClearSearch() -// -// } - lastSearchString = searchString - lastSearchStringLength = searchString.length registCancelSearch() } diff --git a/app/src/main/kotlin/rasel/lunar/launcher/apps/AppsAdapter.kt b/app/src/main/kotlin/rasel/lunar/launcher/apps/AppsAdapter.kt index 505ac25..5ecd572 100644 --- a/app/src/main/kotlin/rasel/lunar/launcher/apps/AppsAdapter.kt +++ b/app/src/main/kotlin/rasel/lunar/launcher/apps/AppsAdapter.kt @@ -99,7 +99,7 @@ internal class AppsAdapter( if(result.size > 0) { val app = result.first() app.clickCount = app.clickCount + 15 - app.lastUseDate = Math.max(app.lastUseDate, System.currentTimeMillis()) +// app.lastUseDate = Math.max(app.lastUseDate, System.currentTimeMillis()) } } } diff --git a/app/src/main/kotlin/rasel/lunar/launcher/home/LauncherHome.kt b/app/src/main/kotlin/rasel/lunar/launcher/home/LauncherHome.kt index d5c9282..615ef47 100644 --- a/app/src/main/kotlin/rasel/lunar/launcher/home/LauncherHome.kt +++ b/app/src/main/kotlin/rasel/lunar/launcher/home/LauncherHome.kt @@ -362,14 +362,14 @@ internal class LauncherHome : Fragment() { val hideListViewTime = 1000L * 60L * 15L val hideListView = { - binding.notiList.visibility = View.GONE - binding.mainList.visibility = View.GONE - binding.infoList.visibility = View.GONE - binding.smsList.visibility = View.GONE - binding.otherCheck.isSelected = false - binding.recentSms.isSelected = false - binding.missedCalls.isSelected = false - binding.notice.isSelected = false +// binding.notiList.visibility = View.GONE +// binding.mainList.visibility = View.GONE +// binding.infoList.visibility = View.GONE +// binding.smsList.visibility = View.GONE +// binding.otherCheck.isSelected = false +// binding.recentSms.isSelected = false +// binding.missedCalls.isSelected = false +// binding.notice.isSelected = false }