package Ġco . par sl . android . ui Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Progress Dialog Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġandroidx . navigation . Navigation Ċ import Ġco . par sl . android . boilerplate . remote . Buffer oo Service Factory Ċ import Ġco . par sl . android . boilerplate . remote . Par sl Service Ċ import Ġco . par sl . android . boilerplate . remote . model . Product Category Ċ import Ġco . par sl . android . boilerplate . remote . model . Product Content Ċ import Ġco . par sl . android . boilerplate . ui . adapter . Assign Product Type Adapter Ċ import Ġco . par sl . android . boilerplate . ui . home . MainActivity Ċ import Ġco . par sl . android . boilerplate . ui . widget . Con formation Pop Up Ċ import Ġco . par sl . android . boilerplate . ui . widget . Dialog Callback Ċ import Ġco . par sl . android . boilerplate . ui . widget . Notify Pop Up Ċ import Ġkotlinx . android . synt hetic . main . select _ product _ cat og ries .* Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response ĊĊ Ċ // ĠTODO : ĠRename Ġparameter Ġarguments , Ġchoose Ġnames Ġthat Ġmatch Ċ // Ġthe Ġfragment Ġinitialization Ġparameters , Ġe . g . ĠARG _ ITEM _ NUMBER Ċ private Ġconst Ġval ĠARG _ PARAM 1 Ġ= Ġ" param 1 " Ċ private Ġconst Ġval ĠARG _ PARAM 2 Ġ= Ġ" param 2 " Ċ Ċ /** Ċ Ġ* ĠA Ġsimple Ġ[ Fragment ] Ġsubclass . Ċ Ġ* ĠActiv ities Ġthat Ġcontain Ġthis Ġfragment Ġmust Ġimplement Ġthe Ċ Ġ* Ġ[ Select Product Batch . On Fragment Interaction Listener ] Ġinterface Ċ Ġ* Ġto Ġhandle Ġinteraction Ġevents . Ċ Ġ* ĠUse Ġthe Ġ[ Select Product Batch . newInstance ] Ġfactory Ġmethod Ġto Ċ Ġ* Ġcreate Ġan Ġinstance Ġof Ġthis Ġfragment . Ċ Ġ* Ċ Ġ*/ Ċ class ĠSelect Product Batch Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġval Ġpar sl Service : ĠPar sl Service Ġ= ĠBuffer oo Service Factory . make Par sl Service ( Build Config . DEBUG ) ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnav Controller : ĠNav Controller ĊĊĠĠĠ Ġlateinit Ġvar Ġadapter : ĠAssign Product Type Adapter ĊĠĠĠ Ġlateinit Ġvar Ġactivity Instance : ĠActivity ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . select _ product _ cat og ries , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġactivity Instance Ġ= Ġthis . activity !! ĊĠĠĠĠĠĠĠ Ġset Adapter () ĊĠĠĠĠĠĠĠ Ġnav Controller Ġ= ĠNavigation . find Nav Controller ( view ) ĊĊĠĠĠĠĠĠĠ Ġval Ġproduct Code Ġ= ĠSelect Product Batch Args . from Bundle ( arguments ). product Code ĊĠĠĠĠĠĠĠ Ġget Categories ( product Code ) ĊĊĠĠĠĠĠĠĠ Ġ/* Ġed t _ product _ type . add TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( p 0 : ĠEdit able ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( p 0 : ĠCharSequence ?, Ġp 1 : ĠInt , Ġp 2 : ĠInt , Ġp 3 : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( p 0 : ĠCharSequence ?, Ġp 1 : ĠInt , Ġp 2 : ĠInt , Ġp 3 : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠ Ġupdate Adapter ( ed t _ product _ type . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ}) */ ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġget Categories ( product Code : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcall : ĠCall < Product Content > Ġ= Ġpar sl Service . getB atches By Product ( product Code , ĠgetToken ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġprogress Dialog Ġ= ĠProgress Dialog ( activity ) ĊĠĠĠĠĠĠĠ Ġprogress Dialog . setMessage (" Getting Ġtag Ġinfo ...") ĊĠĠĠĠĠĠĠ Ġprogress Dialog . show () ĊĊĠĠĠĠĠĠĠ Ġcall . enqueue ( object Ġ: ĠCallback < Product Content > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Product Content >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Ret rofit ", Ġ" on Failure : Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Product Content >, Ġresponse : ĠResponse < Product Content >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Adapter ( response . body () !!. content ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Adapter () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠAssign Product Type Adapter ( activity Instance , Ġobject Ġ: ĠAssign Product Type Adapter . Btn ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Btn Click ( product Category : ĠProduct Category ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCon formation Pop Up ( activity Instance , Ġ 0 , Ġobject Ġ: ĠDialog Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Yes () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotify Pop Up ( activity Instance , ĠR . drawable . ok , Ġobject Ġ: ĠDialog Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon NO () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Yes () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon NO () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġre cycler _ product _ results . adapter Ġ= Ġadapter ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun ĠgetToken (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Token Ġ= ĠMainActivity . read Shared Setting ( activity !!. application Context , ĠMainActivity . PRE F _ USER _ ID _ TOKEN , Ġ"") ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Bearer Ġ$ id Token " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Adapter ( products : ĠArrayList < Product Category >) Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter . product Category s Ġ= Ġproducts ĊĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠ Ġ} Ċ } Ċ