Skip to content
This repository was archived by the owner on Jun 3, 2026. It is now read-only.

History / Architecture

Revisions

  • docs: sync wiki to v3.8-beta.13 — chained-one-shot worker + Snackbars Architecture.md - Notifications section rewritten for the chained-one-shot worker architecture (replaces the prior PeriodicWorkRequest description). Documents the SubscriptionNotificationWorker.scheduleNext() entry point, the four call-sites (cold-start, settings change, worker self-chain, SystemEventReceiver), and the timezone-correctness reasoning. - Added SystemEventReceiver description for ACTION_TIMEZONE_CHANGED / ACTION_TIME_SET handling. Release-Timeline.md - New row for v3.8-beta.13 (TZ-resilient schedule + no system Toasts). Annotated beta.12 retrospectively to note that the KEEP policy fix was superseded by the chained-one-shot architecture in beta.13. Home.md + Configuration-and-Versions.md - Current-beta line bumped 3.8-beta.12 → 3.8-beta.13, versionCode 55 → 56.

    Aarsh committed May 26, 2026
  • docs: sync wiki to v3.8-beta.12 state Bringing the wiki current with the beta line through v3.8-beta.12. Home.md - Bumped the "current beta channel version" line from v3.8-beta.7 → v3.8-beta.12. Configuration-and-Versions.md - versionCode 51 → 55, versionName 3.8-beta.8 → 3.8-beta.12. Architecture.md - Notifications section rewritten for the current worker contract: KEEP policy on cold-start (UPDATE on Settings time-change), UTC on both sides of days-left math, channel id v3 with IMPORTANCE_DEFAULT + auto-delete of legacy v1/v2 channels, body-tap vs dismiss vs mark-paid wired via different intent paths, lifecycle-analytics events listed, Send Test Notification diagnostic linked. - UI patterns section: added the sticky-resistance swipe-to-mark-paid pattern (`SwipeHelpers.applyStickyDamping`) and the FAB programmatic-colour invariant. Analytics-and-Audit.md - Notification lifecycle table rewritten to list ALL events: notification_worker_scheduled, notification_worker_run (with full params), notification_posted (denominator), notification_tap, notification_dismiss, notification_mark_paid_action (existing), notification_test_sent. - New "General usage" table for home_refresh_pull. - Added a "Computing notification flow ratios" sub-section showing the canonical tap-through / dismiss / worker-health calculations. Release-Timeline.md - Three new rows: v3.8-beta.10 (FAB readability via Kotlin, list parity, sticky swipe, Settings typography), v3.8-beta.11 (collapsed Manage Payments rows), v3.8-beta.12 (notification regression fix + lifecycle analytics + Send Test Notification button). - Annotated v3.8-beta.8 retrospectively — its XML textColor attempt was incomplete; the real fix shipped in beta.10's programmatic colour path. Troubleshooting.md - "No reminder notifications ever" section rewritten to lead with the Send Test Notification diagnostic. Then split the diagnosis into "appears" (scheduling-side problem, check notification_worker_run dashboard counts + battery optimisation) vs "doesn't appear" (device-side: permission, channel disabled, DND). Historical note about IMPORTANCE_LOW silenced notifications pre-beta.12.

    Aarsh committed May 26, 2026
  • docs: rewrite wiki for the main-branch Varisankya subscription tracker The previous wiki content was written when this repo still had the minimal master starter (Hello-World + Google Sign-In). It documented the wrong app. This rewrite replaces every page with content that matches the v3.8-beta.8 Varisankya subscription tracker on main. New / replaced pages (13): - Home — landing for the actual app, quick links table, at-a-glance facts, repo layout tree. - Getting-Started — prerequisites incl. Bitwarden + jq + Firebase CLI, .env.local non-interactive unlock, secrets retrieval flow. - Build-and-Release — Gradle Play Publisher steady-state pattern, beta vs production track, signing setup, GitHub release notes format from CLI_RELEASE_GUIDE. - Architecture — module layout, MVVM, screen inventory (5 activities + 7 bottom sheets), end-to-end swipe-to-paid request flow, notifications worker. - Data-Model-and-Migrations — Firestore collections (legacy nested + new flat), document shapes, dual-write migration with the PaymentRepository helper, Phase 2-4 roadmap, failure modes. - Firebase-Setup — project IDs / app ID / GA4 IDs / Web OAuth client, google-services.json mechanics, Auth via Credential Manager, the 5 registered SHA-1 fingerprints, Firestore rules verbatim, Analytics link verification. - Design-System — theme stack, custom typography overrides, brand monochrome stance (why DynamicColors is disabled), semantic colour usage on the subscription list, grouped-list shape pattern, buttons / chips / motion / haptics / icons / edge-to-edge insets. - Analytics-and-Audit — full event taxonomy table (30+ events grouped by surface), what we never log, the audit recipe, DebugView smoke-test, cost (none). - Configuration-and-Versions — flattened version reference at v3.8-beta.8: AGP 9.0.1 / Kotlin 2.3.0 / Gradle 8.13 / SDK 35-36, Firebase BoM 32.7.2, Material 1.14.0-alpha08, etc. - Release-Timeline — chronological per-tag index (v1.0 through v3.8-beta.8) noting what each release shipped, missing v2.2 tag. - Troubleshooting — build/auth/Firestore/notifications/UI/release failure modes with the fix for each. - Known-Issues — current rough edges prioritised: catalog bypass, hardcoded Web Client ID, dead pause/delete paths in SubscriptionActionHelper, stale About sheet preview text, etc. - Contributing — branch strategy (main only), Conventional Commits, analytics discipline for new flows. Plus sidebar updated to the new page set; obsolete pages removed (Build-and-Run, Firebase-and-Google-Sign-In, Branding-and-Assets, Release-and-Versioning, Known-Issues-and-Caveats).

    Aarsh committed May 24, 2026
  • docs: comprehensive human-facing wiki Replaces the placeholder Home with a full set of pages targeted at humans (devs, contributors, release engineers). The main repository is the agent contract (AGENTS.md); everything narrative now lives here. Pages: - Home — landing, quick links, at-a-glance facts, repo layout. - Getting-Started — prerequisites, clone, open in Studio, first run. - Build-and-Run — gradle tasks, outputs, signing, AAB. - Architecture — module/runtime layout, auth flow diagram, theme, backup rules, dependency rationale. - Firebase-and-Google-Sign-In — the Firebase project that ships with the repo, the OAuth flow on the wire, how to repoint at your own project, SHA-1 fingerprint management, Credential Manager migration direction. - Branding-and-Assets — display name, package, icons, theme, backup/data-extraction rules. - Configuration-and-Versions — every version pin (Gradle, AGP, Kotlin, SDKs, deps) and where to change each. - Release-and-Versioning — master vs main branch histories, v1.0-v3.4 tag timeline, versionCode/versionName workflow, release checklist, hotfix flow. - Troubleshooting — common build & runtime failures with the actual fix in each case. - Known-Issues-and-Caveats — leftover HelloWorld names, deprecated GoogleSignIn API, test-package mismatch, etc. - Contributing — branches, issue/PR style, Conventional Commits, code style. - _Sidebar / _Footer — wiki navigation.

    Aarsh committed May 24, 2026