Skip to content

feat: Capacitor 8 compatibility: native refactor, unified API, and documentation update#80

Merged
RaphaelWoude merged 3 commits into
RaphaelWoude:mainfrom
fabiomartino:cap8
Jan 20, 2026
Merged

feat: Capacitor 8 compatibility: native refactor, unified API, and documentation update#80
RaphaelWoude merged 3 commits into
RaphaelWoude:mainfrom
fabiomartino:cap8

Conversation

@fabiomartino
Copy link
Copy Markdown
Contributor

This PR updates the plugin to be fully compatible with Capacitor 8 across iOS, Android, and TypeScript.

Main changes:

  • iOS Swift implementation updated to follow Capacitor 8 constraints
    (no promise rejection, explicit success/error payloads).
  • Android implementation aligned with the same API contract and behavior.
  • TypeScript definitions and web implementation updated for consistency.
  • Documentation standardized and expanded (Swift DocC, JavaDoc, TSDoc).
  • README updated with clear notes about Capacitor 8 behavior and iOS limitations.

⚠️ Important testing note:
This PR has been tested locally on both Android and iOS.
However, since this plugin interacts with system-level settings and behavior can vary
between devices and OS versions, it is strongly recommended that the original maintainer
also tests these changes in their own environment before approving and releasing.

No breaking changes are introduced beyond the already required Capacitor 8 migration.

- Updated iOS Swift implementation to be fully compatible with Capacitor 8
  (no promise rejection, unified success/error payload)
- Refactored Android implementation for consistency with iOS and Capacitor 8
- Standardized TypeScript API and typings (success/error result)
- Improved documentation using platform-appropriate standards
  (Swift DocC, JavaDoc, TSDoc)
- Updated README to document Capacitor 8 behavior and limitations
- Added explicit documentation for Capacitor 8 breaking change regarding
  native promise handling (always resolve, return success/error payload)
- Clarified behavior in README to avoid ambiguity for plugin consumers
- Fixed linting and formatting issues across the codebase
  (ESLint, Prettier, SwiftLint)
@fabiomartino fabiomartino mentioned this pull request Dec 17, 2025
@gasci
Copy link
Copy Markdown

gasci commented Jan 7, 2026

Could you review this PR please?

@RaphaelWoude
Copy link
Copy Markdown
Owner

Hi, sorry for the wait. I will be looking at this PR in the next couple days.

Comment thread README.md Outdated
Comment thread android/src/main/java/nl/raphael/settings/AndroidSettings.java
Copy link
Copy Markdown
Owner

@RaphaelWoude RaphaelWoude left a comment

Choose a reason for hiding this comment

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

One small comment about the breaking changes in the README.md.

@RaphaelWoude
Copy link
Copy Markdown
Owner

RaphaelWoude commented Jan 19, 2026

Thanks for this. Going to do final testing tomorrow morning.

@RaphaelWoude
Copy link
Copy Markdown
Owner

Everything looks great. Thank you for your contribution once again

@RaphaelWoude RaphaelWoude merged commit c339d28 into RaphaelWoude:main Jan 20, 2026
4 checks passed
@RaphaelWoude
Copy link
Copy Markdown
Owner

Live in v8.0.0

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.

3 participants