Commit Graph

51 Commits

Author SHA1 Message Date
Trevi Awater
ea24c9eed5 updated screenshots 2026-04-02 13:24:11 +02:00
Trevi Awater
edeac88a92 Merge branch 'main' of github.com:awatertrevi/xamarin-neo4j 2026-04-02 12:44:21 +02:00
Trevi Awater
1785fac843 fixes ios 2026-04-02 12:44:17 +02:00
Gerwin Kuijntjes
eadc2d6606 Fix: FAB white background with dark icon in dark mode
Add FabBackgroundColor / FabTextColor theme keys so the FAB is always
visible: dark background + white icon in light mode, white background +
dark icon in dark mode.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 12:31:05 +02:00
Gerwin Kuijntjes
af37fb7095 Fix: connection card host truncation and badge layout
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>
2026-04-02 12:28:36 +02:00
Gerwin Kuijntjes
0e162ddcd5 Fix: symbol bar keys invisible in dark mode
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>
2026-04-02 12:28:36 +02:00
Trevi Awater
66604f72a5 Merge branch 'main' of github.com:awatertrevi/xamarin-neo4j 2026-04-02 12:26:12 +02:00
Trevi Awater
b709c7b5ce fix 2026-04-02 12:26:07 +02:00
Gerwin Kuijntjes
f37c09a32a Fix: restore full graph interaction when node detail panel is open
- 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>
2026-04-02 12:25:09 +02:00
Gerwin Kuijntjes
c0b3728ceb Fix: Re:Software logo invisible on dark mode in settings
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>
2026-04-02 12:25:01 +02:00
Gerwin Kuijntjes
528a8ba3a3 Fix: Android back button tint, MauiImage resources for logos
- 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>
2026-04-02 11:52:26 +02:00
Gerwin Kuijntjes
d7a1a1e4ee Feature: settings toggles, editable connection name, settings layout improvements
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>
2026-04-02 11:52:14 +02:00
Gerwin Kuijntjes
eefb7fc0ea Design: dashboard-style ConnectionsPage with rich connection cards
- Add header with ProjectDiagram icon, app title, and connection count
- Replace plain ListView with styled cards (Border + rounded corners)
- Each card shows: database icon, name, host, scheme badge, secure lock
- Inline edit/delete buttons on each card (pencil + trash icons)
- Hide nav bar title (dashboard header replaces it)
- Add computed properties: IsSecure, SchemeShortName, DisplayName
- Add ConnectionCountLabel to ViewModel
- Add OpenConnection command for card tap handling

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 11:52:01 +02:00
Gerwin Kuijntjes
7df3395c3e Feature: improved symbols bar on Android, auto-capitalize keywords on both platforms
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>
2026-04-02 11:51:47 +02:00
Gerwin Kuijntjes
8eb4e3cd5e Feature: redesign graph node panel with slide-up sheet, actions, and auto-zoom
- 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>
2026-04-02 11:51:31 +02:00
Gerwin Kuijntjes
9fde77ca67 Design: improve JSON view readability with app-consistent theme colors
- 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>
2026-04-02 11:51:18 +02:00
Gerwin Kuijntjes
35e81a8cb9 Design: polish result cards, empty state centering, FAB and nav bar colors
- 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>
2026-04-02 11:51:03 +02:00
Trevi Awater
bf88052d53 fix 2026-04-01 17:51:23 +02:00
Gerwin Kuijntjes
efe8e1a6d4 Design: fix status bar, white flash, button order, theme switching
- 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>
2026-03-31 15:35:03 +02:00
Gerwin Kuijntjes
d0b7e8335d Design: align app with pocketgraph.app landing page aesthetic
- Dark theme: near-black (#0c0c0c) background, monochromatic palette
- Light theme: clean neutral (#f5f5f5), pure black accent
- Settings page: custom card sections replacing TableView
- Result cards: thin border, reduced corner radius, no shadow
- Query editor: single-border, theme-aware, placeholder text
- Add Connection: monochromatic button hierarchy
- Android: mipmap icons from iOS 1024px source
- Android: overflow icon tinted white via view-tree walk
- Android: status bar appearance set dynamically per theme
- All hardcoded colors replaced with dynamic theme tokens

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 15:26:47 +02:00
Gerwin Kuijntjes
e939f04185 CI: trigger on merge to main instead of version tags
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>
2026-03-31 14:52:51 +02:00
Gerwin Kuijntjes
48c0d80490 CI: Android build workflow with GitHub Releases and Play Store deploy
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>
2026-03-31 14:50:21 +02:00
Gerwin Kuijntjes
a3c2ee1e2a Misc: minor cleanup and project file updates
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 14:47:53 +02:00
Gerwin Kuijntjes
249185a146 Session: redesign result cards, saved queries always visible, collapsible sections
- 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>
2026-03-31 14:47:48 +02:00
Gerwin Kuijntjes
a390a07d62 JSON viewer: block layout, dark/light theme, collapse-all, jq clear button
- Rewrite jsonview.html with block-based node rendering (no rightward staircase)
- CSS custom properties for live theme switching via setTheme(isDark) JS call
- TablePage subscribes to App.ThemeChanged and calls setTheme on switch
- Add collapse-all / expand-all toolbar buttons
- jq filter input uses type=search for native clear (×) button

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 14:47:39 +02:00
Gerwin Kuijntjes
2193026fd9 GraphPage: hide double-tap hint after first user interaction
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>
2026-03-31 14:47:31 +02:00
Gerwin Kuijntjes
06dafb0056 AddConnection: add password reveal eye icon toggle
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 14:47:26 +02:00
Gerwin Kuijntjes
235cda85b8 Connections: remove active indicator dot, fix theme refresh
- 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>
2026-03-31 14:47:16 +02:00
Gerwin Kuijntjes
bdbf738fe3 Auth: verify credentials with RETURN 1 before accepting connection
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>
2026-03-31 14:47:11 +02:00
Gerwin Kuijntjes
ad1547db6d Theme: instant switching via ThemeChanged event
- 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>
2026-03-31 14:47:03 +02:00
Gerwin Kuijntjes
9421582e2c Android: toolbar colors, action mode, popup menu text fix
- 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>
2026-03-31 14:46:57 +02:00
Trevi Awater
2c68418057 fixes graph view 2026-03-31 09:55:47 +02:00
Trevi Awater
a4c515f16b encryption flag 2026-03-31 08:43:07 +02:00
Trevi Awater
886b5738ef fix 2026-03-30 22:49:46 +02:00
Trevi Awater
d4949c7503 integration tests 2026-03-30 21:31:01 +02:00
Trevi Awater
3473744e71 .NET MAUI upgrade 2026-03-30 20:58:37 +02:00
Trevi Awater
6ee1e09671 Install gitleaks 2024-11-21 10:51:46 +01:00
Trevi Awater
b92331d904 Small fix 2024-03-04 09:29:04 +01:00
Trevi Awater
55d6d6060e Unit tests 2024-03-02 22:53:19 +01:00
Trevi Awater
b009222333 Fixes 2024-03-02 21:46:37 +01:00
Trevi Awater
cd30e482dd Syntax highlighting + command palette 2024-03-02 21:22:29 +01:00
Trevi Awater
eb7154d897 Fix 2024-03-02 08:34:22 +01:00
Trevi Awater
aa6fa75136 Fixes 2022-06-13 15:51:05 +02:00
Trevi Awater
9e6b1136ea wrapping up 2022-03-15 00:48:10 +01:00
Trevi Awater
2a0f83a397 Pretty much finished the app 2022-01-14 01:53:46 +01:00
Trevi Awater
02a5af9eec icons + new name: Pocket Graph 2022-01-11 00:37:33 +01:00
Trevi Awater
dd0be1e969 Fixed error handling 2022-01-11 00:22:50 +01:00
Trevi Awater
bf2022e614 graph visualization 2022-01-11 00:07:13 +01:00
Stef
78b3557635 Validate ip address and port 2021-11-17 21:54:34 +01:00
Trevi Awater
dc8b43574f connection string management + listing databases 2021-11-13 16:58:44 +01:00