diff --git a/app/src/main/java/com/github/libretube/api/PipedApi.kt b/app/src/main/java/com/github/libretube/api/PipedApi.kt index 67d55a959..061ea5691 100644 --- a/app/src/main/java/com/github/libretube/api/PipedApi.kt +++ b/app/src/main/java/com/github/libretube/api/PipedApi.kt @@ -9,7 +9,7 @@ import com.github.libretube.api.obj.Playlist import com.github.libretube.api.obj.PlaylistId import com.github.libretube.api.obj.Playlists import com.github.libretube.api.obj.SearchResult -import com.github.libretube.api.obj.Segments +import com.github.libretube.api.obj.SegmentData import com.github.libretube.api.obj.StreamItem import com.github.libretube.api.obj.Streams import com.github.libretube.api.obj.Subscribe @@ -36,7 +36,7 @@ interface PipedApi { suspend fun getSegments( @Path("videoId") videoId: String, @Query("category") category: String - ): Segments + ): SegmentData @GET("nextpage/comments/{videoId}") suspend fun getCommentsNextPage( @@ -48,7 +48,7 @@ interface PipedApi { suspend fun getSearchResults( @Query("q") searchQuery: String, @Query("filter") filter: String - ): com.github.libretube.api.obj.SearchResult + ): SearchResult @GET("nextpage/search") suspend fun getSearchResultsNextPage( diff --git a/app/src/main/java/com/github/libretube/api/obj/Segment.kt b/app/src/main/java/com/github/libretube/api/obj/Segment.kt index ea92df057..951a7b472 100644 --- a/app/src/main/java/com/github/libretube/api/obj/Segment.kt +++ b/app/src/main/java/com/github/libretube/api/obj/Segment.kt @@ -4,7 +4,13 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties @JsonIgnoreProperties(ignoreUnknown = true) data class Segment( + val UUID: String? = null, val actionType: String? = null, val category: String? = null, - val segment: List? = arrayListOf() + val description: String? = null, + val locked: Int? = null, + val segment: List = listOf(), + val userID: String? = null, + val videoDuration: Double? = null, + val votes: Int? = null ) diff --git a/app/src/main/java/com/github/libretube/api/obj/Segments.kt b/app/src/main/java/com/github/libretube/api/obj/SegmentData.kt similarity index 52% rename from app/src/main/java/com/github/libretube/api/obj/Segments.kt rename to app/src/main/java/com/github/libretube/api/obj/SegmentData.kt index 704bd899c..a383cd801 100644 --- a/app/src/main/java/com/github/libretube/api/obj/Segments.kt +++ b/app/src/main/java/com/github/libretube/api/obj/SegmentData.kt @@ -3,6 +3,8 @@ package com.github.libretube.api.obj import com.fasterxml.jackson.annotation.JsonIgnoreProperties @JsonIgnoreProperties(ignoreUnknown = true) -data class Segments( - val segments: MutableList = arrayListOf() +data class SegmentData( + val hash: String? = null, + val segments: List = listOf(), + val videoID: String? = null ) diff --git a/app/src/main/java/com/github/libretube/services/BackgroundMode.kt b/app/src/main/java/com/github/libretube/services/BackgroundMode.kt index 4134ab485..c6bfdc6ae 100644 --- a/app/src/main/java/com/github/libretube/services/BackgroundMode.kt +++ b/app/src/main/java/com/github/libretube/services/BackgroundMode.kt @@ -15,7 +15,7 @@ import com.fasterxml.jackson.databind.ObjectMapper import com.github.libretube.R import com.github.libretube.api.RetrofitInstance import com.github.libretube.api.obj.Segment -import com.github.libretube.api.obj.Segments +import com.github.libretube.api.obj.SegmentData import com.github.libretube.api.obj.Streams import com.github.libretube.constants.BACKGROUND_CHANNEL_ID import com.github.libretube.constants.IntentData @@ -72,7 +72,7 @@ class BackgroundMode : Service() { /** * SponsorBlock Segment data */ - private var segmentData: Segments? = null + private var segmentData: SegmentData? = null /** * [Notification] for the player @@ -325,7 +325,7 @@ class BackgroundMode : Service() { if (segmentData == null || segmentData!!.segments.isEmpty()) return segmentData!!.segments.forEach { segment: Segment -> - val segmentStart = (segment.segment!![0] * 1000f).toLong() + val segmentStart = (segment.segment[0] * 1000f).toLong() val segmentEnd = (segment.segment[1] * 1000f).toLong() val currentPosition = player?.currentPosition if (currentPosition in segmentStart until segmentEnd) { diff --git a/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt index 48b9c0f57..c91f3c5e4 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt @@ -38,6 +38,8 @@ import com.github.libretube.R import com.github.libretube.api.CronetHelper import com.github.libretube.api.RetrofitInstance import com.github.libretube.api.SubscriptionHelper +import com.github.libretube.api.obj.ChapterSegment +import com.github.libretube.api.obj.SegmentData import com.github.libretube.constants.IntentData import com.github.libretube.constants.PreferenceKeys import com.github.libretube.constants.ShareObjectType @@ -139,8 +141,8 @@ class PlayerFragment : BaseFragment() { */ private lateinit var exoPlayer: ExoPlayer private lateinit var trackSelector: DefaultTrackSelector - private lateinit var segmentData: com.github.libretube.api.obj.Segments - private lateinit var chapters: List + private lateinit var segmentData: SegmentData + private lateinit var chapters: List /** * for the player view @@ -598,7 +600,7 @@ class PlayerFragment : BaseFragment() { val currentPosition = exoPlayer.currentPosition segmentData.segments.forEach { segment: com.github.libretube.api.obj.Segment -> - val segmentStart = (segment.segment!![0] * 1000f).toLong() + val segmentStart = (segment.segment[0] * 1000f).toLong() val segmentEnd = (segment.segment[1] * 1000f).toLong() // show the button to manually skip the segment diff --git a/app/src/main/java/com/github/libretube/ui/views/MarkableTimeBar.kt b/app/src/main/java/com/github/libretube/ui/views/MarkableTimeBar.kt index fcc06e236..e3f9b0582 100644 --- a/app/src/main/java/com/github/libretube/ui/views/MarkableTimeBar.kt +++ b/app/src/main/java/com/github/libretube/ui/views/MarkableTimeBar.kt @@ -43,7 +43,7 @@ class MarkableTimeBar( segments.forEach { canvas.drawRect( Rect( - (it.segment!!.first() + HORIZONTAL_OFFSET).toLength(), + (it.segment.first() + HORIZONTAL_OFFSET).toLength(), marginY, (it.segment.last() + HORIZONTAL_OFFSET).toLength(), canvas.height - marginY - 1 @@ -56,7 +56,7 @@ class MarkableTimeBar( canvas.restore() } - private fun Float.toLength(): Int { + private fun Double.toLength(): Int { return (this * 1000 / player!!.duration * length).toInt() } diff --git a/app/src/main/java/com/github/libretube/util/LocaleHelper.kt b/app/src/main/java/com/github/libretube/util/LocaleHelper.kt index 5783b6d69..c0c4778e5 100644 --- a/app/src/main/java/com/github/libretube/util/LocaleHelper.kt +++ b/app/src/main/java/com/github/libretube/util/LocaleHelper.kt @@ -35,6 +35,7 @@ object LocaleHelper { val dm = res.displayMetrics val conf = res.configuration conf.setLocale(locale) + @Suppress("DEPRECATION") res.updateConfiguration(conf, dm) }