package Ġedu . kit . out wait . institute Repository Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġedu . kit . out wait . custom DataTypes . Mode Ċ import Ġedu . kit . out wait . custom DataTypes . Preferences Ċ import Ġedu . kit . out wait . custom DataTypes . Received List Ċ import Ġedu . kit . out wait . custom DataTypes . Received List Util Ċ import Ġedu . kit . out wait . remote DataSource . Management Handler Ċ import Ġedu . kit . out wait . remote DataSource . Management Server Errors Ċ import Ġorg . joda . time . DateTime Ċ import Ġorg . joda . time . Duration Ċ Ċ /** Ċ Ġ* ĠSim ulates Ġr ud iment arily Ġthe ĠMan agem ant Ġhandler Ġof Ġthe Ġremote Ġdata Ġsource Ċ Ġ* Ċ Ġ*/ Ċ class ĠManagement Handler Fake Ġ: ĠManagement Handler Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġwith Ġthis Ġusername Ġand Ġpassword Ġyou Ġcan Ġsimulate Ġa Ġsuccessful Ġlogin ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠVALID _ USERNAME Ġ= Ġ" valid U " ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġwith Ġthis Ġusername Ġand Ġpassword Ġyou Ġcan Ġsimulate Ġa Ġsuccessful Ġlogin ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠVALID _ PASSWORD Ġ= Ġ" valid P " ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġwith Ġthis Ġusername Ġand Ġpassword Ġyou Ġcan Ġsimulate Ġan Ġinvalid Ġlogin ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠINVALID _ USERNAME Ġ= Ġ" invalid U " ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġwith Ġthis Ġusername Ġand Ġpassword Ġyou Ġcan Ġsimulate Ġan Ġinvalid Ġlogin ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠINVALID _ PASSWORD Ġ= Ġ" valid P " ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAfter Ġlogin Ġthe Ġserver Ġwill Ġsend Ġa Ġqueue Ġwith Ġthis Ġamount Ġof ĊĠĠĠĠĠĠĠĠ Ġ* Ġsp ont aneous Ġslots ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNR _ SLOT S _ AFTER _ LOGIN Ġ= Ġ 3 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġchange Ġit Ġto Ġsimulate Ġa Ġloss Ġof Ġnetwork Ġconnection Ġor Ġa Ġstable Ġconnection ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġinternet Works Ġ= Ġtrue ĊĊĠĠĠ Ġprivate Ġvar Ġconnected Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġvar Ġin Transaction Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġval Ġreceived List Ġ= ĠMutable LiveData < Received List >() ĊĊĠĠĠ Ġprivate Ġval Ġpreferences Ġ= ĠMutable LiveData < Preferences >() ĊĊĠĠĠ Ġprivate Ġval Ġerror Notifications Ġ= ĠMutable LiveData < List < Management Server Errors >>( listOf ()) ĊĊĠĠĠ Ġoverride Ġfun Ġinit Communication (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( internet Works Ġ&& Ġ! connected ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnected Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġend Communication (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( internet Works Ġ&& Ġconnected ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnected Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlogin ( username : ĠString , Ġpassword : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( connected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġinternet Works ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġusername Ġ== ĠVALID _ USERNAME ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġpassword Ġ== ĠVALID _ PASSWORD ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreceived List . value Ġ= ĠReceived List Util . prepare Received List ( NR _ SLOT S _ AFTER _ LOGIN ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . value Ġ= ĠPreferences ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDuration . standard Minutes ( 3 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDuration . standard Minutes ( 3 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDuration . standard Minutes ( 3 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDuration . standard Minutes ( 3 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode . ONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( connected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġinternet Works ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġusername Ġ== ĠINVALID _ USERNAME ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġpassword Ġ== ĠINVALID _ PASSWORD ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpush Error ( Management Server Errors . LOGIN _ DEN IED ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlogout () Ġ{ connected Ġ= Ġfalse } ĊĊĠĠĠ Ġoverride Ġfun Ġreset Password ( username : ĠString ) Ġ= Ġthrow ĠNotImplementedError () ĊĊĠĠĠ Ġoverride Ġfun Ġchange Preferences ( new Preferences : ĠPreferences ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpreferences . value Ġ= ĠPreferences ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDuration . standard Minutes ( 3 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDuration . standard Minutes ( 3 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDuration . standard Minutes ( 3 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDuration . standard Minutes ( 3 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . ONE ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstart Transaction (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( internet Works ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin Transaction Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġabort Transaction () Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Received List () ĊĠĠĠĠĠĠĠ Ġin Transaction Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsave Transaction () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( internet Works ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin Transaction Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠAll Ġqueue Ġmanipulation Ġmethods Ġdo Ġnot Ġreally Ġchange Ġthe Ġqueue Ġbut Ġonly Ġset Ġa Ġnew Ġqueue ĊĠĠĠĠ Ġ* Ġso Ġthat Ġwe Ġcan Ġcheck Ġif Ġthe Ġqueue Ġhas Ġref reshed . ĠWe Ġdont Ġwant Ġto Ġfake Ġthe Ġcomplex Ġserver ĊĠĠĠĠ Ġ* Ġqueue Ġmanip ulations ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġadd Sp ont aneous Slot ( duration : ĠDuration , Ġtime Of Creation : ĠDateTime ) Ġ= Ġnew Received List () ĊĠĠĠ Ġoverride Ġfun Ġadd Fixed Slot ( duration : ĠDuration , Ġappointment Time : ĠDateTime ) Ġ= Ġnew Received List () ĊĠĠĠ Ġoverride Ġfun Ġdelete Slot ( slot Code : ĠString ) Ġ= Ġnew Received List () ĊĠĠĠ Ġoverride Ġfun Ġend Current Slot () Ġ= Ġnew Received List () ĊĠĠĠ Ġoverride Ġfun Ġmove Slot After Another ( moved Slot : ĠString , Ġother Slot : ĠString ) Ġ= Ġnew Received List () ĊĠĠĠ Ġoverride Ġfun Ġchange Slot Duration ( slot Code : ĠString , Ġnew Duration : ĠDuration ) Ġ= Ġnew Received List () ĊĠĠĠ Ġoverride Ġfun Ġchange Fixed Slot Time ( slot Code : ĠString , Ġnew Time : ĠDateTime ) Ġ= Ġnew Received List () ĊĊĊĠĠĠ Ġoverride Ġfun Ġget Received List () Ġ= Ġreceived List Ġas ĠLive Data < Received List > ĊĊĠĠĠ Ġoverride Ġfun Ġget Updated Preferences () Ġ= Ġpreferences Ġas ĠLive Data < Preferences > ĊĊĠĠĠ Ġoverride Ġfun Ġget Errors () Ġ= Ġerror Notifications Ġas ĠLive Data < List < Management Server Errors >> ĊĊĠĠĠ Ġprivate Ġfun Ġnew Received List (){ ĊĠĠĠĠĠĠĠ Ġreceived List . value Ġ= ĠReceived List Util . prepare Received List ( 3 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpush Error ( error : ĠManagement Server Errors ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( error Notifications . value Ġ!== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew List Ġ= Ġerror Notifications . value !!. plus ( error ). to Mutable List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Notifications . value Ġ= Ġnew List ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Notifications . value Ġ= ĠlistOf ( error ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ