package Ġcom . char 0 de y . calculator . presentation Ċ Ċ import Ġandroidx . lifecycle . Lifecycle Owner Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . char 0 de y . calculator . domain . Main Interactor Ċ Ċ /** Ċ Ġ* Ġ@ author Ġchar 0 de y Ġ 3 0 . 0 3 . 2 0 2 2 Ċ Ġ*/ Ċ Ċ class ĠMain ViewModel ( ĊĠĠĠ Ġprivate Ġval Ġcommunication : ĠMain Communication , ĊĠĠĠ Ġprivate Ġval Ġerror Communication : ĠMain Communication , ĊĠĠĠ Ġprivate Ġval Ġinter actor : ĠMain Interactor Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġobserve ( owner : ĠLifecycle Owner , Ġobserver : ĠObserver < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġcommunication . observe ( owner , Ġobserver ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġobserve Error ( owner : ĠLifecycle Owner , Ġobserver : ĠObserver < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġerror Communication . observe ( owner , Ġobserver ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġplus () Ġ{ ĊĠĠĠĠĠĠĠ Ġinter actor . plus (). map ( communication , Ġerror Communication ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġminus () Ġ{ ĊĠĠĠĠĠĠĠ Ġinter actor . minus (). map ( communication , Ġerror Communication ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdivide () Ġ{ ĊĠĠĠĠĠĠĠ Ġinter actor . divide (). map ( communication , Ġerror Communication ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmultiply () Ġ{ ĊĠĠĠĠĠĠĠ Ġinter actor . multiply (). map ( communication , Ġerror Communication ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcalculate () Ġ{ ĊĠĠĠĠĠĠĠ Ġinter actor . calculate (). map ( communication , Ġerror Communication ) ĊĠĠĠ Ġ} Ġ// Ġ= ĊĊĠĠĠ Ġfun Ġhandle ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinter actor . handle ( value ). map ( communication , Ġerror Communication ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġinter actor . clear (). map ( communication , Ġerror Communication ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġoperation ( operation : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinter actor . operation ( operation ). map ( communication , Ġerror Communication ) ĊĠĠĠ Ġ} Ċ }