Move the host label to its own line so it truncates properly before
the edit/delete buttons. Move the lock icon and scheme badge pill to
a separate third line below the host.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Switch symbol key widgets from Button to TextView to bypass Android
Material theme button text-color overrides, giving full control over
the key label color in both light and dark themes.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove backdrop inset:0 that was intercepting all canvas touches;
backdrop is now pointer-events:none and only covers the area above
the panel (bottom: 55%) so touch events reach the canvas
- Replace blanket `if (panelOpen) return` in handleStart with a guard
that only skips the two-finger pinch (handled by its own listener),
restoring single-finger pan, node tap, and pinch-zoom while panel
is open
- Add user-scalable=no viewport flag to prevent WebView native zoom
from scaling the panel UI
- Add singleTapTimer for double-tap detection: single tap delays 350ms
so double-tap is distinguished and only triggers expand/collapse
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Wrap the logo image in a white rounded Border so it remains visible
regardless of the system theme.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Tint toolbar navigation (back) icon white alongside overflow icon
- Add resoftware.png and logo.png as MauiImage resources (were only AndroidAssets)
- Copy resoftware.png to Android Resources for accessibility
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Settings:
- Add Editor section with auto-capitalize and auto-zoom toggles (blue when on)
- Reorder sections: Editor, Data, Support, About
- Move footer ("A product of" + logo) inside scroll instead of fixed at bottom
AddConnection:
- Add editable Name field at top of form
- Remove colons from field labels
- Save uses Name field instead of popup prompt
- Name falls back to host if left empty
- Fix UpdateConnectionString to persist Name field
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Android symbols bar:
- Rewrite using GlobalLayout + GetWindowVisibleDisplayFrame for reliable keyboard detection
- Toolbar attached once to content view, toggled via visibility (fixes crash)
- Pill-shaped container with themed colors, scrollable symbol strip
- Blue circle play icon (centered TextView), disabled when query empty
- Add symbols: { } \" ' . = * $
iOS symbols bar:
- Add same extra symbols to match Android
- Hide accessory when keyboard dismissed via external gesture
Auto-capitalize (both platforms):
- Cypher keywords auto-uppercased after cursor moves past them
- Respects auto_capitalize preference from Settings
- Skips capitalization while cursor is at end of word (no fighting while typing)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Replace basic popup with animated slide-up panel using app theme colors
- Add action buttons: Copy text, Show JSON (inline with copy), Relations list
- Panel is bi-directional draggable: swipe down to dismiss, drag up to expand
- Panel view states: properties, JSON, relations with navigation between them
- Auto-zoom and center on node tap (accounts for panel height)
- Delayed zoom after expand so physics can settle nodes first
- Notify C# on panel open/close to expand inline WebView height
- Add backdrop overlay to dismiss panel on outside tap
- Toast notification for clipboard copies
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Replace hardcoded VS Code-like muted colors with CSS variables
- Use app theme palette for backgrounds, text, strings, numbers, keys
- Add font-weight to keys, increase font size and line-height
- Increase bracket/comma opacity for better readability
- Dynamic theme switching via setTheme() updates all new variables
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Center no-results placeholder vertically by overlaying on Grid row
- Reduce result card height: smaller action buttons, halved graph view
- Add NavigationBarColor theme resource, use for FAB and nav bar
- Fix ApplyNavBarColors to read from theme instead of hardcoding #31333b
- Make title bar play button blue (#007AFF)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Android: windowBackground day/night colors fix white flash on navigation
- Android: status bar color set dynamically per theme in OnResume
- Android: AppearanceLightStatusBars set correctly (light icons in dark, dark in light)
- Android: overflow icon tinted white via view-tree walk in OnWindowFocusChanged
- AddConnection: reorder buttons Test → Connect → Save; Save is now primary (filled)
- SessionPage: saved queries header row fully tappable (not just chevron)
- SessionPage: QueryEditor BackgroundColor/TextColor use DynamicResource for live theme switching
- LightTheme: add Editor style so colors reset correctly when switching dark→light
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Version is now auto-generated as 1.0.<run_number> and a matching
git tag is created by the release step on each successful build.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Triggers on version tags (v*) or manual dispatch (with track selection).
- Builds signed APK → uploads to GitHub Release as downloadable asset
- Builds signed AAB → uploads to Play Store (default: internal track)
- Version code driven by GITHUB_RUN_NUMBER; display version from git tag
- Release notes read from distribution/whatsnew/whatsnew-en-US
Required secrets: KEYSTORE_BASE64, KEYSTORE_ALIAS, KEYSTORE_KEY_PASS,
KEYSTORE_STORE_PASS, PLAY_SERVICE_ACCOUNT_JSON
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Move all action buttons (star, expand, JSON, trash) into each result card header
- Always show query text in result cards (no conditional hiding)
- Saved queries section permanently visible above results, collapsible via chevron
- Result cards collapsible via per-card chevron toggle
- Add drop shadow and remove border around query text
- Clear query field after execute; tap result query label to reload it into editor
- WebView re-renders HTML on App.ThemeChanged for instant dark/light switch
- Result card trash, delete result, save/load query, open graph/table all work per-card
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Hint overlay is dismissed on first pan/zoom/click via iframe app://interaction
signal from the vis.js event handler.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove green dot IsActive indicator from ConnectionCell (no longer needed)
- ConnectionsPage subscribes to App.ThemeChanged and reloads list on switch
- Simplify ConnectionCell to single StackLayout (no converter dependency)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace BoltGraphClient.ConnectAsync() which swallowed AuthenticationException
with an explicit RETURN 1 query via raw driver session; fails fast on wrong password.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add static App.ThemeChanged event fired after resource dictionary swap
- Pages/controls subscribe OnAppearing and call reload on change
- Themes include Extreme/SecondaryTextColor tokens for dark and light
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Set colorPrimary/colorPrimaryDark/colorAccent to dark app colors (#31333b)
- Fix contextual action bar (CAB) background to match nav bar color
- Fix overflow button (3-dot) tint to white via OverflowMenuButton style
- Fix white-on-white popup menu text: remove global android:textColorPrimary
override; scope white text only to CAB via ActionModeStyle/ActionModeTitleText
- Add android:windowLightStatusBar=false so status bar icons are white on dark bg
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>