Skip to content

Release: Parent 4.12.0 (70)#3670

Open
kristofnemere wants to merge 85 commits intorelease/parentfrom
release/parent-4.12.0-70
Open

Release: Parent 4.12.0 (70)#3670
kristofnemere wants to merge 85 commits intorelease/parentfrom
release/parent-4.12.0-70

Conversation

@kristofnemere
Copy link
Copy Markdown
Contributor

Release: Parent 4.12.0 (70)

tamaskozmer and others added 30 commits March 23, 2026 15:07
refs: MBL-19863
affects: Student, Teacher, Parent
release note: -
refs: MBL-19863
affects: Student, Teacher, Parent
release note: -

(cherry picked from commit fae7557)
refs: MBL-19863
affects: Student, Teacher, Parent
release note: -

(cherry picked from commit fae7557)
* Fix New Login UI changes in E2E tests.

refs: MBL-19864
affects: Student, Teacher, Parent
release note: -

* Fix LoginSignInPage UI element selectors + Stub a test (needs further investigation).

* Add util function for react input notifying.

* Stabilize Login tests by waiting for email and password field to be displayed before making interaction with them.

* Stub Student DashboardE2ETest
* Fix New Login UI changes in E2E tests.

refs: MBL-19864
affects: Student, Teacher, Parent
release note: -

* Fix LoginSignInPage UI element selectors + Stub a test (needs further investigation).

* Add util function for react input notifying.

* Stabilize Login tests by waiting for email and password field to be displayed before making interaction with them.

* Stub Student DashboardE2ETest

(cherry picked from commit 92883f8)
* Fix New Login UI changes in E2E tests.

refs: MBL-19864
affects: Student, Teacher, Parent
release note: -

* Fix LoginSignInPage UI element selectors + Stub a test (needs further investigation).

* Add util function for react input notifying.

* Stabilize Login tests by waiting for email and password field to be displayed before making interaction with them.

* Stub Student DashboardE2ETest

(cherry picked from commit 92883f8)
…ite (#3603)

refs: MBL-19869
affects: Student, Teacher, Parent
release note: -
Removed @singleton annotation because it caused issues
Removed @singleton annotation because it caused issues

(cherry picked from commit b777ed4)
Removed @singleton annotation because it caused issues

(cherry picked from commit b777ed4)
…3587)

* Add interaction tests for document scanner.
Add fake manager.
Make DocumentScannerManager to be an interface + add implementation ot it and module for di.

refs: MBL-19817
affects: Student
release note: -

* Move FakeDocumentScannerManager to espresso/mockcanvas/fakes.
Add document scanner dependency to espresso build.gradle

* Use assertDisplayed and assertNotDisplayed on assertion methods instead of check.
refs: MBL-19849
affects: Student
release note: Fixed a bug where some Dashboard widgets would not reload.

test plan: On pull-to-refresh all widgets should reload.
…account timezone (#3599)

Test plan:
1. Set up a Canvas user whose account timezone differs from your device timezone
2. Create an assignment with a past "until" (lock) date
3. Open the assignment in the Student app
4. Verify both the due date AND the lock date display in the device's local timezone
5. Check the AssignmentBasicFragment view (legacy) also shows the correct timezone

refs: MBL-19639
affects: Student
release note: Fixed lock dates on assignment details displaying in the account timezone instead of the device timezone
- [ ] Follow-up e2e test ticket created or not needed
- [ ] Tested in dark mode
- [ ] Tested in light mode
- [ ] Test in landscape mode and/or tablet
- [ ] A11y checked
- [ ] Approve from product
refs: MBL-19845
affects: Student, Teacher, Parent
release note: Fixed an issue where attaching a file in Inbox would freeze the upload UI after rotating the device.
refs: MBL-19871
affects: Student, Teacher, Parent
release note: Fixed an issue where media attachments sent via Inbox were not visible or playable on Android devices.
refs: MBL-19875
affects: Student, Teacher, Parent
release note: none

test plan: You'll need local canvas to test as of now. 

1. Go to each section that uses a webview, and navigate around, while checking the following: There must be no console warning saying "OneTrust would initialize." 
2. The window.JS_ENV object should contain MOBILE_COOKIE_CONSENT with a boolean true value. 
3. Close the client.
4. Set the mobile_consent passed-on value to “false”. Do the same as previously, MOBILE_COOKIE_CONSENT should show a boolean false value, and the console warning should not be visible.
…ion as read/unread

refs: MBL-19891
affects: Student, Teacher, Parent
release note: Fixed incorrect toast message shown after marking a conversation as read or unread from the conversation details page.
tamaskozmer and others added 28 commits April 15, 2026 13:19
refs: MBL-19952
affects: Student, Teacher
release note: -
…tor positioning

refs: MBL-19896
affects: Student
release note: Fixed a gap appearing between the Snackbar and the Android navigation bar on the All Courses page in offline mode, and fixed the offline indicator being hidden behind the navigation bar on secondary screens.
…enrollments

refs: MBL-19956
affects: Student
release note: The Course widget on the Dashboard now shows a friendly empty state with guidance when a student has no active course enrollments.
… tab including K5 elementary courses (#3632)

* Implement E2E test for Front Page tab visibility in K5 elementary courses.

refs: MBL-19884
affects: Parent
release note:

* CR

refs: MBL-19884
affects: Parent
release note:
… Custom Actions. (#3644)

Also, made a separate 'util' package for them.
Add many comments to make the custom methods documented.
Delete some unused custom methods.

refs: MBL-19952
affects: Student, Teacher
release note: -
… portrait, interaction landscape, interaction tablet, e2e offline in student). (#3645)

refs: MBL-19872
affects: Student, Teacher, Parent
release note: -
…tion bar in tablet landscape #3649

refs: MBL-19898
affects: Parent
release note: Fixed assignment details content overlapping with the navigation bar on tablets in landscape mode
…s uploaded

refs: MBL-19920
affects: Student
release note: The Forecast widget on the Dashboard now automatically refreshes when a student uploads a submission, so newly graded work appears without requiring a manual refresh.
…#3653

refs: MBL-19918
affects: Student, Teacher, Parent
release note: Fixed an issue where the system status bar icons were not visible on the Calendar filters screen.
… ToDo, and other screens #3654

refs: MBL-19923
affects: Student
release note: Fixed the status bar icon color on Inbox Compose, Edit ToDo and related screens so that icons remain visible after rotation or configuration changes, including in dark mode.
…eBrowserFragment

refs: MBL-19921
affects: Student
release note: Fixed an issue where the back button and course name overlapped when opening a course from the dashboard for the first time with the Color Overlay option enabled.
refs: CLXR-347
affects: Student
release note: Career - IgniteAI is replaced with Study tools
…nt and Teacher app. (#3646)

refs: MBL-18741
affects: Student, Teacher
release note:
…ion Details #3659

refs: MBL-19919
affects: Student
release note: Fixed an issue where the soft keyboard could cover the bottom of a discussion page, making the reply area unreachable.
…rom To Do list

refs: MBL-19959
affects: Teacher
release note: Fixed an error that prevented teachers from accessing discussions with graded checkpoints from the To Do list
## Summary

Introduces the `libs/instui` module — a design token system and initial Compose component library for the InstUI design system, synced with [instructure-ui](https://github.com/instructure/instructure-ui) (web).

### Token Generation (3 layers, auto-generated from instructure-ui v11.7.1)
- **Primitives** — colors, sizes, font weights, font families, opacities
- **Semantics** — theme-aware light/dark colors, layout sizes, typography, elevation
- **Components** — 65 per-component token files (Text, Heading, Button, Pill, List, etc.) with composed `TextStyle` objects, `@Composable` color accessors, and `sp` font sizes

### Compose Components (hand-written, thin wrappers)
- `InstUITheme` — MaterialTheme wrapper with InstUI defaults
- `Text` / `Heading` — typography composables using generated TextStyles
- `Pill` — status badge with 5 variants (Default, Info, Error, Success, Warning)
- `ListItem` — leading/content/trailing/bottom slot layout
- `SectionHeader` — collapsible header with trailing slot
- `Separator` — themed horizontal divider
- `Card` — elevated surface with token-based border radius and padding
- `TopBar` — navigation bar with title, subtitle, and icon slots
- `GradesScreenPreview` — dummy preview assembling all components per Figma spec

### Other
- `BorderStyle` enum mapping CSS border styles to Compose `PathEffect`
- Font files: Atkinson Hyperlegible Next, Inclusive Sans, Lato
- NGC added to translation projects

## Test plan

1. Open `libs/instui` in Android Studio
2. Run Compose Previews in `Text.kt`, `Pill.kt`, `Card.kt`, `ListItem.kt`, `SectionHeader.kt`, `TopBar.kt`
3. Verify light and dark mode previews render correctly
4. Open `GradesScreenPreview.kt` and verify the full Grades screen preview matches the Figma design
5. Run `./gradlew :instui:compileDebugKotlin` — should pass
6. Run `cd libs/instui/scripts && npm install && npm run build` — should regenerate all token files

- [ ] Tested in dark mode
- [ ] Tested in light mode
- [ ] A11y checked

refs: MBL-19926
affects: Student
release note: none
## Test plan

1. Open Student app, navigate to new Dashboard
2. Verify courses load with correct names, images, colors, and grades
3. Verify unread announcement badges appear on course cards
4. Tap an announcement badge — verify navigation to announcement or announcement list
5. Favorite/unfavorite a course, verify dashboard updates
6. Force-refresh (pull to refresh) and verify data reloads
7. Edit a course (change name/color), return to dashboard — verify single-course reload works
8. Measure load time — target is under 2 seconds (was N+2 sequential REST calls, now 1 GraphQL query)

refs: MBL-19958

affects: Student

## Release note

Improved dashboard course widget loading performance by migrating to GraphQL, reducing multiple sequential network requests to a single query.

## Checklist

- [x] Follow-up e2e test ticket created or not needed
- [x] Tested in dark mode
- [x] Tested in light mode
- [x] Test in landscape mode and/or tablet
- [ ] A11y checked
- [ ] Approve from product
* Implement E2E test for Grades List Discussion Checkpoints.
Add some page object methods
Extend API with sub assignment related fields.
Make listAssignments API call.
Attempt to fix testBookmarkAssignmentFromTodoAndNotificationsE2E which is flaky on nightly.

refs: MBL-19314
affects: Parent, Student
release note: -

* Remove duplicated waitForRender() method.
Fix breaking E2E test.
…oints (#3660)

* Implement offline E2E test for discussion checkpoints.

refs: MBL-19444
affects: Student
release note:

* CR

refs: MBL-19444
affects: Student
release note:
* [MBL-19875][All] Add mobile_consent flag to auth session

refs: MBL-19875
affects: Student, Teacher, Parent
release note: none

test plan: You'll need local canvas to test as of now.
Go to each section that uses a webview, and navigate around, while checking the following:
There must be no console warning saying "OneTrust would initialize."
The window.JS_ENV object should contain MOBILE_COOKIE_CONSENT with a boolean true value.
Close the client.
Set the mobile_consent passed-on value to “false”.
Do the same as previously, MOBILE_COOKIE_CONSENT should show a boolean false value, and the console warning should not be visible.

* fix tests

* [MBL-19874][All] Add cookie consent dialog

refs: MBL-19874
affects: Student, Teacher, Parent
release note: Added consent screen for anonymous analytics.

test plan: Use beta. Check the ticket. Enable the cookie consent feature flag.
1. Check if the dialog appears on the first app open after the ff was enabled.
2. Subsequent opens don't display the dialog.
3. The dialog is accessible via the Settings > Legal screen too.

* CRs

* fix tests

* Conflict resolution.

* Fixed horizon build.

* Removed consent storage on the web.

* Fixed oauth api call.

* Restart Pendo tracking when consent is accepted in the settings.

* Fixed UI issues.

* Fixed tests.

* Removed feature flag dependency for pandata.

* Correctly handle change user consent.

* Fixed routing to NGC.

* Fixed QR login.

* New UI for changing the privacy settings.

* Fixed review items

* Changed description and title order.

* Fixed tests

---------

Co-authored-by: Tamas Kozmer <[email protected]>
* Fix breaking Help Menu E2E tests in all the apps (Changed some strings and Intent URLS)

refs: MBL-19970
affects: Parent, Student, Teacher
release note: -

* Fix click shareContributionLabel method text in parent and teacher.

* Rename click method on Share a Contribution and correct some comments and logs.
refs: MBL-19968, MBL-19964
affects: Student, Teacher, Parent
release note: Added a Privacy settings screen under the Legal section. It shows a toggle for anonymous usage data sharing and only appears when the institution requires explicit user consent.

* New api for consent.

* Handle new API endpoint logic for consent and tracking.

* Get Pendo API keys from the backend.

* Conflict resolution.

* Handle privacy screen in settings.

* Fixed testSubmission_multipleSubmissionType

---------

Co-authored-by: kristof.nemere <[email protected]>
@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Apr 29, 2026

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
6 out of 7 committers have signed the CLA.

✅ tamaskozmer
✅ kristofnemere
✅ hermannakos
✅ kdeakinstructure
✅ domonkosadam
✅ adamNagy56
❌ github-actions[bot]
You have signed the CLA already but the status is still pending? Let us recheck it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants