package Ġcom . d ail yst udio . t flite . example . common Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Looper Ċ import Ġandroid . view .* Ċ import Ġandroid . view . View Tree Observer . On Global Layout Listener Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . PopupMenu Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . d ail yst udio . dev br icks x . app . activity . Dev Br icks Activity Ċ import Ġcom . d ail yst udio . dev br icks x . development . Logger Ċ import Ġcom . d ail yst udio . dev br icks x . fragment . Abs About Fragment Ċ import Ġcom . d ail yst udio . dev br icks x . settings . Abs Settings Dialog Fragment Ċ import Ġcom . d ail yst udio . t flite . example . common . ui . Inference Info View Ċ import Ġcom . d ail yst udio . t flite . example . common . ui . Inference Settings Fragment Ċ import Ġcom . d ail yst udio . t flite . example . common . utils . Results Utils Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Behavior Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Behavior . Bottom Sheet Callback Ċ import Ġcom . ras alex man . k dispatcher . K Dispatcher Ċ import Ġcom . ras alex man . k dispatcher . Notification Ċ import Ġcom . ras alex man . k dispatcher . subscribe Ċ import Ġcom . ras alex man . k dispatcher . unsubscribe Ċ Ċ abstract Ġclass ĠAbs Example Activity < Info : ĠInference Info , ĠResults > Ġ: ĠDev Br icks Activity () Ġ{ ĊĊĠĠĠ Ġclass ĠAbout Fragment ( private Ġval Ġexample Name : ĠCharSequence ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġexample Icon Res Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġexample Desc : ĠCharSequence ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġexample Thumb Res Id : ĠInt ) Ġ: ĠAbs About Fragment () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġapp Thumb Resource : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġexample Thumb Res Id ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval ĠappName : ĠCharSequence ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġexample Name ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġapp Description : ĠCharSequence ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġexample Desc ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġapp Icon Resource : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġexample Icon Res Id ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġbottom Sheet Layout : ĠViewGroup ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġvisible Layout : ĠViewGroup ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġdivider : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġhidden Layout : ĠViewGroup ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsheet Behavior : ĠBottom Sheet Behavior < ViewGroup >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġexpand Indicator : ĠImageView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtitle View : ĠTextView ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġresults View : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġinference Info View : ĠInference Info View ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġsettings Fragment : ĠAbs Settings Dialog Fragment ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġui Thread : ĠThread ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠsetContentView ( get Layout Res Id ()) ĊĊĠĠĠĠĠĠĠ Ġsetup Views () ĊĊĠĠĠĠĠĠĠ Ġui Thread Ġ= ĠThread . currentThread () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( should Keep Screen On ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . add Flags ( WindowManager . LayoutParams . FLAG _ KEEP _ SCREEN _ ON ); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . menu _ example _ activity , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ about Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= Ġcreate About Fragment () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . show ( support FragmentManager , Ġ" about ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ settings Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= Ġsettings Fragment Ġ?: Ġcreate Settings Fragment () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Fragment Ġ= Ġfragment ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Fragment ?. show ( support FragmentManager , Ġ" settings ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġsetup Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexample Fragment Ġ= Ġcreate Base Fragment () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . add ( R . id . fragment _ stub , Ġexample Fragment , Ġ" example - fragment ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . show ( example Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . commit Allow ing State Loss () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġapply Bottom Sheet Features () ĊĠĠĠĠĠĠĠ Ġapply Overflow Menus () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġapply Overflow Menus () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoverflow Menu : ĠView ? Ġ= ĠfindViewById ( R . id . overflow _ menu ) ĊĠĠĠĠĠĠĠ Ġoverflow Menu ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpopup Ġ= ĠPopup Menu ( this , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinflater : ĠMenu Inflater Ġ= Ġpopup . menu Inflater ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater . inflate ( R . menu . menu _ example _ activity , Ġpopup . menu ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup . setOn MenuItem ClickListener Ġ{ Ġmenu Item Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Options ItemSelected ( menuItem ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġapply Bottom Sheet Features () Ġ{ ĊĠĠĠĠĠĠĠ Ġbottom Sheet Layout Ġ= ĠfindViewById ( R . id . bottom _ sheet _ layout ) ĊĠĠĠĠĠĠĠ Ġbottom Sheet Layout ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsheet Behavior Ġ= ĠBottom Sheet Behavior . from ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsheet Behavior ?. add Bottom Sheet Callback ( object Ġ: ĠBottom Sheet Callback () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon StateChanged ( bottom Sheet : ĠView , ĠnewState : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( newState ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ HIDDEN , ĠBottom Sheet Behavior . STATE _ DR AG GING , ĠBottom Sheet Behavior . STATE _ HALF _ EXP AN DED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ EXP AN DED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpand Indicator ?. setImage Resource ( R . drawable . ic _ arrow _ down ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ COLL AP SED , ĠBottom Sheet Behavior . STATE _ SET TL ING Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpand Indicator ?. setImage Resource ( R . drawable . ic _ arrow _ up ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Slide ( bottom Sheet : ĠView , Ġslide Offset : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvisible Layout Ġ= ĠfindViewById ( R . id . visible _ layout ) ĊĠĠĠĠĠĠĠ Ġvisible Layout ?. let { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv to : ĠView Tree Observer Ġ= Ġit . view Tree Observer ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv to . add On Global Layout Listener ( object Ġ: ĠOn Global Layout Listener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Global Layout () Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . view Tree Observer . remove On Global Layout Listener ( this ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpadding Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Layout ?. let Ġ{ Ġsheet Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpadding Ġ+= Ġsheet . padding Top ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpadding Ġ+= Ġsheet . padding Bottom ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheight : ĠInt Ġ= Ġit . height Ġ+ Ġpadding ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsheet Behavior ?. peek Height Ġ= Ġheight ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdivider Ġ= ĠfindViewById ( R . id . bottom _ sheet _ divider ) ĊĊĠĠĠĠĠĠĠ Ġsheet Behavior ?. is Hide able Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġtitle View Ġ= ĠfindViewById ( R . id . bottom _ sheet _ title ) ĊĠĠĠĠĠĠĠ Ġset Example Title ( title ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Container : ĠViewGroup ? Ġ= ĠfindViewById ( R . id . bottom _ sheet _ result ) ĊĠĠĠĠĠĠĠ Ġresult Container ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults View Ġ= Ġcreate Results View () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( results View Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . addView ( results View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġhidden Layout Ġ= ĠfindViewById ( R . id . hidden _ layout ) ĊĠĠĠĠĠĠĠ Ġhidden Layout ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinference Info View Ġ= Ġcreate Inference Info View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( inference Info View Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . addView ( inference Info View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( inference Info View Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdivider ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . visibility Ġ= Ġif Ġ( results View Ġ== Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġinference Info View Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġexpand Indicator Ġ= ĠfindViewById ( R . id . bottom _ sheet _ expand _ indicator ) ĊĠĠĠĠĠĠĠ Ġexpand Indicator ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( inference Info View Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĊĠĠĠĠĠĠĠ ĠK Dispatcher . subscribe ( Constants . EVENT _ IN FER ENCE _ INFO _ UPDATE , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 , Ġ:: event Inference Info Update Handler ) ĊĊĠĠĠĠĠĠĠ ĠK Dispatcher . subscribe ( Constants . EVENT _ RESULTS _ UPDATE , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 , Ġ:: event Results Update Handler ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĊĠĠĠĠĠĠĠ ĠK Dispatcher . unsubscribe ( Constants . EVENT _ IN FER ENCE _ INFO _ UPDATE , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ:: event Inference Info Update Handler ) ĊĊĠĠĠĠĠĠĠ ĠK Dispatcher . unsubscribe ( Constants . EVENT _ RESULTS _ UPDATE , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ:: event Results Update Handler ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġget Layout Res Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . activity _ example ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġcreate Inference Info View (): ĠInference Info View ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠInference Info View ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġon Inference Info Updated ( info : ĠInfo ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinference Info View ?. set Inference Info ( info ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġshould Keep Screen On (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġget Example Title (): ĠCharSequence Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtitle View ?. text Ġ?: Ġtitle ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġset Example Title ( title : ĠCharSequence ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtitle View ?. text Ġ= Ġtitle ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġcreate About Fragment (): ĠAbs About Fragment Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠAbout Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Example Name (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Example Icon Resource (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Example Desc (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Example Thumb Resource ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġget Example Thumb Resource (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . drawable . app _ thumb ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġget Example Icon Resource (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . mip map . ic _ launcher ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġget Example Name (): ĠCharSequence ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠgetString ( R . string . default _ app _ name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġget Example Desc (): ĠCharSequence ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠgetString ( R . string . default _ example _ desc ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġcreate Settings Fragment (): ĠAbs Settings Dialog Fragment ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠInference Settings Fragment () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġcreate Base Fragment (): ĠFragment ĊĠĠĠ Ġabstract Ġfun Ġcreate Results View (): ĠView ? ĊĠĠĠ Ġabstract Ġfun Ġon Results Updated ( results : ĠResults ) ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġprivate Ġfun Ġevent Results Update Handler ( notification : ĠNotification < Any >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġnotification . data Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġdata Ġas ĠResults ĊĠĠĠĠĠĠĠ ĠLogger . debug (" latest Ġresult : Ġ${ Results Utils . safe To Print able Log ( results )} ") ĊĊĠĠĠĠĠĠĠ Ġupdate Results On Ui Thread ( results ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġprivate Ġfun Ġevent Inference Info Update Handler ( notification : ĠNotification < Any >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġnotification . data Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġinfo Ġ= Ġdata Ġas ĠInfo ĊĠĠĠĠĠĠĠ ĠLogger . debug (" latest Ġinfo : Ġ$ info ") ĊĊĠĠĠĠĠĠĠ Ġupdate Inference Info To Ui Thread ( info ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Inference Info To Ui Thread ( info : ĠInfo ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Thread . currentThread () Ġ!== Ġui Thread ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . post { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Inference Info Updated ( info ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Inference Info Updated ( info ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Results On Ui Thread ( results : ĠResults ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Thread . currentThread () Ġ!== Ġui Thread ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . post { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Results Updated ( results ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Results Updated ( results ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġhandler Ġ= ĠHandler ( Looper . get Main Looper ()) Ċ Ċ }