Closed sadr0b0t closed 2 years ago
Пока только для PlaylistInfoArrayAdapter - для списков с импортом плейлистов https://github.com/sadr0b0t/yashlang/commit/e9bf81e18c794e1f26cf4e47b209614192c50ab7
если то же самое сделать в PlaylistInfoPagedListAdapter, иконки мограют при переключении во всем списке. Если вызывать notifyDataSetChanged и если вызывать notifyItemChanged тоже моргает весь список всё равно.
если то же самое сделать в PlaylistInfoPagedListAdapter, иконки мограют при переключении во всем списке. Если вызывать notifyDataSetChanged и если вызывать notifyItemChanged тоже моргает весь список всё равно.
должно быть ок после этих правок: https://github.com/sadr0b0t/yashlang/issues/129 https://github.com/sadr0b0t/yashlang/issues/136 (здесь есть про мигание иконок)
попробовать еще раз
если то же самое сделать в PlaylistInfoPagedListAdapter, иконки мограют при переключении во всем списке. Если вызывать notifyDataSetChanged и если вызывать notifyItemChanged тоже моргает весь список всё равно.
Да, строго говоря, в случае с PlaylistInfoPagedListAdapter с переключалкой, меняющей базу данных, вызывать notifyDataSetChanged/notifyItemChanged вручную при событии переключателя вообще не было нужно, т.к. обновлением списков при изменении базы данных занимался движок DataSource+PagedListAdapter. Но на тот момент этот механизм не работал (DIFF_UTIL - см тикеты в коменте выше).
Но для тех случаев, когда переключалка может быть не подключена к б/д (сейчас - все случаи с PlaylistInfoArrayAdapter - настройка профиля, список рекомендованных плейлистов), дергать notifyItemChanged таки надо.
В общем, сейчас:
Еще для PlaylistInfoArrayAdapter важный момент - в PlaylistInfoActions.actionSetPlaylistEnabled после обновления б/д нельзя обновлять значение флага в самом объекте PlaylistInfo, т.к. иначе не сработает логика DIFF_UTIL и обновление элемента списка не будет спровоцировано (сейчас переделал так, чтобы в actionSetPlaylistEnabled передавался не объект PlaylistInfo, а playlistId, поэтому ошибиться в таком виде исключается).
Этот тикет казался простым, в результате опять перелопатил половину файлов в проекте https://github.com/sadr0b0t/yashlang/commit/8d0e1c3fa548efd35244404280160d5a6d6a05d8
Переключатель выключен: текст элементов в состоянии disabled переключатель включен: текст элементо в состоянии enabled