package Ġcom . demo . just app . ex ch anger . presentation . ui . adapter . extension Ċ Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ Ċ interface ĠDiff Util Adapter Ġ{ ĊĊĠĠĠ Ġfun Ġ< T > ĠRecyclerView . Adapter <* >. auto Update ( old : ĠList < T >, Ġnew : ĠList < T >, Ġcompare : Ġ( T , ĠT ) Ġ-> ĠBoolean ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġdiff Ġ= ĠDiff Util . calculate Diff ( object Ġ: ĠDiff Util . Callback () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Position : ĠInt , Ġnew Position : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcompare ( old [ old Position ], Ġnew [ new Position ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Position : ĠInt , Ġnew Position : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold [ old Position ] Ġ== Ġnew [ new Position ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Old List Size (): ĠInt Ġ= Ġold . size ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget New List Size (): ĠInt Ġ= Ġnew . size ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġdiff . dispatch Updates To ( this ) ĊĠĠĠ Ġ} Ċ Ċ }