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