Skip to content

Comments

Improve subtitle selection UX: Move "No Subtitles" option to bottom#2523

Open
hrisabhy wants to merge 1 commit intorecloudstream:masterfrom
hrisabhy:fix/subtitle-toggle-ux
Open

Improve subtitle selection UX: Move "No Subtitles" option to bottom#2523
hrisabhy wants to merge 1 commit intorecloudstream:masterfrom
hrisabhy:fix/subtitle-toggle-ux

Conversation

@hrisabhy
Copy link

Problem

The "No Subtitles" option was hidden at the top of the subtitle list, requiring users to scroll up to discover it. This was not intuitive, especially for new users who expected options to be visible or at the bottom.

Solution

  • Moved "No Subtitles" to bottom as a footer button (always accessible without scrolling up)
  • Removed confusing plus icon by changing from sort_bottom_footer_add_choice to sort_bottom_single_choice layout
  • Added scroll indicators (fading edge + scrollbar) to make scrollable content obvious
  • Adjusted container height (84dp bottom margin) so the last visible subtitle item is cut in half, visually indicating more content below
  • Fixed index calculations to properly handle -1 for no subtitles selection

Changes

Files modified:

  • app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt

    • Moved "No Subtitles" from array adapter to footer
    • Updated subtitleGroupIndexStart calculation (removed +1 offset)
    • Fixed boundary checks and index handling
  • app/src/main/res/layout/player_select_source_and_subs.xml

    • Added scroll indicators to subtitle ListView
    • Adjusted container margin to show cut-off effect

Testing

Tested on Android device with multiple subtitle sources. Verified:

  • "No Subtitles" button appears at bottom
  • Clicking it disables subtitles correctly
  • Scroll indicators visible when list is scrollable
  • Last visible item cut in half to indicate more content
  • No regression in subtitle selection functionality

Demo

Before

before

"No Subtitles" hidden at top, requiring upward scroll

After

after

"No Subtitles" visible at bottom, scroll indicators show more content

Related

Improves UX for subtitle management without requiring new features or breaking changes.

@fire-light42
Copy link
Collaborator

The idea to move "No subtitles" to the bottom makes sense from a consistency standpoint, but moving it below the '+ ...' footers is inconsistent with other subtitles. If you want this implemented, the "No subtitles" option would need to be above them.

@hrisabhy
Copy link
Author

Hi @fire-light42,

I've updated the PR based on your feedback. Changes made:

  • "No Subtitles" now appears as the first footer option after the subtitle list
  • Action footers (Load from file, Load online, Load first available) appear below "No Subtitles"
  • Subtitle list remains scrollable with visual indicators (fading edge and partially visible last item)

The footer ordering is now:

  1. No Subtitles
  2. Load from file
  3. Load online
  4. Load first available

af_review

Copy link
Collaborator

@fire-light42 fire-light42 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like you are using AI to assist you in creating this pull request. Please read our AI policy and mark your pull request accordingly.

}

val noSubtitlesFooter: TextView =
layoutInflater.inflate(R.layout.sort_bottom_single_choice, null) as TextView
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are you creating a whole new view? We just need simple reordering of what we already have. This creates unnecessary complexity and change of existing logic.

This pull request should be roughly 7 lines changed, not 46.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for pointing this out. You were right my earlier change was unnecessarily complex.
I have pushed an update keeping the change minimal and avoided touching existing logic.

Also about the AI part I did initially take some assistance while drafting but I reworked the changes myself to match the project style. I will make sure to follow the AI policy properly and mark it next time.

Let me know if anything still needs adjustment.


// Cheeky way of getting the view at that position to click it
// to avoid keeping track of the various footers.
// getChildAt() gives null :(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are removing valuable comments for no reason. Do not change existing code or comments without justification.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it 👍 I have restored the important comments and avoided changing existing ones unless necessary.

- Moved 'No Subtitles' from top to bottom of adapter
- Adjusted subtitle index calculations (removed +1 offset)
- Changed condition from <= 0 to >= size for detecting no subtitle selection
@hrisabhy hrisabhy force-pushed the fix/subtitle-toggle-ux branch from 57f107e to eab2b07 Compare February 22, 2026 03:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants