diff --git a/app/src/main/java/com/videoapp/tv/PlayerActivity.kt b/app/src/main/java/com/videoapp/tv/PlayerActivity.kt index c945bd1..451f259 100644 --- a/app/src/main/java/com/videoapp/tv/PlayerActivity.kt +++ b/app/src/main/java/com/videoapp/tv/PlayerActivity.kt @@ -7,6 +7,7 @@ import android.view.View import android.webkit.WebView import android.webkit.WebViewClient import android.widget.Button +import android.widget.HorizontalScrollView import android.widget.ImageButton import android.widget.LinearLayout import androidx.appcompat.app.AppCompatActivity @@ -30,6 +31,7 @@ class PlayerActivity : AppCompatActivity() { private lateinit var controlPanel: View private lateinit var sourceList: LinearLayout private lateinit var episodeList: LinearLayout + private lateinit var episodeScroll: HorizontalScrollView private lateinit var loadingIndicator: View private lateinit var errorText: android.widget.TextView private lateinit var btnClose: ImageButton @@ -42,6 +44,7 @@ class PlayerActivity : AppCompatActivity() { private var sources: List = emptyList() private var currentSourceIndex = 0 private var currentEpisode: Episode? = null + private var historyEpisode: String? = null private val hideHandler = Handler(Looper.getMainLooper()) private val hideRunnable = Runnable { hideControls() } @@ -62,6 +65,7 @@ class PlayerActivity : AppCompatActivity() { controlPanel = findViewById(R.id.control_panel) sourceList = findViewById(R.id.source_list) episodeList = findViewById(R.id.episode_list) + episodeScroll = findViewById(R.id.episode_scroll) loadingIndicator = findViewById(R.id.loading_indicator) errorText = findViewById(R.id.error_text) btnClose = findViewById(R.id.btn_close) @@ -70,6 +74,7 @@ class PlayerActivity : AppCompatActivity() { videoTitle = intent.getStringExtra("title") ?: "" videoCategory = intent.getStringExtra("category") coverUrl = intent.getStringExtra("cover_url") + historyEpisode = intent.getStringExtra("history_episode") btnClose.setOnClickListener { finish() } @@ -131,18 +136,19 @@ class PlayerActivity : AppCompatActivity() { if (index !in sources.indices) return currentSourceIndex = index - // Highlight selected source for (i in 0 until sourceList.childCount) { sourceList.getChildAt(i).isSelected = (i == index) } - // Build episode list for this source val source = sources[index] buildEpisodeUI(source.episodes) - // Auto-play first episode - if (source.episodes.isNotEmpty()) { - playEpisode(source.episodes.first()) + if (historyEpisode != null) { + scrollToEpisode(historyEpisode!!) + } else { + if (source.episodes.isNotEmpty()) { + playEpisode(source.episodes.first()) + } } } @@ -168,6 +174,20 @@ class PlayerActivity : AppCompatActivity() { } } + private fun scrollToEpisode(episodeTitle: String) { + episodeScroll.post { + for (i in 0 until episodeList.childCount) { + val child = episodeList.getChildAt(i) as? Button + if (child?.text == episodeTitle) { + val left = child.left - episodeList.paddingStart + episodeScroll.smoothScrollTo(left, 0) + child.isSelected = true + break + } + } + } + } + private fun playEpisode(ep: Episode) { currentEpisode = ep showLoading(true) diff --git a/app/src/main/java/com/videoapp/tv/ui/SearchFragment.kt b/app/src/main/java/com/videoapp/tv/ui/SearchFragment.kt index 97b93f3..a9fa48d 100644 --- a/app/src/main/java/com/videoapp/tv/ui/SearchFragment.kt +++ b/app/src/main/java/com/videoapp/tv/ui/SearchFragment.kt @@ -225,6 +225,7 @@ class SearchFragment : Fragment() { putExtra("title", playHistory.title) putExtra("category", playHistory.category) putExtra("cover_url", playHistory.coverUrl) + putExtra("history_episode", playHistory.episodeName) } startActivity(intent) }