package Ġcom . example . feature . photo . gallery . impl . ui Ċ Ċ import Ġandroidx . annotation . Visible ForTesting Ċ import Ġcom . example . feature . photo . gallery . impl . ui . Photo Gallery Contract . Photo Gallery State Ċ import Ġcom . example . feature . photo . gallery . impl . ui . adapter . Photo Gallery Adapter Ċ import Ġcom . example . ui . view model . st ater ed ucer . State Reducer Ċ import Ġorg . joda . time . LocalDate Ċ import Ġorg . joda . time . format . DateTime Format Ċ import Ġorg . joda . time . format . DateTime Formatter Ċ import Ġjavax . inject . Inject Ċ Ċ internal Ġclass ĠPhoto Gallery Reducer Ġ@ Inject Ġconstructor () Ġ: ĠState Reducer < Photo Gallery State >( Photo Gallery State . EMPTY ) Ġ{ ĊĠĠĠ Ġfun Ġset Photos ( photos : ĠList < com . example . api . entities . Photo >) Ġ{ ĊĠĠĠĠĠĠĠ Ġcommit Ġ{ Ġstate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate . copy ( photos Ġ= Ġphotos . map Ġ{ Ġphoto Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhoto Gallery Adapter . Model ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġphoto . id . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġphoto Id Ġ= Ġphoto . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġphoto . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Ġ= ĠDATE _ FORMAT TER . print ( LocalDate ( photo . createdAt . millis )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath Ġ= Ġphoto . path ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcontainer Size Change ( span Count : ĠInt , Ġitem Size : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcommit Ġ{ Ġstate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Count Ġ= Ġspan Count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġphoto Size Ġ= Ġitem Size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠĠĠĠĠ Ġval ĠDATE _ FORMAT TER : ĠDateTime Formatter Ġ= ĠDateTime Format . for Pattern (" dd ĠM MMM , Ġy yyy ") ĊĠĠĠ Ġ} Ċ }