package Ġse an p ai . din ners ystem Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Base Adapter Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . recyclerview . widget . Divider Item Decoration Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . android . vol ley . Response Ċ import Ġcom . android . vol ley . toolbox . String Request Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Dialog Ċ import Ġkotlinx . android . synt hetic . main . activity _ d inner man _ main .* Ċ import Ġkotlinx . android . synt hetic . main . history _ list _ cell . view .* Ċ import Ġorg . jetbrains . ank o . alert Ċ import Ġorg . jetbrains . ank o . toast Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONObject Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ class ĠD inner man MainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠprogressBar Handler : ĠProgress Bar Handler ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ d inner man _ main ) ĊĊĠĠĠĠĠĠĠ ĠprogressBar Handler Ġ= ĠProgress Bar Handler ( this ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlinear LayoutManager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġtable View . layout Manager Ġ= Ġlinear LayoutManager ĊĠĠĠĠĠĠĠ Ġval Ġdivider Item Decoration Ġ= ĠDiv ider Item Decoration ( table View . context , Ġlinear LayoutManager . orientation ) ĊĠĠĠĠĠĠĠ Ġtable View . addItem Decoration ( divider Item Decoration ) ĊĊĠĠĠĠĠĠĠ Ġreload Data () ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġvar Ġback Ġ= Ġtrue ĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// super . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġif ( back ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġback Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" åĨį æĮī ä¸Ģæ¬¡ ä»¥ çĻ» åĩº ") ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ D inner man MainActivity , ĠRem Login Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreload Data (){ ĊĠĠĠĠĠĠĠ Ġval Ġnow Ġ= ĠgetCurrent DateTime () ĊĊĠĠĠĠĠĠĠ ĠprogressBar Handler . show () ĊĊĠĠĠĠĠĠĠ Ġ// val Ġnow Ġ= Ġjava . util . Calendar . getInstance () ĊĠĠĠĠĠĠĠ Ġval Ġformatter Ġ= ĠSimpleDateFormat (" yyyy / MM / dd ", ĠLocale . TA IW AN ) ĊĠĠĠĠĠĠĠ Ġprintln ( formatter . format ( now )) Ċ // ĠĠĠĠĠĠĠ Ġval Ġsel Self Ġ= Ġds URL (" select _ self & history = true & est i _ start =${ formatter . format ( now )} - 0 0 : 0 0 : 0 0 & est i _ end =${ formatter . format ( now )} - 2 3 : 5 9 : 5 9 ") ĊĠĠĠĠĠĠĠ Ġval Ġhistory Request Ġ= Ġobject : ĠString Request ( Method . POST , Ġds Request URL , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhistory Arr Ġ= ĠJSONArray (" [] ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDM Factory Name . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDM History Arr . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDM List Arr . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdis h Name Arr Ġ= Ġempty Array () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD MD ish Name Arr . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it Ġ!= Ġ""){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it Ġ!= Ġ" [] "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isValid Json ( it )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhistory Arr Ġ= ĠJSONArray ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġhistory Arr . length ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinfo Ġ= Ġhistory Arr . getJSONObject ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdis h Factory Name Ġ= Ġinfo . get JSONArray (" dish "). getJSONObject ( 0 ). getJSONObject (" department "). getJSONObject (" factory "). getString (" name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif (! DM Factory Name . contains ( dish Factory Name )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDM Factory Name . add ( dish Factory Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDM History Arr [ dish Factory Name ] Ġ= ĠJSONArray (" [] ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDM History Arr [ dish Factory Name ] !!. put ( info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( i Ġin ĠDM History Arr ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname JSON String Ġ= Ġ"{\" name \":\" ${ i . key }\" }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDM List Arr . add ( Pair (" name ", ĠJSONObject ( name JSON String ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD MD ish Name Arr . add ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( order Ġin Ġ 0 Ġuntil Ġi . value . length ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDM List Arr . add ( Pair (" order ", Ġi . value . getJSONObject ( order ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i . value . getJSONObject ( order ). get JSONArray (" dish "). length () Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġd Name Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġ 0 Ġuntil Ġi . value . getJSONObject ( order ). get JSONArray (" dish "). length ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfood Ġ= Ġi . value . getJSONObject ( order ). get JSONArray (" dish "). getJSONObject ( j ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd Name Ġ+= Ġ"${ food . getString (" dish _ name ")} +" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd Name Ġ= Ġd Name . drop Last ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD MD ish Name Arr . add ( d Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD MD ish Name Arr . add ( i . value . getJSONObject ( order ). get JSONArray (" dish "). getJSONObject ( 0 ). getString (" dish _ name ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar Handler . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠHistory Adapter ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtable View . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar Handler . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert (" è«ĭ éĩįæĸ° çĻ» åħ¥ "," æĤ¨ å·² ç¶ ĵ çĻ» åĩº "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive Button (" OK "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ D inner man MainActivity , ĠLogin Activity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar Handler . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhistory Arr Ġ= ĠJSONArray (" [] ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDM Factory Name . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDM History Arr . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDM List Arr . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠHistory Adapter ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtable View . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert (" è«ĭ åĺ Ĺ è© ¦ éĩįæĸ° æķ´ çĲĨ æĪĸ éĢ² è¡Į é» ŀ é¤ Ĳ ï¼ģ "," çĦ¡ é» ŀ é¤ Ĳ è³ĩæĸĻ "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive Button (" OK "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar Handler . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// logout ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert (" è«ĭ éĩįæĸ° çĻ» åħ¥ "," æĤ¨ å·² ç¶ ĵ çĻ» åĩº "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive Button (" OK "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ D inner man MainActivity , ĠLogin Activity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . Error Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar Handler . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert Ġ(" è«ĭ æ³¨æĦı ç¶² è·¯ çĭ Ģ æħĭ ï¼Į æĪĸ éĢļçŁ¥ éĸĭ çĻ ¼ äºº åĵ ¡ ! "," ä¸į çŁ¥ åĲį çļĦ éĮ ¯ èª ¤ "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive Button (" OK ") {} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Params (): ĠMutable Map < String , ĠString > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpost Param : ĠMutable Map < String , ĠString > Ġ= ĠHashMap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost Param [" cmd "] Ġ= Ġ" select _ class " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost Param [" est i _ start "] Ġ= Ġ"${ formatter . format ( now )} - 0 0 : 0 0 : 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost Param [" est i _ end "] Ġ= Ġ"${ formatter . format ( now )} - 2 3 : 5 9 : 5 9 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost Param [" history "] Ġ= Ġ" true " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpost Param ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠVol ley Singleton . getInstance ( this ). addTo Request Queue ( history Request ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠHistory Adapter ( private Ġvar Ġcontext : ĠContext ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . Adapter < History Adapter . ViewHolder >() Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġdata Ġ= ĠDM List Arr ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . data Ġ= ĠDM List Arr ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif ( DM List Arr [ position ]. first Ġ== Ġ" name "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . dm _ factory _ name _ cell ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . history _ list _ cell ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Type Ġ== ĠR . layout . dm _ factory _ name _ cell ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcell Ġ= ĠLayoutInflater . from ( context ). inflate ( R . layout . dm _ factory _ name _ cell , parent , false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠviewHolder Ġ= ĠViewHolder ( cell ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . factory Name Ġ= Ġcell . findViewById ( R . id . factory Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠviewHolder ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcell Ġ= ĠLayoutInflater . from ( context ). inflate ( R . layout . history _ list _ cell , parent , false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠviewHolder Ġ= ĠViewHolder ( cell ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . detail Title Ġ= Ġcell . findViewById ( R . id . detail Title ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . title Ġ= Ġcell . findViewById ( R . id . title ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . info Button Ġ= Ġcell . findViewById ( R . id . info Button ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠviewHolder ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdata . size ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġelement Ġ= ĠDM List Arr [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġelement . first ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinfo Ġ= Ġelement . second ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( type Ġ== Ġ" name "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . factory Name . text Ġ= Ġinfo . getString (" name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( info . get JSONArray (" dish "). length () Ġ> Ġ 1 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . title . text Ġ= Ġ" èĩª è¨ Ĥ å¥Ĺ é¤ Ĳ (${ info . get JSONArray (" dish "). length ()} æ¨ £ )" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . title . text Ġ= Ġinfo . get JSONArray (" dish "). getJSONObject ( 0 ). getString (" dish _ name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpaid String Ġ= Ġinfo . getJSONObject (" money "). get JSONArray (" payment "). getJSONObject ( 0 ). getString (" paid ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġis Paid Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( paid String Ġ== Ġ" true "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Paid Ġ= Ġ" å·² ä»ĺ æ¬¾ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Paid Ġ= Ġ" æľª ä»ĺ æ¬¾ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . detail Title . text Ġ= Ġ"${ info . getJSONObject (" user "). getString (" seat _ no ") }${ info . getJSONObject (" user "). getString (" name "). trim End ()}, Ġ${ info . getJSONObject (" money "). getString (" charge ") }$, Ġ$ is Paid " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . info Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinfo Alert Builder Ġ= ĠAlertDialog . Builder ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Alert Builder . setTitle (" è¨ Ĥ åĸ ® åħ § å®¹ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Alert Builder . setMessage (" è¨ Ĥ é¤ Ĳ ç· ¨ èĻ Ł :${ info . getString (" id ") }\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" é¤ Ĳ é» ŀ åħ § å®¹ :${ D MD ish Name Arr [ position ] }\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" è¨ Ĥ è³ ¼ äºº :${ info . getJSONObject (" user "). getString (" seat _ no ") }${ info . getJSONObject (" user "). getString (" name ") }\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" è¨ Ĥ é¤ Ĳ æĹ¥æľŁ :${ info . getString (" recv _ date "). drop Last ( 3 )}\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" é¤ Ĳ é» ŀ éĩĳ é¡ į :${ info . getJSONObject (" money "). getString (" charge ") }\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ä»ĺ æ¬¾ çĭ Ģ æħĭ :$ is Paid \ n ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Alert Builder . set Positive Button (" OK "){ _, Ġ_ Ġ-> } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinfo Alert Ġ= Ġinfo Alert Builder . create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Alert . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclass ĠViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġtitle : ĠTextView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġdetail Title : ĠTextView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġinfo Button : ĠButton ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġfactory Name : ĠTextView ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ