sadr0b0t / yashlang

PeerTube and YouTube player for Android with local playlists and whitelisted recommendations
GNU General Public License v3.0
51 stars 3 forks source link

Серить элементы списка плейлистов, когда выключается переключатель #119

Closed sadr0b0t closed 2 years ago

sadr0b0t commented 2 years ago

Переключатель выключен: текст элементов в состоянии disabled переключатель включен: текст элементо в состоянии enabled

sadr0b0t commented 2 years ago

Пока только для PlaylistInfoArrayAdapter - для списков с импортом плейлистов https://github.com/sadr0b0t/yashlang/commit/e9bf81e18c794e1f26cf4e47b209614192c50ab7

если то же самое сделать в PlaylistInfoPagedListAdapter, иконки мограют при переключении во всем списке. Если вызывать notifyDataSetChanged и если вызывать notifyItemChanged тоже моргает весь список всё равно.

sadr0b0t commented 2 years ago

если то же самое сделать в PlaylistInfoPagedListAdapter, иконки мограют при переключении во всем списке. Если вызывать notifyDataSetChanged и если вызывать notifyItemChanged тоже моргает весь список всё равно.

должно быть ок после этих правок: https://github.com/sadr0b0t/yashlang/issues/129 https://github.com/sadr0b0t/yashlang/issues/136 (здесь есть про мигание иконок)

попробовать еще раз

sadr0b0t commented 2 years ago

если то же самое сделать в PlaylistInfoPagedListAdapter, иконки мограют при переключении во всем списке. Если вызывать notifyDataSetChanged и если вызывать notifyItemChanged тоже моргает весь список всё равно.

Да, строго говоря, в случае с PlaylistInfoPagedListAdapter с переключалкой, меняющей базу данных, вызывать notifyDataSetChanged/notifyItemChanged вручную при событии переключателя вообще не было нужно, т.к. обновлением списков при изменении базы данных занимался движок DataSource+PagedListAdapter. Но на тот момент этот механизм не работал (DIFF_UTIL - см тикеты в коменте выше).

Но для тех случаев, когда переключалка может быть не подключена к б/д (сейчас - все случаи с PlaylistInfoArrayAdapter - настройка профиля, список рекомендованных плейлистов), дергать notifyItemChanged таки надо.

В общем, сейчас:

Еще для PlaylistInfoArrayAdapter важный момент - в PlaylistInfoActions.actionSetPlaylistEnabled после обновления б/д нельзя обновлять значение флага в самом объекте PlaylistInfo, т.к. иначе не сработает логика DIFF_UTIL и обновление элемента списка не будет спровоцировано (сейчас переделал так, чтобы в actionSetPlaylistEnabled передавался не объект PlaylistInfo, а playlistId, поэтому ошибиться в таком виде исключается).

sadr0b0t commented 2 years ago

Этот тикет казался простым, в результате опять перелопатил половину файлов в проекте https://github.com/sadr0b0t/yashlang/commit/8d0e1c3fa548efd35244404280160d5a6d6a05d8