Fixes the problem with the not working 'automatically initiate private conversation' in the Secure chat menu

cusax-fix 5041
Marin 13 years ago
parent 654546d419
commit 9712dcedc2

@ -121,25 +121,68 @@ public OtrContactMenu( OtrContact otrContact,
* Since we now support OTRv3 we have to make sure that the user's
* cached policy is up-to-date with the latest allowed version of the
* protocol. We have to set the ALLOW_V3 bit manually for the users.
*
* UPDATE: The WHITESPACE_START_AKE bit should also be manually set
* for any user that have all three ALLOW_V bits set to 1.
*
* All of this is needed because the old users have cached otr policies
* that would not benefit from the recently updated otr functionality
* if these policies are not properly updated.
*/
updateOldOtrPoliciesIfNeeded(otrContact);
buildMenu();
}
private void updateOldOtrPoliciesIfNeeded(OtrContact otrContact)
{
OtrPolicy policy =
OtrActivator.scOtrEngine.getContactPolicy(otrContact.contact);
/*
* This flag is used to indicate whether there are changes in the
* current policy or not. If there are not any changes then we don't
* have to access the configuration service and re-cache the policy.
* This greatly optimizes performance on big configurations.
*/
boolean isChangedFlag = false;
if (policy.getAllowV1() && policy.getAllowV2() && !policy.getAllowV3())
{
policy.setAllowV3(true);
isChangedFlag = true;
}
if (policy.getEnableManual() && !policy.getWhitespaceStartAKE())
{
policy.setWhitespaceStartAKE(true);
isChangedFlag = true;
}
if (isChangedFlag)
{
OtrActivator.scOtrEngine.setContactPolicy(contact.contact, policy);
}
policy = OtrActivator.scOtrEngine.getGlobalPolicy();
isChangedFlag = false;
if (policy.getAllowV1() && policy.getAllowV2() && !policy.getAllowV3())
{
policy.setAllowV3(true);
OtrActivator.scOtrEngine.setGlobalPolicy(policy);
isChangedFlag = true;
}
buildMenu();
}
if (policy.getEnableManual() && !policy.getWhitespaceStartAKE())
{
policy.setWhitespaceStartAKE(true);
isChangedFlag = true;
}
if (isChangedFlag)
{
OtrActivator.scOtrEngine.setGlobalPolicy(policy);
}
}
/*
* Implements ActionListener#actionPerformed(ActionEvent).
*/

Loading…
Cancel
Save