X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Futils%2FObservableList.java;h=e74271aff99e49ae60bfeb507512bf61f3006afd;hp=9893c5d1250644fe9899e0c3721ae8a8c8376f19;hb=be8de3627af4c905e3db9671883eee9eaf38275e;hpb=0700200b6627f97ac37083fc2c7131bcaa39b635 diff --git a/app/src/main/java/net/ktnx/mobileledger/utils/ObservableList.java b/app/src/main/java/net/ktnx/mobileledger/utils/ObservableList.java index 9893c5d1..e74271af 100644 --- a/app/src/main/java/net/ktnx/mobileledger/utils/ObservableList.java +++ b/app/src/main/java/net/ktnx/mobileledger/utils/ObservableList.java @@ -1,26 +1,27 @@ /* * Copyright © 2019 Damyan Ivanov. - * This file is part of Mobile-Ledger. - * Mobile-Ledger is free software: you can distribute it and/or modify it + * This file is part of MoLe. + * MoLe is free software: you can distribute it and/or modify it * under the term of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your opinion), any later version. * - * Mobile-Ledger is distributed in the hope that it will be useful, + * MoLe is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License terms for details. * * You should have received a copy of the GNU General Public License - * along with Mobile-Ledger. If not, see . + * along with MoLe. If not, see . */ package net.ktnx.mobileledger.utils; import android.os.Build; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.RequiresApi; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.RequiresApi; +import android.util.Log; import java.util.Collection; import java.util.Comparator; @@ -43,9 +44,9 @@ public class ObservableList extends Observable { setChanged(); notifyObservers(); } - private void forceNotify(Object arg) { + private void forceNotify(int index) { setChanged(); - notifyObservers(arg); + notifyObservers(index); } public int size() { return list.size(); @@ -167,11 +168,23 @@ public class ObservableList extends Observable { public void forEach(Consumer action) { list.forEach(action); } + public List getList() { + return list; + } public void setList(List aList) { list = aList; forceNotify(); } - public Iterable getList() { - return list; + public void triggerItemChangedNotification(T item) { + int index = list.indexOf(item); + if (index == -1) { + Log.d("ObList", "??? not sending notifications for item not found in the list"); + return; + } + Log.d("ObList", "Notifying item change observers"); + triggerItemChangedNotification(index); + } + public void triggerItemChangedNotification(int index) { + forceNotify(index); } } \ No newline at end of file