What's Changed
- Add Android Build workflow to main by @lukelloyd1985 in #5
- Working App by @lukelloyd1985 in #18
- Updated privacy & account delete docs by @lukelloyd1985 in #19
- Use Google's official G identity mark for the sign-in button icon by @lukelloyd1985 in #20
- Reconcile android-build.yml with fixes from the old feature/mvp branch by @lukelloyd1985 in #21
- Add Play Store icon, feature graphic, and screenshots by @lukelloyd1985 in #22
- Publish the Play Store listing (text + graphics) from CI too by @lukelloyd1985 in #23
- Fix service account permissions doc: needs Store listing too by @lukelloyd1985 in #24
- Rename applicationId to com.github.lukelloyd1985.mytasks by @lukelloyd1985 in #25
- Fix API access docs: the old Play Console page is gone, not moved by @lukelloyd1985 in #26
- Add drag-to-reorder for open tasks within a list by @lukelloyd1985 in #27
- Fix NullPointerException in Publish to Google Play by passing signing env vars by @lukelloyd1985 in #28
- Fix publishListing 404 by matching Play Console's actual listing language by @lukelloyd1985 in #29
- Rewrite Play Store full description to not duplicate the short one by @lukelloyd1985 in #30
- Fix wrong App access guidance blocking Play review by @lukelloyd1985 in #31
- Add Slovak and Czech localization by @lukelloyd1985 in #32
- Add French, German, Spanish, Italian, and Russian localization by @lukelloyd1985 in #33
- Scope GitHub Pages deployment to actual docs/ changes by @lukelloyd1985 in #34
- Add a phone-triggerable GitHub Actions workflow to deploy Firebase by @lukelloyd1985 in #35
- Upgrade Cloud Functions to Node 24 and firebase-admin v14 by @lukelloyd1985 in #36
- Move Cloud Functions to UK region and use a named Firestore database by @lukelloyd1985 in #37
- Fix artifact cleanup policy step running before the repo existed by @lukelloyd1985 in #38
- Fix Artifact Registry cleanup-policy step for real this time by @lukelloyd1985 in #39
- Keep default_web_client_id from being stripped by release resource shrinking by @lukelloyd1985 in #40
- Migration to Appwrite by @lukelloyd1985 in #45
- Fix appwrite push CLI invocation in deploy workflow by @lukelloyd1985 in #46
- Substitute real project ID into appwrite.json before pushing by @lukelloyd1985 in #47
- Rename appwrite.json schema to tables/columns; fix API key scopes by @lukelloyd1985 in #48
- Set the real Appwrite project ID in appwrite.json by @lukelloyd1985 in #49
- Document tables/collections API key scopes by @lukelloyd1985 in #50
- Use push all instead of per-resource-type commands by @lukelloyd1985 in #51
- Revert push all; document database as one-time manual step by @lukelloyd1985 in #52
- Fix function runtime string; document database-ID deletion pitfall by @lukelloyd1985 in #53
- Fix schema bugs and stop appwrite push tables from deleting the database by @lukelloyd1985 in #54
- Bootstrap database/tables via node-appwrite SDK instead of appwrite push by @lukelloyd1985 in #55
- Fix Appwrite schema: required attributes can't have a default value by @lukelloyd1985 in #56
- Fix Appwrite deploy: schema bug, destructive tables push, function consolidation by @lukelloyd1985 in #57
- Fix function build: invoke tsc via node directly, not the .bin shim by @lukelloyd1985 in #58
- Check database existence via get, not create-then-catch-409 by @lukelloyd1985 in #59
- Inline each function's tsconfig.json - extends target isn't pushed by @lukelloyd1985 in #60
- Switch to Appwrite Messaging; fix Android build (compileSdk 37 doesn't exist yet) by @lukelloyd1985 in #61
- Drop google-services.json entirely - manual FirebaseOptions init instead by @lukelloyd1985 in #62
- Fix Google OAuth2 setup docs: Appwrite doesn't auto-provision anything by @lukelloyd1985 in #63
- Document registering the Android app as an Appwrite Platform by @lukelloyd1985 in #64
- Switch Google Sign-In back to Credential Manager, bridged to Appwrite via a custom token by @lukelloyd1985 in #65
- Guard against a blank GOOGLE_WEB_CLIENT_ID crashing sign-in by @lukelloyd1985 in #66
- Register a separate Firebase Android app for debug builds by @lukelloyd1985 in #67
- README: make the Firebase Android API key fingerprint step conditional by @lukelloyd1985 in #68
- Fix: catch users.createToken failures so a Function bug never leaves an empty response by @lukelloyd1985 in #69
- Automate setting the maintenance Function's GOOGLE_WEB_CLIENT_ID variable in CI by @lukelloyd1985 in #70
- Document Play App Signing's separate SHA-1 requirement by @lukelloyd1985 in #71
- Document the app's signing-certificate SHA-1/SHA-256 fingerprints by @lukelloyd1985 in #72
- Add R8 keep rules for Credential Manager/Google Identity, surface exception cause by @lukelloyd1985 in #73
- Add an on-device crash screen for diagnosing the post-login crash by @lukelloyd1985 in #74
- Let manual Android Build runs choose debug or release, without AAB/Play publish by @lukelloyd1985 in #75
- Fix the post-login crash: Realtime channels used the wrong namespace for table-backed data by @lukelloyd1985 in #76
- Add R8 keep rules for io.appwrite - the SDK's Realtime error path uses Gson reflection by @lukelloyd1985 in #77
- Add R8 keep rules for androidx.work.impl - WorkManager's own Room database, reflectively instantiated by @lukelloyd1985 in #78
- Fix notifications/maintenance Functions: missing documents.read/documents.write scopes by @lukelloyd1985 in #79
- Migrate Appwrite Functions off deprecated documents./databases. to TablesDB/documentsdb.* by @lukelloyd1985 in #80
- Prune old Appwrite Function deployments in CI by @lukelloyd1985 in #81
- Deep-link notification taps to the relevant list and task by @lukelloyd1985 in #82
- Fix prune-function-deployments.mjs clobbering scopes/schedule by @lukelloyd1985 in #83
- Fix Function scopes: rows.read/rows.write, not documentsdb.* by @lukelloyd1985 in #84
- Move due-date reminder lead time from 30 minutes to 1 day by @lukelloyd1985 in #85
- Fail the workflow when appwrite push function partially fails by @lukelloyd1985 in #86
- Rename app from MyTasks to My Task List by @lukelloyd1985 in #87
- CI secrets: drop redundant app prefix, add RELEASE_ prefix for symmetry by @lukelloyd1985 in #88
- Update projectId in appwrite.json by @lukelloyd1985 in #89
- Update README signing-certificate fingerprints for the new keystores by @lukelloyd1985 in #90
- Regenerate store listing graphics with the new app name by @lukelloyd1985 in #91
- Corrected store listing screenshots by @lukelloyd1985 in #92
- TEMPORARY: toast checkpoints to diagnose Play-install startup hang by @lukelloyd1985 in #93
- TEMPORARY: give CrashReportActivity time to draw before self-killing by @lukelloyd1985 in #94
- TEMPORARY: confirm whether the crash handler is even invoked by @lukelloyd1985 in #95
- TEMPORARY: skip initFirebase() to test if it's the Play-install crash trigger by @lukelloyd1985 in #96
- Fix Firebase init crash on Play-signed builds; surface sign-in error detail by @lukelloyd1985 in #97
- TEMPORARY: bisect inside initFirebase() to find the exact failing line by @lukelloyd1985 in #98
- Bisect Firebase init crash further; publish to Closed testing not Internal by @lukelloyd1985 in #99
- Publish releases to Closed testing instead of Internal testing by @lukelloyd1985 in #100
- TEMPORARY: persist last debug checkpoint; bisect value interpolation further by @lukelloyd1985 in #101
- TEMPORARY: replace debug toasts with a full-screen, copyable log by @lukelloyd1985 in #102
- Fix Play-published AAB shipping with blank Firebase/Appwrite/Google config by @lukelloyd1985 in #103
- Remove startup-crash diagnostic scaffolding now that it's fixed by @lukelloyd1985 in #104
- Bundle sign-in diagnostics into a persistent, copyable error dialog by @lukelloyd1985 in #105
- Correct SHA-1 guidance: register both classic and quantum-resistant by @lukelloyd1985 in #106
- Remove sign-in diagnostic scaffolding from PR #105 by @lukelloyd1985 in #107
- Bump Credential Manager + Google ID libraries to current stable by @lukelloyd1985 in #108
Full Changelog: https://github.com/lukelloyd1985/MyTaskList/commits/v1.0.0