/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠAl gor and , ĠInc . Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense Ċ Ġ*/ Ċ Ċ package Ġcom . al gor and . android . ui . common Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . core . text . Html Compat Ċ import Ġandroidx . core . text . build Sp anned String Ċ import Ġandroidx . core . view . isIn visible Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . al gor and . android . R Ċ import Ġcom . al gor and . android . core . Account Manager Ċ import Ġcom . al gor and . android . core . D agger Base Bottom Sheet Ċ import Ġcom . al gor and . android . databinding . Bottom Sheet Asset Action Binding Ċ import Ġcom . al gor and . android . models . Asset Information Ċ import Ġcom . al gor and . android . utils . Account CacheManager Ċ import Ġcom . al gor and . android . utils . Resource Ċ import Ġcom . al gor and . android . utils . add Unnamed Asset Name Ċ import Ġcom . al gor and . android . utils . copy To Clipboard Ċ import Ġcom . al gor and . android . utils . show With State Check Ċ import Ġcom . al gor and . android . utils . view binding . view Binding Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġjavax . inject . Inject Ċ import Ġkotlin . properties . Deleg ates Ċ Ċ @ Android EntryPoint Ċ class ĠAsset Action Bottom Sheet Ġ: ĠD agger Base Bottom Sheet ( ĊĠĠĠ Ġlayout Res Id Ġ= ĠR . layout . bottom _ sheet _ asset _ action , ĊĠĠĠ Ġfull Page Needed Ġ= Ġfalse , ĊĠĠĠ Ġfirebase Event Screen Id Ġ= Ġnull Ċ ) Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġaccount Manager : ĠAccount Manager ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġaccount CacheManager : ĠAccount CacheManager ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpopup Type : ĠType ĊĊĠĠĠ Ġprivate Ġval Ġasset Action ViewModel : ĠAsset Action ViewModel Ġby Ġview Models () ĊĊĠĠĠ Ġprivate Ġval Ġbinding Ġby Ġview Binding ( Bottom Sheet Asset Action Binding :: bind ) ĊĊĠĠĠ Ġ// Ġ< editor - fold Ġdefault state =" collapsed " Ġdesc =" Observer s "> ĊĊĠĠĠ Ġprivate Ġval Ġasset Description Observer Ġ= ĠObserver < Resource < Asset Information >> Ġ{ Ġresource Ġ-> ĊĠĠĠĠĠĠĠ Ġresource . use ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess Ġ= Ġ{ Ġasset Description Ġ-> Ġasset Ġ= Ġasset Description Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Loading Ġ= Ġ{ Ġbinding . loading ProgressBar . visibility Ġ= ĠView . VISIBLE Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Loading Finished Ġ= Ġ{ Ġbinding . loading ProgressBar . visibility Ġ= ĠView . GONE Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ</ editor - fold > ĊĊĠĠĠ Ġprivate Ġvar Ġasset Id : ĠLong Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġasset : ĠAsset Information ? Ġby ĠDeleg ates . observable < Asset Information ? >( null , Ġ{ Ġ_, Ġ_, ĠnewValue Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( newValue Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Asset Details ( newValue ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasset Action ViewModel . get Asset Description ( asset Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġprivate Ġvar Ġaccount Name : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġaccount PublicKey : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġlistener : ĠAdd Asset Confirmation Popup Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġlistener Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent Fragment Ġas ? ĠAdd Asset Confirmation Popup Listener Ġ?: Ġactivity Ġas ? ĠAdd Asset Confirmation Popup Listener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinit Observer s () ĊĊĠĠĠĠĠĠĠ Ġrequire Arguments (). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Type Ġ= Ġget Serializable ( POP UP _ TYPE ) Ġas ĠType ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount PublicKey Ġ= ĠgetString ( ACCOUNT _ KEY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount PublicKey ?. let Ġ{ Ġsafe Account PublicKey Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Name Ġ= Ġaccount Manager . get Account ( safe Account PublicKey )?. name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasset Id Ġ= Ġget Long ( AS SET _ ID _ KEY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasset Ġ= Ġget Parcelable ( AS SET _ INFORMATION _ KEY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġaccount CacheManager . get Asset Description ( asset Id )?. convertTo Asset Information ( asset Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . id TextView . text Ġ= Ġasset Id . toString () ĊĠĠĠĠĠĠĠ Ġset View Acc ording To Type () ĊĠĠĠĠĠĠĠ Ġset Button Functional ities () ĊĠĠĠĠĠĠĠ Ġbinding . copy Button . setOnClickListener Ġ{ Ġon Copy Click () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Observer s () Ġ{ ĊĠĠĠĠĠĠĠ Ġasset Action ViewModel . asset Information LiveData . observe ( view Lifecycle Owner , Ġasset Description Observer ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Copy Click () Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext ?. copy To Clipboard ( asset Id . toString (), ĠAS SET _ ID _ COPY _ LABEL ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Asset Details ( asset : ĠAsset Information ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . name TextView . text Ġ= Ġasset . fullName ĊĠĠĠĠĠĠĠ Ġbinding . Ab br TextView . text Ġ= Ġif Ġ( asset . short Name . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Sp anned String Ġ{ Ġcontext ?. let Ġ{ Ġadd Unnamed Asset Name ( it ) Ġ} Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasset . short Name ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . verified ImageView . isIn visible Ġ= Ġasset . is Verified . not () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset View Acc ording To Type () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtitle : ĠString ĊĠĠĠĠĠĠĠ Ġval Ġdescription : ĠString ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( popup Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . ADD _ AS SET Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= ĠgetString ( R . string . adding _ asset ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= ĠgetString ( R . string . adding _ an _ asset ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . REMOVE _ AS SET Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= ĠgetString ( R . string . re moving _ asset ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= ĠgetString ( R . string . you _ are _ about _ to , Ġasset ?. short Name , Ġaccount Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . TRANSFER _ BAL ANCE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= ĠgetString ( R . string . re moving _ asset ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= ĠgetString ( R . string . to _ remove _ the _ balance , Ġasset ?. short Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . UNSUPPORTED _ INFO Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= ĠgetString ( R . string . account _ does _ not _ accept ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= ĠgetString ( R . string . un fortunately _ this _ account ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . UNSUPPORTED _ NOTIFICATION _ REQUEST Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= ĠgetString ( R . string . you _ are _ about _ to _ receive ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= ĠgetString ( R . string . you _ are _ about _ to _ receive _ description , Ġaccount Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . UNSUPPORTED _ ACCOUNT _ NOT _ AD DED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= ĠgetString ( R . string . this _ account _ does _ not ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= ĠgetString ( R . string . this _ account _ has _ not ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . UNSUPPORTED _ ADD _ TRY _ L ATER Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= ĠgetString ( R . string . your _ accounts _ do _ not ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= ĠgetString ( R . string . please _ add _ this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . title TextView . text Ġ= Ġtitle ĊĠĠĠĠĠĠĠ Ġbinding . description TextView . text Ġ= ĠHtml Compat . from Html ( description , ĠHtml Compat . FROM _ HTML _ MODE _ LEG ACY ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Button Functional ities () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpositive ButtonText : ĠString ĊĠĠĠĠĠĠĠ Ġvar Ġpositive Button BackgroundColor Id : ĠInt ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( popup Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . ADD _ AS SET Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive ButtonText Ġ= ĠgetString ( R . string . approve ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . REMOVE _ AS SET Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive ButtonText Ġ= ĠgetString ( R . string . proceed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . TRANSFER _ BAL ANCE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive ButtonText Ġ= ĠgetString ( R . string . transfer _ balance ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . UNSUPPORTED _ INFO Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive ButtonText Ġ= ĠgetString ( R . string . ok ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive Button BackgroundColor Id Ġ= ĠR . color . gray _ 7 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . negative Button . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . UNSUPPORTED _ ADD _ TRY _ L ATER Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive ButtonText Ġ= ĠgetString ( R . string . ok ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive Button BackgroundColor Id Ġ= ĠR . color . gray _ 7 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . negative Button . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . UNSUPPORTED _ NOTIFICATION _ REQUEST , ĠType . UNSUPPORTED _ ACCOUNT _ NOT _ AD DED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive ButtonText Ġ= ĠgetString ( R . string . ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . positive Button . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( positive Button BackgroundColor Id Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset BackgroundColor ( Context Compat . getColor ( context , Ġpositive Button BackgroundColor Id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġpositive ButtonText ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss Allow ing State Loss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġasset ?. let Ġ{ Ġasset Description Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on Popup Confirmation ( popup Type , Ġasset Description , Ġaccount PublicKey ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . negative Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss Allow ing State Loss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠAdd Asset Confirmation Popup Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Popup Confirmation ( type : ĠType , Ġpopup Asset : ĠAsset Information , ĠpublicKey : ĠString ? Ġ= Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġenum Ġclass ĠType Ġ{ ĊĠĠĠĠĠĠĠ ĠADD _ AS SET , ĊĠĠĠĠĠĠĠ ĠREMOVE _ AS SET , ĊĠĠĠĠĠĠĠ ĠTRANS FER _ BAL ANCE , ĊĠĠĠĠĠĠĠ ĠUNS UP PORT ED _ INFO , ĊĠĠĠĠĠĠĠ ĠUNS UP PORT ED _ NOTIFICATION _ REQUEST , ĊĠĠĠĠĠĠĠ ĠUNS UP PORT ED _ ADD _ TRY _ L ATER , ĊĠĠĠĠĠĠĠ ĠUNS UP PORT ED _ ACCOUNT _ NOT _ AD DED ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠAsset Action Bottom Sheet :: class . java . simple Name ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAS SET _ ID _ COPY _ LABEL Ġ= Ġ" asset _ id _ label " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPOP UP _ TYPE Ġ= Ġ" popup _ type " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAC COUNT _ KEY Ġ= Ġ" account _ key " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAS SET _ ID _ KEY Ġ= Ġ" asset _ id _ key " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAS SET _ INFORMATION _ KEY Ġ= Ġ" asset _ description _ key " ĊĊĠĠĠĠĠĠĠ Ġfun Ġshow ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Manager : ĠFragment Manager ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasset Id : ĠLong , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype : ĠType , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount PublicKey : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasset : ĠAsset Information ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAsset Action Bottom Sheet (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . arguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Serializable ( POP UP _ TYPE , Ġtype ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( ACCOUNT _ KEY , Ġaccount PublicKey ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Long ( AS SET _ ID _ KEY , Ġasset Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Parcelable ( AS SET _ INFORMATION _ KEY , Ġasset ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. show With State Check ( fragment Manager , ĠTAG ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ