From 1ac49bfa7f388c31129bf3711e399c4612b0e026 Mon Sep 17 00:00:00 2001 From: Dennis Sheirer Date: Sat, 22 Jul 2023 04:38:40 -0400 Subject: [PATCH] #1603 Resolves issue with de-duplicating events to allow call duration values to display correctly and minimize the quantity of duplicate events. --- .../decode/event/ClearableHistoryModel.java | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/main/java/io/github/dsheirer/module/decode/event/ClearableHistoryModel.java b/src/main/java/io/github/dsheirer/module/decode/event/ClearableHistoryModel.java index c1a2af372..bc72df277 100644 --- a/src/main/java/io/github/dsheirer/module/decode/event/ClearableHistoryModel.java +++ b/src/main/java/io/github/dsheirer/module/decode/event/ClearableHistoryModel.java @@ -56,12 +56,21 @@ public T getItem(int index) */ public void add(T item) { - mItems.addFirst(item); - ClearableHistoryModel.this.fireTableRowsInserted(0, 0); - while(mItems.size() > mHistorySize) + if(mItems.contains(item)) { - mItems.removeLast(); - super.fireTableRowsDeleted(mItems.size() - 1, mItems.size() - 1); + int itemRow = mItems.indexOf(item); + fireTableRowsUpdated(itemRow, itemRow); + } + else + { + mItems.addFirst(item); + fireTableRowsInserted(0, 0); + + while(mItems.size() > mHistorySize) + { + mItems.removeLast(); + fireTableRowsDeleted(mItems.size() - 1, mItems.size() - 1); + } } } @@ -100,14 +109,6 @@ public int getHistorySize() return mHistorySize; } - /** - * Resets the history size to the default value. - */ - public void resetHistorySize() - { - setHistorySize(DEFAULT_HISTORY_SIZE); - } - /** * Sets the history size * @param historySize