Zduplikowane paczki na liście paczek

W launcherze jest bug dotyczący powielonych paczek na liście paczek.

Kroki do odtworzenia błędu:

  1. po uruchomieniu CL: na głównym ekranie mam już wybraną jakąś paczkę
  2. przyciskam “Przeglądaj paczki”: pokazuje się lista “Paczki Crystal Launcher” → lista paczek jest OK
  3. przyciskam “Anuluj” → powrót do ekranu głównego
  4. ponownie przycisk “Przeglądaj paczki”: pokazuje się lista “Paczki Crystal Launcher”, ale paczki są podwójnie wyświetlane (załączam screen)
  5. ponownie “Anuluj” i “Przeglądaj”: na liście są już 4-krotne paczki
    i wydaje się, że więcej już nie zwiększa się ich liczba,
    choć wczoraj nie wiem w jaki sposób zrobiło się ich jeszcze więcej (na drugim screenie widać ich 5, ale mogło ich być nawet więcej)

Niedawno podobne powtórzenia paczek widziałem na dwóch pozostałych listach paczek, tzn. Vanilla i Użytkownika,
i choć teraz wygląda tak jakby nie było tych powtórzeń, to wydaje mi się, że te listy też trzeba by sprawdzić.

Launcher generalnie działa z tymi powielonymi paczkami, ale myślę, że to jest jednak błąd
i powinien on zostać poprawiony żeby uniknąć jakichś dziwnych niepotrzebnych problemów.

tutaj widać więcej powtórzeń na liście

jeszcze dla uzupełnienia: ta początkowo wybrana paczka to była właśnie z listy “Paczki Crystal Launcher”,
to jest istotna uwaga dla odtworzenia tego błędu, bo z tego co widzę, to przycisk “Przeglądaj paczki” pokazuje listę dla ostatnio wybranej paczki

Na liście “Vanilla” też są powtarzane paczki, choć różnią się “Data wydania”,
(ponadto jest tam błędnie pokazywany rok wydania 2024 dla 1.7.10)
Lista jest posortowana wg “Czasu gry”

już nie powinno dublować listy

Lista “Paczki Crystal Launcher” wydaje się, że jest już OK.

Natomiast niestety nadal jest bez zmian na liście “Vanilla”
tzn. jest taki sam widok jak załączyłem wyżej jako drugi screen.

Może też znaczenie ma to, że wybrana kategoria to “Wszystko” ?

.
Tak od strony kodu w Javie (kiedyś trochę coś tam pisałem :wink: ) to tego typu problemy często wynikają z braku lub niewłaściwego zdefiniowania metod equals() i/lub hashCode() w klasach obiektów dodawanych do list/tablic, więc może warto by przejrzeć kod od tej strony.

Porównywanie obiektów powinno obejmować tylko niezbędne minimum pól, które jednoznacznie identyfikują obiekty, w szczególności może wystarczyć jedno pole, np. jakieś “id”.

No, no, no. Ktoś finalnie opisał w prawidłowy sposob błąd

Aż się łezka w oku kręci

już poprawiłem też, jeśli paczka występowała w dwóch kategoriach to ją pokazywało dwa razy niepotrzebnie jak się wyłączyło filtrowanie

Niestety, na liście “Vanilla” zostało to poprawione tylko częściowo, tzn. czasem działa, a czasem nie… :disappointed_face:

Po wejściu na listę “Vanilla”, jest tam zaznaczona kategoria “Wszystko” (takie jest chyba domyślne ustawienie ?)
Sortuję listę wg “Czasu gry”, no i lista wygląda tak jak na screenie, który wyżej załączyłem - tzn. paczki są podwójne.
Wtedy jak zmienię kategorię (na dowolną inną) i przełączę z powrotem na “Wszystko”, to lista wygląda w końcu OK, tzn. z pojedynczymi paczkami.

Przy czym, “wejście na tą listę” to także przypadek wejścia tam z innej listy (przechodzenie między listami):
gdy uzyskam już ten poprawny widok na “Vanilla” (tak jak opisałem powyżej - po 2-krotnym przełączeniu kategorii), następnie przejdę na “Paczki użytkownika” i wrócę na “Vanilla” to znów widać podwójne paczki (posortowane wg “Czasu gry”).

Wychodzi na to, że źle jest wyświetlana lista bezpośrednio po wejściu na nią.

W sumie to sortowanie “wg Czasu gry” nie ma znaczenia,
bo paczki są podwójne także przy wybraniu “Sortuj wg Domyślnie”,
z tym, że przy “wg Czasu gry” widać to od razu - bo paczki są na samej górze listy.

Tutaj wstawiam widok przy “Sortuj wg Domyślnie”:

Gdy ustawiłem “Sortuj wg Domyślnie”,
to dwie paczki dla wersji 1.7.10 znalazły się między wersjami z przełomu lat 2023-2024,
a więc ewidentnie to są nieprawidłowe daty wydania - zresztą obie są identyczne
(zaznaczyłem je w prostokącie na screenie)

Może ogólnie problem duplikatów zniknie, gdy zostanie poprawiony właśnie ten problem z “Datą wydania” ?

Dla uzupełnienia tego ostatniego screena
wstawiam jeszcze drugi screen z tą samą listą i drugim wystąpieniem wersji 1.7.10: