Migrate SearchSuggestionActivity to fragment

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2023-06-22 22:13:42 +05:30
parent 9d0d819ac2
commit 43004cdf07
8 changed files with 47 additions and 44 deletions

View File

@@ -144,7 +144,6 @@
</intent-filter>
</activity>
<activity android:name=".view.ui.search.SearchSuggestionActivity" />
<activity android:name=".view.ui.search.SearchResultsActivity" />
<activity android:name=".view.ui.commons.StreamBrowseActivity" />
<activity android:name=".view.ui.details.ScreenshotActivity" />

View File

@@ -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)
}
}

View File

@@ -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<SearchSuggestEntry>) {
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())
}
}
}

View File

@@ -18,9 +18,11 @@
-->
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/coordinator"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
tools:context=".view.ui.search.SearchSuggestionFragment">
<RelativeLayout
android:layout_width="match_parent"

View File

@@ -75,4 +75,9 @@
android:name="com.aurora.store.view.ui.preferences.SettingsFragment"
android:label="@string/title_settings"
tools:layout="@layout/fragment_setting" />
<fragment
android:id="@+id/searchSuggestionFragment"
android:name="com.aurora.store.view.ui.search.SearchSuggestionFragment"
android:label="@string/title_search_suggestion"
tools:layout="@layout/fragment_search_suggestion" />
</navigation>

View File

@@ -305,6 +305,7 @@
<string name="title_purchase_history">"Purchase history"</string>
<string name="title_settings">"Settings"</string>
<string name="title_spoof_manager">"Spoof manager"</string>
<string name="title_search_suggestion">"Search suggestion"</string>
<string name="title_updates">"Updates"</string>
<string name="title_advanced">"Advanced"</string>
<string name="title_manual_download">"Manual download"</string>