package Ġcom . s aku . approval _ s ju . fragments Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget .* Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . reflect . Type Token Ċ import Ġcom . s aku . approval _ s ju . Login Activity Ċ import Ġcom . s aku . approval _ s ju . Preferences Ċ import Ġcom . s aku . approval _ s ju . Pro ses Activity Ċ import Ġcom . s aku . approval _ s ju . R Ċ import Ġcom . s aku . approval _ s ju . adapter . Budget J urnal Adapter Ċ import Ġcom . s aku . approval _ s ju . api _ service . Utils Api Ċ import Ġcom . s aku . approval _ s ju . models . Model Budget J urnal Ċ import Ġkotlinx . android . synt hetic . main . fragment _ budget _ j urnal . view .* Ċ import Ġokhttp 3 . ResponseBody Ċ import Ġorg . json . JSONObject Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ import Ġjava . lang . reflect . Type ĊĊ Ċ class ĠBudget J urnal Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmy view : ĠView ĊĠĠĠ Ġvar Ġpreferences Ġ Ġ= ĠPreferences () ĊĠĠĠ Ġvar Ġmy adapter Ġ: ĠBudget J urnal Adapter ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġmy ctx Ġ: ĠContext ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġdisplay opt Ġ: ĠString ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġmy view Ġ= Ġinflater . inflate ( R . layout . fragment _ budget _ j urnal , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġdisplay opt Ġ= Ġactivity !!. intent . extras !!. getString (" display opt ") ĊĠĠĠĠĠĠĠ Ġif ( display opt . equals (" history ")){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy view . rv _ budget . set Padding ( 0 , 0 , 0 , 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġmy view ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġmy ctx = context ĊĠĠĠĠĠĠĠ Ġpreferences . set Preferences ( my ctx !! ) ĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager : ĠRecyclerView . LayoutManager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġmy view . rv _ budget . layout Manager Ġ= Ġlayout Manager ĊĠĠĠĠĠĠĠ Ġmy view . rv _ budget . adapter Ġ= Ġmy adapter ĊĠĠĠĠĠĠĠ Ġval Ġno A ju Ġ= Ġactivity !!. intent . extras !!. getString (" no _ aj u ") ĊĠĠĠĠĠĠĠ Ġinit Data ( no A ju ) ĊĠĠĠĠĠĠĠ Ġval Ġmod ul Ġ= Ġactivity !!. intent . extras !!. getString (" modul ") ĊĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Data ( no _ aj u Ġ: ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġap iser vice = ĠUtils Api (). get API Service ( activity !!. application Context ) ĊĠĠĠĠĠĠĠ Ġap iser vice ?. detail j urnal ( no _ aj u )?. enqueue ( object Ġ: ĠCallback < ResponseBody ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall : ĠCall < ResponseBody ? >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse : ĠResponse < ResponseBody ?> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . body () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobj Ġ= ĠJSONObject ( response . body () !!. string ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata obj : ĠJSONObject Ġ= Ġobj . getJSONObject (" success ") Ċ // ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype : ĠType Ġ= Ġobject Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType Token < ArrayList < Model Budget J urnal ?> ?> () Ġ{} . type ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdatab udget j urnal : ĠArrayList < Model Budget J urnal > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . fromJson ( data obj . opt String (" data "), Ġtype ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( data Ġin Ġdatap eng aj uan ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Data ĠPeng aj uan ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . no _ dok umen . toString () Ġ+ Ġ"-" Ġ+ Ġdata . pem bu at Ġ+ Ġ"-" Ġ+ Ġdata . due _ date Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy adapter Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBudget J urnal Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatab udget j urnal ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy adapter !!. register Adapter Data Observer ( object Ġ: ĠRecyclerView . Adapter Data Observer () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonChanged () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Empty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Range Inserted ( position Start : ĠInt , Ġitem Count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Item Range Inserted ( position Start , Ġitem Count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Empty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Range Removed ( position Start : ĠInt , Ġitem Count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Item Range Removed ( position Start , Ġitem Count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Empty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġcheck Empty () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( my adapter !!. item Count == 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy view . empty _ view . visibility = View . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy view . rv _ budget . visibility = View . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy view . empty _ view . visibility = View . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy view . rv _ budget . visibility = View . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy view . rv _ budget . adapter Ġ= Ġmy adapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy view . empty _ view . visibility = View . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy view . rv _ budget . visibility = View . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( my ctx , Ġ" Ter j adi Ġk es al ahan ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif ( response . code () Ġ== Ġ 4 2 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( my ctx , Ġ" Ter j adi Ġk es al ahan ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif ( response . code () Ġ== Ġ 4 0 1 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( my ctx , ĠLogin Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . preferences Logout () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. finish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( my ctx , Ġ" S esi Ġtel ah Ġber ak hir , Ġsil ah kan Ġlogin Ġk embali ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif ( response . code () Ġ== Ġ 4 0 3 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( my ctx , Ġ" Unauthorized ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif ( response . code () Ġ== Ġ 4 0 4 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( my ctx , Ġ" Ter j adi Ġk es al ahan Ġserver ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < ResponseBody ? >, Ġt : ĠThrowable ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . setVisibility ( View . GONE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( my ctx , Ġ" K one ksi ĠB erm as alah ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) Ċ // ĠĠĠĠĠĠĠ Ġfun Ġlogin ( nik : String ?, password : String ? ){ Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ // ĠĠĠ Ġfun Ġexpand collapse ( title Ġ: ĠRelative Layout , Ġcontent Ġ: ĠLinearLayout , Ġicon Ġ: ĠImageView ){ Ċ // ĠĠĠĠĠĠĠ Ġtitle . setOnClickListener Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( content . visibility == View . GONE ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransition Manager . begin Delayed Transition ( content , Ġ ĠAuto Transition ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent . visibility = View . VISIBLE Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon . animate (). rotation By ( 1 8 0 f ). start () Ċ //// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpand ( content , icon ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransition Manager . begin Delayed Transition ( content , Ġ ĠAuto Transition ()) Ċ //// ĠĠĠĠĠĠĠ Ġcontent . animate (). translation Y ( 0 F ); Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent . visibility = View . GONE Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon . animate (). rotation By ( 1 8 0 f ). start () Ċ //// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcollapse ( content , icon ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġfun Ġexpand ( content : ĠLinearLayout , Ġicon : ĠImageView ){ Ċ //// ĠĠĠĠĠĠĠ Ġcontent . animate (). translation Y ( content . height . toFloat ()); Ċ // ĠĠĠĠĠĠĠ ĠTransition Manager . begin Delayed Transition ( content , Ġ ĠAuto Transition ()) Ċ // ĠĠĠĠĠĠĠ Ġcontent . visibility = View . VISIBLE Ċ // ĠĠĠĠĠĠĠ Ġicon . rotation Ġ= Ġ 1 8 0 f Ċ //// ĠĠĠĠĠĠĠ Ġicon . animate (). rotation By ( 1 8 0 f ). start () Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġfun Ġcollapse ( content : ĠLinearLayout , Ġicon : ĠImageView ){ Ċ // ĠĠĠĠĠĠĠ ĠTransition Manager . begin Delayed Transition ( content , Ġ ĠAuto Transition ()) Ċ //// ĠĠĠĠĠĠĠ Ġcontent . animate (). translation Y ( 0 F ); Ċ // ĠĠĠĠĠĠĠ Ġcontent . visibility = View . GONE Ċ // ĠĠĠĠĠĠĠ Ġicon . rotation Ġ= Ġ 0 f Ċ //// ĠĠĠĠĠĠĠ Ġicon . animate (). rotation By ( 1 8 0 f ). start () Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġretain Instance Ġ= Ġtrue ĊĊĠĠĠ Ġ} ĊĊ Ċ // ĠĠĠ Ġfun Ġinit Data ( token : ĠString ?, Ġbe arer Ġ: ĠString ?) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġap iser vice ?. da ft arp eng aj uan ( token , bearer )?. enqueue ( object Ġ: ĠCallback < ResponseBody ?> Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall : ĠCall < ResponseBody ? >, Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse : ĠResponse < ResponseBody ?> Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . body () Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobj Ġ= ĠJSONObject ( response . body () !!. string ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata obj : ĠJSONObject Ġ= Ġobj . getJSONObject (" success ") Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype : ĠType Ġ= Ġobject Ġ: Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType Token < ArrayList < Model Data Peng aj uan ?> ?> () Ġ{} . type Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdatap eng aj uan : ĠArrayList < Model Data Peng aj uan > Ġ= Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . fromJson ( data obj . opt String (" data "), Ġtype ) Ċ //// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( data Ġin Ġdatap eng aj uan ) Ġ{ Ċ //// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( Ċ //// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Data ĠPeng aj uan ", Ċ //// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . no _ dok umen . toString () Ġ+ Ġ"-" Ġ+ Ġdata . pem bu at Ġ+ Ġ"-" Ġ+ Ġdata . due _ date Ċ //// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ //// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy adapter Ġ= ĠData Peng aj uan Adapter ( datap eng aj uan ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Manager : ĠRecyclerView . LayoutManager Ġ= ĠLinearLayoutManager ( context ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy view . rv _ peng aj uan . layout Manager Ġ= Ġlayout Manager Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy view . rv _ peng aj uan . adapter Ġ= Ġmy adapter Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data . length () Ġ> Ġ 0 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( my ctx , Ġ" Ter j adi Ġk es al ahan ", ĠToast . LENGTH _ SHORT ). show () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif ( response . code (). equals ( 4 2 2 )) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( my ctx , Ġ" Username / Password Ġm asi h Ġk os ong ", ĠToast . LENGTH _ SHORT ). show () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif ( response . code (). equals ( 4 0 1 )){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( my ctx , Ġ" Username / Password Ġsal ah ", ĠToast . LENGTH _ SHORT ). show () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif ( response . code (). equals ( 4 0 3 )){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( my ctx , Ġ" Token ĠInvalid ", ĠToast . LENGTH _ SHORT ). show () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif ( response . code (). equals ( 4 0 4 )){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( my ctx , Ġ" Ter j adi Ġk es al ahan Ġserver ", ĠToast . LENGTH _ SHORT ). show () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < ResponseBody ? >, Ġt : ĠThrowable ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( my ctx , Ġ" K one ksi ĠB erm as alah ", ĠToast . LENGTH _ SHORT ). show () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ}) Ċ // ĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance (): ĠBudget J urnal Fragment Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBudget J urnal Fragment () ĊĠĠĠ Ġ} Ċ }