package Ġcom . example . kon w now . ui . adapter Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Build Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . kon w now . R Ċ import Ġcom . example . kon w now . data . remote . dto . Word Book Ċ import Ġcom . example . kon w now . ui . view . test . Test Fragment Ċ import Ġcom . example . kon w now . utils . Constants Ċ import Ġcom . github . mike phil . chart ing . charts . Pie Chart Ċ import Ġcom . github . mike phil . chart ing . data . Pie Data Ċ import Ġcom . github . mike phil . chart ing . data . Pie DataSet Ċ import Ġcom . github . mike phil . chart ing . data . Pie Entry Ċ import Ġcom . ram otion . fold ing cell . Fold ing Cell Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . ArrayList ĊĊ Ċ class ĠFolder Adapter ( var Ġfolder List : ArrayList < Word Book . Word Book Data >, val Ġitem Click : Ġ( Int , ĠBoolean ) Ġ-> ĠUnit ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . Adapter < Folder Adapter . Holder >() Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġitems Ġ= Ġfolder List ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġview : View ĊĊĠĠĠ Ġinner Ġclass ĠH older ( item View : ĠView ?) Ġ: ĠRecyclerView . ViewHolder ( item View !! ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtitle Tv Ġ= ĠitemView ?. findViewById < TextView >( R . id . tv _ groups _ name ) ĊĠĠĠĠĠĠĠ Ġval Ġcount Tv Ġ= ĠitemView ?. findViewById < TextView >( R . id . tv _ count ) ĊĠĠĠĠĠĠĠ Ġval Ġopen Title Tv Ġ= ĠitemView ?. findViewById < TextView >( R . id . tv _ title _ opened ) ĊĠĠĠĠĠĠĠ Ġval Ġopen Count Tv Ġ= ĠitemView ?. findViewById < TextView >( R . id . tv _ count _ opened ) ĊĠĠĠĠĠĠĠ Ġval Ġopen Date Tv Ġ= ĠitemView ?. findViewById < TextView >( R . id . tv _ date _ opened ) ĊĠĠĠĠĠĠĠ Ġval Ġfold ing cell Ġ= ĠitemView ?. findViewById < Fold ing Cell >( R . id . fold ing _ cell ) ĊĠĠĠĠĠĠĠ Ġval Ġpie Chart Ġ= ĠitemView ?. findViewById < Pie Chart >( R . id . pie Chart ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠH older Ġ{ ĊĠĠĠĠĠĠĠ Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . item _ folder _ fold ing _ cell , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠH older ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . M ) ĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠH older , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġdataset Ġ= Ġset Chart ( position ) ĊĠĠĠĠĠĠĠ Ġholder . fold ing cell !!. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( holder . fold ing cell . isSelected Ġ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . fold ing cell . isSelected Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Click ( position , holder . fold ing cell . isSelected ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTest Fragment . selected Word Book [ items [ position ]. id ] Ġ= Ġitems [ position ]. title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . fold ing cell . isSelected Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Click ( position , holder . fold ing cell . isSelected ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġholder . title Tv !!. text Ġ= Ġitems [ position ]. title ĊĠĠĠĠĠĠĠ Ġholder . count Tv !!. text Ġ= ĠString . format ( view . context . getString ( R . string . word _ count ), items [ position ]. all Count ) ĊĠĠĠĠĠĠĠ Ġholder . open Title Tv !!. text Ġ= Ġitems [ position ]. title ĊĠĠĠĠĠĠĠ Ġholder . open Count Tv !!. text Ġ= ĠString . format ( view . context . getString ( R . string . word _ count ), items [ position ]. all Count ) ĊĠĠĠĠĠĠĠ Ġholder . open Date Tv !!. text Ġ= ĠString . format ( view . context . getString ( R . string . create At ), parse Date ( items [ position ]. createdAt )) Ċ // ĠĠĠĠĠĠĠ Ġ// TODO : Ġëĭ¨ ìĸ´ Ġëĵ¤ ìĸ´ ê°Ģ ìķ¼ ĠëĲ ¨ , ĠíĽĦ ìĪ ľ ìľĦ Ċ // ĠĠĠĠĠĠĠ Ġvar Ġtemp Words : ĠString Ġ=" 0 " Ċ // ĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 1 .. 2 ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Words Ġ+= Ġ", Ġ$ i " Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġtemp Words +=" ..." Ċ Ċ // ĠĠĠĠĠĠĠ Ġholder . open word Tv !!. text Ġ= ĠString . format ( view . context . getString ( R . string . words ), temp Words ) ĊĠĠĠĠĠĠĠ Ġholder . fold ing cell !!. setOn Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . fold ing cell !!. toggle ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . pie Chart !!. set Use Percent Values ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . pie Chart !!. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= ĠP ie Data ( dataset ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Rotation Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcenter Text Ġ= Ġ" íĥľ ê·¸ Ġë¹Ħ ìľ ¨ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Entry Label Text Size ( 9 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Entry Label Color ( Color . BLACK ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . pie Chart !!. invalidate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġparse Date ( createdAt : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġold Format Ġ= ĠSimpleDateFormat (" yyyy - MM - dd ' T ' HH : mm : ss . SS S ' Z '", ĠLocale . K ORE A ) Ġ// Ġë°Ľ ìĿĢ Ġëį°ìĿ´íĦ° Ġíĺķ ìĭĿ ĊĠĠĠĠĠĠĠ Ġold Format . time Zone Ġ= ĠTime Zone . getTime Zone (" K ST ") ĊĠĠĠĠĠĠĠ Ġval Ġnew Format Ġ= ĠSimpleDateFormat (" yyyy ëħĦ ĠMM ìĽĶ Ġdd ìĿ¼ ĠHH : mm : ss ", ĠLocale . K ORE A ) Ġ// Ġë°Ķ ê ¿ Ģ Ġëį°ìĿ´íĦ° Ġíĺķ ìĭĿ ĊĊĠĠĠĠĠĠĠ Ġval Ġold Date : ĠDate Ġ= Ġold Format . parse ( createdAt ) ĊĠĠĠĠĠĠĠ Ġreturn Ġnew Format . format ( old Date ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . M ) ĊĠĠĠ Ġprivate Ġfun Ġset Chart ( position : ĠInt ): Pie DataSet Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġentries Ġ= ĠArrayList < Pie Entry >() ĊĠĠĠĠĠĠĠ Ġfor ( filter Ġin Ġitems [ position ]. filters ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( Constants . TAG , filter . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( filter . filter Ġ= =" do Not K now "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentries . add ( Pie Entry ( filter . count . toFloat (), " ëª ° ëĿ¼ ìļĶ ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else Ġif ( filter . filter Ġ== Ġ" mem or ized "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentries . add ( Pie Entry ( filter . count . toFloat (), " ìķ Į ìķĦ ìļĶ ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentries . add ( Pie Entry ( filter . count . toFloat (), " íĹ · ê° Ī ëł¤ ìļĶ ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcolors Items Ġ= ĠArrayList < Int >() ĊĠĠĠĠĠĠĠ Ġcolors Items . add ( view . context . getColor ( R . color . color Accent )) ĊĠĠĠĠĠĠĠ Ġcolors Items . add ( view . context . getColor ( R . color . color Main )) ĊĠĠĠĠĠĠĠ Ġcolors Items . add ( view . context . getColor ( R . color . bw _ g 2 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġpie DataSet Ġ= ĠP ie DataSet ( entries ," íĥľ ê·¸ ë¹Ħ ìľ ¨ ") ĊĠĠĠĠĠĠĠ Ġpie DataSet . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ìĬ ¬ ëĿ¼ ìĿ´ ìĬ¤ Ġê°Ħ ê²© ĊĠĠĠĠĠĠĠĠĠĠĠ Ġslice Space Ġ= Ġ 2 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselection Shift Ġ= Ġ 5 f ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ìĬ ¬ ëĿ¼ ìĿ´ ìĬ¤ Ġìĥ ī , Ġë ¯¸ ë¦¬ ĠìłķìĿĺ íķĺ ê±°ëĤĺ Ġresource ë¡ľ Ġê°Ģ ìł¸ ìĺ ¨ Ġìĥ ī Ġë¦¬ ìĬ¤íĬ¸ ë¥¼ Ġì¤ ĺ ëıĦ Ġì¢ĭ ëĭ¤ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolors Ġ= Ġcolors Items ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// value ĠìľĦ ì¹ĺ , Ġíģ¬ ê¸° Ġì§Ģìłķ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġy Value Position = Pie DataSet . Value Position . OUT SIDE _ S LIC E ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Text Size Ġ= Ġ 8 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue TextColor Ġ= ĠColor . BLACK ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġpie DataSet ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġitems . size ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġfun Ġfolder Update List ( word Book Item : ĠArrayList < Word Book . Word Book Data > ){ Ċ // ĠĠĠĠĠĠĠ Ġthis . items . clear () ĊĠĠĠĠĠĠĠ ĠLog . d (" ëħ ¸ íĭ° íĮ ĮìĿ´ ", word Book Item . toString ()) ĊĠĠĠĠĠĠĠ Ġthis . items . addAll ( word Book Item ) ĊĠĠĠ Ġ} Ċ }