package Ġru . gr ak hell . phot io . ui _ preferences . preferences Ċ /* Ċ Copyright Ġ 2 0 2 2 ĠD mit ri i ĠZ . Ċ Ċ Licensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ you Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ You Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat ĊĊĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ċ Unless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ distributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ WITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ See Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ limitations Ġunder Ġthe ĠLicense . Ċ */ Ċ import Ġandroid . net . Uri Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . lifecycle . Lifecycle Owner Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ Ċ private Ġconst Ġval ĠEN AB LING _ CHANGE Ġ= Ġ" enable . change " Ċ Ċ class ĠPreferences Adapter ( ĊĠĠĠ Ġprivate Ġval Ġowner : ĠLifecycle Owner Ċ ): ĠList Adapter < Uri , ĠPreferences ViewHolder >( Uri Diff ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġis Enabled Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠPreferences ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( getItem ( position ), Ġis Enabled ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠPreferences ViewHolder , Ġposition : ĠInt , Ġpayload s : ĠMutable List < Any >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( payload s . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Bind ViewHolder ( holder , Ġposition , Ġpayload s ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayload s . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġis ĠString Ġ&& Ġit Ġ== ĠEN AB LING _ CHANGE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . update ( isEnabled ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġis ĠUri ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . re bind ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠPreferences ViewHolder Ġ= ĊĠĠĠĠĠĠĠ ĠPreferences ViewHolder . create ( parent , Ġowner ) ĊĊĠĠĠ Ġfun Ġset Enabled ( enabled : Boolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġenabled ĊĠĠĠĠĠĠĠ Ġnotify Item Range Changed ( 0 , item Count , EN AB LING _ CHANGE ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ object ĠUri Diff Ġ: ĠDiff Util . Item Callback < Uri >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠUri , Ġnew Item : ĠUri ) Ġ= Ġold Item Ġ=== Ġnew Item ĊĊĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠUri , Ġnew Item : ĠUri ) Ġ= Ġold Item Ġ== Ġnew Item ĊĊĠĠĠ Ġoverride Ġfun Ġget Change Payload ( old Item : ĠUri , Ġnew Item : ĠUri ): ĠAny Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( old Item Ġ!= Ġnew Item ) Ġ{ new Item } Ġelse Ġ{ old Item } ĊĠĠĠ Ġ} Ċ }