Repository navigation
Version 0.18: Beta MR10 (Early Access)
This is the tenth openly available release of the Oppia Android app. Anyone can opt into the beta program and install the app on their Android device via the Play Store. Burndown milestone: https://github.com/oppia/oppia-android/milestone/56.
This release brings a variety of significant crash and bug fixes, since the previous version(0.17) experienced significant cold and warm startup crashes. Workmanager initialization has been rewired.
Included in this release is an alpha (closed testing) version of the app for testing the following features:
- Lesson Progress Visualization
- Study Guides
- Work in progress Number with units interaction support.
On beta, a notice has also been enabled in the app to warn users on Android 5 and 5.1 of the upcoming end of life support for their OS version.
The production version of this release is set to expire on August 31 2027.
What's Changed
- Fix #4751: Update work manager to 2.7.0 and enable it on S+ devices by @theMr17 in #6002
- Fix Part of #4938: Create Admin Onboarding Intro(2/12) by @adhiamboperes in #5839
- Fix #482: Remove default admin for onboarding V2 (3/12) by @adhiamboperes in #5968
- Fix part of #5571: Support practice questions by @theMr17 in #5729
- Fix #5992 and Fix Part of #5995: Fix Android Studio Bazel import failing by @ShankhanilSaha in #6001
- Fix #6029: Update
//scripts:download_lessonsCLI arguments for CI workflow by @BenHenning in #6030 - Localisation updates from https://translatewiki.net. by @translatewiki in #6032
- Update repository 'vacation' mode reminders for end-of-year 2025 by @BenHenning in #6027
- Bump version codes for 0.17 RC02 by @BenHenning in #6040
- Fix #5838: Use --target_pattern_file for Bazel commands to avoid comm… by @divyansha12 in #6008
- Fix #5983: Restrict Fractions Lesson to accept only exact 1/2 answer by @sonalyadav1 in #6039
- Fix #6034 - Android Wiki bug by @itsadityaaaaa in #6038
- Fix part of #2747, #1532: Remove support for Gradle by @BenHenning in #5652
- Minor README updates by @seanlip in #6047
- Fixes #5972: Profile name accepts invalid inputs like single dot (.) or single space ( ) by @ShankhanilSaha in #5997
- Fix #6043: Support Hindi Strings in the Resource Checker by @ShankhanilSaha in #6051
- Correctly enable holiday messaging by @BenHenning in #6055
- Fix #5452: Update dependencies for pending intent support by @ShankhanilSaha in #6054
- Fix #6042 Drawer highlight issue by @itsadityaaaaa in #6045
- Fix #5915: Improve TalkBack content description for concept card links by @CodeWithSangeeta in #6033
- Fix #6006: Add Installation ID with copy option to App Version screen by @brijesh025 in #6073
- Fixes #5934: Fixes flaky CI failures in
zlibfetch by @Sandesh282 in #6091 - Fix part of #5815: Add Missing Tests by @itsadityaaaaa in #6074
- Bump version codes for 0.18 release by @BenHenning in #6111
- Fixes part of #5440: Redesign profile type identification by @ShankhanilSaha in #6066
- Fix #5956: Handle audio playback crash when Wi-Fi is disabled by @Neer-rn in #6101
- Fix #6076: Remove headers and body logs from network call logs by @Neer-rn in #6089
- Fix part of #5035: Add missing deleteAllProfiles tests for ProfileManagementController by @nikhilkumarpanigrahi in #6121
- Fix #6140: Add some clarification to Oppiabot stale messaging by @BenHenning in #6130
- Fix #6141: Add workflows for issue assignment & force push checking by @BenHenning in #6142
- Fix #5036: Add stringification tests for LearnerAnalyticsLogger by @harshsomankar123-tech in #6128
- Fixes part of #5035: Add missing ProfileChooserViewModel data reset tests by @Sandesh282 in #6125
- Fix part of #5792: Make LaTeX rendering theme-aware and separate Glide caching across Light/Dark modes by @CodeWithSangeeta in #6122
- Fix part of #4971: Compute aab differences tests by @Sandesh282 in #6113
- Fix part of #3926: Add support for GitHub merge queues plus a bunch of other CI improvements by @BenHenning in #6150
- Fix #5980 Drag and Drop option answers to be persistent when user rotates the screen by @itsadityaaaaa in #6094
- Fix #5779: Display translated custom text for Continue button by @Neer-rn in #6102
- Fix #5935: Prevent submitted answer and feedback text from flashing previous card's content by @Neer-rn in #6126
- Fix #5959: Profile colors and positions change when selecting a profile in the Profile screen by @itsadityaaaaa in #6129
- Fix #5818: Robolectric edittext input action by @Sandesh282 in #6148
- Fix #5998: Fix audio player crashes in AudioPlayerController and AudioViewModel by @Sandesh282 in #6090
- Fix #6103: Add support for
is_checkpointstate property by @BenHenning in #6185 - Fix #6163, #3759: Enable pre-fetching and more stable builds by @BenHenning in #6164
- Fix #6176: Add replay indicator for newly played lessons by @BenHenning in #6177
- Fixes part of #5440 : Change ProfileId defaulting to be an invalid profile by @ShankhanilSaha in #6155
- Fix #6019: Resolve TopicController crash and CheckBox recycling issues by @harshsomankar123-tech in #6112
- Fix #6022: Update AudioLanguageFragmentTest to use production-only languages by @saimanoharigodavarty in #6131
- Fixes #4236: Add remaining tests for AsyncResultSubject by @nikhilkumarpanigrahi in #6175
- Fixes part of #5440: ProfileId migration utility by @ShankhanilSaha in #6199
- Fix #5847: Replace shell binary check with Kotlin script and tests by @Sandesh282 in #6168
- Fix #5812: Coverage Script fixed for incorrectly placed test by @itsadityaaaaa in #6170
- Fix #6206: Update triage instructions for new label types by @BenHenning in #6207
- Fix part of #5607: Prevent toolbar title truncation in AudioLanguageFragment at 200% font scaling in #6135
- Fixes part of #5035: Add missing app data reset flow tests by @Sandesh282 in #6224
- Fixes part of #5440: Profile id migration utility update by @ShankhanilSaha in #6225
- Fix #5785, #6210 : Handle Network transition during playback by @itsadityaaaaa in #6205
- Fixes part of #5035: Add missing reading text size tests by @Sandesh282 in #6227
- Fixes #6146 rendering of bold in Authorize to add profiles screen by @itsadityaaaaa in #6248
- Fixes #6147: Keep Save enabled by default on Authorize to add profiles screen by @saimanoharigodavarty in #6193
- Add study guide sections to subtopic records by @Neer-rn in #6261
- Fix #5886: Optimize lint execution by @Sandesh282 in #6098
- Fix part of #6106: Introduce changelog and certificate infrastructure by @Sandesh282 in #6262
- Fix #6186: Flaky proguard in CI by @ShankhanilSaha in #6213
- Fix #6209: Add EDGE_TO_EDGE feature flag for edge-to-edge display support by @Neer-rn in #6212
- Fixes #5039: Force LTR alignment for Terms of Service & Privacy Policy in RTL languages by @nikhilkumarpanigrahi in #6198
- Fix #6269: Add coderabbit configuration for oppia-android by @seanlip in #6268
- Fix part of #6203: Migrate domain layer from LegacyProfileId to ProfileId by @Kishan8548 in #6254
- Fix #5033, #6215, #6217, #6218, #6219, #6220, #6221, #6222, #6223: Prepare for release automation by @BenHenning in #6265
- Fix part of #6104: Add domain-layer lesson progress support by @Neer-rn in #6275
- Fix part of #6104: Add domain-layer study guide support by @Neer-rn in #6276
- Fixes part of #6104: Lesson progress indicator UI (GSoC 4.1 PR 1.3) by @Neer-rn in #6285
- Fix part of #6104: Add study guide UI (GSoC 4.1 PR 1.4) by @Neer-rn in #6286
- Fix part of #6106: Add
build_and_sign.ymlworkflow for building, signing, and archiving release AABs by @Sandesh282 in #6267 - Fix part of #6106: Add deploy to firebase workflow by @Sandesh282 in #6270
- Fix part of #6106: Introduce Play Console API client, Retrofit service, and model layer by @Sandesh282 in #6271
- Fix part of #6106: Implement Deploy to Play Console workflow by @Sandesh282 in #6274
- Fix part of #6106: Fix bazel build step by @Sandesh282 in #6301
- Fix part of #6106: Implement live track auditing logic for UploadChangelogToPlayConsole & Upload Rollout workflow by @Sandesh282 in #6277
- Fix part of 6106: Implement Deploy Updated Changelog workflow by @Sandesh282 in #6295
- Fix part of #6104: Enable lesson progress & study guides in alpha builds for QA (GSoC 4.1) by @Neer-rn in #6299
- Fix part of #6106: Fixes issues in build_and_sign workflow by @Sandesh282 in #6307
- Fix #6315, #6070: Re-pin lesson script & versions by @BenHenning in #6316
- Fix #6308: Remove custom AAPT2 proto compilation workaround by @Neer-rn in #6314
- Fix part of #6106: Use pre-Proguard application source target in Phase 2 by @Sandesh282 in #6323
- Fix part of #6106: Fix upload certificate for Cloud KMS release signing by @Sandesh282 in #6324
- Fix part of #6106: Adds missing fixes to workflows by @Sandesh282 in #6325
- Fix #6260: Add concurrency to comment workflows by @himu-gupta in #6282
- Fix part of #6106: Fixes issues in play console run by @Sandesh282 in #6328
- Fix #6321: Introduce changelog for 0.17 release & placeholder for 0.18 by @BenHenning in #6322
- Fix part of #6106: Fix remaining issues in workflows by @Sandesh282 in #6331
- Fix part of #6106: zip issue fix by @Sandesh282 in #6332
- Fixes #6257: Disclosure of llm usage in PR's by @itsadityaaaaa in #6273
- Fix part of #6106: Add chmod fix by @Sandesh282 in #6333
- Fix #6330: Preserve frozen version codes in Play Console track updates by @Sandesh282 in #6338
- Fix #6327: Update
deploy_updated_changelog.ymlconcurrency group by @Sandesh282 in #6342 - Fix part of #6106: Implement GenerateChangelogs script with Vertex AI integration by @Sandesh282 in #6313
- Fix #6186: Separate add break between binary_deployable.jar and remaining build process. by @ShankhanilSaha in #6334
- Fixes #6149, Fixes part of #6202: Use bazel-contrib/setup-bazel in workflows to setup bazel by @ShankhanilSaha in #6284
- Fix part of #209: Introduce a tokenizer and parser for NumberWithUnits by @theMr17 in #6137
- Fix #5989, #6053, #6059, #6060, #6097, #6200: Rebuild app &
WorkManagerinitialization by @BenHenning in #6062 - Fix #6149, Fix part of #6202: Use official setup-bazel workflow by @ShankhanilSaha in #6356
- Fixes #76: Introduce RetryInterceptor for transient network errors by @omkodes in #6305
- Fix part of #6104: Add support for worked examples (GSoC 4.1 PR 2.1) by @Neer-rn in #6318
- Fix #6330: Merge frozen version codes into new release entry by @Sandesh282 in #6353
- Fix part of #6104: Add lesson progress animation, night colours, and spacing by @Neer-rn in #6354
- Fix part of #6203: Migrate exploration and progress controllers to use ProfileId by @Kishan8548 in #6294
- Fix #4212, #482: Remove obsolete TODOs and hardcoded admin profile by @omkodes in #6362
- Fix #6300: Consolidate FakePlayConsoleClient and MockWebServer into a single testing pattern by @Sandesh282 in #6339
- Fix #6310 : fix alpha langauge selection by @itsadityaaaaa in #6359
- Fix #6360: Exclude frozen version codes from VersionInversionChecker by @Sandesh282 in #6361
- Fix part of #5940: Add edge-to-edge insets to toolbar-hosted screens by @Neer-rn in #6214
- Fix #6358: Fix ComputeAffectedTests failing on develop by @adhiamboperes in #6364
- Fix part of #6208: Add edge-to-edge insets to no-toolbar screens by @Neer-rn in #6241
- Fix #6258: Deprecated Lollipop by @ShankhanilSaha in #6350
- Fix part of #6104: Render nested lists in worked examples correctly by @Neer-rn in #6363
- Fix part of #6106: Exclude frozen version codes from cross-track ordering checks by @Sandesh282 in #6369
- Fix part of #6106: Make frozen baseline test utility resilient to FrozenReleaseConfig changes by @Sandesh282 in #6372
- Fix #5924: Enable edge-to-edge by default and remove the SDK 35 opt-out by @Neer-rn in #6368
- Fix #5994, #5927, #6291, Part of #6258 and Part of #6312: Upgrade targetSdk to 36 by @adhiamboperes in #6366
- Fixes Part of #6393: Apply 0.18 fixes by @adhiamboperes in #6404
- Fix part of #6302: Revert some content versions to an earlier value by @adhiamboperes in #6407
New Contributors
- @divyansha12 made their first contribution in #6008
- @sonalyadav1 made their first contribution in #6039
- @itsadityaaaaa made their first contribution in #6038
- @CodeWithSangeeta made their first contribution in #6033
- @brijesh025 made their first contribution in #6073
- @harshsomankar123-tech made their first contribution in #6128
- @saimanoharigodavarty made their first contribution in #6131
- @himu-gupta made their first contribution in #6282
- @omkodes made their first contribution in #6305
Full Changelog: v0.17...0.18