@@ -8,8 +8,10 @@ import android.os.Build
88import android.view.LayoutInflater
99import android.view.View
1010import android.widget.Toast
11+ import androidx.navigation.NavController
1112import androidx.preference.Preference
1213import nl.giejay.android.tv.immich.R
14+ import nl.giejay.android.tv.immich.album.SelectionType
1315import nl.giejay.android.tv.immich.screensaver.ScreenSaverType
1416import nl.giejay.android.tv.immich.settings.ScreenSaverSettingsFragmentDirections
1517import nl.giejay.mediaslider.transformations.GlideTransformations
@@ -82,23 +84,24 @@ private fun intentAvailable(intent: Intent, context: Context): Boolean {
8284 return infos.isNotEmpty()
8385}
8486
85- data object SCREENSAVER_SET_ALBUMS : ActionPref (" Set albums to show in screensaver" , " Set albums to show in screensaver" , { context, navController ->
86- navController.navigate(
87- ScreenSaverSettingsFragmentDirections .actionGlobalAlbumFragment(
88- true
89- )
90- )
91- true
92- })
93-
9487data object SCREENSAVER_INTERVAL : IntListPref (3 , " Interval" , " Interval of the screensaver" , R .array.interval_titles, R .array.interval_values)
9588data object SCREENSAVER_SHOW_MEDIA_COUNT : BooleanPref (true , " Show media count" , " Show the number of total items and currently selected item" )
9689data object SCREENSAVER_SHOW_DESCRIPTION : BooleanPref (true , " Show description" , " Show description of asset in screensaver" )
9790data object SCREENSAVER_SHOW_ALBUM_NAME : BooleanPref (true , " Show album name" , " Show album name of asset in screensaver" )
9891data object SCREENSAVER_SHOW_DATE : BooleanPref (true , " Show date" , " Show date of asset in screensaver" )
9992data object SCREENSAVER_SHOW_CLOCK : BooleanPref (true , " Show clock" , " Show clock in screensaver" )
10093data object SCREENSAVER_ANIMATE_ASSET_SLIDE : BooleanPref (true , " Slide the new asset in" , " Slide the new asset in when transitioning" )
101- data object SCREENSAVER_ALBUMS : StringSetPref (mutableSetOf(), " Set albums to show in screensaver" , " Set albums to show in screensaver" )
94+ data object SCREENSAVER_ALBUMS : StringSetPref (mutableSetOf(), " Set albums to show in screensaver" , " Set albums to show in screensaver" ){
95+ override fun onClick (context : Context , controller : NavController ): Boolean {
96+ controller.navigate(
97+ ScreenSaverSettingsFragmentDirections .actionGlobalAlbumFragment(
98+ true ,
99+ SelectionType .SET_SCREENSAVER .toString()
100+ )
101+ )
102+ return true
103+ }
104+ }
102105data object SCREENSAVER_INCLUDE_VIDEOS : BooleanPref (false , " Include videos" , " Include videos in screensaver" )
103106data object SCREENSAVER_PLAY_SOUND : BooleanPref (false , " Play sound" , " Play sound of videos during screensaver" )
104107data object SCREENSAVER_TYPE : EnumByTitlePref <ScreenSaverType >(ScreenSaverType .RECENT ,
@@ -212,6 +215,9 @@ data object ALL_ASSETS_SORTING : EnumByTitlePref<PhotosOrder>(PhotosOrder.NEWEST
212215data object DEBUG_MODE : BooleanPref (false , " Enable debug mode" , " Enable this if you are experiencing issues." )
213216data object LOAD_BACKGROUND_IMAGE : BooleanPref (true , " Load selected item as background" , " Load the currently selected image/album as the background" )
214217data object HIDDEN_HOME_ITEMS : StringSetPref (emptySet(), " " , " " )
218+ data object USER_ID : NotUserEditableStringPref (" User ID" , " Your user id, needed for debugging" )
219+
220+ // seasonal/random/recents
215221data object SIMILAR_ASSETS_YEARS_BACK : IntListPref (10 ,
216222 " Seasonal photos years back" ,
217223 " How many years to go back when selecting seasonal photos" ,
@@ -230,7 +236,18 @@ data object RECENT_ASSETS_MONTHS_BACK : IntListPref(5,
230236 R .array.recent_assets_months_back,
231237 R .array.recent_assets_months_back)
232238
233- data object USER_ID : NotUserEditableStringPref (" User ID" , " Your user id, needed for debugging" )
239+ data object EXCLUDE_ASSETS_IN_ALBUM : StringSetPref (emptySet(), " Excluded albums" , " Exclude assets in specific albums for random/seasonal view" ){
240+ override fun onClick (context : Context , controller : NavController ): Boolean {
241+ controller.navigate(
242+ ScreenSaverSettingsFragmentDirections .actionGlobalAlbumFragment(
243+ true ,
244+ SelectionType .EXCLUDED_ALBUMS .toString()
245+
246+ )
247+ )
248+ return true
249+ }
250+ }
234251
235252// Building the view
236253data object ViewPrefScreen : PrefScreen (" View Settings" , " view" ,
@@ -250,6 +267,7 @@ data object ViewPrefScreen : PrefScreen("View Settings", "view",
250267 SIMILAR_ASSETS_YEARS_BACK ,
251268 SIMILAR_ASSETS_PERIOD_DAYS ,
252269 RECENT_ASSETS_MONTHS_BACK ,
270+ EXCLUDE_ASSETS_IN_ALBUM ,
253271 LOAD_BACKGROUND_IMAGE ))
254272 )
255273)
@@ -261,7 +279,7 @@ data object ScreensaverPrefScreen : PrefScreen("Screensaver Settings", "screensa
261279 SCREENSAVER_SET ,
262280 SCREENSAVER_INTERVAL ,
263281 SCREENSAVER_TYPE ,
264- SCREENSAVER_SET_ALBUMS ,
282+ SCREENSAVER_ALBUMS ,
265283 SCREENSAVER_SHOW_DESCRIPTION ,
266284 SCREENSAVER_SHOW_ALBUM_NAME ,
267285 SCREENSAVER_SHOW_DATE ,
0 commit comments