Skip to content

Develop - accessibility clipboard sync, fix json parsing - #159

Merged
sameerasw merged 7 commits into
mainfrom
develop
Oct 27, 2026
Merged

sameerasw merged 7 commits into
mainfrom
develop

Conversation

@sameerasw

Copy link
Copy Markdown
Owner

This pull request introduces background clipboard sync functionality by adapting an approach from the ClipSync project, and updates the app to version 4.1.0. It also improves user-facing documentation and UI to credit third-party sources and explain new permissions. Additionally, there are minor improvements to QuickShare advertising logic for stability.

Background Clipboard Sync Integration:

  • Added a new ClipboardGhostActivity (adapted from ClipSync) to enable background clipboard reading on Android 10+ by using an invisible activity to momentarily gain focus and access the clipboard. This is triggered by a new accessibility service. [1] [2] [3]
  • Registered the new ClipboardGhostActivity and ClipboardAccessibilityService in the AndroidManifest.xml. [1] [2]

Licensing and Attribution:

  • Added a THIRD_PARTY_NOTICES.md file to credit ClipSync and include its MIT license, with references to the adapted background clipboard sync code.
  • Updated README.md acknowledgements to credit ClipSync for the clipboard sync approach.
  • Displayed a clickable credit for ClipSync in the app's About section UI.

Permissions and User Interface:

  • Added a new permission type and dialog for the background clipboard accessibility service, including explanations and UI hooks in the permissions screen. [1] [2] [3] [4]
  • Updated About section UI to include a clickable link to the ClipSync repository.

QuickShare Improvements:

  • Made QuickShare advertiser's endpoint ID stable across restarts, and improved logic to avoid duplicate advertising and clean up state on failures. [1] [2] [3]

Versioning:

  • Bumped app version to 4.1.0 in build.gradle.kts.

sameerasw and others added 7 commits September 19, 2026 16:18
createAppIconsJson inserted app labels into the JSON without escaping.
A label that contains a line break or a quote produces invalid JSON, so
the Mac app fails to decode the whole appIcons message and drops it
without any visible error. Every sync fails the same way, which leaves
the Apps grid and the per-app notification list on the Mac empty.

Example: the launcher label of kr.co.dgb.dgbm is "iM뱅크\n(아이엠)".

Use the existing escape() helper for app names, and make escape() also
handle tabs and the other control characters JSON does not allow
unescaped.
…json

fix: escape app names in app icons JSON
@sameerasw sameerasw self-assigned this Oct 27, 2026
@sameerasw sameerasw added bug Something isn't working enhancement New feature or request labels Oct 27, 2026
@sameerasw
sameerasw merged commit 49f7021 into main Oct 27, 2026
1 check passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in AirSync Features and Bugs Oct 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants