mirror of
				https://github.com/recloudstream/cloudstream.git
				synced 2024-08-15 01:53:11 +00:00 
			
		
		
		
	added search to homepage
This commit is contained in:
		
							parent
							
								
									e2c29338d2
								
							
						
					
					
						commit
						1a5fc93eba
					
				
					 9 changed files with 83 additions and 44 deletions
				
			
		| 
						 | 
				
			
			@ -11,6 +11,7 @@ import android.view.LayoutInflater
 | 
			
		|||
import android.view.View
 | 
			
		||||
import android.view.ViewGroup
 | 
			
		||||
import android.widget.*
 | 
			
		||||
import androidx.appcompat.widget.SearchView
 | 
			
		||||
import androidx.core.view.isVisible
 | 
			
		||||
import androidx.core.widget.NestedScrollView
 | 
			
		||||
import androidx.fragment.app.Fragment
 | 
			
		||||
| 
						 | 
				
			
			@ -37,6 +38,7 @@ import com.lagradost.cloudstream3.ui.APIRepository.Companion.noneApi
 | 
			
		|||
import com.lagradost.cloudstream3.ui.APIRepository.Companion.randomApi
 | 
			
		||||
import com.lagradost.cloudstream3.ui.AutofitRecyclerView
 | 
			
		||||
import com.lagradost.cloudstream3.ui.WatchType
 | 
			
		||||
import com.lagradost.cloudstream3.ui.quicksearch.QuickSearchFragment
 | 
			
		||||
import com.lagradost.cloudstream3.ui.result.START_ACTION_RESUME_LATEST
 | 
			
		||||
import com.lagradost.cloudstream3.ui.search.*
 | 
			
		||||
import com.lagradost.cloudstream3.ui.search.SearchFragment.Companion.filterSearchResponse
 | 
			
		||||
| 
						 | 
				
			
			@ -65,7 +67,6 @@ import kotlinx.android.synthetic.main.fragment_home.*
 | 
			
		|||
import kotlinx.android.synthetic.main.fragment_home.home_api_fab
 | 
			
		||||
import kotlinx.android.synthetic.main.fragment_home.home_bookmarked_child_recyclerview
 | 
			
		||||
import kotlinx.android.synthetic.main.fragment_home.home_bookmarked_holder
 | 
			
		||||
import kotlinx.android.synthetic.main.fragment_home.home_change_api
 | 
			
		||||
import kotlinx.android.synthetic.main.fragment_home.home_change_api_loading
 | 
			
		||||
import kotlinx.android.synthetic.main.fragment_home.home_loaded
 | 
			
		||||
import kotlinx.android.synthetic.main.fragment_home.home_loading
 | 
			
		||||
| 
						 | 
				
			
			@ -230,7 +231,8 @@ class HomeFragment : Fragment() {
 | 
			
		|||
                    }.sortedBy { it.name.lowercase() }.toMutableList()
 | 
			
		||||
                    currentValidApis.addAll(0, validAPIs.subList(0, 2))
 | 
			
		||||
 | 
			
		||||
                    val names = currentValidApis.map { if(isMultiLang) "${getFlagFromIso(it.lang)?.plus(" ") ?: ""}${it.name}" else it.name }
 | 
			
		||||
                    val names =
 | 
			
		||||
                        currentValidApis.map { if (isMultiLang) "${getFlagFromIso(it.lang)?.plus(" ") ?: ""}${it.name}" else it.name }
 | 
			
		||||
                    val index = currentValidApis.map { it.name }.indexOf(currentApiName)
 | 
			
		||||
                    listView?.setItemChecked(index, true)
 | 
			
		||||
                    arrayAdapter.addAll(names)
 | 
			
		||||
| 
						 | 
				
			
			@ -379,7 +381,8 @@ class HomeFragment : Fragment() {
 | 
			
		|||
        //Disable Random button, if its toggled off on settings
 | 
			
		||||
        context?.let {
 | 
			
		||||
            val settingsManager = PreferenceManager.getDefaultSharedPreferences(it)
 | 
			
		||||
            toggleRandomButton = settingsManager.getBoolean(getString(R.string.random_button_key), false)
 | 
			
		||||
            toggleRandomButton =
 | 
			
		||||
                settingsManager.getBoolean(getString(R.string.random_button_key), false)
 | 
			
		||||
            home_random?.isVisible = toggleRandomButton
 | 
			
		||||
            if (!toggleRandomButton) {
 | 
			
		||||
                home_random?.visibility = View.GONE
 | 
			
		||||
| 
						 | 
				
			
			@ -389,6 +392,7 @@ class HomeFragment : Fragment() {
 | 
			
		|||
        observe(homeViewModel.apiName) { apiName ->
 | 
			
		||||
            currentApiName = apiName
 | 
			
		||||
            setKey(HOMEPAGE_API, apiName)
 | 
			
		||||
            home_api_fab?.text = apiName
 | 
			
		||||
            home_provider_name?.text = apiName
 | 
			
		||||
            home_provider_meta_info?.isVisible = false
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -453,6 +457,19 @@ class HomeFragment : Fragment() {
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        home_search?.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
 | 
			
		||||
            override fun onQueryTextSubmit(query: String): Boolean {
 | 
			
		||||
                QuickSearchFragment.pushSearch(activity, query)
 | 
			
		||||
 | 
			
		||||
                return true
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            override fun onQueryTextChange(newText: String): Boolean {
 | 
			
		||||
                //searchViewModel.quickSearch(newText)
 | 
			
		||||
                return true
 | 
			
		||||
            }
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        observe(homeViewModel.page) { data ->
 | 
			
		||||
            when (data) {
 | 
			
		||||
                is Resource.Success -> {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -113,11 +113,11 @@ class QuickSearchFragment : Fragment() {
 | 
			
		|||
        val searchExitIcon =
 | 
			
		||||
            quick_search?.findViewById<ImageView>(androidx.appcompat.R.id.search_close_btn)
 | 
			
		||||
 | 
			
		||||
        val searchMagIcon =
 | 
			
		||||
            quick_search?.findViewById<ImageView>(androidx.appcompat.R.id.search_mag_icon)
 | 
			
		||||
        //val searchMagIcon =
 | 
			
		||||
        //    quick_search?.findViewById<ImageView>(androidx.appcompat.R.id.search_mag_icon)
 | 
			
		||||
 | 
			
		||||
        searchMagIcon?.scaleX = 0.65f
 | 
			
		||||
        searchMagIcon?.scaleY = 0.65f
 | 
			
		||||
        //searchMagIcon?.scaleX = 0.65f
 | 
			
		||||
        //searchMagIcon?.scaleY = 0.65f
 | 
			
		||||
 | 
			
		||||
        quick_search?.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
 | 
			
		||||
            override fun onQueryTextSubmit(query: String): Boolean {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -134,10 +134,10 @@ class SearchFragment : Fragment() {
 | 
			
		|||
 | 
			
		||||
        val searchExitIcon =
 | 
			
		||||
            main_search.findViewById<ImageView>(androidx.appcompat.R.id.search_close_btn)
 | 
			
		||||
        val searchMagIcon =
 | 
			
		||||
            main_search.findViewById<ImageView>(androidx.appcompat.R.id.search_mag_icon)
 | 
			
		||||
        searchMagIcon.scaleX = 0.65f
 | 
			
		||||
        searchMagIcon.scaleY = 0.65f
 | 
			
		||||
        // val searchMagIcon =
 | 
			
		||||
        //    main_search.findViewById<ImageView>(androidx.appcompat.R.id.search_mag_icon)
 | 
			
		||||
        //searchMagIcon.scaleX = 0.65f
 | 
			
		||||
        //searchMagIcon.scaleY = 0.65f
 | 
			
		||||
 | 
			
		||||
        context?.let { ctx ->
 | 
			
		||||
            val validAPIs = ctx.filterProviderByPreferredMedia()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
 | 
			
		||||
    <corners android:radius="10dp" />
 | 
			
		||||
    <corners android:radius="20dp" />
 | 
			
		||||
    <solid android:color="?attr/primaryBlackBackground"/>
 | 
			
		||||
    <!--<stroke android:width="0.5dp" android:color="@color/searchColorTransparent" />-->
 | 
			
		||||
</shape>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -179,7 +179,6 @@
 | 
			
		|||
                    android:layout_height="70dp">
 | 
			
		||||
 | 
			
		||||
                <LinearLayout
 | 
			
		||||
                        android:layout_marginEnd="50dp"
 | 
			
		||||
                        android:paddingTop="10dp"
 | 
			
		||||
                        android:paddingBottom="10dp"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -195,8 +194,8 @@
 | 
			
		|||
                            android:layout_marginEnd="20dp"
 | 
			
		||||
                            app:cardCornerRadius="100dp"
 | 
			
		||||
                            android:layout_gravity="center_vertical"
 | 
			
		||||
                            android:layout_width="35dp"
 | 
			
		||||
                            android:layout_height="35dp">
 | 
			
		||||
                            android:layout_width="40dp"
 | 
			
		||||
                            android:layout_height="40dp">
 | 
			
		||||
 | 
			
		||||
                        <ImageView
 | 
			
		||||
                                android:id="@+id/home_profile_picture"
 | 
			
		||||
| 
						 | 
				
			
			@ -205,7 +204,30 @@
 | 
			
		|||
                                tools:ignore="ContentDescription" />
 | 
			
		||||
                    </androidx.cardview.widget.CardView>
 | 
			
		||||
 | 
			
		||||
                    <FrameLayout
 | 
			
		||||
                            android:layout_gravity="center_vertical"
 | 
			
		||||
                            android:visibility="visible"
 | 
			
		||||
                            android:background="@drawable/search_background"
 | 
			
		||||
                            android:layout_width="match_parent"
 | 
			
		||||
                            android:layout_height="40dp">
 | 
			
		||||
 | 
			
		||||
                        <androidx.appcompat.widget.SearchView
 | 
			
		||||
                                android:id="@+id/home_search"
 | 
			
		||||
                                app:queryBackground="@color/transparent"
 | 
			
		||||
 | 
			
		||||
                                app:searchIcon="@drawable/search_icon"
 | 
			
		||||
                                android:paddingStart="-10dp"
 | 
			
		||||
                                android:iconifiedByDefault="false"
 | 
			
		||||
                                app:queryHint="@string/search_hint"
 | 
			
		||||
                                android:layout_width="match_parent"
 | 
			
		||||
                                android:layout_height="match_parent"
 | 
			
		||||
                                android:layout_gravity="center_vertical"
 | 
			
		||||
                                app:iconifiedByDefault="false"
 | 
			
		||||
                                tools:ignore="RtlSymmetry" />
 | 
			
		||||
                    </FrameLayout>
 | 
			
		||||
 | 
			
		||||
                    <LinearLayout
 | 
			
		||||
                            android:visibility="gone"
 | 
			
		||||
                            android:gravity="center"
 | 
			
		||||
 | 
			
		||||
                            android:orientation="vertical"
 | 
			
		||||
| 
						 | 
				
			
			@ -235,24 +257,24 @@
 | 
			
		|||
                    </LinearLayout>
 | 
			
		||||
                </LinearLayout>
 | 
			
		||||
 | 
			
		||||
                <!--
 | 
			
		||||
                                <ImageView
 | 
			
		||||
                                        android:nextFocusDown="@id/home_main_poster_recyclerview"
 | 
			
		||||
                                        android:nextFocusUp="@id/nav_rail_view"
 | 
			
		||||
                                        android:nextFocusLeft="@id/nav_rail_view"
 | 
			
		||||
 | 
			
		||||
                <ImageView
 | 
			
		||||
                        android:nextFocusDown="@id/home_main_poster_recyclerview"
 | 
			
		||||
                        android:nextFocusUp="@id/nav_rail_view"
 | 
			
		||||
                        android:nextFocusLeft="@id/nav_rail_view"
 | 
			
		||||
                                        android:id="@+id/home_change_api"
 | 
			
		||||
                                        android:layout_margin="10dp"
 | 
			
		||||
                                        android:layout_gravity="center|end"
 | 
			
		||||
                                        android:background="?android:attr/selectableItemBackgroundBorderless"
 | 
			
		||||
 | 
			
		||||
                        android:id="@+id/home_change_api"
 | 
			
		||||
                        android:layout_margin="10dp"
 | 
			
		||||
                        android:layout_gravity="center|end"
 | 
			
		||||
                        android:background="?android:attr/selectableItemBackgroundBorderless"
 | 
			
		||||
                                        android:src="@drawable/ic_baseline_keyboard_arrow_down_24"
 | 
			
		||||
                                        android:layout_width="30dp"
 | 
			
		||||
                                        android:layout_height="30dp"
 | 
			
		||||
                                        android:contentDescription="@string/home_change_provider_img_des">
 | 
			
		||||
 | 
			
		||||
                        android:src="@drawable/ic_baseline_keyboard_arrow_down_24"
 | 
			
		||||
                        android:layout_width="30dp"
 | 
			
		||||
                        android:layout_height="30dp"
 | 
			
		||||
                        android:contentDescription="@string/home_change_provider_img_des">
 | 
			
		||||
 | 
			
		||||
                    <requestFocus />
 | 
			
		||||
                </ImageView>
 | 
			
		||||
                                    <requestFocus />
 | 
			
		||||
                                </ImageView>-->
 | 
			
		||||
            </FrameLayout>
 | 
			
		||||
 | 
			
		||||
            <LinearLayout
 | 
			
		||||
| 
						 | 
				
			
			@ -512,14 +534,15 @@
 | 
			
		|||
            style="@style/ExtendedFloatingActionButton"
 | 
			
		||||
            android:textColor="?attr/textColor"
 | 
			
		||||
            tools:ignore="ContentDescription" />
 | 
			
		||||
 | 
			
		||||
    <com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
 | 
			
		||||
        android:visibility="gone"
 | 
			
		||||
        tools:visibility="visible"
 | 
			
		||||
        android:text="@string/home_random"
 | 
			
		||||
        android:id="@+id/home_random"
 | 
			
		||||
        android:layout_gravity="bottom|start"
 | 
			
		||||
        app:icon="@drawable/ic_baseline_play_arrow_24"
 | 
			
		||||
        style="@style/ExtendedFloatingActionButton"
 | 
			
		||||
        android:textColor="?attr/textColor"
 | 
			
		||||
        tools:ignore="ContentDescription" />
 | 
			
		||||
            android:visibility="gone"
 | 
			
		||||
            tools:visibility="visible"
 | 
			
		||||
            android:text="@string/home_random"
 | 
			
		||||
            android:id="@+id/home_random"
 | 
			
		||||
            android:layout_gravity="bottom|start"
 | 
			
		||||
            app:icon="@drawable/ic_baseline_play_arrow_24"
 | 
			
		||||
            style="@style/ExtendedFloatingActionButton"
 | 
			
		||||
            android:textColor="?attr/textColor"
 | 
			
		||||
            tools:ignore="ContentDescription" />
 | 
			
		||||
</FrameLayout>
 | 
			
		||||
| 
						 | 
				
			
			@ -15,7 +15,7 @@
 | 
			
		|||
            android:layout_margin="10dp"
 | 
			
		||||
            android:background="@drawable/search_background"
 | 
			
		||||
            android:layout_width="match_parent"
 | 
			
		||||
            android:layout_height="45dp">
 | 
			
		||||
            android:layout_height="40dp">
 | 
			
		||||
 | 
			
		||||
        <FrameLayout
 | 
			
		||||
                android:layout_gravity="center_vertical"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -33,7 +33,7 @@
 | 
			
		|||
                android:background="@drawable/search_background"
 | 
			
		||||
                android:layout_gravity="center_vertical"
 | 
			
		||||
                android:layout_width="match_parent"
 | 
			
		||||
                android:layout_height="45dp">
 | 
			
		||||
                android:layout_height="40dp">
 | 
			
		||||
 | 
			
		||||
            <androidx.appcompat.widget.SearchView
 | 
			
		||||
                    android:nextFocusRight="@id/search_filter"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,7 +4,6 @@
 | 
			
		|||
    <string name="search_providers_list_key" translatable="false">search_providers_list</string>
 | 
			
		||||
    <string name="locale_key" translatable="false">app_locale</string>
 | 
			
		||||
    <string name="search_types_list_key" translatable="false">search_type_list</string>
 | 
			
		||||
    <string name="grid_format_key" translatable="false">grid_format</string>
 | 
			
		||||
    <string name="auto_update_key" translatable="false">auto_update</string>
 | 
			
		||||
    <string name="prerelease_update_key" translatable="false">prerelease_update</string>
 | 
			
		||||
    <string name="manual_check_update_key" translatable="false">manual_check_update</string>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue