package Ġuk . ac . k cl . spider byte . presenter Ċ Ċ import Ġandroid . content . Content Values . TAG Ċ import Ġuk . ac . k cl . spider byte . view . Login View Ċ import Ġandroid . util . Log Ċ import Ġjava . io . IOException Ċ import ĠAuthentication Manager Ċ import Ġcom . microsoft . identity . client .* Ċ import Ġuk . ac . k cl . spider byte . model . MS AL Authentication Callback ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby ĠD imit ris Ġon Ġ 1 9 / 0 2 / 2 0 1 8 . Ċ Ġ* Ċ Ġ* ĠCreates Ġa Ġlistener Ġfor Ġauthentication Ġthat Ġenables Ġthe Ġusers Ġto Ġsign Ġin Ċ Ġ* Ġusing Ġthere Ġexisting ĠMicrosoft Ġoffice Ġemails . Ċ Ġ*/ Ċ class ĠAuthentication Listener < V Ġ: ĠLogin View > Ġ: ĠPres enter < V >(), ĠMS AL Authentication Callback Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġview ĠAtt aches Ġthe Ġlistener Ġto Ġthe Ġcurrent Ġview ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Attach ( view : ĠV ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( view ) ĊĠĠĠĠĠĠĠ Ġ// ĠGets Ġthe Ġfunction Ġfrom ĠData Manager ĊĠĠĠĠĠĠĠ Ġget View ()?. getView Application ()?. getData Manager ()?. set Authentication Listener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġauthentication Result ĠReturns Ġthe Ġuser Ġdata Ġif Ġthe Ġfunction Ġsucceeded . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonSuccess ( authentication Result : ĠAuthentication Result ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. getView Application ()?. getData Manager ()?. setName ( authentication Result . user . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget View ()?. getView Application ()?. getData Manager ()?. set Email ( authentication Result . user . display able Id ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( n pe : ĠNullPointerException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġn pe . message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġget View ()?. create Login Intent () ĊĊĠĠĠĠĠĠĠ ĠThread ( Runnable Ġ{ Ġget View ()?. reset UI For Login () Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġexception ĠRe sets Ġlogin 's Ġactivity ĠUI ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonError ( exception : ĠM sal Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġthe Ġexception Ġtype . ĊĠĠĠĠĠĠĠ Ġwhen Ġ( exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠM sal ClientException Ġ-> Ġget View ()?. show Login Error UI ( exception . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠM sal ServiceException Ġ-> Ġget View ()?. show Login Error UI ( exception . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠM sal Ui Required Exception Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThis Ġexplicitly Ġindicates Ġthat Ġdeveloper Ġneeds Ġto Ġprompt Ġthe Ġuser , Ġit Ġcould Ġbe Ġrefresh Ġtoken Ġis Ġexpired , Ġrev oked ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġor Ġuser Ġchanges Ġthe Ġpassword ; Ġor Ġit Ġcould Ġbe Ġthat Ġno Ġtoken Ġwas Ġfound Ġin Ġthe Ġtoken Ġcache . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmgr Ġ= ĠAuthentication Manager . instance ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmgr !!. call Acquire Token ( getView ()?. getView Application ()?. getData Manager ()?. getContext Activity () !! , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġexception ĠShows ĠLogin Ġerror Ġview ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonError ( exception : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget View ()?. show Login Error UI ( exception . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cancel () Ġ{ ĊĠĠĠĠĠĠĠ Ġget View ()?. show Login Error UI ("") ĊĠĠĠ Ġ} Ċ Ċ } Ċ