Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
savoirfairelinux
jami-client-uwp
Commits
8fb4296a
Commit
8fb4296a
authored
Dec 11, 2016
by
Nicolas Jager
Browse files
fix : disallow multiple contacts with same ring id
Change-Id: I9d38babdef507d4e4619ab007442e1517d3711d1 Tuleap: #790
parent
8e8787fa
Changes
2
Show whitespace changes
Inline
Side-by-side
MainPage.xaml.cpp
View file @
8fb4296a
...
...
@@ -343,8 +343,8 @@ void MainPage::Application_Resuming(Object^, Object^)
void
RingClientUWP
::
MainPage
::
OncloseMessageTextPage
()
{
auto
s
martPanel
=
dynamic_cast
<
SmartPanel
^>
(
_smartPanel_
->
Content
)
;
s
martPanel
->
unselectContact
(
);
S
martPanel
ItemsViewModel
::
instance
->
_selectedItem
=
nullptr
;
s
howFrame
(
_welcomeFrame_
);
}
...
...
SmartPanel.xaml.cpp
View file @
8fb4296a
...
...
@@ -1316,7 +1316,6 @@ void RingClientUWP::Views::SmartPanel::_usernameTextBoxEdition__KeyUp(Platform::
checkStateEditionMenu
();
}
// (XXX) il ne faudrait plus de ringtextbox dans cette fonction, elle devrait etre vider avant de receveoir le resultat
void
RingClientUWP
::
Views
::
SmartPanel
::
OnregisteredNameFound
(
RingClientUWP
::
LookupStatus
status
,
const
std
::
string
&
address
,
const
std
::
string
&
name
)
{
if
(
menuOpen
==
MenuOpen
::
ACCOUNTS_LIST
)
{
// if true, we did the lookup for a new account
...
...
@@ -1381,16 +1380,53 @@ void RingClientUWP::Views::SmartPanel::OnregisteredNameFound(RingClientUWP::Look
switch
(
status
)
{
case
LookupStatus
::
SUCCESS
:
{
if
(
contact
->
_contactStatus
==
ContactStatus
::
WAITING_FOR_ACTIVATION
)
{
contact
->
_contactStatus
=
ContactStatus
::
READY
;
contact
->
ringID_
=
Utils
::
toPlatformString
(
address
);
ringTxtBxPlaceHolderDelay
(
"username found and added."
,
5000
);
ContactsViewModel
::
instance
->
saveContactsToFile
();
}
else
{
/* in that case we delete a possible suroggate */
for
each
(
Contact
^
co
in
ContactsViewModel
::
instance
->
contactsList
)
{
if
(
co
->
_contactStatus
==
ContactStatus
::
WAITING_FOR_ACTIVATION
&&
co
->
_name
==
Utils
::
toPlatformString
(
name
))
{
auto
item
=
SmartPanelItemsViewModel
::
instance
->
findItem
(
co
);
ContactsViewModel
::
instance
->
deleteContact
(
co
);
SmartPanelItemsViewModel
::
instance
->
removeItem
(
item
);
}
}
}
/* open the text message page */
auto
item
=
SmartPanelItemsViewModel
::
instance
->
findItem
(
contact
);
SmartPanelItemsViewModel
::
instance
->
_selectedItem
=
item
;
summonMessageTextPage
();
}
break
;
case
LookupStatus
::
INVALID_NAME
:
if
(
name
.
length
()
==
40
)
{
ringTxtBxPlaceHolderDelay
(
"ring id added."
,
5000
);
// (XXX) on devrait valider que ce soit bien une clee ring
/* first we check if some contact is registred with this ring id */
auto
contactAlreadyRecorded
=
ContactsViewModel
::
instance
->
findContactByRingId
(
Utils
::
toPlatformString
(
name
));
if
(
contactAlreadyRecorded
)
{
ringTxtBxPlaceHolderDelay
(
"you already have a contact with this ring id."
,
5000
);
/* delete the contact added recently */
auto
item
=
SmartPanelItemsViewModel
::
instance
->
findItem
(
contact
);
ContactsViewModel
::
instance
->
deleteContact
(
contact
);
SmartPanelItemsViewModel
::
instance
->
removeItem
(
item
);
/* open the message text with the contact already recorder*/
item
=
SmartPanelItemsViewModel
::
instance
->
findItem
(
contactAlreadyRecorded
);
SmartPanelItemsViewModel
::
instance
->
_selectedItem
=
item
;
summonMessageTextPage
();
break
;
}
ringTxtBxPlaceHolderDelay
(
"ring id added."
,
5000
);
// refacto : we should check if it's an actual ring id
contact
->
ringID_
=
Utils
::
toPlatformString
(
name
);
contact
->
_contactStatus
=
ContactStatus
::
READY
;
ContactsViewModel
::
instance
->
saveContactsToFile
();
...
...
@@ -1664,9 +1700,9 @@ void RingClientUWP::Views::SmartPanel::_ringTxtBx__KeyUp(Platform::Object^ sende
{
if
(
e
->
Key
==
Windows
::
System
::
VirtualKey
::
Enter
)
{
for
(
auto
item
:
SmartPanelItemsViewModel
::
instance
->
itemsList
)
{
if
(
item
->
_contact
->
_name
==
_ringTxtBx_
->
Text
)
{
if
(
item
->
_contact
->
_name
==
_ringTxtBx_
->
Text
||
item
->
_contact
->
ringID_
==
_ringTxtBx_
->
Text
)
{
SmartPanelItemsViewModel
::
instance
->
_selectedItem
=
item
;
return
;
summonMessageTextPage
()
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment