minor UI and icon changes + tmp readded search

This commit is contained in:
reduplicated 2022-10-28 18:43:14 +02:00
parent 47da6efb59
commit c18856c8c3
29 changed files with 508 additions and 333 deletions

View file

@ -6,6 +6,7 @@ import android.content.Context
import android.content.DialogInterface import android.content.DialogInterface
import android.content.Intent import android.content.Intent
import android.content.res.Configuration import android.content.res.Configuration
import android.graphics.Color
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
@ -14,7 +15,6 @@ import android.view.ViewGroup
import android.widget.* import android.widget.*
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.appcompat.widget.SearchView import androidx.appcompat.widget.SearchView
import androidx.core.content.ContextCompat
import androidx.core.content.ContextCompat.getDrawable import androidx.core.content.ContextCompat.getDrawable
import androidx.core.view.isGone import androidx.core.view.isGone
import androidx.core.view.isVisible import androidx.core.view.isVisible
@ -23,7 +23,6 @@ import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels import androidx.fragment.app.activityViewModels
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.LinearSnapHelper
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialog
@ -104,11 +103,13 @@ import kotlinx.android.synthetic.main.fragment_home.home_watch_holder
import kotlinx.android.synthetic.main.fragment_home.home_watch_parent_item_title import kotlinx.android.synthetic.main.fragment_home.home_watch_parent_item_title
import kotlinx.android.synthetic.main.fragment_home.result_error_text import kotlinx.android.synthetic.main.fragment_home.result_error_text
import kotlinx.android.synthetic.main.fragment_home_tv.* import kotlinx.android.synthetic.main.fragment_home_tv.*
import kotlinx.android.synthetic.main.fragment_search.*
import kotlinx.android.synthetic.main.home_episodes_expanded.* import kotlinx.android.synthetic.main.home_episodes_expanded.*
import kotlinx.android.synthetic.main.tvtypes_chips.* import kotlinx.android.synthetic.main.tvtypes_chips.*
import kotlinx.android.synthetic.main.tvtypes_chips.view.* import kotlinx.android.synthetic.main.tvtypes_chips.view.*
import java.util.* import java.util.*
const val HOME_BOOKMARK_VALUE_LIST = "home_bookmarked_last_list" const val HOME_BOOKMARK_VALUE_LIST = "home_bookmarked_last_list"
const val HOME_PREF_HOMEPAGE = "home_pref_homepage" const val HOME_PREF_HOMEPAGE = "home_pref_homepage"
@ -560,7 +561,12 @@ class HomeFragment : Fragment() {
// very ugly code, but I dont care // very ugly code, but I dont care
val watchType = DataStoreHelper.getResultWatchState(preview.value.getId()) val watchType = DataStoreHelper.getResultWatchState(preview.value.getId())
home_preview_bookmark?.setText(watchType.stringRes) home_preview_bookmark?.setText(watchType.stringRes)
home_preview_bookmark?.setCompoundDrawablesWithIntrinsicBounds(null,getDrawable(home_preview_bookmark.context, watchType.iconRes),null,null) home_preview_bookmark?.setCompoundDrawablesWithIntrinsicBounds(
null,
getDrawable(home_preview_bookmark.context, watchType.iconRes),
null,
null
)
home_preview_bookmark?.setOnClickListener { fab -> home_preview_bookmark?.setOnClickListener { fab ->
activity?.showBottomDialog( activity?.showBottomDialog(
WatchType.values().map { fab.context.getString(it.stringRes) } WatchType.values().map { fab.context.getString(it.stringRes) }
@ -570,7 +576,12 @@ class HomeFragment : Fragment() {
showApply = false, showApply = false,
{}) { {}) {
val newValue = WatchType.values()[it] val newValue = WatchType.values()[it]
home_preview_bookmark?.setCompoundDrawablesWithIntrinsicBounds(null,getDrawable(home_preview_bookmark.context, newValue.iconRes),null,null) home_preview_bookmark?.setCompoundDrawablesWithIntrinsicBounds(
null,
getDrawable(home_preview_bookmark.context, newValue.iconRes),
null,
null
)
home_preview_bookmark?.setText(newValue.stringRes) home_preview_bookmark?.setText(newValue.stringRes)
updateWatchStatus(preview.value, newValue) updateWatchStatus(preview.value, newValue)
@ -585,6 +596,11 @@ class HomeFragment : Fragment() {
} }
} }
val searchText =
home_search?.findViewById<SearchView.SearchAutoComplete>(androidx.appcompat.R.id.search_src_text)
searchText?.setTextColor(Color.WHITE)
searchText?.setHintTextColor(Color.WHITE)
observe(homeViewModel.apiName) { apiName -> observe(homeViewModel.apiName) { apiName ->
currentApiName = apiName currentApiName = apiName
// setKey(USER_SELECTED_HOMEPAGE_API, apiName) // setKey(USER_SELECTED_HOMEPAGE_API, apiName)
@ -749,14 +765,22 @@ class HomeFragment : Fragment() {
Pair(home_type_on_hold_btt, WatchType.ONHOLD), Pair(home_type_on_hold_btt, WatchType.ONHOLD),
Pair(home_plan_to_watch_btt, WatchType.PLANTOWATCH), Pair(home_plan_to_watch_btt, WatchType.PLANTOWATCH),
) )
val currentSet = getKey<IntArray>(HOME_BOOKMARK_VALUE_LIST)
?.map { WatchType.fromInternalId(it) }?.toSet() ?: emptySet()
for ((chip, watch) in toggleList) {
chip.isChecked = currentSet.contains(watch)
chip?.setOnCheckedChangeListener { _, _ ->
homeViewModel.loadStoredData(toggleList.filter { it.first?.isChecked == true }
.map { it.second }.toSet())
}
/*chip?.setOnClickListener {
for (item in toggleList) {
val watch = item.second
item.first?.setOnClickListener {
homeViewModel.loadStoredData(EnumSet.of(watch)) homeViewModel.loadStoredData(EnumSet.of(watch))
} }
item.first?.setOnLongClickListener { itemView -> chip?.setOnLongClickListener { itemView ->
val list = EnumSet.noneOf(WatchType::class.java) val list = EnumSet.noneOf(WatchType::class.java)
itemView.context.getKey<IntArray>(HOME_BOOKMARK_VALUE_LIST) itemView.context.getKey<IntArray>(HOME_BOOKMARK_VALUE_LIST)
?.map { WatchType.fromInternalId(it) }?.let { ?.map { WatchType.fromInternalId(it) }?.let {
@ -770,7 +794,7 @@ class HomeFragment : Fragment() {
} }
homeViewModel.loadStoredData(list) homeViewModel.loadStoredData(list)
return@setOnLongClickListener true return@setOnLongClickListener true
} }*/
} }
observe(homeViewModel.availableWatchStatusTypes) { availableWatchStatusTypes -> observe(homeViewModel.availableWatchStatusTypes) { availableWatchStatusTypes ->
@ -993,6 +1017,7 @@ class HomeFragment : Fragment() {
} }
//context?.fixPaddingStatusbarView(home_statusbar) //context?.fixPaddingStatusbarView(home_statusbar)
context?.fixPaddingStatusbar(home_padding)
context?.fixPaddingStatusbar(home_loading_statusbar) context?.fixPaddingStatusbar(home_loading_statusbar)
home_master_recycler.adapter = home_master_recycler.adapter =

View file

@ -51,8 +51,8 @@ class HomeViewModel : ViewModel() {
} }
private val _availableWatchStatusTypes = private val _availableWatchStatusTypes =
MutableLiveData<Pair<EnumSet<WatchType>, EnumSet<WatchType>>>() MutableLiveData<Pair<Set<WatchType>, Set<WatchType>>>()
val availableWatchStatusTypes: LiveData<Pair<EnumSet<WatchType>, EnumSet<WatchType>>> = val availableWatchStatusTypes: LiveData<Pair<Set<WatchType>, Set<WatchType>>> =
_availableWatchStatusTypes _availableWatchStatusTypes
private val _bookmarks = MutableLiveData<Pair<Boolean, List<SearchResponse>>>() private val _bookmarks = MutableLiveData<Pair<Boolean, List<SearchResponse>>>()
val bookmarks: LiveData<Pair<Boolean, List<SearchResponse>>> = _bookmarks val bookmarks: LiveData<Pair<Boolean, List<SearchResponse>>> = _bookmarks
@ -98,7 +98,7 @@ class HomeViewModel : ViewModel() {
} }
} }
fun loadStoredData(preferredWatchStatus: EnumSet<WatchType>?) = viewModelScope.launchSafe { fun loadStoredData(preferredWatchStatus: Set<WatchType>?) = viewModelScope.launchSafe {
val watchStatusIds = withContext(Dispatchers.IO) { val watchStatusIds = withContext(Dispatchers.IO) {
getAllWatchStateIds()?.map { id -> getAllWatchStateIds()?.map { id ->
Pair(id, getResultWatchState(id)) Pair(id, getResultWatchState(id))
@ -106,7 +106,7 @@ class HomeViewModel : ViewModel() {
}?.distinctBy { it.first } ?: return@launchSafe }?.distinctBy { it.first } ?: return@launchSafe
val length = WatchType.values().size val length = WatchType.values().size
val currentWatchTypes = EnumSet.noneOf(WatchType::class.java) val currentWatchTypes = mutableSetOf<WatchType>()
for (watch in watchStatusIds) { for (watch in watchStatusIds) {
currentWatchTypes.add(watch.second) currentWatchTypes.add(watch.second)

View file

@ -22,7 +22,7 @@ import androidx.core.widget.doOnTextChanged
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import com.discord.panels.OverlappingPanelsLayout import com.discord.panels.OverlappingPanelsLayout
import com.google.android.material.button.MaterialButton import com.google.android.material.chip.Chip
import com.lagradost.cloudstream3.APIHolder.getApiDubstatusSettings import com.lagradost.cloudstream3.APIHolder.getApiDubstatusSettings
import com.lagradost.cloudstream3.APIHolder.getApiFromNameNull import com.lagradost.cloudstream3.APIHolder.getApiFromNameNull
import com.lagradost.cloudstream3.APIHolder.updateHasTrailers import com.lagradost.cloudstream3.APIHolder.updateHasTrailers
@ -99,6 +99,7 @@ import kotlinx.android.synthetic.main.result_sync.*
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import com.google.android.material.chip.ChipDrawable
const val START_ACTION_RESUME_LATEST = 1 const val START_ACTION_RESUME_LATEST = 1
const val START_ACTION_LOAD_EP = 2 const val START_ACTION_LOAD_EP = 2
@ -926,18 +927,37 @@ open class ResultFragment : ResultTrailerPlayer() {
val tags = d.tags val tags = d.tags
result_tag_holder?.isVisible = tags.isNotEmpty() result_tag_holder?.isVisible = tags.isNotEmpty()
if (tags.isNotEmpty()) { result_tag?.apply {
//result_tag_holder?.visibility = VISIBLE tags.forEach { tag ->
val isOnTv = isTrueTvSettings() val chip = Chip(context)
for ((index, tag) in tags.withIndex()) { val chipDrawable = ChipDrawable.createFromAttributes(
context,
null,
0,
R.style.ChipFilled
)
chip.setChipDrawable(chipDrawable)
chip.text = tag
chip.isCheckable = false
chip.isFocusable = false
chip.isClickable = false
addView(chip)
}
}
// if (tags.isNotEmpty()) {
//result_tag_holder?.visibility = VISIBLE
//val isOnTv = isTrueTvSettings()
/*for ((index, tag) in tags.withIndex()) {
val viewBtt = layoutInflater.inflate(R.layout.result_tag, null) val viewBtt = layoutInflater.inflate(R.layout.result_tag, null)
val btt = viewBtt.findViewById<MaterialButton>(R.id.result_tag_card) val btt = viewBtt.findViewById<MaterialButton>(R.id.result_tag_card)
btt.text = tag btt.text = tag
btt.isFocusable = !isOnTv btt.isFocusable = !isOnTv
btt.isClickable = !isOnTv btt.isClickable = !isOnTv
result_tag?.addView(viewBtt, index) result_tag?.addView(viewBtt, index)
} }*/
} //}
} }
is Resource.Failure -> { is Resource.Failure -> {
result_error_text.text = storedData?.url?.plus("\n") + data.errorString result_error_text.text = storedData?.url?.plus("\n") + data.errorString

View file

@ -27,8 +27,10 @@ import com.lagradost.cloudstream3.ui.search.SearchHelper
import com.lagradost.cloudstream3.utils.AppUtils.isCastApiAvailable import com.lagradost.cloudstream3.utils.AppUtils.isCastApiAvailable
import com.lagradost.cloudstream3.utils.AppUtils.openBrowser import com.lagradost.cloudstream3.utils.AppUtils.openBrowser
import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.ExtractorLink
import com.lagradost.cloudstream3.utils.SingleSelectionHelper
import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showBottomDialog import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showBottomDialog
import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showBottomDialogInstant import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showBottomDialogInstant
import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showDialog
import com.lagradost.cloudstream3.utils.UIHelper.dismissSafe import com.lagradost.cloudstream3.utils.UIHelper.dismissSafe
import com.lagradost.cloudstream3.utils.UIHelper.popCurrentPage import com.lagradost.cloudstream3.utils.UIHelper.popCurrentPage
import com.lagradost.cloudstream3.utils.UIHelper.popupMenuNoIcons import com.lagradost.cloudstream3.utils.UIHelper.popupMenuNoIcons
@ -127,6 +129,8 @@ class ResultFragmentPhone : ResultFragment() {
down.nextFocusUpId = upper.id down.nextFocusUpId = upper.id
} }
var selectSeason : String? = null
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
val apiName = arguments?.getString(API_NAME_BUNDLE) ?: return val apiName = arguments?.getString(API_NAME_BUNDLE) ?: return
@ -297,6 +301,7 @@ class ResultFragmentPhone : ResultFragment() {
observe(viewModel.selectedSeason) { text -> observe(viewModel.selectedSeason) { text ->
result_season_button.setText(text) result_season_button.setText(text)
selectSeason = (if (text is Some.Success) text.value else null)?.asStringNull(result_season_button?.context)
// If the season button is visible the result season button will be next focus down // If the season button is visible the result season button will be next focus down
if (result_season_button?.isVisible == true) if (result_season_button?.isVisible == true)
if (result_resume_parent?.isVisible == true) if (result_resume_parent?.isVisible == true)
@ -366,17 +371,24 @@ class ResultFragmentPhone : ResultFragment() {
observe(viewModel.seasonSelections) { seasonList -> observe(viewModel.seasonSelections) { seasonList ->
result_season_button?.setOnClickListener { view -> result_season_button?.setOnClickListener { view ->
view?.context?.let { ctx -> view?.context?.let { ctx ->
val names = seasonList val names = seasonList
.mapNotNull { (text, r) -> .mapNotNull { (text, r) ->
r to (text?.asStringNull(ctx) ?: return@mapNotNull null) r to (text?.asStringNull(ctx) ?: return@mapNotNull null)
} }
view.popupMenuNoIconsAndNoStringRes(names.mapIndexed { index, (_, name) -> activity?.showDialog(names.map { it.second },names.indexOfFirst { it.second == selectSeason },"",false,{}) { itemId->
index to name
}) {
viewModel.changeSeason(names[itemId].first) viewModel.changeSeason(names[itemId].first)
} }
//view.popupMenuNoIconsAndNoStringRes(names.mapIndexed { index, (_, name) ->
// index to name
//}) {
// viewModel.changeSeason(names[itemId].first)
//}
} }
} }
} }

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:width="24dp"
android:height="24dp"
android:viewportWidth="48"
android:viewportHeight="48"
android:tint="?attr/white"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M11.05,39H17.95V26.15H30.1V39H36.95V19.55L24,9.85L11.05,19.55ZM11.05,42.65Q9.5,42.65 8.45,41.6Q7.4,40.55 7.4,39V19.55Q7.4,18.7 7.775,17.925Q8.15,17.15 8.85,16.65L21.8,6.9Q22.3,6.55 22.875,6.375Q23.45,6.2 24,6.2Q24.6,6.2 25.15,6.375Q25.7,6.55 26.2,6.9L39.15,16.65Q39.85,17.15 40.225,17.925Q40.6,18.7 40.6,19.55V39Q40.6,40.55 39.55,41.6Q38.5,42.65 36.95,42.65H26.45V29.8H21.6V42.65ZM24,24.4Z"/>
</vector>

View file

@ -1,5 +1,8 @@
<vector android:height="24dp" android:tint="?attr/white" <vector android:width="24dp"
android:viewportHeight="24" android:viewportWidth="24" android:height="24dp"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> android:viewportWidth="48"
<path android:fillColor="@android:color/white" android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/> android:viewportHeight="48"
android:tint="?attr/white"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M24,38.35Q23.25,38.35 22.725,37.825Q22.2,37.3 22.2,36.5V25.8H11.45Q10.7,25.8 10.175,25.25Q9.65,24.7 9.65,23.95Q9.65,23.2 10.175,22.675Q10.7,22.15 11.45,22.15H22.2V11.4Q22.2,10.65 22.725,10.125Q23.25,9.6 24,9.6Q24.75,9.6 25.3,10.125Q25.85,10.65 25.85,11.4V22.15H36.55Q37.3,22.15 37.85,22.675Q38.4,23.2 38.4,23.95Q38.4,24.75 37.85,25.275Q37.3,25.8 36.55,25.8H25.85V36.5Q25.85,37.3 25.3,37.825Q24.75,38.35 24,38.35Z"/>
</vector> </vector>

View file

@ -1,5 +1,8 @@
<vector android:autoMirrored="true" android:height="24dp" <vector android:width="24dp"
android:tint="?attr/white" android:viewportHeight="24" android:height="24dp"
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> android:viewportWidth="48"
<path android:fillColor="@android:color/white" android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z"/> android:viewportHeight="48"
android:tint="?attr/white"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M22,39.35 L7.95,25.3Q7.65,25.05 7.525,24.725Q7.4,24.4 7.4,24Q7.4,23.65 7.525,23.325Q7.65,23 7.95,22.75L22.05,8.6Q22.6,8.1 23.325,8.125Q24.05,8.15 24.6,8.7Q25.1,9.25 25.1,10Q25.1,10.75 24.55,11.3L13.65,22.2H38.1Q38.85,22.2 39.375,22.725Q39.9,23.25 39.9,24Q39.9,24.8 39.375,25.325Q38.85,25.85 38.1,25.85H13.65L24.65,36.8Q25.15,37.35 25.125,38.075Q25.1,38.8 24.55,39.35Q24,39.9 23.25,39.9Q22.5,39.9 22,39.35Z"/>
</vector> </vector>

View file

@ -1,5 +1,8 @@
<vector android:autoMirrored="true" android:height="24dp" <vector android:width="24dp"
android:tint="#FFFFFF" android:viewportHeight="24" android:height="24dp"
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> android:viewportWidth="48"
<path android:fillColor="@android:color/white" android:pathData="M12,4l-1.41,1.41L16.17,11H4v2h12.17l-5.58,5.59L12,20l8,-8z"/> android:viewportHeight="48"
android:tint="?attr/white"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M22.7,39.3Q22.15,38.75 22.175,38Q22.2,37.25 22.75,36.7L33.6,25.85H9.2Q8.45,25.85 7.925,25.325Q7.4,24.8 7.4,24Q7.4,23.25 7.925,22.725Q8.45,22.2 9.2,22.2H33.6L22.75,11.35Q22.2,10.8 22.175,10.025Q22.15,9.25 22.7,8.7Q23.25,8.15 24,8.15Q24.75,8.15 25.3,8.7L39.35,22.75Q39.65,23.05 39.8,23.35Q39.95,23.65 39.95,24Q39.95,24.35 39.8,24.675Q39.65,25 39.35,25.3L25.3,39.35Q24.75,39.9 24,39.875Q23.25,39.85 22.7,39.3Z"/>
</vector> </vector>

View file

@ -1,5 +1,8 @@
<vector android:height="24dp" android:tint="#FFFFFF" <vector android:width="24dp"
android:viewportHeight="24" android:viewportWidth="24" android:height="24dp"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> android:viewportWidth="48"
<path android:fillColor="@android:color/white" android:pathData="M17,3H7c-1.1,0 -1.99,0.9 -1.99,2L5,21l7,-3 7,3V5c0,-1.1 -0.9,-2 -2,-2z"/> android:viewportHeight="48"
android:tint="?attr/white"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M11.75,41.85Q10.85,42.25 10.05,41.725Q9.25,41.2 9.25,40.25V8.5Q9.25,7.05 10.35,5.95Q11.45,4.85 12.9,4.85H35.1Q36.55,4.85 37.65,5.95Q38.75,7.05 38.75,8.5V40.25Q38.75,41.2 37.95,41.725Q37.15,42.25 36.25,41.85L24,36.65Z"/>
</vector> </vector>

View file

@ -1,10 +1,8 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector android:width="24dp"
android:height="24dp" android:height="24dp"
android:tint="?attr/white" android:viewportWidth="48"
android:viewportHeight="24" android:viewportHeight="48"
android:viewportWidth="24" android:tint="?attr/white"
android:width="24dp"> xmlns:android="http://schemas.android.com/apk/res/android">
<path <path android:fillColor="@android:color/white" android:pathData="M12.95,42.8Q11.5,42.8 10.4,41.7Q9.3,40.6 9.3,39.15V10.4H8.75Q8,10.4 7.475,9.85Q6.95,9.3 6.95,8.55Q6.95,7.8 7.475,7.275Q8,6.75 8.75,6.75H17.35Q17.35,6 17.875,5.525Q18.4,5.05 19.15,5.05H28.9Q29.65,5.05 30.175,5.525Q30.7,6 30.7,6.75H39.3Q40.05,6.75 40.6,7.275Q41.15,7.8 41.15,8.55Q41.15,9.35 40.6,9.875Q40.05,10.4 39.3,10.4H38.75V39.15Q38.75,40.6 37.65,41.7Q36.55,42.8 35.1,42.8ZM12.95,10.4V39.15Q12.95,39.15 12.95,39.15Q12.95,39.15 12.95,39.15H35.1Q35.1,39.15 35.1,39.15Q35.1,39.15 35.1,39.15V10.4ZM17.85,33Q17.85,33.75 18.375,34.275Q18.9,34.8 19.65,34.8Q20.4,34.8 20.95,34.275Q21.5,33.75 21.5,33V16.5Q21.5,15.75 20.95,15.2Q20.4,14.65 19.65,14.65Q18.9,14.65 18.375,15.2Q17.85,15.75 17.85,16.5ZM26.6,33Q26.6,33.75 27.125,34.275Q27.65,34.8 28.4,34.8Q29.15,34.8 29.7,34.275Q30.25,33.75 30.25,33V16.5Q30.25,15.75 29.7,15.2Q29.15,14.65 28.4,14.65Q27.65,14.65 27.125,15.2Q26.6,15.75 26.6,16.5ZM12.95,10.4V39.15Q12.95,39.15 12.95,39.15Q12.95,39.15 12.95,39.15Q12.95,39.15 12.95,39.15Q12.95,39.15 12.95,39.15V10.4Z"/>
android:fillColor="?white"
android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2L18,7L6,7v12zM8,9h8v10L8,19L8,9zM15.5,4l-1,-1h-5l-1,1L5,4v2h14L19,4z" />
</vector> </vector>

View file

@ -1,5 +1,8 @@
<vector android:height="24dp" android:tint="#FFFFFF" <vector android:width="24dp"
android:viewportHeight="24" android:viewportWidth="24" android:height="24dp"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> android:viewportWidth="48"
<path android:fillColor="@android:color/white" android:pathData="M10,18h4v-2h-4v2zM3,6v2h18L21,6L3,6zM6,13h12v-2L6,11v2z"/> android:viewportHeight="48"
android:tint="?attr/white"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M21.5,37.35Q20.7,37.35 20.175,36.825Q19.65,36.3 19.65,35.55Q19.65,34.8 20.175,34.25Q20.7,33.7 21.5,33.7H26.5Q27.25,33.7 27.8,34.25Q28.35,34.8 28.35,35.55Q28.35,36.3 27.8,36.825Q27.25,37.35 26.5,37.35ZM7.35,13.1Q6.55,13.1 6.025,12.575Q5.5,12.05 5.5,11.3Q5.5,10.55 6.025,10Q6.55,9.45 7.35,9.45H40.65Q41.4,9.45 41.95,10Q42.5,10.55 42.5,11.3Q42.5,12.05 41.95,12.575Q41.4,13.1 40.65,13.1ZM13.4,25.25Q12.6,25.25 12.075,24.7Q11.55,24.15 11.55,23.4Q11.55,22.65 12.075,22.125Q12.6,21.6 13.4,21.6H34.6Q35.35,21.6 35.875,22.125Q36.4,22.65 36.4,23.4Q36.4,24.2 35.875,24.725Q35.35,25.25 34.6,25.25Z"/>
</vector> </vector>

View file

@ -1,5 +1,8 @@
<vector android:height="24dp" android:tint="#FFFFFF" <vector android:width="24dp"
android:viewportHeight="24" android:viewportWidth="24" android:height="24dp"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> android:viewportWidth="48"
<path android:fillColor="@android:color/white" android:pathData="M7.41,8.59L12,13.17l4.59,-4.58L18,10l-6,6 -6,-6 1.41,-1.41z"/> android:viewportHeight="48"
android:tint="?attr/white"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M24,30.55Q23.65,30.55 23.325,30.4Q23,30.25 22.75,29.95L12.8,20.05Q12.3,19.55 12.325,18.725Q12.35,17.9 12.85,17.4Q13.45,16.8 14.175,16.875Q14.9,16.95 15.45,17.45L24,26.05L32.6,17.45Q33.1,16.95 33.9,16.9Q34.7,16.85 35.25,17.45Q35.8,17.95 35.75,18.75Q35.7,19.55 35.2,20.05L25.3,29.95Q25,30.25 24.675,30.4Q24.35,30.55 24,30.55Z"/>
</vector> </vector>

View file

@ -1,5 +1,8 @@
<vector android:height="24dp" android:tint="?attr/white" <vector android:width="24dp"
android:viewportHeight="24" android:viewportWidth="24" android:height="24dp"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> android:viewportWidth="48"
<path android:fillColor="@android:color/white" android:pathData="M3,17v2h6v-2L3,17zM3,5v2h10L13,5L3,5zM13,21v-2h8v-2h-8v-2h-2v6h2zM7,9v2L3,11v2h4v2h2L9,9L7,9zM21,13v-2L11,11v2h10zM15,9h2L17,7h4L21,5h-4L17,3h-2v6z"/> android:viewportHeight="48"
android:tint="?attr/white"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M7.35,38.4Q6.55,38.4 6.025,37.85Q5.5,37.3 5.5,36.55Q5.5,35.8 6.025,35.275Q6.55,34.75 7.35,34.75H16.95Q17.7,34.75 18.225,35.275Q18.75,35.8 18.75,36.55Q18.75,37.35 18.225,37.875Q17.7,38.4 16.95,38.4ZM7.35,13.25Q6.55,13.25 6.025,12.7Q5.5,12.15 5.5,11.4Q5.5,10.65 6.025,10.125Q6.55,9.6 7.35,9.6H24.9Q25.65,9.6 26.2,10.125Q26.75,10.65 26.75,11.4Q26.75,12.2 26.2,12.725Q25.65,13.25 24.9,13.25ZM23.1,42.5Q22.3,42.5 21.775,41.975Q21.25,41.45 21.25,40.7V32.4Q21.25,31.65 21.8,31.1Q22.35,30.55 23.1,30.55Q23.85,30.55 24.375,31.1Q24.9,31.65 24.9,32.4V34.75H40.65Q41.4,34.75 41.95,35.275Q42.5,35.8 42.5,36.55Q42.5,37.35 41.95,37.875Q41.4,38.4 40.65,38.4H24.9V40.7Q24.9,41.45 24.375,41.975Q23.85,42.5 23.1,42.5ZM16.95,29.95Q16.15,29.95 15.625,29.425Q15.1,28.9 15.1,28.1V25.8H7.35Q6.55,25.8 6.025,25.275Q5.5,24.75 5.5,24Q5.5,23.25 6.025,22.7Q6.55,22.15 7.35,22.15H15.1V19.75Q15.1,19 15.65,18.475Q16.2,17.95 16.95,17.95Q17.7,17.95 18.225,18.475Q18.75,19 18.75,19.75V28.1Q18.75,28.9 18.225,29.425Q17.7,29.95 16.95,29.95ZM23.1,25.8Q22.3,25.8 21.775,25.275Q21.25,24.75 21.25,24Q21.25,23.25 21.775,22.7Q22.3,22.15 23.1,22.15H40.65Q41.4,22.15 41.95,22.7Q42.5,23.25 42.5,24Q42.5,24.75 41.95,25.275Q41.4,25.8 40.65,25.8ZM31.05,17.4Q30.3,17.4 29.775,16.875Q29.25,16.35 29.25,15.6V7.3Q29.25,6.55 29.775,6Q30.3,5.45 31.05,5.45Q31.8,5.45 32.35,6Q32.9,6.55 32.9,7.3V9.6H40.65Q41.4,9.6 41.95,10.125Q42.5,10.65 42.5,11.4Q42.5,12.2 41.95,12.725Q41.4,13.25 40.65,13.25H32.9V15.6Q32.9,16.35 32.35,16.875Q31.8,17.4 31.05,17.4Z"/>
</vector> </vector>

View file

@ -1,20 +1,10 @@
<vector <vector android:name="vector"
xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp"
android:name="vector" android:height="24dp"
android:width="24dp" android:viewportWidth="850"
android:height="24dp" android:viewportHeight="850"
android:viewportWidth="850" android:tint="?attr/white"
android:viewportHeight="850"> xmlns:android="http://schemas.android.com/apk/res/android">
<path <path android:name="path" android:pathData="M 425.2 172.91 C 363.2 172.91 303.676 197.566 259.836 241.406 C 215.996 285.246 191.34 344.77 191.34 406.77 C 191.34 468.77 215.996 528.294 259.836 572.134 C 303.676 615.974 363.2 640.63 425.2 640.63 C 487.2 640.63 546.724 615.974 590.564 572.134 C 634.404 528.294 659.06 468.77 659.06 406.77 C 659.06 344.77 634.404 285.246 590.564 241.406 C 546.724 197.566 487.2 172.91 425.2 172.91 Z" android:strokeColor="#ffffff" android:strokeWidth="60" android:strokeMiterLimit="10"/>
android:name="path" <path android:name="path_1" android:pathData="M 583.631 547.663 L 583.624 547.67 C 587.388 543.906 592.078 541.198 597.22 539.82 C 602.363 538.442 607.778 538.442 612.92 539.82 C 618.063 541.198 622.752 543.906 626.517 547.67 L 719.049 640.202 C 722.813 643.966 725.521 648.656 726.899 653.798 C 728.277 658.941 728.277 664.356 726.899 669.498 C 725.521 674.641 722.813 679.331 719.049 683.095 L 719.056 683.088 C 713.37 688.774 705.65 691.971 697.609 691.971 C 689.568 691.971 681.849 688.774 676.163 683.088 L 583.631 590.556 C 577.945 584.87 574.747 577.15 574.747 569.109 C 574.747 561.068 577.945 553.349 583.631 547.663" android:fillColor="#ffffff" android:strokeWidth="1"/>
android:pathData="M 425.2 172.91 C 363.2 172.91 303.676 197.566 259.836 241.406 C 215.996 285.246 191.34 344.77 191.34 406.77 C 191.34 468.77 215.996 528.294 259.836 572.134 C 303.676 615.974 363.2 640.63 425.2 640.63 C 487.2 640.63 546.724 615.974 590.564 572.134 C 634.404 528.294 659.06 468.77 659.06 406.77 C 659.06 344.77 634.404 285.246 590.564 241.406 C 546.724 197.566 487.2 172.91 425.2 172.91 Z"
android:strokeColor="?attr/white"
android:strokeWidth="60"
android:strokeMiterLimit="10"/>
<path
android:name="path_1"
android:pathData="M 599.86 562.28 L 719.87 682.29"
android:strokeColor="?attr/white"
android:strokeWidth="60"
android:strokeMiterLimit="10"/>
</vector> </vector>

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<vector android:width="48dp"
android:height="48dp"
android:viewportWidth="48"
android:viewportHeight="48"
android:tint="?attr/white"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M27.6,44.8H20.4Q19.7,44.8 19.175,44.4Q18.65,44 18.6,43.3L17.8,38.3Q17,38 16.025,37.475Q15.05,36.95 14.35,36.35L9.75,38.45Q9.15,38.8 8.45,38.55Q7.75,38.3 7.4,37.65L3.8,31.15Q3.4,30.55 3.6,29.9Q3.8,29.25 4.35,28.85L8.5,25.75Q8.45,25.4 8.425,24.85Q8.4,24.3 8.4,23.9Q8.4,23.55 8.425,23.025Q8.45,22.5 8.5,22.1L4.35,19.1Q3.75,18.7 3.6,18.025Q3.45,17.35 3.8,16.75L7.4,10.3Q7.8,9.7 8.45,9.45Q9.1,9.2 9.75,9.5L14.25,11.6Q14.95,11.05 15.95,10.475Q16.95,9.9 17.8,9.6L18.6,4.65Q18.65,3.95 19.175,3.55Q19.7,3.15 20.4,3.15H27.6Q28.3,3.15 28.825,3.55Q29.35,3.95 29.45,4.65L30.2,9.6Q31.05,9.9 32.075,10.475Q33.1,11.05 33.75,11.6L38.25,9.5Q38.85,9.2 39.55,9.45Q40.25,9.7 40.6,10.3L44.2,16.7Q44.55,17.3 44.4,18Q44.25,18.7 43.7,19.1L39.45,22.05Q39.5,22.5 39.55,23.05Q39.6,23.6 39.6,24Q39.6,24.4 39.55,24.925Q39.5,25.45 39.5,25.85L43.65,28.85Q44.2,29.25 44.375,29.925Q44.55,30.6 44.2,31.2L40.6,37.7Q40.2,38.35 39.525,38.575Q38.85,38.8 38.25,38.45L33.65,36.35Q32.95,36.9 32,37.475Q31.05,38.05 30.25,38.3L29.45,43.3Q29.35,44 28.825,44.4Q28.3,44.8 27.6,44.8ZM23.95,31.15Q26.95,31.15 29.05,29.05Q31.15,26.95 31.15,23.95Q31.15,20.95 29.05,18.85Q26.95,16.75 23.95,16.75Q20.95,16.75 18.85,18.85Q16.75,20.95 16.75,23.95Q16.75,26.95 18.85,29.05Q20.95,31.15 23.95,31.15ZM23.9,27.5Q22.45,27.5 21.425,26.45Q20.4,25.4 20.4,23.95Q20.4,22.45 21.425,21.425Q22.45,20.4 23.95,20.4Q25.4,20.4 26.45,21.45Q27.5,22.5 27.5,23.95Q27.5,25.45 26.45,26.475Q25.4,27.5 23.9,27.5ZM24,23.95Q24,23.95 24,23.95Q24,23.95 24,23.95Q24,23.95 24,23.95Q24,23.95 24,23.95Q24,23.95 24,23.95Q24,23.95 24,23.95Q24,23.95 24,23.95Q24,23.95 24,23.95Q24,23.95 24,23.95Q24,23.95 24,23.95Q24,23.95 24,23.95Q24,23.95 24,23.95Q24,23.95 24,23.95Q24,23.95 24,23.95Q24,23.95 24,23.95Q24,23.95 24,23.95ZM21.8,41.15H26.2L26.9,35.5Q28.6,35.1 30.1,34.25Q31.6,33.4 32.85,32.15L38.1,34.45L40.1,30.85L35.45,27.4Q35.65,26.55 35.8,25.7Q35.95,24.85 35.95,23.95Q35.95,23.05 35.825,22.225Q35.7,21.4 35.5,20.5L40.1,17.1L38.15,13.5L32.85,15.75Q31.7,14.45 30.2,13.525Q28.7,12.6 26.9,12.35L26.25,6.8H21.75L21.1,12.35Q19.3,12.75 17.775,13.625Q16.25,14.5 15.1,15.75L9.9,13.5L7.85,17.1L12.5,20.55Q12.3,21.45 12.175,22.275Q12.05,23.1 12.05,23.9Q12.05,24.75 12.175,25.6Q12.3,26.45 12.5,27.4L7.85,30.85L9.9,34.45L15.15,32.15Q16.45,33.45 17.95,34.3Q19.45,35.15 21.1,35.55Z"/>
</vector>

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="?attr/white" />
<corners
android:bottomLeftRadius="@dimen/storage_radius"
android:topLeftRadius="@dimen/storage_radius" />
</shape>

View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="?attr/white" />
<corners android:radius="@dimen/storage_radius" />
</shape>

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="?attr/colorPrimary" />
</shape>

View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="?attr/colorPrimary" />
<corners android:radius="@dimen/storage_radius" />
</shape>

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="?attr/grayTextColor" />
<corners
android:bottomRightRadius="@dimen/storage_radius"
android:topRightRadius="@dimen/storage_radius" />
</shape>

View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="?attr/grayTextColor" />
<corners android:radius="@dimen/storage_radius" />
</shape>

View file

@ -1,149 +1,149 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/download_root" android:id="@+id/download_root"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_width="match_parent" android:layout_height="match_parent"
android:layout_height="match_parent" android:background="?attr/primaryGrayBackground"
android:background="?attr/primaryGrayBackground" android:orientation="vertical"
tools:context=".ui.download.DownloadFragment"> tools:context=".ui.download.DownloadFragment">
<com.google.android.material.appbar.AppBarLayout <com.google.android.material.appbar.AppBarLayout
android:background="?attr/primaryGrayBackground" android:layout_width="match_parent"
tools:layout_height="100dp" android:layout_height="wrap_content"
android:layout_width="match_parent" android:background="?attr/primaryGrayBackground"
android:layout_height="wrap_content"> tools:layout_height="100dp">
<!-- <!--
For Scroll add to LinearLayout For Scroll add to LinearLayout
app:layout_scrollFlags="scroll|enterAlways" app:layout_scrollFlags="scroll|enterAlways"
--> -->
<LinearLayout <LinearLayout
android:id="@+id/download_storage_appbar" android:id="@+id/download_storage_appbar"
tools:visibility="visible" android:layout_width="match_parent"
android:visibility="gone" android:layout_height="wrap_content"
android:layout_margin="10dp" android:layout_margin="10dp"
android:orientation="vertical" android:orientation="vertical"
android:layout_width="match_parent" android:visibility="gone"
android:layout_height="wrap_content"> tools:visibility="visible">
<TextView <TextView
android:textColor="?attr/textColor" android:layout_width="wrap_content"
android:layout_marginBottom="5dp" android:layout_height="wrap_content"
android:text="@string/download_storage_text" android:layout_marginBottom="5dp"
android:layout_width="wrap_content" android:text="@string/download_storage_text"
android:layout_height="wrap_content" /> android:textColor="?attr/textColor" />
<LinearLayout <LinearLayout
android:layout_marginBottom="5dp" android:layout_width="fill_parent"
android:layout_width="fill_parent" android:layout_height="12dp"
android:layout_height="12dp" android:layout_marginBottom="5dp"
android:orientation="horizontal"> android:orientation="horizontal">
<View <View
android:layout_weight="0.5" android:id="@+id/download_used"
android:id="@+id/download_used" android:layout_width="0dp"
android:background="?attr/white" android:layout_height="match_parent"
android:layout_width="0dp" android:layout_weight="0.5"
android:layout_height="match_parent" /> android:background="@drawable/storage_bar_left" />
<View <View
android:id="@+id/download_app" android:id="@+id/download_app"
android:layout_weight="0.10" android:layout_width="0dp"
android:background="?attr/colorPrimary" android:layout_height="match_parent"
android:layout_width="0dp" android:layout_weight="0.10"
android:layout_height="match_parent" /> android:background="@drawable/storage_bar_mid" />
<View <View
android:id="@+id/download_free" android:id="@+id/download_free"
android:layout_weight="0.10" android:layout_width="0dp"
android:background="?attr/grayTextColor" android:layout_height="match_parent"
android:layout_width="0dp" android:layout_weight="0.10"
android:layout_height="match_parent" /> android:background="@drawable/storage_bar_right" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:layout_height="wrap_content"> android:orientation="horizontal">
<View <View
android:layout_marginEnd="5dp" android:layout_width="10dp"
android:layout_marginTop="5dp" android:layout_height="10dp"
android:layout_marginBottom="5dp" android:layout_gravity="center_vertical"
android:layout_gravity="center_vertical" android:layout_marginTop="5dp"
android:background="?attr/white" android:layout_marginEnd="5dp"
android:layout_width="10dp" android:layout_marginBottom="5dp"
android:layout_height="10dp" /> android:background="@drawable/storage_bar_left_box" />
<TextView <TextView
android:id="@+id/download_used_txt" android:id="@+id/download_used_txt"
android:layout_gravity="center_vertical" android:layout_width="wrap_content"
tools:text="Used • 30.58GB" android:layout_height="wrap_content"
android:textSize="12sp" android:layout_gravity="center_vertical"
android:textColor="?attr/textColor" android:textColor="?attr/textColor"
android:layout_width="wrap_content" android:textSize="12sp"
android:layout_height="wrap_content" /> tools:text="Used • 30.58GB" />
<View <View
android:layout_margin="5dp" android:layout_width="10dp"
android:layout_gravity="center_vertical" android:layout_height="10dp"
android:background="?attr/colorPrimary" android:layout_gravity="center_vertical"
android:layout_width="10dp" android:layout_margin="5dp"
android:layout_height="10dp" /> android:background="@drawable/storage_bar_mid_box" />
<TextView <TextView
android:id="@+id/download_app_txt" android:id="@+id/download_app_txt"
android:layout_gravity="center_vertical" android:layout_width="wrap_content"
tools:text="App • 30.58GB" android:layout_height="wrap_content"
android:textSize="12sp" android:layout_gravity="center_vertical"
android:textColor="?attr/textColor" android:textColor="?attr/textColor"
android:layout_width="wrap_content" android:textSize="12sp"
android:layout_height="wrap_content" /> tools:text="App • 30.58GB" />
<View <View
android:layout_margin="5dp" android:layout_width="10dp"
android:layout_gravity="center_vertical" android:layout_height="10dp"
android:background="?attr/grayTextColor" android:layout_gravity="center_vertical"
android:layout_width="10dp" android:layout_margin="5dp"
android:layout_height="10dp" /> android:background="@drawable/storage_bar_right_box" />
<TextView <TextView
android:id="@+id/download_free_txt" android:id="@+id/download_free_txt"
android:textSize="12sp" android:layout_width="wrap_content"
android:layout_gravity="center_vertical" android:layout_height="wrap_content"
tools:text="Free • 30.58GB" android:layout_gravity="center_vertical"
android:textColor="?attr/textColor" android:textColor="?attr/textColor"
android:layout_width="wrap_content" android:textSize="12sp"
android:layout_height="wrap_content" /> tools:text="Free • 30.58GB" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:nextFocusLeft="@id/nav_rail_view" android:id="@+id/download_list"
android:descendantFocusability="afterDescendants" android:layout_width="match_parent"
android:background="?attr/primaryBlackBackground" android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" android:background="?attr/primaryBlackBackground"
android:id="@+id/download_list" android:descendantFocusability="afterDescendants"
android:layout_width="match_parent" android:nextFocusLeft="@id/nav_rail_view"
tools:listitem="@layout/download_header_episode" app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_height="match_parent" /> tools:listitem="@layout/download_header_episode" />
<TextView <TextView
android:id="@+id/text_no_downloads" android:id="@+id/text_no_downloads"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:textAlignment="center" android:textAlignment="center"
android:textSize="20sp" android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<!-- <!--
<ProgressBar <ProgressBar
@ -155,24 +155,24 @@
</ProgressBar>--> </ProgressBar>-->
<com.facebook.shimmer.ShimmerFrameLayout <com.facebook.shimmer.ShimmerFrameLayout
tools:visibility="gone" android:id="@+id/download_loading"
android:id="@+id/download_loading" android:layout_width="match_parent"
app:shimmer_base_alpha="0.2" android:layout_height="match_parent"
app:shimmer_highlight_alpha="0.3" android:layout_gravity="center"
app:shimmer_duration="@integer/loading_time" android:orientation="vertical"
app:shimmer_auto_start="true" android:paddingTop="40dp"
android:paddingTop="40dp" app:shimmer_auto_start="true"
android:layout_width="match_parent" app:shimmer_base_alpha="0.2"
android:layout_height="match_parent" app:shimmer_duration="@integer/loading_time"
android:layout_gravity="center" app:shimmer_highlight_alpha="0.3"
android:orientation="vertical"> tools:visibility="gone">
<LinearLayout <LinearLayout
android:layout_marginStart="@dimen/loading_margin" android:layout_width="match_parent"
android:layout_marginEnd="@dimen/loading_margin" android:layout_height="wrap_content"
android:layout_width="match_parent" android:layout_marginStart="@dimen/loading_margin"
android:layout_height="wrap_content" android:layout_marginEnd="@dimen/loading_margin"
android:orientation="vertical"> android:orientation="vertical">
<include layout="@layout/loading_downloads" /> <include layout="@layout/loading_downloads" />
@ -189,10 +189,10 @@
</com.facebook.shimmer.ShimmerFrameLayout> </com.facebook.shimmer.ShimmerFrameLayout>
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton <com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
android:text="@string/stream" android:id="@+id/download_stream_button"
android:id="@+id/download_stream_button" style="@style/ExtendedFloatingActionButton"
app:icon="@drawable/netflix_play" android:text="@string/stream"
style="@style/ExtendedFloatingActionButton" android:textColor="?attr/textColor"
android:textColor="?attr/textColor" app:icon="@drawable/netflix_play"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>

View file

@ -11,12 +11,12 @@
<include layout="@layout/standard_toolbar" /> <include layout="@layout/standard_toolbar" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:nextFocusUp="@id/settings_toolbar"
android:nextFocusDown="@id/plugin_storage_appbar"
android:id="@+id/repo_recycler_view" android:id="@+id/repo_recycler_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginBottom="80dp" android:layout_marginBottom="80dp"
android:nextFocusUp="@id/settings_toolbar"
android:nextFocusDown="@id/plugin_storage_appbar"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_behavior="@string/appbar_scrolling_view_behavior" app:layout_behavior="@string/appbar_scrolling_view_behavior"
app:layout_constraintBottom_toTopOf="@id/download_storage_appbar" app:layout_constraintBottom_toTopOf="@id/download_storage_appbar"
@ -47,32 +47,32 @@
android:text="@string/blank_repo_message" android:text="@string/blank_repo_message"
android:textSize="16sp" /> android:textSize="16sp" />
<!-- <com.google.android.material.button.MaterialButton--> <!-- <com.google.android.material.button.MaterialButton-->
<!-- android:id="@+id/list_repositories"--> <!-- android:id="@+id/list_repositories"-->
<!-- style="@style/WhiteButton"--> <!-- style="@style/WhiteButton"-->
<!-- android:layout_width="wrap_content"--> <!-- android:layout_width="wrap_content"-->
<!-- android:nextFocusDown="@id/add_repo_button"--> <!-- android:nextFocusDown="@id/add_repo_button"-->
<!-- android:text="@string/view_public_repositories_button" />--> <!-- android:text="@string/view_public_repositories_button" />-->
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:focusable="true"
android:id="@+id/plugin_storage_appbar" android:id="@+id/plugin_storage_appbar"
android:nextFocusRight="@id/add_repo_button_imageview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="80dp" android:layout_height="80dp"
android:layout_gravity="bottom" android:layout_gravity="bottom"
android:background="?attr/primaryGrayBackground" android:background="?attr/primaryGrayBackground"
android:focusable="true"
android:foreground="@drawable/outline_drawable" android:foreground="@drawable/outline_drawable"
android:nextFocusRight="@id/add_repo_button_imageview"
android:orientation="horizontal"
android:padding="10dp" android:padding="10dp"
android:visibility="visible"
android:orientation="horizontal"> android:visibility="visible">
<LinearLayout <LinearLayout
android:layout_weight="1"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"> android:orientation="vertical">
@ -83,33 +83,39 @@
android:text="@string/extensions" android:text="@string/extensions"
android:textColor="?attr/textColor" /> android:textColor="?attr/textColor" />
<LinearLayout <androidx.cardview.widget.CardView
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="12dp" android:layout_height="12dp"
android:layout_marginBottom="5dp" android:layout_marginBottom="5dp"
android:orientation="horizontal"> app:cardCornerRadius="@dimen/storage_radius">
<View <LinearLayout
android:id="@+id/plugin_download" android:layout_width="match_parent"
android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="?attr/white" android:orientation="horizontal">
tools:layout_weight="0.5" />
<View <View
android:id="@+id/plugin_disabled" android:id="@+id/plugin_download"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="?attr/colorPrimary" android:background="@drawable/storage_bar_left"
tools:layout_weight="0.10" /> tools:layout_weight="0.5" />
<View <View
android:id="@+id/plugin_not_downloaded" android:id="@+id/plugin_disabled"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="?attr/grayTextColor" android:background="@drawable/storage_bar_mid"
tools:layout_weight="0.10" /> tools:layout_weight="0.10" />
</LinearLayout>
<View
android:id="@+id/plugin_not_downloaded"
android:layout_width="0dp"
android:layout_height="match_parent"
android:background="@drawable/storage_bar_right"
tools:layout_weight="0.10" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -123,7 +129,7 @@
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:layout_marginEnd="5dp" android:layout_marginEnd="5dp"
android:layout_marginBottom="5dp" android:layout_marginBottom="5dp"
android:background="?attr/white" /> android:background="@drawable/storage_bar_left_box" />
<TextView <TextView
android:id="@+id/plugin_download_txt" android:id="@+id/plugin_download_txt"
@ -139,7 +145,7 @@
android:layout_height="10dp" android:layout_height="10dp"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_margin="5dp" android:layout_margin="5dp"
android:background="?attr/colorPrimary" /> android:background="@drawable/storage_bar_mid_box" />
<TextView <TextView
android:id="@+id/plugin_disabled_txt" android:id="@+id/plugin_disabled_txt"
@ -155,7 +161,7 @@
android:layout_height="10dp" android:layout_height="10dp"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_margin="5dp" android:layout_margin="5dp"
android:background="?attr/grayTextColor" /> android:background="@drawable/storage_bar_right_box" />
<TextView <TextView
android:id="@+id/plugin_not_downloaded_txt" android:id="@+id/plugin_not_downloaded_txt"
@ -167,34 +173,35 @@
tools:text="Not downloaded 3" /> tools:text="Not downloaded 3" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/add_repo_button_imageview_holder" android:id="@+id/add_repo_button_imageview_holder"
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:orientation="vertical"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent"> android:layout_height="match_parent"
android:orientation="vertical"
android:paddingStart="10dp"
android:paddingEnd="10dp">
<TextView <TextView
android:textColor="?attr/textColor"
android:layout_gravity="center"
android:text="@string/add_repository"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" /> android:layout_height="wrap_content"
<ImageView
android:background="@drawable/outline_drawable"
android:nextFocusLeft="@id/plugin_storage_appbar"
android:layout_gravity="center"
android:focusable="true"
android:layout_gravity="center"
android:text="@string/add_repository"
android:textColor="?attr/textColor" />
<ImageView
android:id="@+id/add_repo_button_imageview" android:id="@+id/add_repo_button_imageview"
android:layout_width="40dp" android:layout_width="40dp"
android:layout_height="40dp" android:layout_height="40dp"
android:src="@drawable/ic_baseline_add_24" android:layout_gravity="center"
android:background="@drawable/outline_drawable"
android:contentDescription="@string/add_repository" android:contentDescription="@string/add_repository"
app:tint="?attr/textColor"> android:focusable="true"
</ImageView> android:nextFocusLeft="@id/plugin_storage_appbar"
android:src="@drawable/ic_baseline_add_24"
app:tint="?attr/textColor" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

View file

@ -294,7 +294,15 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:scaleType="centerCrop" android:scaleType="centerCrop"
tools:src="@drawable/example_poster" /> tools:src="@drawable/example_poster" />
<View
android:visibility="visible"
android:id="@+id/title_shadow_top"
android:layout_width="match_parent"
android:layout_height="150dp"
android:alpha="1"
android:rotation="180"
android:layout_gravity="top"
android:background="@drawable/background_shadow" />
<View <View
android:id="@+id/title_shadow" android:id="@+id/title_shadow"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -302,29 +310,47 @@
android:layout_gravity="bottom" android:layout_gravity="bottom"
android:background="@drawable/background_shadow" /> android:background="@drawable/background_shadow" />
<FrameLayout <LinearLayout
android:id="@+id/home_padding"
android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="80dp" android:layout_height="wrap_content">
android:layout_gravity="top"
android:visibility="gone">
<androidx.appcompat.widget.SearchView <androidx.appcompat.widget.SearchView
android:id="@+id/home_search" android:id="@+id/home_search"
android:layout_width="match_parent" android:layout_width="match_parent"
android:gravity="start"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="start"
android:iconifiedByDefault="false" android:iconifiedByDefault="true"
android:paddingStart="-10dp" app:iconifiedByDefault="true"
app:iconifiedByDefault="false"
app:queryBackground="@color/transparent" app:queryBackground="@color/transparent"
app:queryHint="@string/search_hint" app:queryHint="@string/search"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:editTextColor="@color/white"
app:searchIcon="@drawable/search_icon" app:searchIcon="@drawable/search_icon"
tools:ignore="RtlSymmetry" /> tools:ignore="RtlSymmetry" />
</FrameLayout> </LinearLayout>
<!--
<TextView
android:visibility="gone"
android:id="@+id/test_search"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:layout_gravity="start"
android:gravity="center"
android:textSize="20dp"
android:layout_margin="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/search"
android:textColor="@color/white"
app:drawableLeftCompat="@drawable/search_icon"
app:tint="@color/white" />
-->
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -486,50 +512,60 @@
android:fadingEdge="horizontal" android:fadingEdge="horizontal"
android:requiresFadingEdge="horizontal"> android:requiresFadingEdge="horizontal">
<LinearLayout <com.google.android.material.chip.ChipGroup
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:orientation="horizontal">
<com.google.android.material.button.MaterialButton <com.google.android.material.chip.Chip
android:id="@+id/home_type_watching_btt" android:id="@+id/home_type_watching_btt"
style="@style/RoundedSelectableButton" style="@style/ChipFilled"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:nextFocusLeft="@id/nav_rail_view" android:nextFocusLeft="@id/nav_rail_view"
android:nextFocusRight="@id/home_plan_to_watch_btt" android:nextFocusRight="@id/home_plan_to_watch_btt"
android:text="@string/type_watching" /> android:text="@string/type_watching" />
<com.google.android.material.button.MaterialButton <com.google.android.material.chip.Chip
android:id="@+id/home_plan_to_watch_btt" android:id="@+id/home_plan_to_watch_btt"
style="@style/RoundedSelectableButton" style="@style/ChipFilled"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:nextFocusLeft="@id/home_type_watching_btt" android:nextFocusLeft="@id/home_type_watching_btt"
android:nextFocusRight="@id/home_type_on_hold_btt" android:nextFocusRight="@id/home_type_on_hold_btt"
android:text="@string/type_plan_to_watch" /> android:text="@string/type_plan_to_watch" />
<com.google.android.material.button.MaterialButton <com.google.android.material.chip.Chip
android:id="@+id/home_type_on_hold_btt" android:id="@+id/home_type_on_hold_btt"
style="@style/RoundedSelectableButton" style="@style/ChipFilled"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:nextFocusLeft="@id/home_plan_to_watch_btt" android:nextFocusLeft="@id/home_plan_to_watch_btt"
android:nextFocusRight="@id/home_type_dropped_btt" android:nextFocusRight="@id/home_type_dropped_btt"
android:text="@string/type_on_hold" /> android:text="@string/type_on_hold" />
<com.google.android.material.button.MaterialButton <com.google.android.material.chip.Chip
android:id="@+id/home_type_dropped_btt" android:id="@+id/home_type_dropped_btt"
style="@style/RoundedSelectableButton" style="@style/ChipFilled"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:nextFocusLeft="@id/home_type_on_hold_btt" android:nextFocusLeft="@id/home_type_on_hold_btt"
android:nextFocusRight="@id/home_type_completed_btt" android:nextFocusRight="@id/home_type_completed_btt"
android:text="@string/type_dropped" /> android:text="@string/type_dropped" />
<com.google.android.material.button.MaterialButton <com.google.android.material.chip.Chip
android:id="@+id/home_type_completed_btt" android:id="@+id/home_type_completed_btt"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
style="@style/RoundedSelectableButton" style="@style/ChipFilled"
android:nextFocusLeft="@id/home_type_dropped_btt" android:nextFocusLeft="@id/home_type_dropped_btt"
android:text="@string/type_completed" /> android:text="@string/type_completed" />
</LinearLayout> </com.google.android.material.chip.ChipGroup>
</HorizontalScrollView> </HorizontalScrollView>
<ImageView <ImageView

View file

@ -359,52 +359,60 @@
android:fadingEdge="horizontal" android:fadingEdge="horizontal"
android:requiresFadingEdge="horizontal"> android:requiresFadingEdge="horizontal">
<LinearLayout <com.google.android.material.chip.ChipGroup
android:layout_gravity="center_vertical" android:layout_width="wrap_content"
android:orientation="horizontal" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:orientation="horizontal">
android:layout_height="wrap_content">
<com.google.android.material.button.MaterialButton <com.google.android.material.chip.Chip
android:nextFocusLeft="@id/nav_rail_view" android:id="@+id/home_type_watching_btt"
android:nextFocusRight="@id/home_plan_to_watch_btt" style="@style/ChipFilled"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/home_type_watching_btt" android:nextFocusLeft="@id/nav_rail_view"
android:text="@string/type_watching" android:nextFocusRight="@id/home_plan_to_watch_btt"
style="@style/RoundedSelectableButton" /> android:text="@string/type_watching" />
<com.google.android.material.button.MaterialButton <com.google.android.material.chip.Chip
android:nextFocusLeft="@id/home_type_watching_btt" android:id="@+id/home_plan_to_watch_btt"
android:nextFocusRight="@id/home_type_on_hold_btt" style="@style/ChipFilled"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/home_plan_to_watch_btt" android:nextFocusLeft="@id/home_type_watching_btt"
android:text="@string/type_plan_to_watch" android:nextFocusRight="@id/home_type_on_hold_btt"
style="@style/RoundedSelectableButton" /> android:text="@string/type_plan_to_watch" />
<com.google.android.material.button.MaterialButton <com.google.android.material.chip.Chip
android:nextFocusLeft="@id/home_plan_to_watch_btt" android:id="@+id/home_type_on_hold_btt"
android:nextFocusRight="@id/home_type_dropped_btt" style="@style/ChipFilled"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/home_type_on_hold_btt" android:nextFocusLeft="@id/home_plan_to_watch_btt"
android:text="@string/type_on_hold" android:nextFocusRight="@id/home_type_dropped_btt"
style="@style/RoundedSelectableButton" /> android:text="@string/type_on_hold" />
<com.google.android.material.button.MaterialButton <com.google.android.material.chip.Chip
android:nextFocusLeft="@id/home_type_on_hold_btt" android:id="@+id/home_type_dropped_btt"
android:nextFocusRight="@id/home_type_completed_btt" style="@style/ChipFilled"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/home_type_dropped_btt" android:nextFocusLeft="@id/home_type_on_hold_btt"
android:text="@string/type_dropped" android:nextFocusRight="@id/home_type_completed_btt"
style="@style/RoundedSelectableButton" /> android:text="@string/type_dropped" />
<com.google.android.material.button.MaterialButton <com.google.android.material.chip.Chip
android:nextFocusLeft="@id/home_type_dropped_btt" android:id="@+id/home_type_completed_btt"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/home_type_completed_btt" style="@style/ChipFilled"
android:text="@string/type_completed" android:nextFocusLeft="@id/home_type_dropped_btt"
style="@style/RoundedSelectableButton" /> android:text="@string/type_completed" />
</LinearLayout> </com.google.android.material.chip.ChipGroup> </HorizontalScrollView>
</HorizontalScrollView>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:paddingHorizontal="5dp" android:paddingHorizontal="5dp"

View file

@ -487,11 +487,14 @@
android:textStyle="normal" android:textStyle="normal"
android:visibility="gone" /> android:visibility="gone" />
<com.google.android.material.chip.ChipGroup
<com.lagradost.cloudstream3.widget.FlowLayout android:id="@+id/result_tag"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<!--<com.lagradost.cloudstream3.widget.FlowLayout
android:id="@+id/result_tag" android:id="@+id/result_tag"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />-->
<TextView <TextView
android:id="@+id/result_coming_soon" android:id="@+id/result_coming_soon"

View file

@ -3,7 +3,7 @@
<item <item
android:id="@+id/navigation_home" android:id="@+id/navigation_home"
android:icon="@drawable/ic_outline_home_24" android:icon="@drawable/home_alt"
android:title="@string/title_home"/> android:title="@string/title_home"/>
<item <item
android:id="@+id/navigation_search" android:id="@+id/navigation_search"
@ -15,6 +15,6 @@
android:title="@string/title_downloads"/> android:title="@string/title_downloads"/>
<item <item
android:id="@+id/navigation_settings" android:id="@+id/navigation_settings"
android:icon="@drawable/ic_outline_settings_24" android:icon="@drawable/settings_alt"
android:title="@string/title_settings"/> android:title="@string/title_settings"/>
</menu> </menu>

View file

@ -14,4 +14,7 @@
<dimen name="loading_margin">15dp</dimen> <dimen name="loading_margin">15dp</dimen>
<integer name="loading_time">2000</integer> <integer name="loading_time">2000</integer>
<dimen name="storage_radius">3dp</dimen>
</resources> </resources>

View file

@ -76,7 +76,8 @@
</style> </style>
<style name="ChipFilled" parent="@style/Widget.Material3.Chip.Filter"> <style name="ChipFilled" parent="@style/Widget.Material3.Chip.Filter">
<item name="chipBackgroundColor">@color/chip_color</item> <item name="chipBackgroundColor">@color/chip_color</item>
<item name="chipStrokeColor">@color/transparent</item>
</style> </style>
<style name="AmoledMode"> <style name="AmoledMode">