EpoxyでのモデルのID重複時の挙動
- https://github.com/airbnb/epoxy/wiki/Epoxy-Controller#filtering-duplicates
- デフォルトではEpoxyは何もしなくて、
DiffUtil
が重複IDのものは無視するが、その時の動作は未定義、という感じの模様 - Epoxy側で重複IDを検知して、後に登場したものを弾く(先勝ち)というモードを設定することができる
EpoxyController.setFilterDuplicates(true)
- デフォルトはオフ
- 重複を発見したという警告としての例外が作成されるが、これは
EpoxyController.onExceptionSwallowed
で処理されて、デフォルトでは無視されてクラッシュしたりはしない- https://github.com/airbnb/epoxy/blob/3b4a9cb8d626b192bc42c16d96ca70731696e2f9/epoxy-adapter/src/main/java/com/airbnb/epoxy/EpoxyController.java#L574-L578
- https://github.com/airbnb/epoxy/blob/3b4a9cb8d626b192bc42c16d96ca70731696e2f9/epoxy-adapter/src/main/java/com/airbnb/epoxy/EpoxyController.java#L735-L763