package Ġcom . example . pan west . Adapter . My Adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . Popup Window Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . ActionBar Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . pan west . Data . File Data Ċ import Ġcom . example . pan west . Data . getType Format Ċ import Ġcom . example . pan west . Login _ Function . Account Repository Ċ import Ġcom . example . pan west . Main _ Function . Pan _ Function . Pan Repository Ċ import Ġcom . example . pan west . My _ Function . My Repository Ċ import Ġcom . example . pan west . My _ Function . My Repository . star Item Remove Ċ import Ġcom . example . pan west . My _ Function . My Repository . star Item Select Ċ import Ġcom . example . pan west . My _ Function . My Repository . st ared Item Add Ċ import Ġcom . example . pan west . R Ċ Ċ class ĠStar Adapter ( private Ġval Ġfiles : ĠArrayList < File Data >): ĠRecyclerView . Adapter < Star Adapter . ViewHolder >() Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġedit Mode Ġ= Ġfalse ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Img : ĠImageView Ġ= Ġview . findViewById ( R . id . item _ img ) ĊĠĠĠĠĠĠĠ Ġval ĠfileName : ĠTextView Ġ= Ġview . findViewById ( R . id . item _ name ) ĊĠĠĠĠĠĠĠ Ġval Ġfile Check : ĠImageView Ġ= Ġview . findViewById ( R . id . item _ check ) ĊĠĠĠĠĠĠĠ Ġvar Ġfile Selected Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . item _ file , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval ĠviewHolder Ġ= ĠViewHolder ( view ) ĊĠĠĠĠĠĠĠ ĠviewHolder . setIs Re cycl able ( false ) ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( edit Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! view Holder . file Selected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . file Check . setImage Resource ( R . drawable . space _ checked ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . file Selected Ġ= Ġ! view Holder . file Selected ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstar Item Select ( files [ view Holder . adapter Position ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . file Check . setImage Resource ( R . drawable . space _ unchecked ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . file Selected Ġ= Ġ! view Holder . file Selected ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstar Item Remove ( files [ view Holder . adapter Position ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpopup View Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . star _ item _ pop _ click , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpopup Window Ġ= ĠPopup Window ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup View , ĠAction Bar . LayoutParams . WRAP _ CONTENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAction Bar . LayoutParams . WRAP _ CONTENT , Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window . show As DropDown ( view , Ġview . width , Ġ- view . height Ġ/ Ġ 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpop btn _ download Ġ= Ġpopup View . findViewById < Button >( R . id . star _ click _ pop button _ download ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpop btn _ delete Ġ= Ġpopup View . findViewById < Button >( R . id . star _ click _ pop button _ delete ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpop btn _ download . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPan Repository . download File ( parent . context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAccount Repository . user ?. username ? :" ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfiles [ view Holder . adapter Position ]. url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfiles [ view Holder . adapter Position ]. filename ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpop btn _ delete . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Window . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Repository . st ared Item Delete ( parent . context , Ġfiles [ view Holder . adapter Position ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠviewHolder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġfiles [ position ] ĊĠĠĠĠĠĠĠ Ġval ĠM US IC _ STRING Ġ= Ġ" M US IC " ĊĠĠĠĠĠĠĠ Ġval ĠMOV IE _ STRING Ġ= Ġ" MOV IE " ĊĠĠĠĠĠĠĠ Ġval ĠPH OTO _ STRING Ġ= Ġ" PH OTO " ĊĠĠĠĠĠĠĠ Ġval ĠFILE _ STRING Ġ= Ġ" FILE " ĊĠĠĠĠĠĠĠ Ġval ĠR AR _ STRING Ġ= Ġ" R AR " ĊĠĠĠĠĠĠĠ Ġval ĠPACK AGE _ STRING Ġ= Ġ" W JJ " ĊĠĠĠĠĠĠĠ Ġholder . file Img . setImage Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( getType Format ( file . type )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠM US IC _ STRING Ġ-> ĠR . drawable . type _ music ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMOV IE _ STRING Ġ-> ĠR . drawable . type _ movie ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPH OTO _ STRING Ġ-> ĠR . drawable . type _ photo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR AR _ STRING Ġ-> ĠR . drawable . type _ rar ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPACK AGE _ STRING Ġ-> ĠR . drawable . type _ dir ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠR . drawable . type _ file ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġholder . fileName . text Ġ= Ġfile . filename ĊĠĠĠĠĠĠĠ Ġif Ġ( edit Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . file Check . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . file Selected Ġ= Ġfile Ġin ĠMy Repository . st ared Item ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( holder . file Selected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . file Check . setImage Resource ( R . drawable . space _ checked ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . file Check . setImage Resource ( R . drawable . space _ unchecked ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . file Check . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġfiles . size ĊĊĠĠĠ Ġfun Ġset Edit Mode ( edit mode : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġedit Mode Ġ= Ġedit mode ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} Ċ }