Skip to content

Preserve Personal Dictionary by resolving settings keys - #94

Merged
Akshayykadam merged 1 commit into
Akshayykadam:mainfrom
akashmahedy:fix/preserve-native-settings
Oct 25, 2026
Merged

Akshayykadam merged 1 commit into
Akshayykadam:mainfrom
akashmahedy:fix/preserve-native-settings

Conversation

@akashmahedy

Copy link
Copy Markdown
Contributor

On the Gboard 18.5.3 base, settings cleanup mistakes settings_header_dictionary (0x7f140a6e) for Help and settings_header_physical_keyboard (0x7f140a77) for Rate. This deletes the Dictionary menu even though its native implementation remains packaged.

Resolve preference keys through the current base's default string resources, then remove only the exact Help/Rate keys or native RateUsPreference class. Preserve other entries and replace the old numeric-ID, title-substring and “after About” heuristics. Add regressions for both settings layouts, reused IDs, aliases and unknown entries.

Fixes #91.

Validation:

  • Focused Kotlin compilation and execution of the two tracked regression bodies against the actual settings fixtures: before 0/2, after 2/2. This harness compiled the production transform functions directly; it was not a full Gradle/JUnit run.
  • git diff --check passed; independent code review found no blockers.
  • Full :patches:test --tests '*GboardPackageRenameTransformTest' could not reach compilation because the declared app.morphe.patches:1.3.3 plugin could not resolve from the configured repositories.
  • Android installation, dictionary word/shortcut suggestions and full APK rebuilding remain to be verified. This PR is a draft for those integration checks.

@Akshayykadam
Akshayykadam marked this pull request as ready for review October 25, 2026 11:48
@Akshayykadam
Akshayykadam merged commit 8a982af into Akshayykadam:main Oct 25, 2026
1 check passed
@Akshayykadam

Copy link
Copy Markdown
Owner

Merged! Thank you @akashmahedy for the thorough root-cause analysis, clean key-resolution approach, and adding regression tests.

Verified locally:

  • Full test suite passed (./gradlew test with 60/60 checks passing).
  • Verified that settings_header_dictionary and settings_header_physical_keyboard survive settings cleanup on newer Gboard base releases.

Appreciate the contribution!

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.

no personal dictionary possibility

2 participants