package Ġcom . mo sp oly tech . mo sp oly helper . features . ui . dead lines . bottom dialog Ċ Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġandroidx . preference . Preference Manager Ċ import Ġcom . mo sp oly tech . mo sp oly helper . App Ċ import Ġcom . mo sp oly tech . mo sp oly helper . data . core . local . SharedPreferences DataSource Ċ import Ġcom . mo sp oly tech . mo sp oly helper . data . deadline . Dead lines Repository Ċ import Ġcom . mo sp oly tech . mo sp oly helper . domain . deadline . model . Deadline Ċ import Ġcom . mo sp oly tech . mo sp oly helper . data . schedule . repository . Schedule Repository Impl Ċ import Ġcom . mo sp oly tech . mo sp oly helper . domain . schedule . model . Schedule Ċ import Ġcom . mo sp oly tech . mo sp oly helper . domain . schedule . repository . Schedule Repository Ċ import Ġcom . mo sp oly tech . mo sp oly helper . features . ui . common . Mediator Ċ import Ġcom . mo sp oly tech . mo sp oly helper . features . ui . common . ViewModel Base Ċ import Ġcom . mo sp oly tech . mo sp oly helper . features . ui . common . ViewModel Message Ċ import Ġcom . mo sp oly tech . mo sp oly helper . utils . Action 1 Ċ import Ġcom . mo sp oly tech . mo sp oly helper . utils . Preference Defaults Ċ import Ġcom . mo sp oly tech . mo sp oly helper . utils . Event 1 Ċ import Ġcom . mo sp oly tech . mo sp oly helper . utils . Preference Keys Ċ import Ġkotlinx . coroutines .* Ċ import Ġkotlinx . coroutines . flow . Mutable State Flow Ċ import Ġkotlinx . coroutines . flow . collect ĊĊ Ċ class ĠDialog Fragment ViewModel ( medi ator : ĠMed iator < String , ĠViewModel Message >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġdead lines Repository : ĠDead lines Repository , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġschedule Repository : ĠSchedule Repository Ċ ) Ġ: ĊĠĠĠ ĠViewModel Base ( medi ator , ĠDialog Fragment ViewModel :: class . java . simple Name ) Ġ{ ĊĊĠĠĠ Ġval Ġschedule : ĠMutable State Flow < Schedule ?> Ġ= ĠMutable State Flow ( null ) ĊĠĠĠ Ġval Ġon Message : ĠEvent 1 < String > Ġ= ĠAction 1 () ĊĊĠĠĠ Ġfun Ġnew Repository () Ġ{ ĊĠĠĠĠĠĠĠ Ġdead lines Repository . new Job () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave Information ( deadline : ĠDead line ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdead lines Repository . insert Deadline ( deadline ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate One ( deadline : ĠDead line ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdead lines Repository . update Deadline ( deadline ) ĊĊĠĠĠ Ġ} ĊĊĊĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cle ared () ĊĠĠĠĠĠĠĠ Ġdead lines Repository . cancel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Less ons (): ĠSet < String >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprefs Ġ= ĠPreference Manager . getDefault SharedPreferences ( App . context ) ĊĠĠĠĠĠĠĠ Ġval Ġgroup Title Ġ= Ġprefs . getString ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPreference Keys . Schedule Group Title , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPreference Defaults . Schedule Group Title ) ĊĠĠĠĠĠĠĠ Ġval Ġis Student Ġ= ĠSharedPreferences DataSource ( prefs ). getBoolean ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPreference Keys . Schedule User Type Preference , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPreference Defaults . Schedule User Type Preference ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠsetUp Schedule ( group Title !! , Ġis Student ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis @ Dialog Fragment ViewModel . schedule . value ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule Repository Impl . all Data From Schedule ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). lesson Titles ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Schedule ( id : ĠString , Ġis Student : ĠBoolean , Ġdownload New : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( id . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Dialog Fragment ViewModel . schedule . value Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠFix Ġis Student Constant ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġschedule Repository . get Schedule ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Student , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdownload New ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Dialog Fragment ViewModel . schedule . value Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }