Migrate SearchSuggestionActivity to fragment
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -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" />
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user