diff --git a/AboutPage.xaml b/AboutPage.xaml index ad8fcf41a534a1ad0f605af9fa89f3fdf5896a16..c46a2aa58b112023888208c6552b6b5e8ba03190 100644 --- a/AboutPage.xaml +++ b/AboutPage.xaml @@ -72,7 +72,7 @@ VerticalScrollBarVisibility="Hidden"> <StackPanel MaxWidth="500" Width="310"> - <TextBlock Text="Ring version: 2016/12/29" + <TextBlock Text="Ring version: 2017/1/3" TextWrapping="Wrap" TextAlignment="Justify" Margin="0,0,0,24" diff --git a/ContactsViewModel.cpp b/ContactsViewModel.cpp index 3debaef7bf9e15893feed02c8ee0a5e96cb255ba..f3c726201273909f04ee80b72b2c98106451b0c2 100644 --- a/ContactsViewModel.cpp +++ b/ContactsViewModel.cpp @@ -146,7 +146,7 @@ ContactsViewModel::Stringify() { JsonArray^ jsonArray = ref new JsonArray(); - for (unsigned int i = 0; i < contactsList_->Size; i++) { + for (int i = contactsList_->Size - 1; i >= 0; i--) { jsonArray->Append(contactsList_->GetAt(i)->ToJsonObject()); } @@ -170,7 +170,7 @@ ContactsViewModel::Destringify(String^ data) String^ lastTime; JsonArray^ contactlist = jsonObject->GetNamedArray(contactListKey, ref new JsonArray()); - for (unsigned int i = 0; i < contactlist->Size; i++) { + for (int i = contactlist->Size - 1; i >= 0; i--) { IJsonValue^ contact = contactlist->GetAt(i); if (contact->ValueType == JsonValueType::Object) { JsonObject^ jsonContactObject = contact->GetObject(); diff --git a/Package.appxmanifest b/Package.appxmanifest index 209ddd873accf7c3d49f63c1bce82025a345ee3a..71f87a49ce60b5cb78c55d895db591f317c849c7 100644 --- a/Package.appxmanifest +++ b/Package.appxmanifest @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3" IgnorableNamespaces="uap uap3 mp"> - <Identity Name="Savoir-faireLinux.GNURing" Publisher="CN=8121A5F7-3CA1-4CAA-92B2-4F595B011941" Version="1.1.20.0" /> + <Identity Name="Savoir-faireLinux.GNURing" Publisher="CN=8121A5F7-3CA1-4CAA-92B2-4F595B011941" Version="1.1.21.0" /> <mp:PhoneIdentity PhoneProductId="2385953f-9019-423d-aa82-d1bbacfa258b" PhonePublisherId="00000000-0000-0000-0000-000000000000" /> <Properties> <DisplayName>GNU Ring</DisplayName> diff --git a/SmartPanel.xaml.cpp b/SmartPanel.xaml.cpp index 2ee06291e553d7b6afe6cf20f2a689ef4e5673b6..b135fcc281ee94ffbbc37e6a9b9c02af619b2c5e 100644 --- a/SmartPanel.xaml.cpp +++ b/SmartPanel.xaml.cpp @@ -121,7 +121,8 @@ SmartPanel::SmartPanel() ContactsViewModel::instance->contactAdded += ref new ContactAdded([this](Contact^ contact) { auto smartPanelItem = ref new SmartPanelItem(); smartPanelItem->_contact = contact; - SmartPanelItemsViewModel::instance->itemsList->Append(smartPanelItem); + contact->_lastTime; + SmartPanelItemsViewModel::instance->itemsList->InsertAt(0, smartPanelItem); }); RingD::instance->exportOnRingEnded += ref new RingClientUWP::ExportOnRingEnded(this, &RingClientUWP::Views::SmartPanel::OnexportOnRingEnded); @@ -154,8 +155,8 @@ SmartPanel::OnstateChange(Platform::String ^callId, RingClientUWP::CallStatus st case CallStatus::ENDED: { auto callsList = DRing::getCallList(); - if (callsList.empty()) - _settingsMenuButton_->Visibility = VIS::Visible; + if (callsList.empty()) + _settingsMenuButton_->Visibility = VIS::Visible; break; } case CallStatus::IN_PROGRESS: diff --git a/SmartPanelItemsViewModel.cpp b/SmartPanelItemsViewModel.cpp index 5257cb7a07d137672d74349832fba474409c8b6e..df4fb560e97b350636f5776b94e28e33d64fde5c 100644 --- a/SmartPanelItemsViewModel.cpp +++ b/SmartPanelItemsViewModel.cpp @@ -89,11 +89,19 @@ void RingClientUWP::ViewModel::SmartPanelItemsViewModel::removeItem(SmartPanelIt void RingClientUWP::ViewModel::SmartPanelItemsViewModel::moveItemToTheTop(SmartPanelItem ^ item) { - unsigned int index; + unsigned int spi_index, cl_index; + + if (itemsList->IndexOf(item, &spi_index)) { + if (spi_index != 0) { + + auto contactList = ContactsViewModel::instance->contactsList; + auto contactListItem = ContactsViewModel::instance->findContactByName(item->_contact->_name); + contactList->IndexOf(contactListItem, &cl_index); + contactList->RemoveAt(cl_index); + contactList->Append(contactListItem); + ContactsViewModel::instance->saveContactsToFile(); - if (itemsList->IndexOf(item, &index)) { - if (index != 0) { - itemsList->RemoveAt(index); + itemsList->RemoveAt(spi_index); itemsList->InsertAt(0, item); item->_isHovered = false; } diff --git a/VCardUtils.cpp b/VCardUtils.cpp index 7751fe50785641b97931a6b40fc1899bd74e6aa6..7b23035a9b32f87b4b8beb35367c01243c891a54 100644 --- a/VCardUtils.cpp +++ b/VCardUtils.cpp @@ -56,11 +56,17 @@ VCard::receiveChunk(const std::string& args, const std::string& payload) m_mParts.clear(); + bool foundUID = false; while (std::getline(_payload, _line)) { - if (_line.find("UID:") != std::string::npos) + if (_line.find("UID:") != std::string::npos) { + foundUID = true; break; + } } - m_mParts[Property::UID] = _line.substr(4); + if (foundUID) + m_mParts[Property::UID] = _line.substr(4); + else + m_mParts[Property::UID] = Utils::genID(0LL, 9999999999999LL); bool fnFound = false; while (std::getline(_payload, _line)) { diff --git a/_language-fr.appx b/_language-fr.appx index e746d12fb16dffb904cd71b667db035b955953a2..d8862e0c6b2750b7d59f8d65a167c0f599205e9b 100644 Binary files a/_language-fr.appx and b/_language-fr.appx differ diff --git a/_scale-100.appx b/_scale-100.appx index e5105619d48fbbca8f50d68553f2cdf40df24ab3..d9d035bb4a0ad11a84111b5b051a2913f146d790 100644 Binary files a/_scale-100.appx and b/_scale-100.appx differ diff --git a/_scale-125.appx b/_scale-125.appx index 14f6ca91f010d745c58dfe653887beacf706f54f..737754afb6d516df606e93c06bbea5be4e17e888 100644 Binary files a/_scale-125.appx and b/_scale-125.appx differ diff --git a/_scale-150.appx b/_scale-150.appx index a0ae140e3579481032563623d5c1e1e88351af90..6e1aadb2df081e41fece15ae42fc0fbde1a714a0 100644 Binary files a/_scale-150.appx and b/_scale-150.appx differ diff --git a/_scale-400.appx b/_scale-400.appx index 1bfdeab51a14996f145c4c910104b4bfb4e7427e..5520c2dfad3032df08761715bad34d06276778d5 100644 Binary files a/_scale-400.appx and b/_scale-400.appx differ