Skip to content

feat(android): add resolver import and runtime telemetry UX#11

Closed
AmirrezaFarnamTaheri wants to merge 1 commit into
Hidden-Node:mainfrom
AmirrezaFarnamTaheri:main
Closed

feat(android): add resolver import and runtime telemetry UX#11
AmirrezaFarnamTaheri wants to merge 1 commit into
Hidden-Node:mainfrom
AmirrezaFarnamTaheri:main

Conversation

@AmirrezaFarnamTaheri
Copy link
Copy Markdown
Contributor

Implement the Android-only resolver import/status improvements

  • add ResolverAnalyzer for Android-side resolver parsing, stats, CIDR expansion, duplicate filtering, cached import files, and cached-file cleanup
  • store imported resolver metadata in ProfileEntity.advancedJson instead of adding Room columns or migrations
  • normalize imported resolver files into runtime-ready client_resolvers.txt content before the untouched Go core reads them
  • integrate resolver file import into Profiles and Settings, including stats cards, source badges, inline fallback, large-list safeguards, and file lifecycle cleanup on cancel/delete/replace
  • make MasterDnsVpnService prefer imported resolver files, log resolver stats, fall back safely when cached files are missing, and preserve upstream profile/MTU export behavior
  • track DNS scan progress, scan totals, ETA timestamps, active resolvers, synced MTU, traffic speeds, traffic totals, and connected duration in VpnManager/Home UI
  • update foreground notification text with connection state, DNS scan progress, live speed, traffic totals, and active resolver count
  • improve Logs UI with Android/core source tracking, filters, severity counters, share/clear actions, grouped entries, and local timestamp normalization
  • preserve locked-profile import/export compatibility and include MTU export/reactive format fields during TOML import
  • keep all changes limited to android/ so upstream core compatibility remains intact

Implement the Android-only resolver import/status improvements without touching the shared client core.

- add ResolverAnalyzer for Android-side resolver parsing, stats, CIDR expansion, duplicate filtering, cached import files, and cached-file cleanup
- store imported resolver metadata in ProfileEntity.advancedJson instead of adding Room columns or migrations
- normalize imported resolver files into runtime-ready client_resolvers.txt content before the untouched Go core reads them
- integrate resolver file import into Profiles and Settings, including stats cards, source badges, inline fallback, large-list safeguards, and file lifecycle cleanup on cancel/delete/replace
- make MasterDnsVpnService prefer imported resolver files, log resolver stats, fall back safely when cached files are missing, and preserve upstream profile/MTU export behavior
- track DNS scan progress, scan totals, ETA timestamps, active resolvers, synced MTU, traffic speeds, traffic totals, and connected duration in VpnManager/Home UI
- update foreground notification text with connection state, DNS scan progress, live speed, traffic totals, and active resolver count
- improve Logs UI with Android/core source tracking, filters, severity counters, share/clear actions, grouped entries, and local timestamp normalization
- preserve locked-profile import/export compatibility and include MTU export/reactive format fields during TOML import
- keep all changes limited to android/ so upstream core compatibility remains intact
@Hidden-Node
Copy link
Copy Markdown
Owner

Thank you so much for this impressive contribution! The new Telemetry UX, live speed monitoring, and Resolver import features are fantastic and would be great additions to the app.

However, as we discussed, this PR is based on an outdated branch and currently has major conflicts with the current restructured codebase (especially after the recent updates to the VPN service, build system, and UI architecture). To avoid regressions and ensure stability, we cannot merge it in its current state.

Could you please rebase these features or open a new PR against the latest main branch? We really like the work you've done and would love to see it integrated properly. Keep up the great work and looking forward to the updated version!

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.

2 participants