Skip to content

[MBL-19529][S] Learner Dashboard - Settings Enhancements#3940

Open
vargaat wants to merge 46 commits intomasterfrom
feature/MBL-19529-Learner-Dashboard-Settings-Enhancements
Open

[MBL-19529][S] Learner Dashboard - Settings Enhancements#3940
vargaat wants to merge 46 commits intomasterfrom
feature/MBL-19529-Learner-Dashboard-Settings-Enhancements

Conversation

@vargaat
Copy link
Collaborator

@vargaat vargaat commented Mar 16, 2026

What's new?

  • Added a "Customize Dashboard" button to the bottom of the dashboard.
  • Added an empty view informing users that all widgets are turned off.
  • Courses and groups settings view will hide "Show Grades" and "Show Color Overlay" toggles when the widget is turned off.
  • Fixed dashboard color selection tick icon not being visible in dark mode when the black/white color is selected.
  • Fixed edit dialog not switching between dark/light modes dynamically while the modal is open.
  • Voiceover no longer offers the move up and move down actions when they are disabled for widgets sitting at the top/bottom of the list.

refs: MBL-19529
builds: Student
affects: Student
release note: none

test plan:

  • Test if all changes work properly.

Checklist

  • A11y checked
  • Tested on phone
  • Tested on tablet
  • Tested in dark mode
  • Tested in light mode

petkybenedek and others added 30 commits March 3, 2026 13:21
refs: MBL-19529
builds: Student
affects: Student
release note: none
# Conflicts:
#	Student/Student/LearnerDashboard/Widgets/Common/Model/DashboardWidgetConfig.swift
#	Student/Student/LearnerDashboard/Widgets/Common/Model/DashboardWidgetViewModel.swift
#	Student/Student/LearnerDashboard/Widgets/ConferencesWidget/ViewModel/ConferencesWidgetViewModel.swift
#	Student/Student/LearnerDashboard/Widgets/CourseInvitationsWidget/ViewModel/CourseInvitationsWidgetViewModel.swift
#	Student/Student/LearnerDashboard/Widgets/CoursesAndGroupsWidget/ViewModel/CoursesAndGroupsWidgetViewModel.swift
#	Student/Student/LearnerDashboard/Widgets/FileUploadProgressWidget/ViewModel/FileUploadProgressWidgetViewModel.swift
#	Student/Student/LearnerDashboard/Widgets/GlobalAnnouncementsWidget/ViewModel/GlobalAnnouncementsWidgetViewModel.swift
#	Student/Student/LearnerDashboard/Widgets/HelloWidget/ViewModel/HelloWidgetViewModel.swift
#	Student/Student/LearnerDashboard/Widgets/OfflineSyncProgressWidget/ViewModel/OfflineSyncProgressWidgetViewModel.swift
#	Student/StudentUnitTests/LearnerDashboard/Container/Model/LearnerDashboardInteractorTests.swift
#	Student/StudentUnitTests/LearnerDashboard/Container/ViewModel/LearnerDashboardViewModelTests.swift
…//github.com/instructure/canvas-ios into feature/MBL-19529-Dashboard-simple-edit-mode

# Conflicts:
#	Student/StudentUnitTests/LearnerDashboard/Container/ViewModel/LearnerDashboardViewModelTests.swift
refs:
builds:
affects:
release note:

test plan:
…, always visible) and EditableWidgetIdentifier

  (user-configurable)
  - Interactor now loads system widgets always, and editable widgets from merged saved+default configs filtered by visibility/order
  - Settings changes now save immediately to SessionDefaults and trigger a dashboard reload via onConfigsChanged callback
  - Widget assembly split into separate makeSystemWidgetViewModel / makeEditableWidgetViewModel factories
refs: MBL-19529
builds: Student
affects: Student
release note: none

test plan:
- Test widget settings.
…ure/MBL-19529-Learner-Dashboard-settings-save

# Conflicts:
#	Student/Student/LearnerDashboard/Container/ViewModel/LearnerDashboardViewModel.swift
#	Student/Student/LearnerDashboard/Settings/LearnerDashboardSettingsAssembly.swift
#	Student/Student/LearnerDashboard/Settings/View/LearnerDashboardCourseSettingsView.swift
#	Student/Student/LearnerDashboard/Settings/ViewModel/LearnerDashboardCourseSettingsViewModel.swift
#	Student/StudentUnitTests/LearnerDashboard/Container/ViewModel/LearnerDashboardViewModelTests.swift
# Conflicts:
#	Core/Core/Common/CommonUI/InstUI/Styles/Elevation.swift
…ure/MBL-19529-Learner-Dashboard-settings-save

# Conflicts:
#	Student/Student/LearnerDashboard/Widgets/DashboardWidgetIdentifier.swift
#	Student/Student/LearnerDashboard/Widgets/LearnerDashboardWidgetAssembly.swift
#	Student/StudentUnitTests/LearnerDashboard/Container/Model/LearnerDashboardInteractorTests.swift
@bitrise

This comment was marked as outdated.

@bitrise
Copy link
Contributor

bitrise bot commented Mar 16, 2026

Builds

Commit: Merge branch 'master' into feature/MBL-19529-Learner-Dashboard-Settings-Enhancements (c45fc64)
Build Number: 1563
Built At: Mar 16 10:41 CET (03/16 03:41 AM MDT)

Student

Base automatically changed from feature/MBL-19529-Learner-Dashboard-settings-save to master March 16, 2026 09:19
…gs-Enhancements

# Conflicts:
#	Student/Student/LearnerDashboard/Container/View/LearnerDashboardScreen.swift
#	Student/Student/LearnerDashboard/Container/ViewModel/LearnerDashboardViewModel.swift
#	Student/Student/LearnerDashboard/Settings/View/LearnerDashboardSettingsWidgetCardView.swift
@bitrise
Copy link
Contributor

bitrise bot commented Mar 16, 2026

Warnings
⚠️ This pull request will not generate a release note.
⚠️ One or more files are below the minimum test coverage 50%

Affected Apps: Student

Builds: Student

MBL-19529

Coverage New % Master % Delta
Canvas iOS 91.71% 81.06% 10.64%
Core/Core/Common/CommonUI/Layout/FlexibleGrid.swift 0% -- --

Generated by 🚫 dangerJS against c45fc64

Copy link
Contributor

@rh12 rh12 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Making any widget level changes on the Dashboard settings (show/hide or rearrange a widget) causes any further refresh to be ignored, even forced ones.
Couple of ways to test this after a PTR:

  • Hello message is not updating
  • Course favorite changes are not updaing

This was like this in the previous PR as well (noticed this on my Courses widget branch, and checked both settings PRs afterwards)

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.

3 participants