package Ġme . cyber . n uk le os . ui . predict Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Result Receiver Ċ Ċ class ĠPrediction Result Receiver ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġprediction Callback : Ġ( predicted Class : ĠInt , Ġdistribution : ĠFloat Array ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġerror Callback : Ġ( error : ĠString ) Ġ-> ĠUnit Ċ ) Ġ: ĊĠĠĠĠĠĠĠ ĠResult Receiver ( Handler ()) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ PRE DI CTION _ RESPONSE _ ERROR Ġ= Ġ" Invalid Ġprediction Ġresponse " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Receive Result ( result Code : ĠInt , Ġresult Data : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠPrediction Service . Service Responses . SUCCESS . ordinal ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpredicted Class Ġ= Ġresult Data . getInt ( Prediction Service . PRE DICT ED _ CLASS _ KEY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdistribution Ġ= Ġresult Data . get Float Array ( Prediction Service . DISTRIB UTION _ KEY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( distribution Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Callback ( DEFAULT _ PRE DI CTION _ RESPONSE _ ERROR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprediction Callback ( predicted Class , Ġdistribution ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġerror Ġ= Ġresult Data . getString ( Prediction Service . ERROR _ KEY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Callback ( error Ġ?: ĠDEFAULT _ PRE DI CTION _ RESPONSE _ ERROR ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }