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> </intent-filter>
</activity> </activity>
<activity android:name=".view.ui.search.SearchSuggestionActivity" />
<activity android:name=".view.ui.search.SearchResultsActivity" /> <activity android:name=".view.ui.search.SearchResultsActivity" />
<activity android:name=".view.ui.commons.StreamBrowseActivity" /> <activity android:name=".view.ui.commons.StreamBrowseActivity" />
<activity android:name=".view.ui.details.ScreenshotActivity" /> <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.core.view.GravityCompat
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.NavDestination import androidx.navigation.NavDestination
import androidx.navigation.findNavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.ui.setupWithNavController import androidx.navigation.ui.setupWithNavController
import com.aurora.Constants import com.aurora.Constants
@@ -55,7 +56,6 @@ import com.aurora.store.util.Log
import com.aurora.store.util.Preferences import com.aurora.store.util.Preferences
import com.aurora.store.view.ui.commons.BaseActivity import com.aurora.store.view.ui.commons.BaseActivity
import com.aurora.store.view.ui.downloads.DownloadActivity 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.aurora.store.view.ui.sheets.SelfUpdateSheet
import com.bumptech.glide.load.resource.bitmap.RoundedCorners import com.bumptech.glide.load.resource.bitmap.RoundedCorners
import com.google.android.material.bottomnavigation.BottomNavigationView import com.google.android.material.bottomnavigation.BottomNavigationView
@@ -196,10 +196,7 @@ class MainActivity : BaseActivity() {
private fun attachSearch() { private fun attachSearch() {
B.searchFab.setOnClickListener { B.searchFab.setOnClickListener {
startActivity( navController.navigate(R.id.searchSuggestionFragment)
Intent(this, SearchSuggestionActivity::class.java),
getEmptyActivityBundle()
)
} }
} }

View File

@@ -24,55 +24,56 @@ import android.os.Bundle
import android.text.Editable import android.text.Editable
import android.text.TextWatcher import android.text.TextWatcher
import android.view.KeyEvent import android.view.KeyEvent
import android.view.View
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import android.widget.TextView import android.widget.TextView
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import com.aurora.Constants import com.aurora.Constants
import com.aurora.extensions.browse import com.aurora.extensions.browse
import com.aurora.extensions.getEmptyActivityBundle import com.aurora.extensions.getEmptyActivityBundle
import com.aurora.extensions.open import com.aurora.extensions.open
import com.aurora.extensions.showKeyboard import com.aurora.extensions.showKeyboard
import com.aurora.gplayapi.SearchSuggestEntry 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.util.Preferences
import com.aurora.store.view.epoxy.views.SearchSuggestionViewModel_ 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.view.ui.downloads.DownloadActivity
import com.aurora.store.viewmodel.search.SearchSuggestionViewModel import com.aurora.store.viewmodel.search.SearchSuggestionViewModel
import com.google.android.material.textfield.TextInputEditText 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 VM: SearchSuggestionViewModel
lateinit var searchView: TextInputEditText lateinit var searchView: TextInputEditText
var query: String = String() var query: String = String()
override fun onConnected() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
hideNetworkConnectivitySheet() super.onViewCreated(view, savedInstanceState)
}
override fun onDisconnected() { _binding = FragmentSearchSuggestionBinding.bind(view)
showNetworkConnectivitySheet()
}
override fun onReconnected() {
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
B = ActivitySearchSuggestionBinding.inflate(layoutInflater)
VM = ViewModelProvider(this)[SearchSuggestionViewModel::class.java] 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(viewLifecycleOwner) {
VM.liveSearchSuggestions.observe(this) {
updateController(it) updateController(it)
} }
@@ -86,19 +87,13 @@ class SearchSuggestionActivity : BaseActivity() {
} }
} }
private fun attachToolbar() { override fun onDestroyView() {
searchView = B.layoutToolbarSearch.inputSearch super.onDestroyView()
_binding = null
B.layoutToolbarSearch.imgActionPrimary.setOnClickListener {
finishAfterTransition()
}
B.layoutToolbarSearch.imgActionSecondary.setOnClickListener {
open(DownloadActivity::class.java)
}
} }
private fun updateController(searchSuggestions: List<SearchSuggestEntry>) { private fun updateController(searchSuggestions: List<SearchSuggestEntry>) {
B.recycler.withModels { binding.recycler.withModels {
setFilterDuplicates(true) setFilterDuplicates(true)
searchSuggestions.forEach { searchSuggestions.forEach {
add( add(
@@ -150,12 +145,16 @@ class SearchSuggestionActivity : BaseActivity() {
} }
private fun search(query: String) { private fun search(query: String) {
if (Preferences.getBoolean(this, Preferences.PREFERENCE_ADVANCED_SEARCH_IN_CTT)) { if (Preferences.getBoolean(
this.browse("${Constants.PLAY_QUERY_URL}$query", true) requireContext(),
Preferences.PREFERENCE_ADVANCED_SEARCH_IN_CTT
)
) {
requireContext().browse("${Constants.PLAY_QUERY_URL}$query", true)
} else { } else {
val intent = Intent(this, SearchResultsActivity::class.java) val intent = Intent(requireContext(), SearchResultsActivity::class.java)
intent.putExtra(Constants.STRING_EXTRA, query) 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" <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:id="@+id/coordinator"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
tools:context=".view.ui.search.SearchSuggestionFragment">
<RelativeLayout <RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@@ -75,4 +75,9 @@
android:name="com.aurora.store.view.ui.preferences.SettingsFragment" android:name="com.aurora.store.view.ui.preferences.SettingsFragment"
android:label="@string/title_settings" android:label="@string/title_settings"
tools:layout="@layout/fragment_setting" /> 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> </navigation>

View File

@@ -305,6 +305,7 @@
<string name="title_purchase_history">"Purchase history"</string> <string name="title_purchase_history">"Purchase history"</string>
<string name="title_settings">"Settings"</string> <string name="title_settings">"Settings"</string>
<string name="title_spoof_manager">"Spoof manager"</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_updates">"Updates"</string>
<string name="title_advanced">"Advanced"</string> <string name="title_advanced">"Advanced"</string>
<string name="title_manual_download">"Manual download"</string> <string name="title_manual_download">"Manual download"</string>