@@ -2,6 +2,7 @@ package nl.giejay.android.tv.immich.screensaver
22
33import android.annotation.SuppressLint
44import android.service.dreams.DreamService
5+ import android.view.KeyEvent
56import android.widget.Toast
67import androidx.media3.datasource.DefaultHttpDataSource
78import arrow.core.Either
@@ -20,11 +21,12 @@ import nl.giejay.android.tv.immich.api.model.Asset
2021import nl.giejay.android.tv.immich.shared.prefs.PreferenceManager
2122import nl.giejay.android.tv.immich.shared.util.toSliderItems
2223import nl.giejay.mediaslider.LoadMore
24+ import nl.giejay.mediaslider.MediaSliderListener
2325import nl.giejay.mediaslider.MediaSliderView
2426import timber.log.Timber
2527import java.util.EnumSet
2628
27- class ScreenSaverService : DreamService () {
29+ class ScreenSaverService : DreamService (),MediaSliderListener {
2830 private val ioScope = CoroutineScope (Job () + Dispatchers .IO )
2931 private lateinit var apiClient: ApiClient
3032 private lateinit var mediaSliderView: MediaSliderView
@@ -192,7 +194,7 @@ class ScreenSaverService : DreamService() {
192194 maxCutOffHeight = PreferenceManager .maxCutOffHeight(),
193195 maxCutOffWidth = PreferenceManager .maxCutOffWidth(),
194196 transformation = PreferenceManager .glideTransformation(),
195- debugEnabled = PreferenceManager .debugEnabled()
197+ debugEnabled = PreferenceManager .debugEnabled(),
196198 )
197199 )
198200 mediaSliderView.toggleSlideshow(false )
@@ -206,5 +208,13 @@ class ScreenSaverService : DreamService() {
206208 companion object ScreenSaverService {
207209 private const val PAGE_COUNT = 100
208210 }
211+
212+ override fun onButtonPressed (event : KeyEvent ): Boolean {
213+ if (event.keyCode == KeyEvent .KEYCODE_DPAD_CENTER || event.keyCode == KeyEvent .KEYCODE_ENTER ){
214+ finish()
215+ return true
216+ }
217+ return false
218+ }
209219}
210220
0 commit comments