diff --git a/app/src/main/java/com/github/libretube/constants/PreferenceKeys.kt b/app/src/main/java/com/github/libretube/constants/PreferenceKeys.kt
index 0b34e4177..1fdd5e0ce 100644
--- a/app/src/main/java/com/github/libretube/constants/PreferenceKeys.kt
+++ b/app/src/main/java/com/github/libretube/constants/PreferenceKeys.kt
@@ -29,13 +29,13 @@ object PreferenceKeys {
const val PURE_THEME = "pure_theme"
const val ACCENT_COLOR = "accent_color"
const val GRID_COLUMNS = "grid"
- const val DEFAULT_TAB = "default_tab"
const val LABEL_VISIBILITY = "label_visibility"
const val APP_ICON = "icon_change"
const val LEGACY_SUBSCRIPTIONS = "legacy_subscriptions"
const val LEGACY_SUBSCRIPTIONS_COLUMNS = "legacy_subscriptions_columns"
const val ALTERNATIVE_TRENDING_LAYOUT = "trending_layout"
const val NEW_VIDEOS_BADGE = "new_videos_badge"
+ const val PLAYLISTS_ORDER = "playlists_order"
/**
* Instance
diff --git a/app/src/main/java/com/github/libretube/ui/fragments/HomeFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/HomeFragment.kt
index 1f00e2388..c5a7566cf 100644
--- a/app/src/main/java/com/github/libretube/ui/fragments/HomeFragment.kt
+++ b/app/src/main/java/com/github/libretube/ui/fragments/HomeFragment.kt
@@ -7,7 +7,6 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
-import android.widget.Toast.makeText
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
diff --git a/app/src/main/java/com/github/libretube/ui/fragments/LibraryFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/LibraryFragment.kt
index f0cc9b98a..42e689cb0 100644
--- a/app/src/main/java/com/github/libretube/ui/fragments/LibraryFragment.kt
+++ b/app/src/main/java/com/github/libretube/ui/fragments/LibraryFragment.kt
@@ -97,7 +97,7 @@ class LibraryFragment : BaseFragment() {
fun fetchPlaylists() {
binding.playlistRefresh.isRefreshing = true
lifecycleScope.launchWhenCreated {
- val response = try {
+ var playlists = try {
RetrofitInstance.authApi.playlists(token)
} catch (e: IOException) {
println(e)
@@ -111,11 +111,24 @@ class LibraryFragment : BaseFragment() {
} finally {
binding.playlistRefresh.isRefreshing = false
}
- if (response.isNotEmpty()) {
+ if (playlists.isNotEmpty()) {
binding.loginOrRegister.visibility = View.GONE
+ playlists = when (
+ PreferenceHelper.getString(
+ PreferenceKeys.PLAYLISTS_ORDER,
+ "recent"
+ )
+ ) {
+ "recent" -> playlists
+ "recent_reversed" -> playlists.reversed()
+ "name" -> playlists.sortedBy { it.name }
+ "name_reversed" -> playlists.sortedBy { it.name }.reversed()
+ else -> playlists
+ }
+
val playlistsAdapter = PlaylistsAdapter(
- response.toMutableList(),
+ playlists.toMutableList(),
childFragmentManager,
requireActivity()
)
diff --git a/app/src/main/java/com/github/libretube/ui/fragments/SubscriptionsFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/SubscriptionsFragment.kt
index 7043a1a08..7af018805 100644
--- a/app/src/main/java/com/github/libretube/ui/fragments/SubscriptionsFragment.kt
+++ b/app/src/main/java/com/github/libretube/ui/fragments/SubscriptionsFragment.kt
@@ -25,7 +25,7 @@ class SubscriptionsFragment : BaseFragment() {
private val viewModel: SubscriptionsViewModel by activityViewModels()
private var subscriptionAdapter: TrendingAdapter? = null
- private var sortOrder = "most_recent"
+ private var sortOrder = 0
override fun onCreateView(
inflater: LayoutInflater,
@@ -120,12 +120,11 @@ class SubscriptionsFragment : BaseFragment() {
private fun showSortDialog() {
val sortOptions = resources.getStringArray(R.array.sortOptions)
- val sortOptionValues = resources.getStringArray(R.array.sortOptionsValues)
val bottomSheet = BottomSheet().apply {
setSimpleItems(sortOptions.toList()) { index ->
binding.sortTV.text = sortOptions[index]
- sortOrder = sortOptionValues[index]
+ sortOrder = index
showFeed()
}
}
@@ -140,12 +139,12 @@ class SubscriptionsFragment : BaseFragment() {
val feed = viewModel.videoFeed.value!!
// sort the feed
val sortedFeed = when (sortOrder) {
- "most_recent" -> feed
- "least_recent" -> feed.reversed()
- "most_views" -> feed.sortedBy { it.views }.reversed()
- "least_views" -> feed.sortedBy { it.views }
- "channel_name_az" -> feed.sortedBy { it.uploaderName }
- "channel_name_za" -> feed.sortedBy { it.uploaderName }.reversed()
+ 0 -> feed
+ 1 -> feed.reversed()
+ 2 -> feed.sortedBy { it.views }.reversed()
+ 3 -> feed.sortedBy { it.views }
+ 4 -> feed.sortedBy { it.uploaderName }
+ 5 -> feed.sortedBy { it.uploaderName }.reversed()
else -> feed
}
diff --git a/app/src/main/java/com/github/libretube/ui/preferences/PlayerSettings.kt b/app/src/main/java/com/github/libretube/ui/preferences/PlayerSettings.kt
index 24f5e31de..edf80a2de 100644
--- a/app/src/main/java/com/github/libretube/ui/preferences/PlayerSettings.kt
+++ b/app/src/main/java/com/github/libretube/ui/preferences/PlayerSettings.kt
@@ -10,7 +10,6 @@ import com.github.libretube.ui.activities.SettingsActivity
import com.github.libretube.ui.base.BasePreferenceFragment
import com.github.libretube.util.LocaleHelper
import com.github.libretube.util.PreferenceHelper
-import java.util.*
class PlayerSettings : BasePreferenceFragment() {
diff --git a/app/src/main/res/drawable/ic_filter.xml b/app/src/main/res/drawable/ic_filter.xml
new file mode 100644
index 000000000..52d959093
--- /dev/null
+++ b/app/src/main/res/drawable/ic_filter.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/layout/dialog_delete_account.xml b/app/src/main/res/layout/dialog_delete_account.xml
index 21d350617..e9d0257ca 100644
--- a/app/src/main/res/layout/dialog_delete_account.xml
+++ b/app/src/main/res/layout/dialog_delete_account.xml
@@ -1,8 +1,8 @@
+ android:hint="@string/password"
+ app:passwordToggleEnabled="true">
diff --git a/app/src/main/res/layout/dialog_login.xml b/app/src/main/res/layout/dialog_login.xml
index 4f1157680..9e2192217 100644
--- a/app/src/main/res/layout/dialog_login.xml
+++ b/app/src/main/res/layout/dialog_login.xml
@@ -1,8 +1,8 @@
+ android:hint="@string/password"
+ app:passwordToggleEnabled="true">
+ android:title="@string/downloads" />
+ android:title="@string/history" />
\ No newline at end of file
diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml
index 042a7473a..708d3362a 100644
--- a/app/src/main/res/values-night/themes.xml
+++ b/app/src/main/res/values-night/themes.xml
@@ -93,7 +93,8 @@
- @color/yellow_md_theme_dark_secondary
- @color/yellow_md_theme_dark_onSecondary
- @color/yellow_md_theme_dark_secondaryContainer
- - @color/yellow_md_theme_dark_onSecondaryContainer
+ - @color/yellow_md_theme_dark_onSecondaryContainer
+
- @color/yellow_md_theme_dark_tertiary
- @color/yellow_md_theme_dark_onTertiary
- @color/yellow_md_theme_dark_tertiaryContainer
@@ -124,7 +125,8 @@
- @color/green_md_theme_dark_secondary
- @color/green_md_theme_dark_onSecondary
- @color/green_md_theme_dark_secondaryContainer
- - @color/green_md_theme_dark_onSecondaryContainer
+ - @color/green_md_theme_dark_onSecondaryContainer
+
- @color/green_md_theme_dark_tertiary
- @color/green_md_theme_dark_onTertiary
- @color/green_md_theme_dark_tertiaryContainer
@@ -155,7 +157,8 @@
- @color/purple_md_theme_dark_secondary
- @color/purple_md_theme_dark_onSecondary
- @color/purple_md_theme_dark_secondaryContainer
- - @color/purple_md_theme_dark_onSecondaryContainer
+ - @color/purple_md_theme_dark_onSecondaryContainer
+
- @color/purple_md_theme_dark_tertiary
- @color/purple_md_theme_dark_onTertiary
- @color/purple_md_theme_dark_tertiaryContainer
diff --git a/app/src/main/res/values/array.xml b/app/src/main/res/values/array.xml
index e460be752..eea117749 100644
--- a/app/src/main/res/values/array.xml
+++ b/app/src/main/res/values/array.xml
@@ -343,15 +343,6 @@
- @string/channel_name_za
-
- - most_recent
- - least_recent
- - most_views
- - least_views
- - channel_name_az
- - channel_name_za
-
-
- @string/network_all
- @string/network_wifi
@@ -430,4 +421,18 @@
- default
+
+ - @string/recentlyUpdated
+ - @string/recentlyUpdatedReversed
+ - @string/playlistName
+ - @string/playlistNameReversed
+
+
+
+ - recent
+ - recent_reversed
+ - name
+ - name_reversed
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 1aed81513..2cb2e2f4f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -341,6 +341,10 @@
Pitch
Filename
Invalid filename!
+ Playlists order
+ Playlist name (reversed)
+ Recently updated
+ Recently updated (reversed)
Download Service
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 8db722ec0..a02bbf482 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -62,7 +62,8 @@
- @color/blue_md_theme_light_secondary
- @color/blue_md_theme_light_onSecondary
- @color/blue_md_theme_light_secondaryContainer
- - @color/blue_md_theme_light_onSecondaryContainer
+ - @color/blue_md_theme_light_onSecondaryContainer
+
- @color/blue_md_theme_light_tertiary
- @color/blue_md_theme_light_onTertiary
- @color/blue_md_theme_light_tertiaryContainer
@@ -93,11 +94,13 @@
- @color/yellow_md_theme_light_secondary
- @color/yellow_md_theme_light_onSecondary
- @color/yellow_md_theme_light_secondaryContainer
- - @color/yellow_md_theme_light_onSecondaryContainer
+ - @color/yellow_md_theme_light_onSecondaryContainer
+
- @color/yellow_md_theme_light_tertiary
- @color/yellow_md_theme_light_onTertiary
- @color/yellow_md_theme_light_tertiaryContainer
- - @color/yellow_md_theme_light_onTertiaryContainer
+ - @color/yellow_md_theme_light_onTertiaryContainer
+
- @color/yellow_md_theme_light_error
- @color/yellow_md_theme_light_errorContainer
- @color/yellow_md_theme_light_onError
@@ -124,7 +127,8 @@
- @color/green_md_theme_light_secondary
- @color/green_md_theme_light_onSecondary
- @color/green_md_theme_light_secondaryContainer
- - @color/green_md_theme_light_onSecondaryContainer
+ - @color/green_md_theme_light_onSecondaryContainer
+
- @color/green_md_theme_light_tertiary
- @color/green_md_theme_light_onTertiary
- @color/green_md_theme_light_tertiaryContainer
@@ -155,11 +159,13 @@
- @color/purple_md_theme_light_secondary
- @color/purple_md_theme_light_onSecondary
- @color/purple_md_theme_light_secondaryContainer
- - @color/purple_md_theme_light_onSecondaryContainer
+ - @color/purple_md_theme_light_onSecondaryContainer
+
- @color/purple_md_theme_light_tertiary
- @color/purple_md_theme_light_onTertiary
- @color/purple_md_theme_light_tertiaryContainer
- - @color/purple_md_theme_light_onTertiaryContainer
+ - @color/purple_md_theme_light_onTertiaryContainer
+
- @color/purple_md_theme_light_error
- @color/purple_md_theme_light_errorContainer
- @color/purple_md_theme_light_onError
diff --git a/app/src/main/res/xml/instance_settings.xml b/app/src/main/res/xml/instance_settings.xml
index 40fc7824e..29ab5da02 100644
--- a/app/src/main/res/xml/instance_settings.xml
+++ b/app/src/main/res/xml/instance_settings.xml
@@ -71,4 +71,16 @@
+
+
+
+
+
+
\ No newline at end of file