package Ġcom . example . reader client . ui . search borrow Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . reader client . R Ċ import Ġcom . example . reader client . Reader Client Application Ċ import Ġcom . example . reader client . logic . model .* Ċ import Ġcom . example . reader client . ui . search book . Book ViewModel Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . format . DateTime Formatter ĊĊ Ċ class ĠB orrow Adapter ( private Ġval Ġfragment : ĠFragment , Ġprivate Ġval Ġborrow List : ĠList < Borrow Data >): ĊĠĠĠ ĠRecyclerView . Adapter < Borrow Adapter . ViewHolder >() Ġ{ ĊĠĠĠ Ġinner Ġclass ĠViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbook Name : ĠTextView Ġ= Ġview . findViewById ( R . id . book Name N ) ĊĠĠĠĠĠĠĠ Ġval Ġbook Author : ĠTextView Ġ= Ġview . findViewById ( R . id . book Author N ) ĊĠĠĠĠĠĠĠ Ġval Ġbook ID : ĠTextView Ġ= Ġview . findViewById ( R . id . book ID N ) ĊĠĠĠĠĠĠĠ Ġval Ġbook Type Ġ: ĠTextView Ġ= Ġview . findViewById ( R . id . book Type N ) ĊĠĠĠĠĠĠĠ Ġval Ġborrow Out Date : ĠTextView Ġ= Ġview . findViewById ( R . id . borrow Out Date ) ĊĠĠĠĠĠĠĠ Ġval Ġborrow Data : ĠTextView Ġ= Ġview . findViewById ( R . id . borrow Date ) ĊĠĠĠĠĠĠĠ Ġval Ġrenew Btn : ĠButton Ġ= Ġview . findViewById ( R . id . renew Btn ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . borrow _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġborrow Ġ= Ġborrow List [ position ] ĊĠĠĠĠĠĠĠ Ġholder . book Name . text Ġ= Ġborrow . book Title ĊĠĠĠĠĠĠĠ Ġholder . book Author . text Ġ= Ġ" ä½ľèĢħ ï¼ļ "+ borrow . book Author ĊĠĠĠĠĠĠĠ Ġholder . book ID . text Ġ= Ġ" ç¼ĸåı· ï¼ļ "+ borrow . book Id ĊĠĠĠĠĠĠĠ Ġholder . book Type . text Ġ= Ġ" ç±»åŀĭ ï¼ļ "+ borrow . book Type ĊĠĠĠĠĠĠĠ Ġholder . borrow Data . text Ġ= Ġ" åĢ Ł éĺħ æĹ¶éĹ´ ï¼ļ" Ġ+ Ġborrow . borrow Date ĊĠĠĠĠĠĠĠ Ġholder . borrow Out Date . text Ġ= Ġ" åĪ° æľŁ æĹ¶éĹ´ ï¼ļ" Ġ+ Ġborrow . borrow Out dateTime ĊĠĠĠĠĠĠĠ Ġval Ġprefs Ġ= ĠReader Client Application . context ?. get SharedPreferences (" data ", ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġprefs . edit () ĊĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= Ġprefs . getString ( borrow . book Id , Ġ" 1 ") ĊĠĠĠĠĠĠĠ Ġif ( status Ġ== Ġ" 0 ") holder . renew Btn . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ// val Ġborrow date Ġ= ĠLocalDate . parse ( borrow . borrow Date , ĠDateTime Formatter . ISO _ DATE ) ĊĠĠĠĠĠĠĠ Ġ// val Ġout date Ġ= ĠLocalDate . parse ( borrow . borrow Out dateTime , ĠDateTime Formatter . ISO _ DATE ) ĊĊĠĠĠĠĠĠĠ Ġholder . renew Btn . setOnClickListener (){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠviewModel Ġby Ġlazy Ġ{ ĠViewModel Providers . of ( fragment ). get ( Borrow History ViewModel :: class . java )} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġprefs ?. getString (" token ", Ġ""). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs no Ġ= Ġprefs ?. getString (" s no ", Ġ""). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbook Ġ= Ġborrow List [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbook Id Ġ= Ġbook . book Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString ( book Id , Ġ" 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . renew Book ( token , ĠRen ew ( book . book Id , Ġs no )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . renew Book LiveData . observe ( fragment . view Lifecycle Owner , ĠObserver { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" re testing :", Ġresult . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( result . get OrNull ()!= null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġresult . get OrNull () Ġas ĠRen ew Response ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( Reader Client Application . context , Ġresponse . msg , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" testing ", Ġresult . get OrNull (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . code Ġ== Ġ"- 1 "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( Reader Client Application . context , Ġresponse . msg , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . exception OrNull ()?. printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . renew Btn . isEnabled Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġborrow List . size Ċ Ċ } Ċ