Skip to content

Migrate Update settings screen to Compose (KMP) - #13932

Closed
awaisdev5765 wants to merge 4 commits into
TeamNewPipe:devfrom
awaisdev5765:feature/update-settings-compose
Closed

awaisdev5765 wants to merge 4 commits into
TeamNewPipe:devfrom
awaisdev5765:feature/update-settings-compose

Conversation

@awaisdev5765

Copy link
Copy Markdown

What is it?

  • Bugfix (user facing)
  • Feature (user facing)
  • Codebase improvement (dev facing)
  • Meta improvement to the project (dev facing)

Description of the changes in your PR

Follow-up to #13931, continuing the Compose/KMP migration tracked in #11198:

  • UpdateSettingsScreen (Compose) + UpdateSettingsViewModel (@KoinViewModel) + UpdatePreferences: the auto-update toggle (legacy default false from update_settings.xml preserved) and the manual "Check for updates" row.
  • UpdateActions interface with an AndroidUpdateActions actual: enqueueUpdateCheck(manual) is deliberately marked TODO because NewVersionWorker lives in the app module, which the shared module can't reference — same hooks approach as the Content settings PR.
  • Wired into Destination, navModule(), and the settings home: SettingsCategoryType.UPDATES now resolves one of the // TODO: wire remaining sub-screens cases in SettingsHomeScreen.
  • Adds the needed string resources to the shared strings.xml.

The legacy UpdateSettingsFragment remains untouched and authoritative until full migration.

Before/After Screenshots/Screen Record

  • Before: Settings → Updates only exists in the legacy PreferenceFragment; the Compose settings home shows "Updates" as a non-functional row.
  • After: tapping "Updates" in the Compose settings home opens the new Compose screen with a working auto-update toggle and manual-check row (the actual version check fires once the NewVersionWorker hook is wired).

Fixes the following issue(s)

Relies on the following changes

Testing/QA

Devices
  • Not yet tested on device/emulator; CI on this PR verifies compilation. I will test on a device and update this section.
Steps for testing
  1. Build and run the app, open Settings (new Compose settings home)
  2. Tap "Updates"
  3. Toggle "Updates" on → preference persists; an update check is enqueued (currently a TODO in AndroidUpdateActions) and a "Checking for updates…" snackbar appears
  4. Tap "Check for updates" → same behavior manually
APK for testing

The APK can be found by going to the "Checks" tab below the title. On the left pane, click on "CI", scroll down to "artifacts" and click "app" to download the zip file which contains the debug APK of this PR. You can find more info and a video demonstration on this wiki page.

Due diligence

Implements TeamNewPipe#8981 (long-press Clear cache action on the app icon) and
partially implements TeamNewPipe#10448 (keyboard shortcuts: space/media keys for
play-pause, J/L for seek, M for mute) as a gift to the project.
Hardware keyboard users reported that arrow keys initiate focus
jumps between player UI elements instead of seeking. On non-TV
devices, LEFT/RIGHT now seek and D-pad-center toggles playback.
TV D-pad navigation behavior is unchanged.
Adds ContentSettingsScreen/ViewModel/Preferences to the shared module
following the established settings-screen pattern, wires it into the
settings home navigation (SettingsCategoryType.CONTENT), and introduces
ContentActions for platform-specific behavior. Image cache wipe,
restricted-mode cookies and localization reload are marked as TODOs —
they need app-module hooks. Legacy ContentSettingsFragment behavior
is preserved until full migration.
Adds UpdateSettingsScreen/ViewModel/Preferences to the shared module
(auto-update toggle + manual update check), wires it into the settings
home navigation (SettingsCategoryType.UPDATES), and introduces
UpdateActions for the NewVersionWorker hook, marked TODO pending an
app-module bridge.
@github-actions github-actions Bot added size/giant PRs with more than 750 changed lines template-ignored labels Oct 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Please link this PR to an existing issue you are assigned to. Assignees are expected to discuss the details of the PR beforehand. This PR will be closed if it is not linked to an issue.

@sonarqubecloud

Copy link
Copy Markdown

@TobiGr

TobiGr commented Oct 20, 2026

Copy link
Copy Markdown
Contributor

This will not receive a review from me until it is properly tested.

@TobiGr TobiGr added waiting for author If the author doesn't respond, the issue will be auto-closed. Otherwise the label will be removed. rewrite Issues and PRs related to rewrite settings Relating to NewPipe settings labels Oct 20, 2026
@github-project-automation github-project-automation Bot moved this to In Progress in Rewrite Oct 20, 2026
@theimpulson theimpulson added the spam This change violates contribution guidelines of NewPipe. label Oct 21, 2026
@theimpulson

Copy link
Copy Markdown
Member

Closing due to violating contribution guidelines of NewPipe.

@github-project-automation github-project-automation Bot moved this from In Progress to Done in Rewrite Oct 21, 2026
@AudricV AudricV removed this from Rewrite Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rewrite Issues and PRs related to rewrite settings Relating to NewPipe settings size/giant PRs with more than 750 changed lines spam This change violates contribution guidelines of NewPipe. template-ignored waiting for author If the author doesn't respond, the issue will be auto-closed. Otherwise the label will be removed.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants