From 2e8815bb383fd70f080ae004867de066987a0da0 Mon Sep 17 00:00:00 2001 From: Lefucjusz Date: Tue, 9 Aug 2022 18:05:06 +0200 Subject: [PATCH] [MOS-657] Fix contacts list order Fix of the issue that contact group letter appeared below the corresponding contacts when navigating up. --- .../widgets/PhonebookListView.cpp | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/module-apps/application-phonebook/widgets/PhonebookListView.cpp b/module-apps/application-phonebook/widgets/PhonebookListView.cpp index 1a80c198d5644fbc54d72021650d2d311233a02e..9e7f524ff85658dab569e97456ab171e3c3afef9 100644 --- a/module-apps/application-phonebook/widgets/PhonebookListView.cpp +++ b/module-apps/application-phonebook/widgets/PhonebookListView.cpp @@ -8,35 +8,34 @@ namespace gui PhonebookListView::PhonebookListView( Item *parent, uint32_t x, uint32_t y, uint32_t w, uint32_t h, std::shared_ptr prov) - : ListView(parent, x, y, w, h, prov) + : ListView(parent, x, y, w, h, std::move(prov)) {} void PhonebookListView::addLabelMarker(gui::PhonebookItem *item) { - if (direction == listview::Direction::Bottom) { - if (!(labelMark == (item)->getLabelMarker())) { - - labelMark = (item)->getLabelMarker(); + switch (direction) { + case listview::Direction::Bottom: + if (labelMark != item->getLabelMarker()) { + labelMark = item->getLabelMarker(); body->addWidget(new PhonebookMarkItem(labelMark)); } - } - if (direction == listview::Direction::Top) { - + break; + case listview::Direction::Top: if (currentPageSize == 0) { - labelMark = (item)->getLabelMarker(); + labelMark = item->getLabelMarker(); return; } - else if (!(labelMark == (item)->getLabelMarker())) { - + else if (labelMark != item->getLabelMarker()) { previousLabelMark = labelMark; - labelMark = (item)->getLabelMarker(); + labelMark = item->getLabelMarker(); body->removeWidget(item); - body->addWidget(new PhonebookMarkItem(labelMark)); + body->addWidget(new PhonebookMarkItem(previousLabelMark)); body->addWidget(item); previousItemIsLabel = true; } + break; } } @@ -58,7 +57,7 @@ namespace gui body->addWidget(item); // if added item is not visible -> page is full. - if (item->visible != true) { + if (!item->visible) { // if page full and direction top remove last element and add floating label mark on top if there was no // one previously