Orion Store V1.3.4 : The Abyss Update
🌟 Orion Store v1.3.4 Release Notes
Orion Store v1.3.4 introduces a full deep linking system with shareable app links, fixes platform tab cross-contamination where PC/TV apps leaked into the Android section, resolves critical navigation overlaps, fixes compact mode spacing, eliminates back-button deadlocks in expanded views, robustly resolves VirusTotal scan errors for apps over 32MB, adds full big-screen responsiveness, and fixes the donation sheet UI.
🚀 New Features
🔗 Deep Linking & Shareable App Links
Every app in the store is now linkable. Tapping a shared link opens the app directly in Orion Store or guides the user to install Orion Store if they don't have it yet. [WIP]
- Custom Scheme:
orionstore://app/{appId}opens the app's detail page directly from anywhere on the device. - Web Fallback: A hosted redirect page (
https://rookieenough.github.io/Orion-Data/redirect.html?id={appId}) first attempts to launch the app via the custom scheme. If Orion Store isn't installed, it shows a download button linking to the latest GitHub release after a 2-second timeout. - Share Button Overhaul: The share button on every app detail page now generates and shares the deep link web URL instead of the raw repository link. Recipients with Orion Store installed are taken directly to the app; others are guided to download the store.
- Developer Badge Generator (Dev Mode): Under developer options in the App Detail view, developers can copy the raw deep link, web/fallback URL, and ready-to-use Markdown or HTML badge code.
- Submit Flow Integration: After publishing a new app through the Submission builder, developers see a collapsible drawer with copy-ready badge snippets for their README.
☕ Donation Sheet Integration & Maintenance Mode Support
- Extracted the payment options into a standalone, reusable
DonationSheetcomponent sliding up from the bottom instead of redirecting users to a web browser. - Displays support options for Ko-Fi, UPI, and PayPal.
- Now fully integrated into the Maintenance Mode Screen via the DONATE ME payment button, showing the sheet directly inline.
🧭 Feature Spotlight Walkthrough (Spotlight Tutorial)
- Added a reusable, portal-rendered Spotlight Tutorial system that provides guided walkthroughs for new features.
- Triggers a one-time sequence for the
v1.3.4update: walks the user through the "Dev" tab, highlights the "Buy me a coffee" button, and introduces the new donation methods on first launch. - Traps click events outside target highlights to freeze and block alternative interactions until the user advances to the next step.
🐛 Bug Fixes & UX Optimization
📑 Platform Tab Cross-Contamination
- Fixed an issue where PC and TV apps appeared in the Android tab (and vice versa). The worker now normalizes raw platform strings from remote JSON data to exact enum values (
Android,PC,TV), and the client applies a defensive platform filter before rendering to prevent any cross-tab leakage.
📱 Navigation Margins & Overlaps (3-Button Navigation)
- Dynamic layout calculations now account for safe-area-inset boundaries on all screen configurations. Sticky footer action menus and the core bottom navbar float above the system bar rather than rendering underneath it.
🍱 Spacing Alignments (Compact Mode Grid)
- Fixed a CSS styling selection bug where toggle activation of Compact Mode widened grid columns instead of contracting them. The layouts now collapse down to standard dense grids when enabled.
- Re-labeled setting helper text to read "Smaller cards with denser spacing" for clarity.
🔙 Expanded & Curated Lists Back-Navigation Deadlock
- Cleaned up back gesture/button interception hierarchies in
App.tsx. Pressing back within details pages opened from "See All" triggers dismissal parameters cleanly on the first press rather than requiring multiple inputs.
🛡️ VirusTotal Scanner Outage & Large Upload Support
- Resolved a parser crash occurring when VirusTotal endpoints returned raw HTML (Cloudflare challenge screens or temporary outages) instead of JSON payloads. The app now handles and shows clear network restriction notices.
- Fixed hangs and
413 payload too largeHTTP errors during VirusTotal scans of big apps (>= 32MB) by implementing the official two-step upload protocol. Large APK files now request and stream data targeting a temporary upload URL.
🖥️ Big Screen & Wide Display Responsiveness
- The entire app now renders properly on tablets, desktops, and ultra-wide monitors. A
max-w-[1400px]centered container constrains the header, announcement bar, and main content, preventing edge-to-edge stretching. - App grids (Sorted Grid, Expanded New/Updated, skeleton fallback) scale responsively from 3 columns on mobile to 4 on small tablets, 5 on medium screens, and 6 on large displays.
- Hero carousel cards, curated swimlanes, and category cards already used fluid widths and now benefit from the centered layout wrapper.
🛠️ Changed Files
- AndroidManifest.xml (Deep link intent-filter registration)
- declarations.d.ts (CapacitorApp UrlOpen type overloads)
- App.tsx (Deep link event listeners, platform safety filter on visible apps, navigation margin adjustments, back-button handler fixes, spotlight tutorial launch hook and overlay mount)
- workers/core.worker.ts (Platform normalization in
sanitizeAppto prevent tab cross-contamination) - components/AppDetail.tsx (Share button overhaul to use deep link web URLs, developer badge generator modal)
- components/SubmissionModal.tsx (Collapsible badge copier integration on success step)
- components/ClassicAppList.tsx (Grid gaps and spacing tweaks)
- components/SettingsModal.tsx (Text adjustments)
- hooks/useVirusTotalScan.ts (Html response detection)
- android/app/src/main/java/com/orion/store/AppTrackerPlugin.java (VirusTotal large file two-step API)
- docs/redirect.html (Universal deep-link web landing/routing fallback page)
- components/AboutView.tsx (Refactored to show newly extracted reusable DonationSheet, added target ID to donation button)
- components/BottomNav.tsx (Added target ID to the Dev tab button)
- components/DonationSheet.tsx (NEW - Reusable payment actions view portal sheet)
- components/SpotlightOverlay.tsx (NEW - Guided tutorial screen mask, highlight, and tooltip driver)
- store/useTutorialStore.ts (NEW - Zustand state management for ongoing walkthrough milestones)
- components/MaintenanceMode.tsx (Integrated local state and DonationSheet trigger for support button)
- components/ModernAppList.tsx (Responsive grid breakpoints for SortedGridPreview)
- components/ExpandedNewUpdatedGrid.tsx (Responsive grid breakpoints)
- index.css (No changes - existing responsive utilities sufficient)
👨🔧 Maintenance Fixes
- FIX: Hardened the Android download bridge against malformed filenames. Download, lookup, install, export, and deletion requests now remain confined to Orion Store's private downloads directory.
- FIX: Made remote catalog loading fault-tolerant. Invalid app entries, malformed repository fields, and bad optional mirror/import payloads are ignored instead of preventing valid apps from loading.
- FIX: Hardened native download edge cases: invalid download IDs fail safely, and exporting extension-less files no longer crashes while choosing a non-conflicting filename.
- FIX: Download links now accept only HTTP(S), preventing invalid or unsafe URL schemes from reaching browser or native download handlers.
- FIX: Release selection now sorts each update stream by publish date, so unsorted mirror responses cannot surface an older build as the latest one.
- FIX: Store counters now reject negative, fractional, and non-finite values, preventing corrupted persisted XP, high scores, and submission counts.
- PERF: Cached normalized search fields and parsed sizes in the catalog worker, reducing repeated string parsing and size conversion on every search/filter request.
- PERF: Skipped no-op array sorting for default/recent/oldest catalog views, reducing worker CPU time on lower-end devices.
- PERF: Indexed storefront apps by category and tag in one pass, replacing repeated full-list scans while assembling homepage collections.
- PERF: Narrowed the leaderboard settings subscription so unrelated settings changes do not rerender the open leaderboard.
- ADDED: Now users can easily copy their PAT and VT API Key with the newly added copy button. Added EYE button to unreveal the encrypted keys.