android: routing phase 3 and the Final 2026 design system (WIP)

- Routing: site and direct-address rules (sites resolved to addresses,
  refreshed on connect and every 30 min), package patterns can be
  switched off; unified Rules screen with add sheet and empty state;
  "How traffic goes" for a site, IP or app with reasons, reachability and
  one-tap rules; Recent apps (usage access) with failing apps; new-app
  "go direct?" suggestions in Events.
- Diagnostics screen (all-in-one check), "Fastest" server, pause until
  morning / until the network changes.
- Design system of the mockup: Manrope font, mockup palette for light and
  dark, ShxKit components (cards, rows, switch, buttons, chips, tabs,
  fields, sheets), mockup line icons; Home, nav bar, Routing, Rules,
  Recent, Events, Diagnostics and route check rebuilt on it; shared
  components restyled so the remaining screens pick up the look.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
DenozordecandClaude Opus 5.5 committed 2026-10-11 22:46:27 +07:00
1 parent 60252437ac
commit 4ff5ed11bb
42 files changed
+6161 -1741

No files matched your search

@@ -30,6 +30,10 @@
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<!-- «Recent apps»: per-app traffic totals from the system network statistics;
granted by the user in Settings > Usage access, never requested silently -->
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.POST_PROMOTED_NOTIFICATIONS"/>
<!-- required to install downloaded updates of the app itself -->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
@@ -133,6 +137,10 @@
android:name=".ui.InboxActivity"
android:label="@string/events_title">
</activity>
<activity
android:name=".ui.DiagnosticsActivity"
android:label="@string/diag_title">
</activity>
<activity
android:name=".ui.RemediationInstructionsActivity"
android:label="@string/remediation_instructions_title" >