package Ġcom . ek o app . ek os dk . u ikit . community . news feed . adapter Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ek o app . ek os dk . u ikit . base . E ko Base RecyclerView Adapter Ċ import Ġcom . ek o app . ek os dk . u ikit . community . R Ċ import Ġcom . ek o app . ek os dk . u ikit . community . news feed . listener . IC reate Post Image ActionListener Ċ import Ġcom . ek o app . ek os dk . u ikit . community . news feed . model . Feed Image Ċ Ċ class ĠE ko Create Post Image Adapter ( private Ġval Ġlistener : ĠI Create Post Image ActionListener ) Ġ: ĊĠĠĠ ĠE ko Base RecyclerView Adapter < Feed Image >(), ĠI ListItem ChangeListener Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Id ( position : ĠInt , Ġobj : ĠFeed Image ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . am ity _ item _ create _ post _ image Ċ // ĠĠĠĠĠĠĠ Ġif ( item Count Ġ< Ġ 3 ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠR . layout . layout _ create _ post _ image _ item Ċ // ĠĠĠĠĠĠĠ Ġelse Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠR . layout . layout _ create _ post _ image _ item _ multiple ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġget ViewHolder ( view : ĠView , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠE ko Create Post ImageView Holder ( view , Ġlistener , Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsubmit List ( new List : ĠList < Feed Image >) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Items ( new List , ĠDiff Callback ( list , Ġnew List )) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġclass ĠDiff Callback ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġold List : ĠList < Feed Image >, ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġnew List : ĠList < Feed Image > ĊĠĠĠ Ġ) Ġ: ĠDiff Util . Callback () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item Position : ĠInt , Ġnew Item Position : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold List [ old Item Position ]. url Ġ== Ġnew List [ new Item Position ]. url ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Old List Size (): ĠInt Ġ= Ġold List . size ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget New List Size (): ĠInt Ġ= Ġnew List . size ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item Position : ĠInt , Ġnew Item Position : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold List [ old Item Position ]. url Ġ== Ġnew List [ new Item Position ]. url ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġold List [ old Item Position ]. id Ġ== Ġnew List [ new Item Position ]. id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġold List [ old Item Position ]. upload State Ġ== Ġnew List [ new Item Position ]. upload State ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġold List [ old Item Position ]. current Progress Ġ== Ġnew List [ new Item Position ]. current Progress ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġitem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġitem Count ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ Ċ interface ĠI ListItem ChangeListener Ġ{ ĊĠĠĠ Ġfun Ġitem Count (): ĠInt Ċ }