Commit fb0f6cf2 authored by mku's avatar mku

ZP-135 #comment Special chars are broken on an Android 4 and Windows Phone #time 1h

git-svn-id: https://z-push.org/svn/z-push/trunk@1344 b7dd7b3b-3a3c-0410-9da9-bee62a6cc5b5
parent 8fd79134
...@@ -75,7 +75,7 @@ class MAPIProvider { ...@@ -75,7 +75,7 @@ class MAPIProvider {
* @access public * @access public
* @return SyncObject * @return SyncObject
*/ */
public function GetMessage($mapimessage, $contentparameters) { public function GetMessage($mapimessage, $contentparameters, $flags = false) {
// Gets the Sync object from a MAPI object according to its message class // Gets the Sync object from a MAPI object according to its message class
$props = mapi_getprops($mapimessage, array(PR_MESSAGE_CLASS)); $props = mapi_getprops($mapimessage, array(PR_MESSAGE_CLASS));
...@@ -85,15 +85,15 @@ class MAPIProvider { ...@@ -85,15 +85,15 @@ class MAPIProvider {
$messageclass = "IPM"; $messageclass = "IPM";
if(strpos($messageclass,"IPM.Contact") === 0) if(strpos($messageclass,"IPM.Contact") === 0)
return $this->getContact($mapimessage, $contentparameters); return $this->getContact($mapimessage, $contentparameters, $flags);
else if(strpos($messageclass,"IPM.Appointment") === 0) else if(strpos($messageclass,"IPM.Appointment") === 0)
return $this->getAppointment($mapimessage, $contentparameters); return $this->getAppointment($mapimessage, $contentparameters, $flags);
else if(strpos($messageclass,"IPM.Task") === 0) else if(strpos($messageclass,"IPM.Task") === 0)
return $this->getTask($mapimessage, $contentparameters); return $this->getTask($mapimessage, $contentparameters, $flags);
else if(strpos($messageclass,"IPM.StickyNote") === 0) else if(strpos($messageclass,"IPM.StickyNote") === 0)
return $this->getNote($mapimessage, $contentparameters); return $this->getNote($mapimessage, $contentparameter, $flagss);
else else
return $this->getEmail($mapimessage, $contentparameters); return $this->getEmail($mapimessage, $contentparameters, $flags);
} }
/** /**
...@@ -105,7 +105,7 @@ class MAPIProvider { ...@@ -105,7 +105,7 @@ class MAPIProvider {
* @access private * @access private
* @return SyncContact * @return SyncContact
*/ */
private function getContact($mapimessage, $contentparameters) { private function getContact($mapimessage, $contentparameters, $flags) {
$message = new SyncContact(); $message = new SyncContact();
// Standard one-to-one mappings first // Standard one-to-one mappings first
...@@ -147,7 +147,7 @@ class MAPIProvider { ...@@ -147,7 +147,7 @@ class MAPIProvider {
* @access private * @access private
* @return SyncTask * @return SyncTask
*/ */
private function getTask($mapimessage, $contentparameters) { private function getTask($mapimessage, $contentparameters, $flags) {
$message = new SyncTask(); $message = new SyncTask();
// Standard one-to-one mappings first // Standard one-to-one mappings first
...@@ -192,7 +192,7 @@ class MAPIProvider { ...@@ -192,7 +192,7 @@ class MAPIProvider {
* @access private * @access private
* @return SyncAppointment * @return SyncAppointment
*/ */
private function getAppointment($mapimessage, $contentparameters) { private function getAppointment($mapimessage, $contentparameters, $flags) {
$message = new SyncAppointment(); $message = new SyncAppointment();
// Standard one-to-one mappings first // Standard one-to-one mappings first
...@@ -291,7 +291,14 @@ class MAPIProvider { ...@@ -291,7 +291,14 @@ class MAPIProvider {
} }
if (!isset($message->nativebodytype)) $message->nativebodytype = $this->getNativeBodyType($messageprops); if (!isset($message->nativebodytype)) $message->nativebodytype = $this->getNativeBodyType($messageprops);
/*
$message->responserequested = 1;
$message->responsetype = 1;
$message->meetingstatus = 0;
$message->organizername = "mark";
$message->organizeremail = "mark@z62.de";
*/
return $message; return $message;
} }
...@@ -467,9 +474,16 @@ class MAPIProvider { ...@@ -467,9 +474,16 @@ class MAPIProvider {
* @access private * @access private
* @return SyncEmail * @return SyncEmail
*/ */
private function getEmail($mapimessage, $contentparameters) { private function getEmail($mapimessage, $contentparameters, $flags) {
$message = new SyncMail(); $message = new SyncMail();
// if it is not a new message, only return flags as nothing else
// might change for an email
// if ($flags != SYNC_NEW_MESSAGE) {
// $this->setFlag($mapimessage, $message);
// return $message;
// }
$this->getPropsFromMAPI($message, $mapimessage, MAPIMapping::GetEmailMapping()); $this->getPropsFromMAPI($message, $mapimessage, MAPIMapping::GetEmailMapping());
$emailproperties = MAPIMapping::GetEmailProperties(); $emailproperties = MAPIMapping::GetEmailProperties();
...@@ -714,7 +728,7 @@ class MAPIProvider { ...@@ -714,7 +728,7 @@ class MAPIProvider {
$message->importance = IMPORTANCE_NORMAL; $message->importance = IMPORTANCE_NORMAL;
//TODO contentclass and nativebodytype and internetcpid //TODO contentclass and nativebodytype and internetcpid
$message->internetcpid = (defined('STORE_INTERNET_CPID')) ? constant('STORE_INTERNET_CPID') : INTERNET_CPID_WINDOWS1252; if (!isset($message->internetcpid)) $message->internetcpid = (defined('STORE_INTERNET_CPID')) ? constant('STORE_INTERNET_CPID') : INTERNET_CPID_WINDOWS1252;
$this->setFlag($mapimessage, $message); $this->setFlag($mapimessage, $message);
$message->contentclass = DEFAULT_EMAIL_CONTENTCLASS; $message->contentclass = DEFAULT_EMAIL_CONTENTCLASS;
if (!isset($message->nativebodytype)) $message->nativebodytype = $this->getNativeBodyType($messageprops); if (!isset($message->nativebodytype)) $message->nativebodytype = $this->getNativeBodyType($messageprops);
...@@ -731,7 +745,7 @@ class MAPIProvider { ...@@ -731,7 +745,7 @@ class MAPIProvider {
* @access private * @access private
* @return SyncNote * @return SyncNote
*/ */
private function getNote($mapimessage, $contentparameters) { private function getNote($mapimessage, $contentparameters, $flags) {
$message = new SyncNote(); $message = new SyncNote();
// Standard one-to-one mappings first // Standard one-to-one mappings first
...@@ -2129,7 +2143,9 @@ class MAPIProvider { ...@@ -2129,7 +2143,9 @@ class MAPIProvider {
if (Request::GetProtocolVersion() >= 12.0) { if (Request::GetProtocolVersion() >= 12.0) {
$message->asbody = new SyncBaseBody(); $message->asbody = new SyncBaseBody();
$message->asbody->type = $bpReturnType; $message->asbody->type = $bpReturnType;
$message->asbody->data = ($bpReturnType == SYNC_BODYPREFERENCE_RTF) ? base64_encode($body) : w2u($body); $message->asbody->data = ($bpReturnType == SYNC_BODYPREFERENCE_RTF) ? base64_encode($body) :
(isset($message->internetcpid) && $message->internetcpid == INTERNET_CPID_WINDOWS1252 && $bpReturnType == SYNC_BODYPREFERENCE_HTML) ?
windows1252_to_utf8($body, "", true) : w2u($body);
$message->asbody->estimatedDataSize = strlen($message->asbody->data); $message->asbody->estimatedDataSize = strlen($message->asbody->data);
$message->asbody->truncated = 0; $message->asbody->truncated = 0;
} }
...@@ -2346,6 +2362,8 @@ class MAPIProvider { ...@@ -2346,6 +2362,8 @@ class MAPIProvider {
$message->flag = new SyncMailFlags(); $message->flag = new SyncMailFlags();
$this->getPropsFromMAPI($message->flag, $mapimessage, MAPIMapping::GetMailFlagsMapping()); $this->getPropsFromMAPI($message->flag, $mapimessage, MAPIMapping::GetMailFlagsMapping());
$message->flag->flagtype = "Flag for follow up";
// $message->flag->subject = "123";
} }
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment