Skip to content

fix(updates): reuse Android APK after installer dismissal - #401

Open
veryCrunchy wants to merge 4 commits into
mainfrom
fix/android-update-retry
Open

fix(updates): reuse Android APK after installer dismissal#401
veryCrunchy wants to merge 4 commits into
mainfrom
fix/android-update-retry

Conversation

@veryCrunchy

Copy link
Copy Markdown
Member

Summary

  • retain the verified APK after Android opens the system installer
  • revalidate the cached checksum, package identity, version, SDK requirements, and signer before reusing it
  • let users reopen a dismissed installer confirmation without downloading again
  • include rejected installer messages in privacy-preserving support diagnostics

Context

Follow-up to #176.

Closing Android's system installer currently leaves the update card in ConfirmationOpened. A retry also deletes the staged APK because cleanup protects only the partial download, forcing a complete download before Android can show the same prompt again.

Validation

On the dedicated build host at commit 6779f096cbbf676186d5ae402a15132bca4af4f1:

  • bash tools/check-repository.sh
  • bash tools/test-prerelease-update-contract.sh
  • :ui:desktopTest
  • :androidApp:testDebugUnitTest
  • :androidApp:verifyReleaseLintGate
  • :androidApp:assembleDebug

Result: BUILD SUCCESSFUL with 147 actionable tasks.

@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #401 / NC Native August 16, 2026 17:45 Destroyed
@obiente-cloud

obiente-cloud Bot commented Aug 16, 2026

Copy link
Copy Markdown

Obiente preview

NC Native · 940e05271da0 · Ready

Open preview

View in Obiente

Obiente updates this comment as the preview changes.

@veryCrunchy veryCrunchy added priority:P1 Required for the pre-release product experience area:platform Android, desktop, iOS, Windows, macOS, and Linux platform work type:bug platform:android Android-specific implementation or validation labels Aug 16, 2026
@veryCrunchy veryCrunchy added this to the 0.6 Platform polish milestone Aug 16, 2026
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #401 / NC Native August 16, 2026 17:45 Destroyed
@veryCrunchy veryCrunchy moved this to In Progress in Nextcloud Native Roadmap Aug 16, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6779f096cb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +13389 to +13393
Button(
onClick = { requestInstall(release) },
enabled = !installing,
) {
Text("Open installer again")

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Limit the APK retry action to Android

On direct-package desktop builds, ConfirmationOpened also reaches this shared branch, but clicking this button calls requestInstall, then DesktopAppUpdater.beginUpdate, which cleans the staged package and starts downloading again from zero. The desktop UI therefore promises APK reuse that only Android implements; make this wording/action Android-specific or add equivalent desktop package reuse.

AGENTS.md reference: AGENTS.md:L78-L85

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:platform Android, desktop, iOS, Windows, macOS, and Linux platform work platform:android Android-specific implementation or validation priority:P1 Required for the pre-release product experience type:bug

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

1 participant