/* čĊ Ġ* ĠBSD Ġ 3 - Clause ĠLicense čĊ Ġ* čĊ Ġ* ĠCopyright Ġ 2 0 1 8 Ġ ĠS age ĠB ion etwork s . ĠAll Ġrights Ġreserved . čĊ Ġ* čĊ Ġ* ĠRedistribution Ġand Ġuse Ġin Ġsource Ġand Ġbinary Ġforms , Ġwith Ġor Ġwithout Ġmodification , čĊ Ġ* Ġare Ġpermitted Ġprovided Ġthat Ġthe Ġfollowing Ġconditions Ġare Ġmet : čĊ Ġ* čĊ Ġ* Ġ 1 . Ġ ĠRedistributions Ġof Ġsource Ġcode Ġmust Ġretain Ġthe Ġabove Ġcopyright Ġnotice , Ġthis čĊ Ġ* Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer . čĊ Ġ* čĊ Ġ* Ġ 2 . Ġ ĠRedistributions Ġin Ġbinary Ġform Ġmust Ġreproduce Ġthe Ġabove Ġcopyright Ġnotice , čĊ Ġ* Ġthis Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer Ġin Ġthe Ġdocumentation Ġand / or čĊ Ġ* Ġother Ġmaterials Ġprovided Ġwith Ġthe Ġdistribution . čĊ Ġ* čĊ Ġ* Ġ 3 . Ġ ĠNeither Ġthe Ġname Ġof Ġthe Ġcopyright Ġholder ( s ) Ġnor Ġthe Ġnames Ġof Ġany Ġcontributors čĊ Ġ* Ġmay Ġbe Ġused Ġto Ġendorse Ġor Ġpromote Ġproducts Ġderived Ġfrom Ġthis Ġsoftware Ġwithout čĊ Ġ* Ġspecific Ġprior Ġwritten Ġpermission . ĠNo Ġlicense Ġis Ġgranted Ġto Ġthe Ġtrade marks Ġof čĊ Ġ* Ġthe Ġcopyright Ġhold ers Ġeven Ġif Ġsuch Ġmarks Ġare Ġincluded Ġin Ġthis Ġsoftware . čĊ Ġ* čĊ Ġ* ĠTHIS ĠSOFTWARE ĠIS ĠPROVIDED ĠBY ĠTHE ĠCOPYRIGHT ĠHOLDERS ĠAND ĠCONTRIBUTORS Ġ" AS ĠIS " čĊ Ġ* ĠAND ĠANY ĠEXPRESS ĠOR ĠIMPLIED ĠWARRANTIES , ĠINCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , ĠTHE čĊ Ġ* ĠIMPLIED ĠWARRANTIES ĠOF ĠMERCHANTABILITY ĠAND ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE čĊ Ġ* ĠARE ĠDISCLAIMED . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠCOPYRIGHT ĠOWNER ĠOR ĠCONTRIBUTORS ĠBE ĠLIABLE čĊ Ġ* ĠFOR ĠANY ĠDIRECT , ĠINDIRECT , ĠINCIDENTAL , ĠSPECIAL , ĠEXEMPLARY , ĠOR ĠCONSEQUENTIAL čĊ Ġ* ĠDAMAGES Ġ( INCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , ĠPROCUREMENT ĠOF ĠSUBSTITUTE ĠGOODS ĠOR čĊ Ġ* ĠSERVICES ; ĠLOSS ĠOF ĠUSE , ĠDATA , ĠOR ĠPROFITS ; ĠOR ĠBUSINESS ĠINTERRUPTION ) ĠHOWEVER čĊ Ġ* ĠCAUSED ĠAND ĠON ĠANY ĠTHEORY ĠOF ĠLIABILITY , ĠWHETHER ĠIN ĠCONTRACT , ĠSTRICT ĠLIABILITY , čĊ Ġ* ĠOR ĠTORT Ġ( INCLUDING ĠNEGLIGENCE ĠOR ĠOTHERWISE ) ĠARISING ĠIN ĠANY ĠWAY ĠOUT ĠOF ĠTHE ĠUSE čĊ Ġ* ĠOF ĠTHIS ĠSOFTWARE , ĠEVEN ĠIF ĠADVISED ĠOF ĠTHE ĠPOSSIBILITY ĠOF ĠSUCH ĠDAMAGE . čĊ Ġ*/ čĊč Ċ package Ġorg . sage b ion etwork s . bridge . android . access čĊč Ċ import Ġandroid . arch . lifecycle . Observer č Ċ import Ġandroid . arch . lifecycle . ViewModel Providers č Ċ import Ġandroid . os . Bundle č Ċ import Ġandroid . view . LayoutInflater č Ċ import Ġandroid . view . View č Ċ import Ġandroid . view . ViewGroup č Ċ import Ġandroid . widget . Frame Layout č Ċ import Ġdagger . android . support . D agger Fragment č Ċ import Ġorg . sage b ion etwork s . bridge . android . R č Ċ import Ġorg . slf 4 j . LoggerFactory č Ċ import Ġjavax . inject . Inject čĊč Ċ /** čĊ Ġ* ĠA Ġfragment Ġfor Ġfunctionality Ġthat Ġis Ġg ated Ġby ĠBridge Ġaccess Ġrules . čĊ Ġ*/ č Ċ abstract Ġclass ĠBridge Access Fragment Ġ: ĠBridge Access Strategy , ĠD agger Fragment () Ġ{ čĊčĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( Bridge Access Fragment :: class . java ) čĊčĊĠĠĠ Ġ@ Inject čĊĠĠĠ Ġlateinit Ġvar Ġbridge Access ViewModel Factory : ĠBridge Access ViewModel . Factory čĊčĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbridge Access ViewModel : ĠBridge Access ViewModel čĊčĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, čĊĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . os b _ access _ fragment , Ġcontainer , Ġfalse ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) čĊĠĠĠĠĠĠĠ Ġbridge Access ViewModel Ġ= ĠViewModel Providers . of ( require Activity (), Ġbridge Access ViewModel Factory ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get ( Bridge Access ViewModel :: class . java ) čĊčĊĠĠĠĠĠĠĠ Ġbridge Access ViewModel . bridge Access Status . observe ( this , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠObserver < Resource < Bridge Access State >> Ġ{ Ġstate Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate ?. let Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBridge Access Strategy . handle ( it , Ġthis ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . on Resume () čĊĠĠĠĠĠĠĠ Ġlogger . debug (" on Resume ") čĊčĊĠĠĠĠĠĠĠ Ġbridge Access ViewModel . check Access () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . on Pause () čĊčĊĠĠĠĠĠĠĠ Ġlogger . debug (" on Pause ") čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon Require App Upgrade () Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġcontainer Ġ= Ġview ?. findViewById < Frame Layout >( R . id . container ) čĊĠĠĠĠĠĠĠ Ġlayout Inflater . inflate ( R . layout . os b _ app _ upgrade _ required , Ġcontainer , Ġtrue ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon Loading ( state : ĠBridge Access State ) Ġ{ čĊĠĠĠĠĠĠĠ Ġlogger . debug (" Loading Ġbridge Ġaccess Ġstate : Ġ{}", Ġstate ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon Er rored ( state : ĠBridge Access State , Ġmessage : ĠString ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġlogger . warn (" Error Ġloading Ġbridge Ġaccess Ġstate : Ġ{}, Ġmessage : Ġ{}", Ġstate , Ġmessage ) čĊĠĠĠ Ġ} č Ċ } čĊ