package Ġid . ac . umn . final project factory Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . Toast Ċ import Ġcom . android . vol ley . Request Ċ import Ġcom . android . vol ley . Request Queue Ċ import Ġcom . android . vol ley . Response Ċ import Ġcom . android . vol ley . toolbox . Basic Network Ċ import Ġcom . android . vol ley . toolbox . Disk Based Cache Ċ import Ġcom . android . vol ley . toolbox . H url Stack Ċ import Ġcom . android . vol ley . toolbox . String Request Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONObject Ċ import Ġdata . Url Ċ import Ġdata . Custom Parameter Ċ import Ġdata . Detail Product Ċ import Ġkotlinx . android . synt hetic . main . activity _ list _ barang .* Ċ Ċ class ĠList Bar ang Activity Ġ: ĠAppCompatActivity (), ĠUrl , ĠCustom Parameter Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġre cyclerView : ĠRecyclerView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġproduct Adapter : ĠProduct Adapter ĊĠĠĠ Ġprivate Ġvar Ġdata List : ĠArrayList < Detail Product > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġdefault DataList : ĠArrayList < Detail Product > Ġ= ĠArrayList () ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtxt Search : ĠEditText ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġparam : ĠString ĊĠĠĠ Ġlateinit Ġvar Ġt ipe : ĠIntent ĊĊĠĠĠ Ġfun Ġfetch Data ( url : ĠString ){ ĊĊĠĠĠĠĠĠĠ Ġval Ġcache Ġ= ĠDisk Based Cache ( cacheDir , Ġ 1 0 2 4 * Ġ 1 0 2 4 ); ĊĊĠĠĠĠĠĠĠ Ġval Ġnetwork Ġ= ĠBasic Network ( H url Stack ()); ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Queue Ġ= ĠRequest Queue ( cache , Ġnetwork ). apply { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠString Request ( Request . Method . GET , Ġurl , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . Listener Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse -> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= ĠJSONObject ( response . toString ()); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠstatusCode : ĠString Ġ= Ġres . getString (" success ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( statusCode . equals (" success ")){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Array : ĠJSONArray Ġ= Ġres . get JSONArray (" data ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( i : ĠInt Ġin Ġ 0 Ġuntil Ġ( json Array . length ())){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthe Data : ĠJSONObject Ġ= Ġjson Array . getJSONObject ( i ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproduct : ĠDetail Product Ġ= ĠDetail Product ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthe Data . getString (" produk id "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthe Data . getInt (" uk uran "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthe Data . getString (" warn a "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthe Data . getInt (" jumlah "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthe Data . getString (" keterangan "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthe Data . getInt (" tok oid ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( ti pe . getString Extra (" ti pe "). equals (" to ko ") Ġ&& Ġproduct . to ko Id Ġ== Ġ 2 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata List . add ( product ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault DataList . add ( product ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif ( ti pe . getString Extra (" ti pe "). equals (" p ab rik ") Ġ&& Ġproduct . to ko Id Ġ== Ġ 1 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata List . add ( product ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault DataList . add ( product ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Adapter . update List ( data List , Ġt ipe . getString Extra (" ti pe ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . Error Listener Ġ{ Ġerror -> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġerror . toString (), ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġrequest Queue . add ( request ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ list _ barang ) ĊĊĠĠĠĠĠĠĠ Ġparam Ġ= ĠUrl Get Stock () Ġ+ ĠAuth Param () ĊĠĠĠĠĠĠĠ ĠLog . e (" test ", Ġparam ) ĊĠĠĠĠĠĠĠ Ġt ipe Ġ= Ġintent ĊĊĠĠĠĠĠĠĠ Ġif ( intent . getString Extra (" ti pe "). equals (" to ko ")){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle _ list stock . setText ( R . string . list _ stock _ to ko ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġif ( intent . getString Extra (" ti pe "). equals (" p ab rik ")){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle _ list stock . setText ( R . string . list _ stock _ p ab rik ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdata List Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġdefault DataList Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġfetch Data ( param ) ĊĊĠĠĠĠĠĠĠ Ġproduct Adapter Ġ= ĠProduct Adapter ( data List , Ġthis @ List Bar ang Activity ) ĊĊĠĠĠĠĠĠĠ Ġre cyclerView Ġ= ĠfindViewById ( R . id . recyclerview _ product _ conf ) ĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ: ĠRecyclerView . LayoutManager Ġ= ĠLinearLayoutManager ( this @ List Bar ang Activity ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= Ġlayout Manager ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġproduct Adapter Ċ Ċ // ĠĠĠĠĠĠĠ Ġtxt Search Ġ= ĠfindViewById ( R . id . ed t _ Search ) ĊĊĠĠĠĠĠĠĠ Ġed t _ Search . add TextChanged Listener ( object : ĠText Watcher { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFilters ( s . toString ()); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{ ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġfab Next . setOnClickListener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this @ List Bar ang Activity , ĠNew Stock Option :: class . java ); ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġif ( data List . size Ġ> Ġ 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata List Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault DataList Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Data ( param ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠFilters ( text : String ){ ĊĠĠĠĠĠĠĠ Ġval Ġfilter edList : ĠArrayList < Detail Product > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġif ( ti pe . getString Extra (" ti pe "). equals (" p ab rik ")){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dat : ĠDetail Product Ġin Ġdefault DataList ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( dat . productId . toLowerCase (). contains ( text . toLowerCase ())){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter edList . add ( dat ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Adapter . Filter List ( filter edList ); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġif ( ti pe . getString Extra (" ti pe "). equals (" to ko ")){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( d ats : ĠDetail Product Ġin Ġdata List ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( d ats . productId . toLowerCase (). contains ( text . toLowerCase ())){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter edList . add ( d ats ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Adapter . Filter List ( filter edList ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ