From 43004cdf07b7e2566dbb518f7b0b228a7c06eaf8 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Thu, 22 Jun 2023 22:13:42 +0530 Subject: [PATCH] Migrate SearchSuggestionActivity to fragment Signed-off-by: Aayush Gupta --- app/src/main/AndroidManifest.xml | 1 - .../java/com/aurora/store/MainActivity.kt | 7 +- ...tsActivity.kt => SearchResultsFragment.kt} | 0 .../ui/search/SearchSuggestionFragment.kt | 73 +++++++++---------- ..._result.xml => fragment_search_result.xml} | 0 .../res/layout/fragment_search_suggestion.xml | 4 +- .../main/res/navigation/mobile_navigation.xml | 5 ++ app/src/main/res/values/strings.xml | 1 + 8 files changed, 47 insertions(+), 44 deletions(-) rename app/src/main/java/com/aurora/store/view/ui/search/{SearchResultsActivity.kt => SearchResultsFragment.kt} (100%) rename app/src/main/res/layout/{activity_search_result.xml => fragment_search_result.xml} (100%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cf36bc70a..cf7e5eaec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -144,7 +144,6 @@ - diff --git a/app/src/main/java/com/aurora/store/MainActivity.kt b/app/src/main/java/com/aurora/store/MainActivity.kt index 403f8eba6..0d98cebb7 100644 --- a/app/src/main/java/com/aurora/store/MainActivity.kt +++ b/app/src/main/java/com/aurora/store/MainActivity.kt @@ -41,6 +41,7 @@ import androidx.core.graphics.ColorUtils import androidx.core.view.GravityCompat import androidx.navigation.NavController import androidx.navigation.NavDestination +import androidx.navigation.findNavController import androidx.navigation.fragment.NavHostFragment import androidx.navigation.ui.setupWithNavController import com.aurora.Constants @@ -55,7 +56,6 @@ import com.aurora.store.util.Log import com.aurora.store.util.Preferences import com.aurora.store.view.ui.commons.BaseActivity import com.aurora.store.view.ui.downloads.DownloadActivity -import com.aurora.store.view.ui.search.SearchSuggestionActivity import com.aurora.store.view.ui.sheets.SelfUpdateSheet import com.bumptech.glide.load.resource.bitmap.RoundedCorners import com.google.android.material.bottomnavigation.BottomNavigationView @@ -196,10 +196,7 @@ class MainActivity : BaseActivity() { private fun attachSearch() { B.searchFab.setOnClickListener { - startActivity( - Intent(this, SearchSuggestionActivity::class.java), - getEmptyActivityBundle() - ) + navController.navigate(R.id.searchSuggestionFragment) } } diff --git a/app/src/main/java/com/aurora/store/view/ui/search/SearchResultsActivity.kt b/app/src/main/java/com/aurora/store/view/ui/search/SearchResultsFragment.kt similarity index 100% rename from app/src/main/java/com/aurora/store/view/ui/search/SearchResultsActivity.kt rename to app/src/main/java/com/aurora/store/view/ui/search/SearchResultsFragment.kt diff --git a/app/src/main/java/com/aurora/store/view/ui/search/SearchSuggestionFragment.kt b/app/src/main/java/com/aurora/store/view/ui/search/SearchSuggestionFragment.kt index e1bcb5e04..c0268979b 100644 --- a/app/src/main/java/com/aurora/store/view/ui/search/SearchSuggestionFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/search/SearchSuggestionFragment.kt @@ -24,55 +24,56 @@ import android.os.Bundle import android.text.Editable import android.text.TextWatcher import android.view.KeyEvent +import android.view.View import android.view.inputmethod.EditorInfo import android.widget.TextView +import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider +import androidx.navigation.fragment.findNavController import com.aurora.Constants import com.aurora.extensions.browse import com.aurora.extensions.getEmptyActivityBundle import com.aurora.extensions.open import com.aurora.extensions.showKeyboard import com.aurora.gplayapi.SearchSuggestEntry -import com.aurora.store.databinding.ActivitySearchSuggestionBinding +import com.aurora.store.R +import com.aurora.store.databinding.FragmentSearchSuggestionBinding import com.aurora.store.util.Preferences import com.aurora.store.view.epoxy.views.SearchSuggestionViewModel_ -import com.aurora.store.view.ui.commons.BaseActivity import com.aurora.store.view.ui.downloads.DownloadActivity import com.aurora.store.viewmodel.search.SearchSuggestionViewModel import com.google.android.material.textfield.TextInputEditText -class SearchSuggestionActivity : BaseActivity() { +class SearchSuggestionFragment : Fragment(R.layout.fragment_search_suggestion) { + + private var _binding: FragmentSearchSuggestionBinding? = null + private val binding: FragmentSearchSuggestionBinding + get() = _binding!! - lateinit var B: ActivitySearchSuggestionBinding lateinit var VM: SearchSuggestionViewModel - lateinit var searchView: TextInputEditText var query: String = String() - override fun onConnected() { - hideNetworkConnectivitySheet() - } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) - override fun onDisconnected() { - showNetworkConnectivitySheet() - } - - override fun onReconnected() { - } - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - - B = ActivitySearchSuggestionBinding.inflate(layoutInflater) + _binding = FragmentSearchSuggestionBinding.bind(view) VM = ViewModelProvider(this)[SearchSuggestionViewModel::class.java] - setContentView(B.root) + // Toolbar + binding.layoutToolbarSearch.apply { + searchView = inputSearch + imgActionPrimary.setOnClickListener { + findNavController().navigateUp() + } + imgActionSecondary.setOnClickListener { + activity?.open(DownloadActivity::class.java) + } + } - attachToolbar() - - VM.liveSearchSuggestions.observe(this) { + VM.liveSearchSuggestions.observe(viewLifecycleOwner) { updateController(it) } @@ -86,19 +87,13 @@ class SearchSuggestionActivity : BaseActivity() { } } - private fun attachToolbar() { - searchView = B.layoutToolbarSearch.inputSearch - - B.layoutToolbarSearch.imgActionPrimary.setOnClickListener { - finishAfterTransition() - } - B.layoutToolbarSearch.imgActionSecondary.setOnClickListener { - open(DownloadActivity::class.java) - } + override fun onDestroyView() { + super.onDestroyView() + _binding = null } private fun updateController(searchSuggestions: List) { - B.recycler.withModels { + binding.recycler.withModels { setFilterDuplicates(true) searchSuggestions.forEach { add( @@ -150,12 +145,16 @@ class SearchSuggestionActivity : BaseActivity() { } private fun search(query: String) { - if (Preferences.getBoolean(this, Preferences.PREFERENCE_ADVANCED_SEARCH_IN_CTT)) { - this.browse("${Constants.PLAY_QUERY_URL}$query", true) + if (Preferences.getBoolean( + requireContext(), + Preferences.PREFERENCE_ADVANCED_SEARCH_IN_CTT + ) + ) { + requireContext().browse("${Constants.PLAY_QUERY_URL}$query", true) } else { - val intent = Intent(this, SearchResultsActivity::class.java) + val intent = Intent(requireContext(), SearchResultsActivity::class.java) intent.putExtra(Constants.STRING_EXTRA, query) - startActivity(intent, getEmptyActivityBundle()) + startActivity(intent, requireContext().getEmptyActivityBundle()) } } } diff --git a/app/src/main/res/layout/activity_search_result.xml b/app/src/main/res/layout/fragment_search_result.xml similarity index 100% rename from app/src/main/res/layout/activity_search_result.xml rename to app/src/main/res/layout/fragment_search_result.xml diff --git a/app/src/main/res/layout/fragment_search_suggestion.xml b/app/src/main/res/layout/fragment_search_suggestion.xml index 7f56e2126..d844fdb65 100644 --- a/app/src/main/res/layout/fragment_search_suggestion.xml +++ b/app/src/main/res/layout/fragment_search_suggestion.xml @@ -18,9 +18,11 @@ --> + android:layout_height="match_parent" + tools:context=".view.ui.search.SearchSuggestionFragment"> + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 648ece348..5a0f0d3d4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -305,6 +305,7 @@ "Purchase history" "Settings" "Spoof manager" + "Search suggestion" "Updates" "Advanced" "Manual download"