package Ġcom . c nd . food cord ku . user Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġcom . c nd . food cord ku . adapter . Ker anj ang Adapter Ċ import Ġcom . c nd . food cord ku . databinding . Activity Ker anj ang Binding Ċ import Ġcom . c nd . food cord ku . helper . User Preferences Ċ import Ġcom . c nd . food cord ku . model . Data Temp Ċ import Ġcom . c nd . food cord ku . model . Data Pe mes an Ċ import Ġcom . c nd . food cord ku . util . Data Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Behavior Ċ import Ġcom . google . firebase . database .* Ċ import Ġkotlinx . android . synt hetic . main . sheet _ nama _ pe mes an .* Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjava . text . NumberFormat Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ class ĠKer anj ang Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Ker anj ang Binding ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdatabase : ĠFirebase Database ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmy Ref : ĠDatabase Reference ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġuser Preferences : ĠUser Preferences ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġker anj ang Adapter : ĠKer anj ang Adapter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlocale ID : ĠLocale ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġformat R up iah : ĠNumber Format ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsheet Nama Pe mes an : ĠBottom Sheet Behavior < Constraint Layout > ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTIME Ġ= Ġ 5 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Ker anj ang Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠĠĠĠĠ Ġuser Preferences Ġ= ĠUser Preferences ( this ) ĊĠĠĠĠĠĠĠ Ġdatabase Ġ= ĠFirebase Database . getInstance () ĊĠĠĠĠĠĠĠ Ġmy Ref Ġ= Ġdatabase . reference ĊĊĠĠĠĠĠĠĠ Ġval Ġtitle Text Ġ= Ġ" Me ja Ġ${ Data . ID }" ĊĠĠĠĠĠĠĠ Ġif Ġ( Data . take Away Ġ== Ġ" yes ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . status Take . text Ġ= Ġ" Take ĠA way " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . status Take . text Ġ= Ġtitle Text ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Data () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Data . ak ses Ġ!= Ġ" admin ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Show Time () ĊĠĠĠĠĠĠĠ Ġ} Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . kon firm asi Pes an . text Ġ= Ġ" K embali " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġon GetData () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġlocale ID Ġ= ĠLocale (" in ", Ġ" ID ") ĊĠĠĠĠĠĠĠ Ġformat R up iah Ġ= ĠNumber Format . getC urrency Instance ( locale ID ) ĊĊĠĠĠĠĠĠĠ Ġsheet Nama Pe mes an Ġ= ĠBottom Sheet Behavior . from ( sheet _ nama _ pe mes an ) ĊĠĠĠĠĠĠĠ Ġsheet Nama Pe mes an . state Ġ= ĠBottom Sheet Behavior . STATE _ HIDDEN ĊĊĠĠĠĠĠĠĠ Ġwith ( binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Pes anan . adapter ?. notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Pes anan . schedule Layout Animation () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Pes anan . set Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon GetData () Ġ{ ĊĠĠĠĠĠĠĠ Ġmy Ref . child ( Data . TEMP ). child ( Data . id User ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value EventListener ( object Ġ: ĠValue EventListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Data Change ( snapshot : ĠData Snapshot ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Pes an : ĠArrayList < Data Temp > Ġ= Ġarray ListOf () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġh arga Sat u : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġh arga Total Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( data Snapshot 1 Ġin Ġsnapshot . children ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Temp Ġ= Ġdata Snapshot 1 . getValue ( Data Temp :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh arga Sat u Ġ= Ġdata Temp ?. harga Pes anan ?. toInt () !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh arga Total Ġ+= Ġh arga Sat u ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Pes an . add ( data Temp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtotal Rp Ġ= Ġformat R up iah . format ( harga Total . toDouble ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtotal Pes anan Ġ= Ġlist Pes an . size . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . b any ak Pes anan Ġ= Ġtotal Pes anan ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . harga Bay ar Ġ= Ġh arga Total . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( list Pes an . size Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . w aktu Ġ= ĠTIME . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( list Pes an . size Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . w aktu Ġ= Ġ( TIME Ġ+ Ġ 5 Ġ* Ġlist Pes an . size ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . total H arga . text Ġ= Ġ" Total Ġ$ total Pes anan ĠP es anan Ġ Ġ$ total Rp " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Show Data ( list Pes an ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Cancelled ( error : ĠDatabase Error ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Show Data ( list Pes an : ĠArrayList < Data Temp >) Ġ{ ĊĠĠĠĠĠĠĠ Ġker anj ang Adapter Ġ= ĠKer anj ang Adapter ( list Pes an ) ĊĠĠĠĠĠĠĠ Ġbinding . list Pes anan . adapter Ġ= Ġker anj ang Adapter ĊĊĠĠĠĠĠĠĠ Ġbinding . kon firm asi Pes an . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Data . ak ses Ġ!= Ġ" admin ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sheet Nama Pe mes an . state Ġ!= ĠBottom Sheet Behavior . STATE _ EXP AN DED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ HIDDEN ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsheet Nama Pe mes an . state Ġ= Ġstate ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbtn _ exit . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsheet Nama Pe mes an . state Ġ= ĠBottom Sheet Behavior . STATE _ HIDDEN ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbtn _ pesan . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Preferences . save Id User ( Data . id User ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn ama Pe mes an : ĠString Ġ= Ġn ama _ pel ang gan . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( nama Pe mes an . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġn ama _ pel ang gan . error Ġ= Ġ" Di ĠI si Ġd ulu Ġk aka " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . status Pes anan Ġ= Ġ" pending " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . status Bay ar Ġ= Ġ" no " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . pe mes an Ġ= Ġn ama Pe mes an ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit Menu ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData Pe mes an ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . status Pes anan , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . pe mes an , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . harga Bay ar , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . b any ak Pes anan , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . id User , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . w aktu , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . tanggal , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . jam , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . take Away , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . status Bay ar , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsubmit Menu ( data Pe mes an : ĠData Pe mes an ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmy Ref . child ( Data . K ON FIRM ASI ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. child ( Data . id User ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setValue ( data Pe mes an ) ĊĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠT ung gu Activity :: class . java ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Show Time () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthread Ġ= Ġobject Ġ: ĠThread () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ(! is Inter rupted ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsleep ( 1 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsdf Ġ= ĠSimpleDateFormat (" dd ĠMM Ġy yyy ", ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj am Ġ= ĠSimpleDateFormat (" h : mm Ġa ", ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate String Ġ= Ġsdf . format ( date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime String Ġ= Ġj am . format ( date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . tanggal Ġ= Ġdate String ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . jam Ġ= Ġtime String ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtg lform at Ġ= ĠData . tanggal ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtg lform at . replace (' Ġ', Ġ'_ ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInterruptedException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthread . start () ĊĠĠĠ Ġ} Ċ }