mirror of
				https://github.com/recloudstream/cloudstream.git
				synced 2024-08-15 01:53:11 +00:00 
			
		
		
		
	better dpad support and bug fix
This commit is contained in:
		
							parent
							
								
									44e0c1c606
								
							
						
					
					
						commit
						627dd1776b
					
				
					 27 changed files with 344 additions and 174 deletions
				
			
		|  | @ -117,6 +117,7 @@ class GrdLayoutManager(val context: Context, val spanCoun: Int) : GridLayoutMana | |||
|     } | ||||
| } | ||||
| 
 | ||||
| // https://riptutorial.com/android/example/4810/gridlayoutmanager-with-dynamic-span-count | ||||
| class AutofitRecyclerView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : | ||||
|     RecyclerView(context, attrs) { | ||||
| 
 | ||||
|  | @ -145,13 +146,4 @@ class AutofitRecyclerView @JvmOverloads constructor(context: Context, attrs: Att | |||
| 
 | ||||
|         layoutManager = manager | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     /*override fun onMeasure(widthSpec: Int, heightSpec: Int) { | ||||
|         super.onMeasure(widthSpec, heightSpec) | ||||
|         if (spanCount == 0 && columnWidth > 0) { | ||||
|             val count = max(1, measuredWidth / columnWidth) | ||||
|             spanCount = count | ||||
|         } | ||||
|     }*/ | ||||
| } | ||||
|  | @ -406,7 +406,7 @@ class HomeFragment : Fragment() { | |||
| 
 | ||||
|         reloadStored() | ||||
|         val apiName = context?.getKey<String>(HOMEPAGE_API) | ||||
|         if(homeViewModel.apiName.value != apiName) { | ||||
|         if(homeViewModel.apiName.value != apiName || apiName == null) { | ||||
|             println("Caught home: " + homeViewModel.apiName.value + " at " + apiName) | ||||
|             homeViewModel.loadAndCancel(apiName) | ||||
|         } | ||||
|  |  | |||
|  | @ -52,7 +52,6 @@ class HomeViewModel : ViewModel() { | |||
|     val resumeWatching: LiveData<List<SearchResponse>> = _resumeWatching | ||||
| 
 | ||||
|     fun loadResumeWatching(context: Context) = viewModelScope.launch { | ||||
|         println("Resume::") | ||||
|         val resumeWatching = withContext(Dispatchers.IO) { | ||||
|             context.getAllResumeStateIds().mapNotNull { id -> | ||||
|                 context.getLastWatched(id) | ||||
|  | @ -128,7 +127,7 @@ class HomeViewModel : ViewModel() { | |||
|     } | ||||
| 
 | ||||
|     var onGoingLoad: Job? = null | ||||
|     fun loadAndCancel(api: MainAPI?) { | ||||
|     private fun loadAndCancel(api: MainAPI?) { | ||||
|         onGoingLoad?.cancel() | ||||
|         onGoingLoad = load(api) | ||||
|     } | ||||
|  | @ -139,6 +138,7 @@ class HomeViewModel : ViewModel() { | |||
|         } else { | ||||
|             autoloadRepo() | ||||
|         } | ||||
| 
 | ||||
|         _apiName.postValue(repo?.name) | ||||
|         if (repo?.hasMainPage == true) { | ||||
|             _page.postValue(Resource.Loading()) | ||||
|  |  | |||
|  | @ -225,6 +225,8 @@ class ResultFragment : Fragment() { | |||
|                 result_loading.visibility = GONE | ||||
|                 result_finish_loading.visibility = VISIBLE | ||||
|                 result_loading_error.visibility = GONE | ||||
| 
 | ||||
|                 result_bookmark_button.requestFocus() | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  |  | |||
|  | @ -54,6 +54,8 @@ data class SaveCaptionStyle( | |||
|     var fixedTextSize: Float?, | ||||
| ) | ||||
| 
 | ||||
| const val DEF_SUBS_ELEVATION = 20 | ||||
| 
 | ||||
| class SubtitlesFragment : Fragment() { | ||||
|     companion object { | ||||
|         val applyStyleEvent = Event<SaveCaptionStyle>() | ||||
|  | @ -94,7 +96,7 @@ class SubtitlesFragment : Fragment() { | |||
|                 CaptionStyleCompat.EDGE_TYPE_OUTLINE, | ||||
|                 getDefColor(1), | ||||
|                 null, | ||||
|                 0, | ||||
|                 DEF_SUBS_ELEVATION, | ||||
|                 null, | ||||
|             ) | ||||
|         } | ||||
|  | @ -237,7 +239,7 @@ class SubtitlesFragment : Fragment() { | |||
|         } | ||||
| 
 | ||||
|         subs_subtitle_elevation.setOnLongClickListener { | ||||
|             state.elevation = 0 | ||||
|             state.elevation = DEF_SUBS_ELEVATION | ||||
|             it.context.updateState() | ||||
|             showToast(activity, R.string.subs_default_reset_toast, Toast.LENGTH_SHORT) | ||||
|             return@setOnLongClickListener true | ||||
|  |  | |||
|  | @ -16,7 +16,10 @@ import android.view.View | |||
| import android.view.WindowManager | ||||
| import android.view.inputmethod.InputMethodManager | ||||
| import android.widget.ImageView | ||||
| import androidx.annotation.* | ||||
| import androidx.annotation.AttrRes | ||||
| import androidx.annotation.ColorInt | ||||
| import androidx.annotation.IdRes | ||||
| import androidx.annotation.RequiresApi | ||||
| import androidx.appcompat.view.ContextThemeWrapper | ||||
| import androidx.appcompat.view.menu.MenuBuilder | ||||
| import androidx.appcompat.widget.PopupMenu | ||||
|  | @ -30,7 +33,6 @@ import androidx.fragment.app.Fragment | |||
| import androidx.fragment.app.FragmentActivity | ||||
| import androidx.navigation.fragment.NavHostFragment | ||||
| import androidx.preference.PreferenceManager | ||||
| import com.bumptech.glide.Glide | ||||
| import com.bumptech.glide.load.model.GlideUrl | ||||
| import com.lagradost.cloudstream3.R | ||||
| import com.lagradost.cloudstream3.mvvm.logError | ||||
|  | @ -71,8 +73,8 @@ object UIHelper { | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     fun Activity?.navigate(@IdRes navigation : Int, arguments : Bundle? = null) { | ||||
|         if(this is FragmentActivity) { | ||||
|     fun Activity?.navigate(@IdRes navigation: Int, arguments: Bundle? = null) { | ||||
|         if (this is FragmentActivity) { | ||||
|             (supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as? NavHostFragment?)?.navController?.navigate( | ||||
|                 navigation, arguments | ||||
|             ) | ||||
|  | @ -93,13 +95,13 @@ object UIHelper { | |||
|         return color | ||||
|     } | ||||
| 
 | ||||
|     fun ImageView?.setImage(url : String?) { | ||||
|         if(this == null || url.isNullOrBlank()) return | ||||
|     fun ImageView?.setImage(url: String?) { | ||||
|         if (this == null || url.isNullOrBlank()) return | ||||
|         try { | ||||
|             GlideApp.with(this.context) | ||||
|                 .load(GlideUrl(url)) | ||||
|                 .into(this) | ||||
|         } catch (e : Exception) { | ||||
|         } catch (e: Exception) { | ||||
|             logError(e) | ||||
|         } | ||||
|     } | ||||
|  | @ -211,6 +213,7 @@ object UIHelper { | |||
|     fun Context.fixPaddingStatusbar(v: View) { | ||||
|         v.setPadding(v.paddingLeft, v.paddingTop + getStatusBarHeight(), v.paddingRight, v.paddingBottom) | ||||
|     } | ||||
| 
 | ||||
|     fun Context.getNavigationBarHeight(): Int { | ||||
|         var result = 0 | ||||
|         val resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android") | ||||
|  | @ -281,31 +284,6 @@ object UIHelper { | |||
|         inputMethodManager.hideSoftInputFromWindow(view.windowToken, 0) | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     /**id, icon, stringRes */ | ||||
|     @SuppressLint("RestrictedApi") | ||||
|     fun View.popupMenu( | ||||
|         items: List<Triple<Int, Int, Int>>, | ||||
|         onMenuItemClick: MenuItem.() -> Unit, | ||||
|     ): PopupMenu { | ||||
|         val ctw = ContextThemeWrapper(context, R.style.PopupMenu) | ||||
|         val popup = PopupMenu(ctw, this, Gravity.NO_GRAVITY, R.attr.actionOverflowMenuStyle, 0) | ||||
| 
 | ||||
|         items.forEach { (id, icon, stringRes) -> | ||||
|             popup.menu.add(0, id, 0, stringRes).setIcon(icon) | ||||
|         } | ||||
| 
 | ||||
|         (popup.menu as? MenuBuilder)?.setOptionalIconsVisible(true) | ||||
| 
 | ||||
|         popup.setOnMenuItemClickListener { | ||||
|             it.onMenuItemClick() | ||||
|             true | ||||
|         } | ||||
| 
 | ||||
|         popup.show() | ||||
|         return popup | ||||
|     } | ||||
| 
 | ||||
|     /**id, stringRes */ | ||||
|     @SuppressLint("RestrictedApi") | ||||
|     fun View.popupMenuNoIcons( | ||||
|  |  | |||
							
								
								
									
										10
									
								
								app/src/main/res/drawable/outline.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								app/src/main/res/drawable/outline.xml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <shape xmlns:android="http://schemas.android.com/apk/res/android" > | ||||
|     <stroke android:width="2dp" | ||||
|             android:color="?attr/white"/> | ||||
|     <corners | ||||
|             android:bottomLeftRadius="2dp" | ||||
|             android:bottomRightRadius="2dp" | ||||
|             android:topLeftRadius="2dp" | ||||
|             android:topRightRadius="2dp" /> | ||||
| </shape> | ||||
							
								
								
									
										5
									
								
								app/src/main/res/drawable/outline_drawable.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								app/src/main/res/drawable/outline_drawable.xml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,5 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <selector xmlns:android="http://schemas.android.com/apk/res/android"> | ||||
|     <item android:state_focused="true" | ||||
|           android:drawable="@drawable/outline"/> <!-- focused --> | ||||
| </selector> | ||||
|  | @ -22,6 +22,9 @@ | |||
|             android:layout_height="wrap_content"> | ||||
|     </TextView> | ||||
|     <ListView | ||||
|             android:nextFocusRight="@id/cancel_btt" | ||||
|             android:nextFocusLeft="@id/apply_btt" | ||||
| 
 | ||||
|             android:id="@+id/listview1" | ||||
|             android:layout_marginTop="-10dp" | ||||
|             android:layout_marginBottom="60dp" | ||||
|  |  | |||
|  | @ -1,20 +1,25 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <androidx.cardview.widget.CardView | ||||
|         xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|         android:layout_width="match_parent" | ||||
|         android:layout_height="50dp" | ||||
|         xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
|         xmlns:tools="http://schemas.android.com/tools" | ||||
| 
 | ||||
|         android:nextFocusRight="@id/download_child_episode_download" | ||||
|         android:nextFocusLeft="@id/download_child_episode_download" | ||||
| 
 | ||||
|         android:id="@+id/download_child_episode_holder" | ||||
|         android:layout_width="match_parent" | ||||
|         android:layout_height="50dp" | ||||
|         app:cardCornerRadius="@dimen/roundedImageRadius" | ||||
|         app:cardBackgroundColor="@color/transparent" | ||||
|         app:cardElevation="0dp" | ||||
|         android:id="@+id/download_child_episode_holder" | ||||
|         android:foreground="?android:attr/selectableItemBackgroundBorderless" | ||||
|         android:foreground="@drawable/outline_drawable" | ||||
|         android:layout_marginBottom="5dp" | ||||
| > | ||||
|     <androidx.core.widget.ContentLoadingProgressBar | ||||
|             android:layout_marginBottom="-1.5dp" | ||||
|             android:id="@+id/download_child_episode_progress" | ||||
| 
 | ||||
|             android:layout_marginBottom="-1.5dp" | ||||
|             android:progressTint="?attr/colorPrimary" | ||||
|             android:progressBackgroundTint="?attr/colorPrimary" | ||||
|             style="@android:style/Widget.Material.ProgressBar.Horizontal" | ||||
|  | @ -23,13 +28,15 @@ | |||
|             android:layout_gravity="bottom" | ||||
|             android:layout_height="5dp"> | ||||
|     </androidx.core.widget.ContentLoadingProgressBar> | ||||
|     <GridLayout android:layout_width="match_parent" android:layout_height="match_parent"> | ||||
|     <GridLayout | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="match_parent"> | ||||
|         <ImageView | ||||
|                 android:id="@+id/download_child_episode_play" | ||||
|                 android:visibility="gone" | ||||
|                 android:layout_marginStart="10dp" | ||||
|                 android:layout_marginEnd="10dp" | ||||
|                 android:layout_gravity="center_vertical" | ||||
|                 android:id="@+id/download_child_episode_play" | ||||
|                 android:src="@drawable/ic_baseline_play_arrow_24" | ||||
|                 android:contentDescription="@string/episode_play_img_des"/> | ||||
|         <LinearLayout | ||||
|  | @ -38,7 +45,7 @@ | |||
|                 android:layout_height="wrap_content" | ||||
|                 android:layout_marginEnd="50dp" | ||||
|                 android:layout_width="match_parent" | ||||
|             > | ||||
|         > | ||||
|             <TextView | ||||
|                     android:id="@+id/download_child_episode_text" | ||||
|                     android:layout_marginStart="10dp" | ||||
|  | @ -74,11 +81,11 @@ | |||
|                 android:layout_width="wrap_content" | ||||
|                 android:layout_height="match_parent"> | ||||
|             <androidx.core.widget.ContentLoadingProgressBar | ||||
|                     android:id="@+id/download_child_episode_progress_downloaded" | ||||
|                     android:layout_marginEnd="10dp" | ||||
|                     android:layout_marginStart="10dp" | ||||
|                     android:layout_width="40dp" | ||||
|                     android:layout_height="40dp" | ||||
|                     android:id="@+id/download_child_episode_progress_downloaded" | ||||
|                     android:indeterminate="false" | ||||
|                     android:progressDrawable="@drawable/circular_progress_bar" | ||||
|                     android:background="@drawable/circle_shape" | ||||
|  | @ -90,6 +97,10 @@ | |||
|                     android:visibility="visible" | ||||
|             /> | ||||
|             <ImageView | ||||
|                     android:nextFocusRight="@id/download_child_episode_holder" | ||||
|                     android:nextFocusLeft="@id/download_child_episode_holder" | ||||
| 
 | ||||
|                     android:id="@+id/download_child_episode_download" | ||||
|                     android:visibility="visible" | ||||
|                     android:layout_marginEnd="10dp" | ||||
|                     android:layout_marginStart="10dp" | ||||
|  | @ -97,7 +108,6 @@ | |||
|                     android:layout_gravity="center_vertical" | ||||
|                     android:padding="2dp" | ||||
|                     android:layout_width="30dp" | ||||
|                     android:id="@+id/download_child_episode_download" | ||||
|                     android:background="?selectableItemBackgroundBorderless" | ||||
|                     android:src="@drawable/ic_baseline_play_arrow_24" | ||||
|                     android:contentDescription="@string/download"/> | ||||
|  |  | |||
|  | @ -8,7 +8,7 @@ | |||
|         app:cardCornerRadius="@dimen/roundedImageRadius" | ||||
|         app:cardBackgroundColor="@color/itemBackground" | ||||
|         android:id="@+id/episode_holder" | ||||
|         android:foreground="?android:attr/selectableItemBackgroundBorderless" | ||||
|         android:foreground="@drawable/outline_drawable" | ||||
|         android:layout_marginBottom="10dp" | ||||
| > | ||||
|     <LinearLayout | ||||
|  |  | |||
|  | @ -26,6 +26,8 @@ | |||
|     </com.google.android.material.appbar.AppBarLayout> | ||||
| 
 | ||||
|     <androidx.recyclerview.widget.RecyclerView | ||||
|             android:nextFocusUp="@id/download_child_toolbar" | ||||
| 
 | ||||
|             android:background="?attr/primaryBlackBackground" | ||||
|             app:layout_behavior="@string/appbar_scrolling_view_behavior" | ||||
|             android:padding="10dp" | ||||
|  |  | |||
|  | @ -109,6 +109,8 @@ | |||
|     </com.google.android.material.appbar.AppBarLayout> | ||||
|      | ||||
|     <androidx.recyclerview.widget.RecyclerView | ||||
|             android:descendantFocusability="afterDescendants" | ||||
| 
 | ||||
|             android:background="?attr/primaryBlackBackground" | ||||
|             app:layout_behavior="@string/appbar_scrolling_view_behavior" | ||||
|             android:padding="10dp" | ||||
|  |  | |||
|  | @ -10,7 +10,7 @@ | |||
|         tools:context=".ui.home.HomeFragment"> | ||||
| 
 | ||||
|     <FrameLayout | ||||
|             android:visibility="visible" | ||||
|             android:visibility="gone" | ||||
|             tools:visibility="gone" | ||||
|             android:id="@+id/home_loading" | ||||
|             android:layout_width="match_parent" | ||||
|  | @ -85,6 +85,7 @@ | |||
|                 android:layout_width="match_parent" | ||||
|                 android:layout_height="match_parent"> | ||||
|             <ImageView | ||||
|                     android:nextFocusDown="@id/home_main_info" | ||||
|                     android:id="@+id/home_change_api" | ||||
|                     android:layout_margin="10dp" | ||||
|                     android:layout_gravity="end" | ||||
|  | @ -94,6 +95,7 @@ | |||
|                     android:layout_width="25dp" | ||||
|                     android:layout_height="25dp" | ||||
|                     android:contentDescription="@string/home_change_provider_img_des"> | ||||
|                 <requestFocus/> | ||||
|             </ImageView> | ||||
|             <LinearLayout | ||||
|                     android:layout_marginTop="-20dp" | ||||
|  | @ -102,7 +104,7 @@ | |||
|                     android:layout_width="match_parent" | ||||
|                     android:layout_height="wrap_content"> | ||||
|                 <ImageView | ||||
|                         android:foreground="?android:attr/selectableItemBackgroundBorderless" | ||||
|                         android:foreground="@drawable/outline_drawable" | ||||
|                         android:id="@+id/home_main_poster" | ||||
|                         tools:src="@drawable/example_poster" | ||||
|                         android:layout_gravity="center" | ||||
|  | @ -129,6 +131,11 @@ | |||
|                         android:layout_width="match_parent" | ||||
|                         android:layout_height="wrap_content"> | ||||
|                     <ImageView | ||||
|                             android:nextFocusLeft="@id/home_reroll_next" | ||||
|                             android:nextFocusUp="@id/home_change_api" | ||||
|                             android:nextFocusRight="@id/home_main_play" | ||||
|                             android:nextFocusDown="@id/home_watch_child_more_info" | ||||
| 
 | ||||
|                             android:layout_gravity="center" | ||||
|                             android:layout_marginEnd="2dp" | ||||
|                             android:id="@+id/home_reroll_prev" | ||||
|  | @ -140,6 +147,11 @@ | |||
|                             android:contentDescription="@string/home_next_random_img_des"> | ||||
|                     </ImageView> | ||||
|                     <com.google.android.material.button.MaterialButton | ||||
|                             android:nextFocusLeft="@id/home_reroll_prev" | ||||
|                             android:nextFocusUp="@id/home_change_api" | ||||
|                             android:nextFocusRight="@id/home_main_info" | ||||
|                             android:nextFocusDown="@id/home_watch_child_more_info" | ||||
| 
 | ||||
|                             style="@style/WhiteButton" | ||||
|                             android:visibility="visible" | ||||
|                             android:layout_gravity="center" | ||||
|  | @ -150,6 +162,11 @@ | |||
|                             android:layout_width="120dp"> | ||||
|                     </com.google.android.material.button.MaterialButton> | ||||
|                     <com.google.android.material.button.MaterialButton | ||||
|                             android:nextFocusLeft="@id/home_main_play" | ||||
|                             android:nextFocusUp="@id/home_change_api" | ||||
|                             android:nextFocusRight="@id/home_reroll_next" | ||||
|                             android:nextFocusDown="@id/home_watch_child_more_info" | ||||
| 
 | ||||
|                             style="@style/BlackButton" | ||||
|                             android:visibility="visible" | ||||
|                             android:layout_gravity="center" | ||||
|  | @ -162,6 +179,11 @@ | |||
|                             android:layout_width="120dp"> | ||||
|                     </com.google.android.material.button.MaterialButton> | ||||
|                     <ImageView | ||||
|                             android:nextFocusLeft="@id/home_main_info" | ||||
|                             android:nextFocusUp="@id/home_change_api" | ||||
|                             android:nextFocusRight="@id/home_reroll_prev" | ||||
|                             android:nextFocusDown="@id/home_watch_child_more_info" | ||||
| 
 | ||||
|                             android:layout_gravity="center" | ||||
|                             android:layout_marginStart="2dp" | ||||
|                             android:id="@+id/home_reroll_next" | ||||
|  | @ -184,6 +206,9 @@ | |||
|                     android:layout_height="wrap_content"> | ||||
| 
 | ||||
|                 <FrameLayout | ||||
|                         android:nextFocusUp="@id/home_main_info" | ||||
|                         android:nextFocusDown="@id/home_watch_child_recyclerview" | ||||
| 
 | ||||
|                         android:foreground="?android:attr/selectableItemBackgroundBorderless" | ||||
|                         android:id="@+id/home_watch_child_more_info" | ||||
|                         android:padding="12dp" | ||||
|  | @ -211,6 +236,8 @@ | |||
|                 </FrameLayout> | ||||
| 
 | ||||
|                 <androidx.recyclerview.widget.RecyclerView | ||||
|                         android:descendantFocusability="afterDescendants" | ||||
| 
 | ||||
|                         app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" | ||||
|                         android:id="@+id/home_watch_child_recyclerview" | ||||
|                         android:orientation="horizontal" | ||||
|  | @ -229,12 +256,17 @@ | |||
|                     android:layout_height="wrap_content"> | ||||
| 
 | ||||
|                 <FrameLayout | ||||
|                         android:nextFocusUp="@id/home_watch_child_recyclerview" | ||||
|                         android:nextFocusForward="@id/home_bookmarked_child_recyclerview" | ||||
| 
 | ||||
|                         android:foreground="?android:attr/selectableItemBackgroundBorderless" | ||||
|                         android:id="@+id/home_bookmarked_child_more_info" | ||||
|                         android:padding="12dp" | ||||
|                         android:layout_width="match_parent" | ||||
|                         android:layout_height="wrap_content"> | ||||
|                     <ImageView | ||||
|                             android:background="?android:attr/selectableItemBackgroundBorderless" | ||||
| 
 | ||||
|                             android:id="@+id/home_bookmark_select" | ||||
|                             android:src="@drawable/ic_baseline_filter_list_24" | ||||
|                             android:layout_width="24dp" | ||||
|  | @ -264,6 +296,8 @@ | |||
|                 </FrameLayout> | ||||
| 
 | ||||
|                 <androidx.recyclerview.widget.RecyclerView | ||||
|                         android:descendantFocusability="afterDescendants" | ||||
| 
 | ||||
|                         app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" | ||||
|                         android:id="@+id/home_bookmarked_child_recyclerview" | ||||
|                         android:orientation="horizontal" | ||||
|  | @ -274,6 +308,7 @@ | |||
|             </LinearLayout> | ||||
| 
 | ||||
|             <androidx.recyclerview.widget.RecyclerView | ||||
|                     android:descendantFocusability="afterDescendants" | ||||
|                     android:id="@+id/home_master_recycler" | ||||
|                     android:layout_width="match_parent" | ||||
|                     android:layout_height="match_parent" | ||||
|  |  | |||
|  | @ -18,14 +18,17 @@ | |||
|             android:layout_width="50dp" android:layout_height="50dp"> | ||||
|     </ProgressBar> | ||||
|     <LinearLayout | ||||
|             android:id="@+id/result_loading_error" | ||||
| 
 | ||||
|             android:visibility="gone" | ||||
|             tools:visibility="gone" | ||||
|             android:id="@+id/result_loading_error" | ||||
|             android:orientation="vertical" | ||||
|             android:layout_gravity="center" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="wrap_content"> | ||||
|         <com.google.android.material.button.MaterialButton | ||||
|                 android:id="@+id/result_reload_connectionerror" | ||||
| 
 | ||||
|                 android:layout_gravity="center" | ||||
|                 android:layout_height="50dp" | ||||
|                 android:layout_margin="5dp" | ||||
|  | @ -43,7 +46,6 @@ | |||
|                 app:icon="@drawable/ic_baseline_autorenew_24" | ||||
|                 app:iconSize="20dp" | ||||
|                 android:text="@string/reload_error" | ||||
|                 android:id="@+id/result_reload_connectionerror" | ||||
|                 android:textSize="15sp" | ||||
|                 app:cornerRadius="5dp" | ||||
|                 android:layout_width="wrap_content" | ||||
|  | @ -51,6 +53,8 @@ | |||
|         > | ||||
|         </com.google.android.material.button.MaterialButton> | ||||
|         <com.google.android.material.button.MaterialButton | ||||
|                 android:id="@+id/result_reload_connection_open_in_browser" | ||||
| 
 | ||||
|                 android:layout_gravity="center" | ||||
|                 android:layout_height="50dp" | ||||
|                 android:layout_margin="5dp" | ||||
|  | @ -67,7 +71,6 @@ | |||
|                 app:icon="@drawable/ic_baseline_public_24" | ||||
|                 app:iconSize="20dp" | ||||
|                 android:text="@string/result_open_in_browser" | ||||
|                 android:id="@+id/result_reload_connection_open_in_browser" | ||||
|                 android:textSize="15sp" | ||||
|                 app:cornerRadius="5dp" | ||||
|                 android:layout_width="wrap_content" | ||||
|  | @ -93,28 +96,33 @@ | |||
|             android:layout_height="match_parent"> | ||||
| 
 | ||||
|         <FrameLayout | ||||
|                 android:id="@+id/result_poster_blur_holder" | ||||
| 
 | ||||
|                 android:visibility="gone" | ||||
|                 android:alpha="0" | ||||
|                 android:layout_width="match_parent" | ||||
|                 android:id="@+id/result_poster_blur_holder" | ||||
|                 android:layout_height="180dp"> | ||||
|             <ImageView | ||||
|                     android:id="@+id/result_poster_blur" | ||||
| 
 | ||||
|                     android:layout_width="match_parent" | ||||
|                     android:layout_height="match_parent" | ||||
|                     android:scaleType="centerCrop" | ||||
|                     android:alpha="0.7" | ||||
|                     tools:src="@drawable/example_poster" | ||||
|                     android:background="@color/primaryGrayBackground" | ||||
|                     android:id="@+id/result_poster_blur" | ||||
|                     tools:ignore="ContentDescription"/> | ||||
|             <ImageView | ||||
|                     android:src="@drawable/background_shadow" | ||||
|                     android:layout_gravity="bottom" | ||||
|                     android:layout_width="match_parent" | ||||
|                     android:layout_height="30dp" tools:ignore="ContentDescription"/> | ||||
|                     android:layout_height="30dp" | ||||
|                     tools:ignore="ContentDescription"/> | ||||
|         </FrameLayout> | ||||
|         <androidx.core.widget.NestedScrollView | ||||
|                 android:id="@+id/result_scroll" android:layout_width="match_parent" | ||||
|                 android:id="@+id/result_scroll" | ||||
| 
 | ||||
|                 android:layout_width="match_parent" | ||||
|                 android:layout_height="wrap_content"> | ||||
|             <LinearLayout | ||||
|                     android:orientation="vertical" | ||||
|  | @ -141,6 +149,8 @@ | |||
|                             android:layout_width="100dp" | ||||
|                             android:layout_height="140dp"> | ||||
|                         <ImageView | ||||
|                                 android:foreground="@drawable/outline_drawable" | ||||
| 
 | ||||
|                                 android:id="@+id/result_poster" | ||||
|                                 android:scaleType="centerCrop" | ||||
|                                 android:layout_width="match_parent" | ||||
|  | @ -157,9 +167,10 @@ | |||
|                             android:layout_width="wrap_content" | ||||
|                             android:layout_height="wrap_content"> | ||||
|                         <TextView | ||||
|                                 android:id="@+id/result_title" | ||||
| 
 | ||||
|                                 android:layout_marginEnd="50dp" | ||||
|                                 tools:text="The Perfect Run The Perfect Run The Perfect Run" | ||||
|                                 android:id="@+id/result_title" | ||||
|                                 android:textSize="20sp" | ||||
|                                 android:textStyle="normal" | ||||
|                                 android:textColor="?attr/textColor" android:layout_width="wrap_content" | ||||
|  | @ -189,20 +200,19 @@ | |||
|                         android:layout_width="match_parent" | ||||
|                         android:layout_height="50dp"> | ||||
|                     <com.google.android.material.button.MaterialButton | ||||
|                             android:layout_marginStart="0dp" | ||||
|                             android:nextFocusLeft="@id/result_openinbrower" | ||||
|                             android:nextFocusDown="@id/result_descript" | ||||
|                             android:nextFocusUp="@id/result_back" | ||||
|                             android:nextFocusRight="@id/result_share" | ||||
| 
 | ||||
|                             android:layout_gravity="center_vertical" | ||||
|                             app:cornerRadius="4dp" | ||||
|                             android:id="@+id/result_bookmark_button" | ||||
|                             tools:text="Bookmark" | ||||
| 
 | ||||
|                             app:rippleColor="?attr/primaryBlackBackground" | ||||
|                             android:textColor="?attr/textColor" | ||||
|                             app:iconTint="?attr/textColor" | ||||
|                             android:textAllCaps="false" | ||||
|                             app:icon="@drawable/ic_outline_remove_red_eye_24" | ||||
|                             android:backgroundTint="?attr/iconGrayBackground" | ||||
|                             style="@style/Widget.MaterialComponents.Button" | ||||
|                             android:layout_width="wrap_content" | ||||
|                             android:layout_height="50dp"> | ||||
|                             style="@style/MultiSelectButton"> | ||||
|                         <requestFocus/> | ||||
|                     </com.google.android.material.button.MaterialButton> | ||||
| 
 | ||||
| 
 | ||||
|  | @ -227,6 +237,11 @@ | |||
|                                 android:visibility="gone" | ||||
|                         /> | ||||
|                         <ImageView | ||||
|                                 android:nextFocusUp="@id/result_back" | ||||
|                                 android:nextFocusDown="@id/result_descript" | ||||
|                                 android:nextFocusLeft="@id/result_bookmark_button" | ||||
|                                 android:nextFocusRight="@id/result_openinbrower" | ||||
| 
 | ||||
|                                 android:id="@+id/result_share" | ||||
|                                 android:layout_width="25dp" | ||||
|                                 android:layout_height="25dp" | ||||
|  | @ -237,6 +252,11 @@ | |||
|                                 android:layout_gravity="center" android:contentDescription="@string/result_share"> | ||||
|                         </ImageView> | ||||
|                         <ImageView | ||||
|                                 android:nextFocusUp="@id/result_back" | ||||
|                                 android:nextFocusDown="@id/result_descript" | ||||
|                                 android:nextFocusLeft="@id/result_share" | ||||
|                                 android:nextFocusRight="@id/result_bookmark_button" | ||||
| 
 | ||||
|                                 android:id="@+id/result_openinbrower" | ||||
|                                 android:layout_width="25dp" | ||||
|                                 android:layout_height="25dp" | ||||
|  | @ -268,6 +288,12 @@ | |||
|                 /> | ||||
| 
 | ||||
|                 <TextView | ||||
|                         android:padding="10dp" | ||||
|                         android:foreground="@drawable/outline_drawable" | ||||
| 
 | ||||
|                         android:nextFocusUp="@id/result_bookmark_button" | ||||
|                         android:nextFocusDown="@id/result_play_movie" | ||||
| 
 | ||||
|                         android:id="@+id/result_descript" | ||||
|                         android:textSize="15sp" | ||||
|                         tools:text="Ryan Quicksave Romano is an eccentric adventurer with a strange power: he can create a save-point in time and redo his life whenever he dies. Arriving in New Rome, the glitzy capital of sin of a rebuilding Europe, he finds the city torn between mega-corporations, sponsored heroes, superpowered criminals, and true monsters. It's a time of chaos, where potions can grant the power to rule the world and dangers lurk everywhere. " | ||||
|  | @ -296,18 +322,24 @@ | |||
|                         android:layout_width="match_parent" | ||||
|                         android:layout_height="wrap_content"> | ||||
|                     <com.google.android.material.button.MaterialButton | ||||
|                             android:nextFocusUp="@id/result_descript" | ||||
|                             android:nextFocusDown="@id/result_download_movie" | ||||
| 
 | ||||
|                             android:id="@+id/result_play_movie" | ||||
|                             style="@style/WhiteButton" | ||||
|                             android:layout_marginStart="0dp" | ||||
|                             android:layout_marginEnd="0dp" | ||||
|                             android:visibility="visible" | ||||
|                             android:layout_gravity="center_vertical" | ||||
|                             android:id="@+id/result_play_movie" | ||||
|                             android:text="@string/play_movie_button" | ||||
| 
 | ||||
|                             app:icon="@drawable/ic_baseline_play_arrow_24" | ||||
|                             android:layout_width="match_parent"> | ||||
|                     </com.google.android.material.button.MaterialButton> | ||||
|                     <com.google.android.material.button.MaterialButton | ||||
|                             android:nextFocusUp="@id/result_play_movie" | ||||
|                             android:nextFocusDown="@id/result_season_button" | ||||
| 
 | ||||
|                             android:id="@+id/result_download_movie" | ||||
|                             style="@style/BlackButton" | ||||
|                             android:layout_marginStart="0dp" | ||||
|                             android:layout_marginEnd="0dp" | ||||
|  | @ -316,7 +348,6 @@ | |||
|                             tools:text="Downloading" | ||||
|                             tools:icon="@drawable/netflix_download" | ||||
| 
 | ||||
|                             android:id="@+id/result_download_movie" | ||||
|                             android:clickable="true" | ||||
|                             android:focusable="true" | ||||
|                             android:layout_width="match_parent"> | ||||
|  | @ -389,38 +420,36 @@ | |||
|                         android:layout_width="match_parent" | ||||
|                         android:layout_height="wrap_content"> | ||||
|                     <com.google.android.material.button.MaterialButton | ||||
|                             android:visibility="gone" | ||||
|                             android:layout_gravity="center_vertical" | ||||
|                             android:id="@+id/result_season_button" | ||||
|                             tools:visibility="visible" | ||||
|                             tools:text="Season 1" | ||||
| 
 | ||||
|                             app:rippleColor="?attr/iconGrayBackground" | ||||
|                             android:textColor="?attr/textColor" | ||||
|                             app:iconTint="?attr/textColor" | ||||
|                             android:textAllCaps="false" | ||||
|                             android:nextFocusUp="@id/result_descript" | ||||
|                             android:nextFocusRight="@id/result_episode_select" | ||||
|                             android:nextFocusLeft="@id/result_episode_select" | ||||
|                             android:nextFocusDown="@id/result_episodes" | ||||
| 
 | ||||
|                             android:backgroundTint="@color/itemBackground" | ||||
|                             style="@style/Widget.MaterialComponents.Button" | ||||
|                             android:layout_width="wrap_content" | ||||
|                             android:layout_marginEnd="10dp" | ||||
|                             android:layout_height="50dp"> | ||||
|                     </com.google.android.material.button.MaterialButton> | ||||
|                     <com.google.android.material.button.MaterialButton | ||||
|                             android:id="@+id/result_season_button" | ||||
|                             android:visibility="gone" | ||||
|                             android:layout_gravity="center_vertical" | ||||
|                             android:id="@+id/result_episode_select" | ||||
| 
 | ||||
|                             style="@style/MultiSelectButton" | ||||
|                             android:layout_marginEnd="10dp"> | ||||
|                     </com.google.android.material.button.MaterialButton> | ||||
|                     <com.google.android.material.button.MaterialButton | ||||
|                             tools:visibility="visible" | ||||
|                             tools:text="50-100" | ||||
| 
 | ||||
|                             app:rippleColor="?attr/iconGrayBackground" | ||||
|                             android:textColor="?attr/textColor" | ||||
|                             app:iconTint="?attr/textColor" | ||||
|                             android:textAllCaps="false" | ||||
|                             android:nextFocusUp="@id/result_descript" | ||||
|                             android:nextFocusRight="@id/result_season_button" | ||||
|                             android:nextFocusLeft="@id/result_season_button" | ||||
|                             android:nextFocusDown="@id/result_episodes" | ||||
| 
 | ||||
|                             android:backgroundTint="@color/itemBackground" | ||||
|                             style="@style/Widget.MaterialComponents.Button" | ||||
|                             android:layout_width="wrap_content" | ||||
|                             android:layout_marginEnd="10dp" | ||||
|                             android:layout_height="50dp"> | ||||
|                             android:id="@+id/result_episode_select" | ||||
|                             android:visibility="gone" | ||||
|                             android:layout_gravity="center_vertical" | ||||
| 
 | ||||
|                             style="@style/MultiSelectButton" | ||||
|                     > | ||||
|                     </com.google.android.material.button.MaterialButton> | ||||
|                     <TextView | ||||
|                             android:layout_width="wrap_content" | ||||
|  | @ -436,19 +465,23 @@ | |||
|                 </LinearLayout> | ||||
| 
 | ||||
|                 <androidx.core.widget.ContentLoadingProgressBar | ||||
|                         style="@style/Widget.AppCompat.ProgressBar" | ||||
|                         android:id="@+id/result_episode_loading" | ||||
| 
 | ||||
|                         style="@style/Widget.AppCompat.ProgressBar" | ||||
|                         android:layout_gravity="center" | ||||
|                         android:layout_width="50dp" | ||||
|                         android:layout_height="50dp"> | ||||
|                 </androidx.core.widget.ContentLoadingProgressBar> | ||||
|                 <androidx.recyclerview.widget.RecyclerView | ||||
|                         android:descendantFocusability="afterDescendants" | ||||
| 
 | ||||
|                         android:id="@+id/result_episodes" | ||||
| 
 | ||||
|                         android:layout_marginTop="0dp" | ||||
|                         android:paddingBottom="100dp" | ||||
|                         tools:listitem="@layout/result_episode" | ||||
|                         android:layout_width="match_parent" | ||||
|                         android:layout_height="wrap_content" | ||||
|                         android:id="@+id/result_episodes" | ||||
|                 /> | ||||
|             </LinearLayout> | ||||
|         </androidx.core.widget.NestedScrollView> | ||||
|  | @ -489,6 +522,10 @@ | |||
|                 android:contentDescription="@string/search_poster_descript"/> | ||||
|     </androidx.cardview.widget.CardView>--> | ||||
|     <ImageView | ||||
|             android:nextFocusDown="@id/result_bookmark_button" | ||||
|             android:nextFocusRight="@id/result_bookmark_button" | ||||
|             android:background="?android:attr/selectableItemBackgroundBorderless" | ||||
| 
 | ||||
|             android:id="@+id/result_back" | ||||
|             android:clickable="true" | ||||
|             android:focusable="true" | ||||
|  |  | |||
|  | @ -23,6 +23,10 @@ | |||
|                 android:layout_marginEnd="30dp" | ||||
|                 android:layout_height="30dp"> | ||||
|             <androidx.appcompat.widget.SearchView | ||||
|                     android:nextFocusRight="@id/search_filter" | ||||
|                     android:nextFocusLeft="@id/search_filter" | ||||
|                     android:nextFocusDown="@id/cardSpace" | ||||
| 
 | ||||
|                     android:id="@+id/main_search" | ||||
|                     app:queryBackground="@color/transparent" | ||||
|                     app:searchIcon="@drawable/search_icon" | ||||
|  | @ -34,6 +38,8 @@ | |||
|                     android:layout_gravity="center_vertical" | ||||
|                     app:iconifiedByDefault="false" | ||||
|                     tools:ignore="RtlSymmetry"> | ||||
|                 <requestFocus/> | ||||
| 
 | ||||
|                 <androidx.core.widget.ContentLoadingProgressBar | ||||
|                         android:id="@+id/search_loading_bar" | ||||
|                         android:layout_width="20dp" android:layout_height="20dp" | ||||
|  | @ -51,6 +57,10 @@ | |||
|             </androidx.appcompat.widget.SearchView> | ||||
|         </FrameLayout> | ||||
|         <ImageView | ||||
|                 android:nextFocusRight="@id/main_search" | ||||
|                 android:nextFocusLeft="@id/main_search" | ||||
|                 android:nextFocusDown="@id/cardSpace" | ||||
| 
 | ||||
|                 android:id="@+id/search_filter" | ||||
|                 android:background="?selectableItemBackgroundBorderless" | ||||
|                 android:src="@drawable/ic_baseline_tune_24" | ||||
|  | @ -64,6 +74,8 @@ | |||
|     </FrameLayout> | ||||
| 
 | ||||
|     <com.lagradost.cloudstream3.ui.AutofitRecyclerView | ||||
|             android:descendantFocusability="afterDescendants" | ||||
| 
 | ||||
|             android:background="?attr/primaryBlackBackground" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="match_parent" | ||||
|  | @ -77,6 +89,8 @@ | |||
|             android:orientation="vertical" | ||||
|     /> | ||||
|     <androidx.recyclerview.widget.RecyclerView | ||||
|             android:descendantFocusability="afterDescendants" | ||||
| 
 | ||||
|             android:background="?attr/primaryBlackBackground" | ||||
|             android:id="@+id/search_master_recycler" | ||||
|             android:layout_width="match_parent" | ||||
|  |  | |||
|  | @ -8,11 +8,14 @@ | |||
|         android:layout_height="wrap_content"> | ||||
| 
 | ||||
|     <FrameLayout | ||||
|             android:nextFocusDown="@id/home_expanded_recycler" | ||||
| 
 | ||||
|             android:foreground="?android:attr/selectableItemBackgroundBorderless" | ||||
|             android:id="@+id/home_expanded_drag_down" | ||||
|             android:padding="12dp" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="wrap_content"> | ||||
|         <requestFocus/> | ||||
|         <TextView | ||||
|                 android:id="@+id/home_expanded_text" | ||||
|                 android:layout_width="wrap_content" | ||||
|  | @ -33,6 +36,8 @@ | |||
|         </ImageView> | ||||
|     </FrameLayout> | ||||
|     <com.lagradost.cloudstream3.ui.AutofitRecyclerView | ||||
|             android:descendantFocusability="afterDescendants" | ||||
| 
 | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:id="@+id/home_expanded_recycler" | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ | |||
| <!--  android:layout_width="114dp" | ||||
|         android:layout_height="180dp"--> | ||||
| <androidx.cardview.widget.CardView | ||||
|         android:foreground="?android:attr/selectableItemBackgroundBorderless" | ||||
|         android:foreground="@drawable/outline_drawable" | ||||
|         android:layout_margin="2dp" | ||||
|         android:layout_width="114dp" | ||||
|         android:layout_height="180dp" | ||||
|  |  | |||
|  | @ -8,6 +8,8 @@ | |||
|         android:layout_height="wrap_content"> | ||||
| 
 | ||||
|     <FrameLayout | ||||
|             android:nextFocusDown="@id/home_child_recyclerview" | ||||
| 
 | ||||
|             android:foreground="?android:attr/selectableItemBackgroundBorderless" | ||||
|             android:id="@+id/home_child_more_info" | ||||
|             android:padding="12dp" | ||||
|  | @ -34,6 +36,8 @@ | |||
|     </FrameLayout> | ||||
| 
 | ||||
|     <androidx.recyclerview.widget.RecyclerView | ||||
|             android:descendantFocusability="afterDescendants" | ||||
| 
 | ||||
|             app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" | ||||
|             android:id="@+id/home_child_recyclerview" | ||||
|             android:orientation="horizontal" | ||||
|  |  | |||
|  | @ -266,6 +266,10 @@ | |||
|                         android:layout_height="40dp"> | ||||
|                 </TextView> | ||||
|                 <ImageButton | ||||
|                         android:nextFocusUp="@id/video_go_back" | ||||
|                         android:nextFocusDown="@id/lock_player" | ||||
|                         android:nextFocusLeft="@id/exo_rew" | ||||
| 
 | ||||
|                         android:paddingLeft="100dp" | ||||
|                         android:id="@id/exo_rew" | ||||
|                         android:layout_height="70dp" | ||||
|  | @ -293,6 +297,11 @@ | |||
|                     android:layout_width="100dp" | ||||
|                     android:layout_height="100dp"> | ||||
|                 <ImageButton | ||||
|                         android:nextFocusUp="@id/video_go_back" | ||||
|                         android:nextFocusDown="@id/lock_player" | ||||
|                         android:nextFocusLeft="@id/exo_rew" | ||||
|                         android:nextFocusRight="@id/exo_ffwd" | ||||
| 
 | ||||
|                         android:id="@id/exo_play" | ||||
|                         android:scaleType="fitCenter" | ||||
|                         android:layout_height="70dp" | ||||
|  | @ -304,6 +313,11 @@ | |||
|                         android:focusable="true" | ||||
|                 /> | ||||
|                 <ImageButton | ||||
|                         android:nextFocusUp="@id/video_go_back" | ||||
|                         android:nextFocusDown="@id/lock_player" | ||||
|                         android:nextFocusLeft="@id/exo_rew" | ||||
|                         android:nextFocusRight="@id/exo_ffwd" | ||||
| 
 | ||||
|                         android:id="@id/exo_pause" | ||||
|                         android:scaleType="fitCenter" | ||||
|                         android:layout_height="70dp" | ||||
|  | @ -337,6 +351,10 @@ | |||
|                         android:layout_height="40dp"> | ||||
|                 </TextView> | ||||
|                 <ImageButton | ||||
|                         android:nextFocusUp="@id/video_go_back" | ||||
|                         android:nextFocusDown="@id/lock_player" | ||||
|                         android:nextFocusRight="@id/exo_rew" | ||||
| 
 | ||||
|                         android:layout_gravity="center" | ||||
|                         android:id="@id/exo_ffwd" | ||||
|                         android:layout_height="70dp" | ||||
|  | @ -467,6 +485,10 @@ | |||
|                         android:paddingBottom="10dp" | ||||
|                 > | ||||
|                     <androidx.cardview.widget.CardView | ||||
|                             android:nextFocusLeft="@id/skip_episode" | ||||
|                             android:nextFocusRight="@id/resize_player" | ||||
| 
 | ||||
|                             android:id="@+id/lock_player" | ||||
|                             xmlns:card_view="http://schemas.android.com/apk/res-auto" | ||||
|                             android:layout_width="wrap_content" | ||||
|                             android:layout_height="match_parent" | ||||
|  | @ -477,7 +499,6 @@ | |||
|                             card_view:cardCornerRadius="@dimen/card_corner_radius" | ||||
|                             card_view:cardBackgroundColor="@color/transparent" | ||||
|                             android:foreground="?attr/selectableItemBackgroundBorderless" | ||||
|                             android:id="@+id/lock_player" | ||||
|                             card_view:cardElevation="0dp" | ||||
|                             tools:visibility="visible" | ||||
|                     > | ||||
|  | @ -520,6 +541,10 @@ | |||
|                             android:layout_width="wrap_content" | ||||
|                             android:layout_height="match_parent"> | ||||
|                         <androidx.cardview.widget.CardView | ||||
|                                 android:nextFocusLeft="@id/lock_player" | ||||
|                                 android:nextFocusRight="@id/playback_speed_btt" | ||||
| 
 | ||||
|                                 android:id="@+id/resize_player" | ||||
|                                 xmlns:card_view="http://schemas.android.com/apk/res-auto" | ||||
|                                 android:layout_width="wrap_content" | ||||
|                                 android:layout_height="match_parent" | ||||
|  | @ -531,7 +556,6 @@ | |||
|                                 card_view:cardBackgroundColor="@color/transparent" | ||||
|                                 android:foreground="?attr/selectableItemBackgroundBorderless" | ||||
|                                 card_view:cardElevation="0dp" | ||||
|                                 android:id="@+id/resize_player" | ||||
|                                 tools:visibility="visible" | ||||
|                         > | ||||
|                             <LinearLayout | ||||
|  | @ -566,6 +590,10 @@ | |||
|                             </LinearLayout> | ||||
|                         </androidx.cardview.widget.CardView> | ||||
|                         <androidx.cardview.widget.CardView | ||||
|                                 android:nextFocusLeft="@id/resize_player" | ||||
|                                 android:nextFocusRight="@id/sources_btt" | ||||
| 
 | ||||
|                                 android:id="@+id/playback_speed_btt" | ||||
|                                 android:layout_width="wrap_content" | ||||
|                                 android:layout_height="match_parent" | ||||
|                                 android:layout_marginTop="5dp" | ||||
|  | @ -575,7 +603,6 @@ | |||
|                                 app:cardCornerRadius="@dimen/card_corner_radius" | ||||
|                                 app:cardBackgroundColor="@color/transparent" | ||||
|                                 android:foreground="?attr/selectableItemBackgroundBorderless" | ||||
|                                 android:id="@+id/playback_speed_btt" | ||||
|                                 app:cardElevation="0dp" | ||||
| 
 | ||||
|                         > | ||||
|  | @ -613,6 +640,11 @@ | |||
|                             </LinearLayout> | ||||
|                         </androidx.cardview.widget.CardView> | ||||
|                         <androidx.cardview.widget.CardView | ||||
|                                 android:nextFocusLeft="@id/playback_speed_btt" | ||||
|                                 android:nextFocusRight="@id/skip_op" | ||||
| 
 | ||||
|                                 android:id="@+id/sources_btt" | ||||
| 
 | ||||
|                                 xmlns:card_view="http://schemas.android.com/apk/res-auto" | ||||
|                                 android:layout_width="wrap_content" | ||||
|                                 android:layout_height="match_parent" | ||||
|  | @ -623,7 +655,6 @@ | |||
|                                 card_view:cardCornerRadius="@dimen/card_corner_radius" | ||||
|                                 card_view:cardBackgroundColor="@color/transparent" | ||||
|                                 android:foreground="?attr/selectableItemBackgroundBorderless" | ||||
|                                 android:id="@+id/sources_btt" | ||||
|                                 card_view:cardElevation="0dp" | ||||
| 
 | ||||
|                         > | ||||
|  | @ -660,6 +691,10 @@ | |||
|                             </LinearLayout> | ||||
|                         </androidx.cardview.widget.CardView> | ||||
|                         <androidx.cardview.widget.CardView | ||||
|                                 android:nextFocusLeft="@id/sources_btt" | ||||
|                                 android:nextFocusRight="@id/skip_episode" | ||||
|                                 android:id="@+id/skip_op" | ||||
| 
 | ||||
|                                 xmlns:card_view="http://schemas.android.com/apk/res-auto" | ||||
|                                 android:layout_width="wrap_content" | ||||
|                                 android:layout_height="match_parent" | ||||
|  | @ -672,7 +707,6 @@ | |||
|                                 android:foreground="?attr/selectableItemBackgroundBorderless" | ||||
|                                 card_view:cardElevation="0dp" | ||||
| 
 | ||||
|                                 android:id="@+id/skip_op" | ||||
|                         > | ||||
|                             <LinearLayout | ||||
|                                     android:layout_width="wrap_content" | ||||
|  | @ -705,6 +739,11 @@ | |||
|                             </LinearLayout> | ||||
|                         </androidx.cardview.widget.CardView> | ||||
|                         <androidx.cardview.widget.CardView | ||||
|                                 android:nextFocusLeft="@id/skip_op" | ||||
|                                 android:nextFocusRight="@id/lock_player" | ||||
| 
 | ||||
|                                 android:id="@+id/skip_episode" | ||||
| 
 | ||||
|                                 xmlns:card_view="http://schemas.android.com/apk/res-auto" | ||||
|                                 android:layout_width="wrap_content" | ||||
|                                 android:layout_height="match_parent" | ||||
|  | @ -716,7 +755,6 @@ | |||
|                                 card_view:cardBackgroundColor="@color/transparent" | ||||
|                                 android:foreground="?attr/selectableItemBackgroundBorderless" | ||||
|                                 card_view:cardElevation="0dp" | ||||
|                                 android:id="@+id/skip_episode" | ||||
|                         > | ||||
|                             <LinearLayout | ||||
|                                     android:layout_width="wrap_content" | ||||
|  |  | |||
|  | @ -34,6 +34,9 @@ | |||
|                     android:layout_height="wrap_content"> | ||||
|             </TextView> | ||||
|             <ListView | ||||
|                     android:nextFocusRight="@id/apply_btt" | ||||
|                     android:nextFocusLeft="@id/sort_subtitles" | ||||
| 
 | ||||
|                     android:id="@+id/sort_providers" | ||||
|                     android:background="?attr/primaryBlackBackground" | ||||
|                     tools:listitem="@layout/sort_bottom_single_choice" | ||||
|  | @ -58,6 +61,9 @@ | |||
|                     android:layout_width="match_parent" | ||||
|                     android:layout_height="wrap_content"> | ||||
|                 <TextView | ||||
|                         android:nextFocusRight="@id/sort_providers" | ||||
|                         android:nextFocusDown="@id/sort_subtitles" | ||||
| 
 | ||||
|                         android:paddingStart="?android:attr/listPreferredItemPaddingStart" | ||||
|                         android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" | ||||
| 
 | ||||
|  | @ -84,6 +90,9 @@ | |||
|             </FrameLayout> | ||||
| 
 | ||||
|             <ListView | ||||
|                     android:nextFocusRight="@id/cancel_btt" | ||||
|                     android:nextFocusLeft="@id/sort_providers" | ||||
| 
 | ||||
|                     android:id="@+id/sort_subtitles" | ||||
|                     android:background="?attr/primaryBlackBackground" | ||||
|                     tools:listitem="@layout/sort_bottom_single_choice" | ||||
|  | @ -103,17 +112,23 @@ | |||
|             android:layout_height="60dp"> | ||||
| 
 | ||||
|         <com.google.android.material.button.MaterialButton | ||||
|                 android:nextFocusRight="@id/cancel_btt" | ||||
|                 android:nextFocusLeft="@id/cancel_btt" | ||||
| 
 | ||||
|                 android:id="@+id/apply_btt" | ||||
|                 style="@style/WhiteButton" | ||||
|                 android:layout_gravity="center_vertical|end" | ||||
|                 android:text="@string/sort_apply" | ||||
|                 android:id="@+id/apply_btt" | ||||
|                 android:layout_width="wrap_content" | ||||
|         /> | ||||
|         <com.google.android.material.button.MaterialButton | ||||
|                 android:nextFocusRight="@id/apply_btt" | ||||
|                 android:nextFocusLeft="@id/apply_btt" | ||||
| 
 | ||||
|                 android:id="@+id/cancel_btt" | ||||
|                 style="@style/BlackButton" | ||||
|                 android:layout_gravity="center_vertical|end" | ||||
|                 android:text="@string/sort_cancel" | ||||
|                 android:id="@+id/cancel_btt" | ||||
|                 android:layout_width="wrap_content" | ||||
|         /> | ||||
|     </LinearLayout> | ||||
|  |  | |||
|  | @ -1,33 +0,0 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <LinearLayout | ||||
|         xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|         xmlns:tools="http://schemas.android.com/tools" | ||||
|         android:orientation="vertical" | ||||
|         android:layout_width="match_parent" | ||||
|         android:background="@null" | ||||
|         android:layout_height="match_parent"> | ||||
| 
 | ||||
|     <TextView | ||||
|             android:paddingStart="?android:attr/listPreferredItemPaddingStart" | ||||
|             android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" | ||||
|             android:layout_marginTop="20dp" | ||||
|             android:layout_marginBottom="10dp" | ||||
|             android:textStyle="bold" | ||||
|             android:text="@string/player_speed" | ||||
|             android:textSize="20sp" | ||||
|             android:textColor="?attr/textColor" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_rowWeight="1" | ||||
|             android:layout_height="wrap_content"> | ||||
|     </TextView> | ||||
|     <ListView | ||||
|             android:layout_marginTop="-10dp" | ||||
|             android:paddingTop="10dp" | ||||
|             android:id="@+id/sort_speed" | ||||
|             android:background="?attr/primaryBlackBackground" | ||||
|             tools:listitem="@layout/sort_bottom_single_choice" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="match_parent" | ||||
|             android:layout_rowWeight="1" | ||||
|     /> | ||||
| </LinearLayout> | ||||
|  | @ -8,17 +8,24 @@ | |||
|         android:layout_height="match_parent"> | ||||
| 
 | ||||
|     <com.google.android.material.switchmaterial.SwitchMaterial | ||||
|             android:id="@+id/toggle1" | ||||
| 
 | ||||
|             android:layout_marginTop="10dp" | ||||
|             android:paddingStart="20dp" | ||||
|             android:paddingEnd="20dp" | ||||
|             android:textStyle="bold" | ||||
|             android:textSize="20sp" | ||||
|              | ||||
|             android:textColor="?attr/textColor" | ||||
|             android:id="@+id/toggle1" | ||||
|             tools:text="Search" android:layout_width="match_parent" android:layout_height="wrap_content"> | ||||
|             tools:text="Search" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="wrap_content"> | ||||
| 
 | ||||
|     </com.google.android.material.switchmaterial.SwitchMaterial> | ||||
|     <ListView | ||||
|             android:nextFocusRight="@id/cancel_btt" | ||||
|             android:nextFocusLeft="@id/apply_btt" | ||||
| 
 | ||||
|             android:id="@+id/listview1" | ||||
|             android:layout_marginTop="-10dp" | ||||
|             android:layout_marginBottom="60dp" | ||||
|  | @ -29,6 +36,9 @@ | |||
|             android:layout_rowWeight="1" | ||||
|     /> | ||||
|     <ListView | ||||
|             android:nextFocusRight="@id/cancel_btt" | ||||
|             android:nextFocusLeft="@id/apply_btt" | ||||
| 
 | ||||
|             android:id="@+id/listview2" | ||||
|             android:layout_marginTop="-10dp" | ||||
|             android:layout_marginBottom="60dp" | ||||
|  | @ -48,17 +58,23 @@ | |||
|             android:layout_height="60dp"> | ||||
| 
 | ||||
|         <com.google.android.material.button.MaterialButton | ||||
|                 android:nextFocusRight="@id/cancel_btt" | ||||
|                 android:nextFocusLeft="@id/cancel_btt" | ||||
| 
 | ||||
|                 android:id="@+id/apply_btt" | ||||
|                 style="@style/WhiteButton" | ||||
|                 android:layout_gravity="center_vertical|end" | ||||
|                 android:text="@string/sort_apply" | ||||
|                 android:id="@+id/apply_btt" | ||||
|                 android:layout_width="wrap_content" | ||||
|         /> | ||||
|         <com.google.android.material.button.MaterialButton | ||||
|                 android:nextFocusLeft="@id/apply_btt" | ||||
|                 android:nextFocusRight="@id/apply_btt" | ||||
| 
 | ||||
|                 android:id="@+id/cancel_btt" | ||||
|                 style="@style/BlackButton" | ||||
|                 android:layout_gravity="center_vertical|end" | ||||
|                 android:text="@string/sort_cancel" | ||||
|                 android:id="@+id/cancel_btt" | ||||
|                 android:layout_width="wrap_content" | ||||
|         /> | ||||
|     </LinearLayout> | ||||
|  |  | |||
|  | @ -1,15 +1,20 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <androidx.cardview.widget.CardView | ||||
|         xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|         android:layout_width="match_parent" | ||||
|         android:layout_height="50dp" | ||||
|         xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
|         xmlns:tools="http://schemas.android.com/tools" | ||||
| 
 | ||||
|         android:nextFocusLeft="@id/result_episode_download" | ||||
|         android:nextFocusRight="@id/result_episode_download" | ||||
| 
 | ||||
|         android:id="@+id/episode_holder" | ||||
|         android:layout_width="match_parent" | ||||
|         android:layout_height="50dp" | ||||
| 
 | ||||
|         app:cardCornerRadius="@dimen/roundedImageRadius" | ||||
|         app:cardBackgroundColor="@color/transparent" | ||||
|         app:cardElevation="0dp" | ||||
|         android:id="@+id/episode_holder" | ||||
|         android:foreground="?android:attr/selectableItemBackgroundBorderless" | ||||
|         android:foreground="@drawable/outline_drawable" | ||||
|         android:layout_marginBottom="5dp" | ||||
| > | ||||
|     <!-- IDK BUT THIS DOES NOT SEAM LIKE A GOOD WAY OF DOING IT --> | ||||
|  | @ -99,6 +104,10 @@ | |||
|                 android:visibility="visible" | ||||
|         /> | ||||
|         <ImageView | ||||
|                 android:nextFocusLeft="@id/episode_holder" | ||||
|                 android:nextFocusRight="@id/episode_holder" | ||||
| 
 | ||||
|                 android:id="@+id/result_episode_download" | ||||
|                 android:visibility="visible" | ||||
|                 android:layout_marginEnd="10dp" | ||||
|                 android:layout_marginStart="10dp" | ||||
|  | @ -106,7 +115,6 @@ | |||
|                 android:layout_gravity="center_vertical" | ||||
|                 android:padding="2dp" | ||||
|                 android:layout_width="30dp" | ||||
|                 android:id="@+id/result_episode_download" | ||||
|                 android:background="?selectableItemBackgroundBorderless" | ||||
|                 android:src="@drawable/ic_baseline_play_arrow_24" | ||||
|                 android:contentDescription="@string/download"/> | ||||
|  |  | |||
|  | @ -1,14 +1,19 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <androidx.cardview.widget.CardView | ||||
|         xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|         android:layout_width="match_parent" | ||||
|         android:layout_height="wrap_content" | ||||
|         xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
|         xmlns:tools="http://schemas.android.com/tools" | ||||
| 
 | ||||
|         android:nextFocusLeft="@id/episode_poster" | ||||
|         android:nextFocusRight="@id/result_episode_download" | ||||
|         android:id="@+id/episode_holder" | ||||
| 
 | ||||
|         android:layout_width="match_parent" | ||||
|         android:layout_height="wrap_content" | ||||
|         app:cardCornerRadius="@dimen/roundedImageRadius" | ||||
|         app:cardBackgroundColor="@color/itemBackground" | ||||
|         android:id="@+id/episode_holder" | ||||
|         android:foreground="?android:attr/selectableItemBackgroundBorderless" | ||||
| 
 | ||||
|         android:foreground="@drawable/outline_drawable" | ||||
|         android:layout_marginBottom="10dp" | ||||
| > | ||||
|     <LinearLayout | ||||
|  | @ -26,8 +31,11 @@ | |||
|                     android:layout_height="72dp" | ||||
|             > | ||||
|                 <ImageView | ||||
|                         android:foreground="?android:attr/selectableItemBackground" | ||||
|                         android:nextFocusLeft="@id/result_episode_download" | ||||
|                         android:nextFocusRight="@id/episode_holder" | ||||
| 
 | ||||
|                         android:id="@+id/episode_poster" | ||||
|                         android:foreground="@drawable/outline_drawable" | ||||
|                         tools:src="@drawable/example_poster" | ||||
|                         android:scaleType="centerCrop" | ||||
|                         android:layout_width="match_parent" | ||||
|  | @ -98,6 +106,10 @@ | |||
|                         android:visibility="visible" | ||||
|                 /> | ||||
|                 <ImageView | ||||
|                         android:nextFocusLeft="@id/episode_poster" | ||||
|                         android:nextFocusRight="@id/episode_holder" | ||||
|                         android:id="@+id/result_episode_download" | ||||
| 
 | ||||
|                         android:visibility="visible" | ||||
|                         android:layout_marginEnd="10dp" | ||||
|                         android:layout_marginStart="10dp" | ||||
|  | @ -105,7 +117,6 @@ | |||
|                         android:layout_gravity="center_vertical" | ||||
|                         android:padding="2dp" | ||||
|                         android:layout_width="30dp" | ||||
|                         android:id="@+id/result_episode_download" | ||||
|                         android:background="?selectableItemBackgroundBorderless" | ||||
|                         android:src="@drawable/ic_baseline_play_arrow_24" | ||||
|                         android:contentDescription="@string/download"/> | ||||
|  |  | |||
|  | @ -6,12 +6,12 @@ | |||
|         xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
|         android:orientation="vertical" | ||||
| 
 | ||||
|         android:foreground="@drawable/outline_drawable" | ||||
|         android:focusable="true" | ||||
|         android:clickable="true" | ||||
|         android:id="@+id/search_result_root" | ||||
| > | ||||
|     <androidx.cardview.widget.CardView | ||||
|             android:foreground="?android:attr/selectableItemBackgroundBorderless" | ||||
|             android:layout_margin="2dp" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="match_parent" | ||||
|  | @ -23,8 +23,9 @@ | |||
|     > | ||||
| 
 | ||||
|         <ImageView | ||||
|                 android:duplicateParentState="true" | ||||
|                 android:id="@+id/imageView" | ||||
| 
 | ||||
|                 android:duplicateParentState="true" | ||||
|                 android:scaleType="centerCrop" | ||||
|                 android:layout_width="match_parent" | ||||
|                 android:layout_height="match_parent" | ||||
|  | @ -39,6 +40,8 @@ | |||
|                 android:layout_gravity="bottom" tools:ignore="ContentDescription"> | ||||
|         </ImageView> | ||||
|         <TextView | ||||
|                 android:id="@+id/imageText" | ||||
| 
 | ||||
|                 android:layout_width="match_parent" | ||||
|                 android:layout_height="wrap_content" | ||||
|                 android:gravity="center" | ||||
|  | @ -46,7 +49,6 @@ | |||
|                 android:paddingBottom="5dp" | ||||
|                 android:paddingTop="5dp" | ||||
|                 android:textColor="@color/textColor" | ||||
|                 android:id="@+id/imageText" | ||||
|                 android:textStyle="bold" | ||||
|                 android:maxLines="2" | ||||
|                 android:paddingStart="5dp" | ||||
|  | @ -54,9 +56,10 @@ | |||
|                 android:ellipsize="end" | ||||
|         /> | ||||
|         <TextView | ||||
|                 android:text="Movie" | ||||
|                 android:visibility="gone" | ||||
|                 android:id="@+id/text_type" | ||||
| 
 | ||||
|                 tools:text="Movie" | ||||
|                 android:visibility="gone" | ||||
|                 android:textColor="@color/textColor" | ||||
|                 android:paddingRight="10dp" | ||||
|                 android:paddingLeft="10dp" | ||||
|  | @ -92,12 +95,12 @@ | |||
|                 android:layout_width="match_parent" | ||||
|                 android:layout_height="match_parent"> | ||||
| 
 | ||||
| <!-- | ||||
|             <ImageView android:id="@+id/text_is_dub" android:tint="?attr/colorPrimary" | ||||
|                        android:src="@drawable/ic_baseline_subtitles_24" android:layout_width="wrap_content" | ||||
|                        android:layout_height="20dp"> | ||||
|             <!-- | ||||
|                         <ImageView android:id="@+id/text_is_dub" android:tint="?attr/colorPrimary" | ||||
|                                    android:src="@drawable/ic_baseline_subtitles_24" android:layout_width="wrap_content" | ||||
|                                    android:layout_height="20dp"> | ||||
| 
 | ||||
|             </ImageView>--> | ||||
|                         </ImageView>--> | ||||
|             <TextView | ||||
|                     android:text="@string/app_dubbed_text" | ||||
|                     android:id="@+id/text_is_dub" | ||||
|  |  | |||
|  | @ -65,6 +65,7 @@ | |||
|     <style name="AppModalStyle" | ||||
|            parent="Widget.Design.BottomSheet.Modal"> | ||||
|         <item name="android:background">@drawable/rounded_dialog</item> | ||||
|         <item name="behavior_peekHeight">512dp</item> | ||||
|     </style> | ||||
| 
 | ||||
| 
 | ||||
|  | @ -153,13 +154,17 @@ | |||
|         <item name="android:padding">5dp</item> | ||||
|         <item name="android:layout_marginStart">5dp</item> | ||||
|         <item name="android:layout_marginEnd">5dp</item> | ||||
|         <item name="android:layout_height">50dp</item> | ||||
|         <item name="android:layout_height">40dp</item> | ||||
|         <item name="android:textStyle">bold</item> | ||||
|         <item name="android:textAllCaps">false</item> | ||||
|         <item name="iconGravity">textStart</item> | ||||
|         <item name="iconSize">20dp</item> | ||||
|         <item name="cornerRadius">4dp</item> | ||||
|         <item name="android:textSize">15sp</item> | ||||
| 
 | ||||
|         <item name="android:insetTop">0dp</item> | ||||
|         <item name="android:insetBottom">0dp</item> | ||||
|         <item name="android:foreground">@drawable/outline_drawable</item> | ||||
|     </style> | ||||
| 
 | ||||
|     <style name="WhiteButton" parent="NiceButton"> | ||||
|  | @ -167,7 +172,7 @@ | |||
|         <item name="backgroundTint">?attr/textColor</item> | ||||
|         <item name="iconTint">?attr/iconGrayBackground</item> | ||||
|         <item name="android:textColor">?attr/iconGrayBackground</item> | ||||
|         <item name="rippleColor">?attr/iconGrayBackground</item> | ||||
|         <item name="rippleColor">?attr/primaryBlackBackground</item> | ||||
|     </style> | ||||
| 
 | ||||
|     <style name="BlackButton" parent="NiceButton"> | ||||
|  | @ -177,6 +182,12 @@ | |||
|         <item name="android:textColor">?attr/textColor</item> | ||||
|         <item name="rippleColor">?attr/textColor</item> | ||||
|     </style> | ||||
| 
 | ||||
|     <style name="MultiSelectButton" parent="BlackButton"> | ||||
|         <item name="android:layout_height">40dp</item> | ||||
|         <item name="android:layout_width">wrap_content</item> | ||||
|     </style> | ||||
| 
 | ||||
|     <!--@color/white ?attr/colorPrimary--> | ||||
|     <!--CHECK ?attr/darkBackground ?attr/colorPrimary--> | ||||
|     <!-- CHROMECAST --> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue