sadr0b0t / yashlang

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

Обновлять стутус "звездочка" и "прогресс" на иконках в рекомендациях под видео #80

Open sadr0b0t opened 3 years ago

sadr0b0t commented 3 years ago

Во всех списках, в т.ч. в списке рекомендаций под плеером теперь отображаются поля видео - звездочка https://github.com/sadr0b0t/yashlang/issues/53 и прогресс проигрывания https://github.com/sadr0b0t/yashlang/issues/54 .

Отметку звездочкой для текущего видео можно включить/выключить в экране плеера, прогресс проигрывания в б/д тоже меняется в плеере (не постоянно, но при ручном передвижении ползунка или при переходе на другой ролик), но они не будут обновлены в списке рекомендаций, если, например, текущий ролик бул загружен кликом по рекомендациям.

В общем, нужно слушать обновления б/д и, если они касаются роликов в списке рекомендаций, обновлять их. API для слушания б/д есть. Плюс еще была какая-то возможность вставить свои прокладки для того, чтобы фильтровать события из б/д.

вот здесь:

  1. Avoid false positive notifications for observable queries https://medium.com/androiddevelopers/7-pro-tips-for-room-fbadea4bfbd1#5e38

Частично это работает в режиме "играть всё любимое" - если убрать звездочку у загруженного ролика, он исчезнет из списка снизу. Но прогресс не обновляется и там.

sadr0b0t commented 3 years ago

Звездочка иногда обновляется сама (прогресс тоже): если открыть плеер, нажать на ролик под рекомендацией, поставить ему звездочку, потом вернуться к предыдущему ролику, потом повозить пальцем ленту рекомндаций туда-суюда (или, возможно, немного подождать), звездочка может появиться на иконке лайкнутого видео. То же самое должно происходить автоматом сразу, как звездочка была поставлена.

sadr0b0t commented 1 year ago

Автоматом работает в рекомендациях, которые создаются из PagedListAdapter (т.е. они слушают события базы данных), не обновляется для ремендаций из ArrayAdapter (это сейчас всё, что случайное)