Skip to content

Commit

Permalink
Отдельные элементы интерфейса на элементах списков не обновлялись при…
Browse files Browse the repository at this point in the history
… изменениях в базе данных
  • Loading branch information
sadr0b0t committed Jul 19, 2022
1 parent 3beda11 commit 053ff9d
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 20 deletions.
9 changes: 0 additions & 9 deletions app/src/main/java/su/sadrobot/yashlang/Glagna.java
Original file line number Diff line number Diff line change
Expand Up @@ -184,15 +184,6 @@ protected void onResume() {
setupVideoListAdapter();
}

@Override
public void onPause(){
super.onPause();

if (videoItemsLiveData != null) {
videoItemsLiveData.removeObservers(this);
}
}

private void setupVideoListAdapter() {
if (videoItemsLiveData != null) {
videoItemsLiveData.removeObservers(this);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,15 +124,6 @@ public void onTextChanged(CharSequence s, int start, int before, int count) {
setupVideoListAdapter(null);
}

@Override
public void onPause() {
super.onPause();

if (videoItemsLiveData != null) {
videoItemsLiveData.removeObservers(this);
}
}

@Override
public boolean onCreateOptionsMenu(final Menu menu) {
// https://developer.android.com/training/appbar/action-views.html
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,10 @@ public boolean areItemsTheSame(PlaylistInfo oldItem, PlaylistInfo newItem) {

@Override
public boolean areContentsTheSame(PlaylistInfo oldItem, PlaylistInfo newItem) {
return (oldItem.getUrl().equals(newItem.getUrl()));
// Здесь следует перечислить все поля, которые в том или ином виде
// отображены на элементе списка: например, флаг для плейлиста включен/выключен
// (для плейлиста пока получается, что это единственный флаг)
return (oldItem.isEnabled() == newItem.isEnabled());
}
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,27 @@ public boolean areItemsTheSame(VideoItem oldItem, VideoItem newItem) {

@Override
public boolean areContentsTheSame(VideoItem oldItem, VideoItem newItem) {
return (oldItem.getItemUrl().equals(newItem.getItemUrl()));
// Здесь следует перечислить все поля, которые в том или ином виде
// отображены на элементе списка: например, прогресс (pausedAt), или
// статус "любомое" (starred). В таком случае при изменении этих полей
// (например, при сохранении новой позиции или переключении состояния
// звездочки) будет автоматически изменяться состояние элемента в загруженном
// списке (на текущем экране - например, в рекомендациях на экране плеера,
// или в списке на экране, из которого был открыт плеер)
// Но внесем сюда только изменяемые позиции (имя или адрес ролика не изменяются,
// поэтому сравнивать дополнительно их нет большого смысла)
return (oldItem.isStarred() == newItem.isStarred() &&
oldItem.getPausedAt() == newItem.getPausedAt() &&
oldItem.isHasOffline() == newItem.isHasOffline() &&
oldItem.isBlacklisted() == newItem.isBlacklisted() &&
oldItem.isEnabled() == newItem.isEnabled() &&
oldItem.getViewCount() == newItem.getViewCount() &&
( (oldItem.getLastViewedDate() != null && newItem.getLastViewedDate() != null &&
oldItem.getLastViewedDate().equals(newItem.getLastViewedDate())) ||
(oldItem.getLastViewedDate() == null && newItem.getLastViewedDate() == null) ) &&
( (oldItem.getStarredDate() != null && newItem.getStarredDate() != null &&
oldItem.getStarredDate().equals(newItem.getStarredDate())) ||
(oldItem.getStarredDate() == null && newItem.getStarredDate() == null) ) );
}
};

Expand Down

0 comments on commit 053ff9d

Please sign in to comment.