[horde] Multiple calendar support

Michael J Rubinsky mrubinsk at horde.org
Sun Mar 22 14:46:19 UTC 2015


Quoting Jan Niggemann <jn at hz6.de>:

> Oh you two just can't get enough of each other, can you? Get  
> yourself a (chat)room ;-)
> That said, I think that some things are better discussed on IRC.

We don't all have the luxury of being in front of an IRC client at the  
same time for these support questions. For example, I'm not in front  
of my laptop at the moment and have no access to IRC - and likely  
won't until sometime tomorrow. That is what a support mailing list is  
for, after all.


> Is it possible to mute this list temporarily, i.e. that I no longer  
> receive emails until I manually un-mute it?

No. However, if the mailing list traffic is too much or not  
interesting in general, you can subscribe to the digest version and/or  
use a filter to direct the traffic to a non-subscribed folder.

> jan
>
>
> Zitat von Andreas Mauser <andreas at mauser.info>:
>
>> ----- Nachricht von Michael J Rubinsky <mrubinsk at horde.org> ---------
>>     Datum: Sun, 22 Mar 2015 10:03:29 -0400
>>       Von: Michael J Rubinsky <mrubinsk at horde.org>
>> Antwort an: mrubinsk at horde.org
>>   Betreff: Re: [horde] Multiple calendar support
>>        An: Andreas Mauser <andreas at mauser.info>, horde at lists.horde.org
>>
>>
>>> Quoting Andreas Mauser <andreas at mauser.info>:
>>>
>>>> ----- Nachricht von Michael J Rubinsky <mrubinsk at horde.org> ---------
>>>>   Datum: Sun, 22 Mar 2015 09:34:20 -0400
>>>>     Von: Michael J Rubinsky <mrubinsk at horde.org>
>>>> Antwort an: mrubinsk at horde.org
>>>> Betreff: Re: [horde] Multiple calendar support
>>>>      An: horde at lists.horde.org
>>>>
>>>>
>>>>> Quoting Andreas Mauser <andreas at mauser.info>:
>>>>>
>>>>>> Hi Mike,
>>>>>>
>>>>>> ----- Nachricht von Andreas Mauser <andreas at mauser.info> ---------
>>>>>>   Datum: Sun, 22 Mar 2015 11:13:10 +0100
>>>>>>     Von: Andreas Mauser <andreas at mauser.info>
>>>>>> Betreff: Re: [horde] Multiple calendar support
>>>>>>      An: horde at lists.horde.org
>>>>>>
>>>>>>> ----- Nachricht von Andreas Mauser <andreas at mauser.info> ---------
>>>>>>> Datum: Sun, 22 Mar 2015 09:46:04 +0100
>>>>>>>    Von: Andreas Mauser <andreas at mauser.info>
>>>>>>> Betreff: Re: [horde] Multiple calendar support
>>>>>>>     An: mrubinsk at horde.org, "Mailingliste, Horde"
>>>>>> <horde at lists.horde.org>
>>>>>>>
>>>>>>>> Hi Mike,
>>>>>>>>
>>>>>>>> ----- Nachricht von Michael J Rubinsky <mrubinsk at horde.org> ---------
>>>>>>>>      Datum: Sat, 21 Mar 2015 23:45:10 -0400
>>>>>>>>        Von: Michael J Rubinsky <mrubinsk at horde.org>
>>>>>>>> Antwort an: mrubinsk at horde.org
>>>>>>>>    Betreff: Re: [horde] Multiple calendar support
>>>>>>>>         An: Andreas Mauser <andreas at mauser.info>
>>>>>>>>
>>>>>>>>> Quoting Andreas Mauser <andreas at mauser.info>:
>>>>>>>>>
>>>>>>>>>> ----- Nachricht von Michael J Rubinsky <mrubinsk at horde.org>  
>>>>>>>>>> ---------
>>>>>>>>>>     Datum: Sat, 21 Mar 2015 15:26:23 -0400
>>>>>>>>>>       Von: Michael J Rubinsky <mrubinsk at horde.org>
>>>>>>>>>> Antwort an: mrubinsk at horde.org
>>>>>>>>>>   Betreff: Re: [horde] Multiple calendar support
>>>>>>>>>>        An: horde at lists.horde.org
>>>>>>>>>>
>>>>>>>>>>> Quoting Andreas Mauser <andreas at mauser.info>:
>>>>>>>>>>>
>>>>>>>>>>>> ----- Nachricht von Michael J Rubinsky <mrubinsk at horde.org>
>>>>>> ---------
>>>>>>>>>>>>   Datum: Sat, 21 Mar 2015 14:45:32 -0400
>>>>>>>>>>>>     Von: Michael J Rubinsky <mrubinsk at horde.org>
>>>>>>>>>>>> Antwort an: mrubinsk at horde.org
>>>>>>>>>>>> Betreff: Re: [horde] Multiple calendar support
>>>>>>>>>>>>      An: horde at lists.horde.org
>>>>>>>>>>>>
>>>>>>>>>>>>> Quoting Andreas Mauser <andreas at mauser.info>:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> ----- Nachricht von Michael J Rubinsky <mrubinsk at horde.org>
>>>>>>>>
>>>>>>>> ---------
>>>>>>>>>>>>>>      Datum: Sat, 21 Mar 2015 14:18:49 -0400
>>>>>>>>>>>>>>        Von: Michael J Rubinsky <mrubinsk at horde.org>
>>>>>>>>>>>>>> Antwort an: mrubinsk at horde.org
>>>>>>>>>>>>>>    Betreff: Re: [horde] Multiple calendar support
>>>>>>>>>>>>>>         An: horde at lists.horde.org
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Quoting Andreas Mauser <andreas at mauser.info>:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Hi Team and community,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> when I create another calendar in Kronolith.
>>>>>>>>>>>>>>>> And in the settings check the box for more calendar.
>>>>>>>>>>>>>>>> And choose both calendars for sync...
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> ..should the client not sync both calendars  
>>>>>>>>>>>>>>>> automatically, or do
>>>>>>>>>>>>>>>> I need
>>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>> recreate account, or anything?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> If the client supports multiple collections, it  
>>>>>>>>>>>>>>> should. However,
>>>>>>>>>>>>>>> there
>>>>>>>>>>>>>>> are many clients that do NOT support this. The ones we  
>>>>>>>>>>>>>>> know about
>>>>>>>>>>>>>>> (and
>>>>>>>>>>>>>>> are able to detect) are forced to "multiplex" the collections
>>>>>>>>>>>>>>> together
>>>>>>>>>>>>>>> so all events from all of your calendars will appear  
>>>>>>>>>>>>>>> on a single
>>>>>>>>>>>>>>> calendar on the client.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> If you get a log from me can you make it force multiplex then?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> If you look at your ActiveSync device settings in the prefs (or
>>>>>> on
>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>> admin page) you will see a value named "Forced Multiplex Value"
>>>>>>>>>>>>>>> (or
>>>>>>>>>>>>>>> similar). This is a bit mask that identifies what  
>>>>>>>>>>>>>>> collections are
>>>>>>>>>>>>>>> being
>>>>>>>>>>>>>>> forced to a single collection on the client.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I can confirm that my client doesnt seem to use this forced
>>>>>>>>>>>>>> multiplex. I can see that with other of my devices, not  
>>>>>>>>>>>>>> with this
>>>>>>>>>>>>>> partuclar one.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> What client are you using?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> This is Renovate Milestone 5, Android 4.4.4, HTC Sense 6, and I
>>>>>>>>>>>>>> believe its booting with Android 5 but am not sure (they say
>>>>>>>>>>>>>> something on xda-dev)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> The client itself is Calengoo, which is using the  
>>>>>>>>>>>>>> internal android
>>>>>>>>>>>>>> calendar, and the exchange account I created.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thank you,
>>>>>>>>>>>>>> Andreas
>>>>>>>>>>>>>
>>>>>>>>>>>>> Yes, if I can find some way to sniff out this particular client I
>>>>>>>>>>>>> can try to force it. FWIW, this is what the 
>>>>>>>>>>>>> activesync_device_modify hook is for - for those clients  
>>>>>>>>>>>>> that don't
>>>>>>>>>>>>> play nicely with others and are not already dealt with  
>>>>>>>>>>>>> in the stock
>>>>>>>>>>>>> code.
>>>>>>>>>>>>
>>>>>>>>>>>> Okay, so
>>>>>>>>>>>> 1, I could fix it myself with the hook if I would know how to find
>>>>>>>>>>>> out after which string to look?
>>>>>>>>>>>> 2, You would need a sync log from me? A full (huge file) or just a
>>>>>>>>>>>> snap?
>>>>>>>>>>>
>>>>>>>>>>> I basically need the data from the DEVICEINFORMATION and the User
>>>>>>>>>>> Agent etc... Most of this is also listed on the device information
>>>>>>>>>>> prefs page.
>>>>>>>>>>
>>>>>>>>>> When I go to the Activesync Page I can read:
>>>>>>>>>>
>>>>>>>>>> Programm: HTC-EAS-HTCOneM8
>>>>>>>>>> EAS Version: 14.0
>>>>>>>>>>
>>>>>>>>>> What do you mean with the device information prefs page. I did not
>>>>>> find
>>>>>>>>>> more information ad hoc?
>>>>>>>>>
>>>>>>>>> That's the page I meant. It's available under both Administration and
>>>>>>>>> Prefs.
>>>>>>>>>
>>>>>>>>> Is this a stock setup or a custom/modified rom?
>>>>>>>>>
>>>>>>>>> If it's a stock client, I can add something in code. In the meantime,
>>>>>>>>> you can test this by checking for the userAgent property in the hook.
>>>>>>>>> E.g.,
>>>>>>>>>
>>>>>>>>> <code>
>>>>>>>>>
>>>>>>>>> if ($device->userAgent == 'HTC-EAS-HTCOneM8') {
>>>>>>>>>         $device->multiplex =
>>>>>> Horde_ActiveSync_Device::MULTIPLEX_NOTES
>>>>>>>>
>>>>>>>> |
>>>>>>>>>             Horde_ActiveSync_Device::MULTIPLEX_CONTACTS |
>>>>>>>>>             Horde_ActiveSync_Device::MULTIPLEX_CALENDAR |
>>>>>>>>>             Horde_ActiveSync_Device::MULTIPLEX_TASKS;
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> // Be sure to return the device object regardless.
>>>>>>>>> return $device;
>>>>>>>>> </code>
>>>>>>>>
>>>>>>>> I placed the hook in imp/config/hooks.php at the very bottom,  
>>>>>>>> but above
>>>>>>>> the last two '}' and in the ActiveSync Page I now see multiplex for my
>>>>>>>> Device.
>>>>>>>> Its a custom ROM by the way.
>>>>>>>>
>>>>>>>> Nevertheless I still cannot see any other calendar in the android
>>>>>> client.
>>>>>>>
>>>>>>> I unchecked the box for seperate calendars and now it seems to work, I
>>>>>>> can see all calendar data now in the client.
>>>>>>>
>>>>>>> Thank you for the hook!
>>>>>>> Do I need to place it in a .local.php file?
>>>>>>> Andreas
>>>>>>
>>>>>> One last thing.. I have 2 devices with identical user agent.  
>>>>>> One does the multiplexing, the other does not. Same ROM, same  
>>>>>> Versions.
>>>>>>
>>>>>> Any idea?
>>>>>
>>>>> My guess is either the hook was implemented incorrectly, or the  
>>>>> perhaps the client needs to be refreshed/account recreated. If  
>>>>> you see the Forced Multiplex bitmap under the device info, and  
>>>>> it is still not being multiplexed, I would check that all  
>>>>> calendars are selected to be synced in Kronolith's prefs and  
>>>>> then recreate the account on the client.
>>>>
>>>> Hm. Copy/paste your code into the horde/config/hooks.php makes my  
>>>> server unavailable.
>>>>
>>>> your code looks somehow different (for me) from the hooks.php file:
>>>>
>>>> // public function  
>>>> activesync_device_modify(Horde_ActiveSync_Device $device)
>>>> // {
>>>> //     // Example for forcing certain device to force multiplexed
>>>> //     // collections for collection types they don't support multiple
>>>> //     // collections for. Note that this doesn't apply to email folders,
>>>> //     // which are NEVER sent multiplexed.
>>>> //     // NOTE: The Horde_ActiveSync library already determines this based
>>>> //     //	  on some userAgent and version sniffing. You should only
>>>> //     //       perform this here if it doesn't work for you, or you have
>>>> //     //       discovered a device that doesn't fit the logic.
>>>>
>>>> //     // For android devices that don't advertise the android  
>>>> version we have
>>>> //     // to manually set the multiplex flag if we want to force  
>>>> any. E.g.,
>>>> //     // the Galaxy Note 3 doesn't support multiple collections prior to
>>>> //     // KitKat so we have to force them all.
>>>> //     if (empty($device->multiplex)) {
>>>> //         switch (strtolower($device->userAgent)) {
>>>> //         case 'SAMSUNG-SM-N900V/101.403':
>>>> //             // Note 3, Android 4.3
>>>> //             $device->multiplex =  
>>>> Horde_ActiveSync_Device::MULTIPLEX_NOTES |
>>>> //                 Horde_ActiveSync_Device::MULTIPLEX_CONTACTS |
>>>> //                 Horde_ActiveSync_Device::MULTIPLEX_CALENDAR |
>>>> //                 Horde_ActiveSync_Device::MULTIPLEX_TASKS;
>>>> //         }
>>>> //     }
>>>>
>>>> //     return $device;
>>>> // }
>>>>
>>>> The difference for me is if (empty)...? empty I can not associate  
>>>> with your code.
>>>> And I cant see case in your code either... is this the right file  
>>>> here : horde/config/hooks.php  which I created from hooks.php.dist
>>>>
>>>> It looks now like that:
>>>>
>>>> public function activesync_device_modify(Horde_ActiveSync_Device $device)
>>>> {
>>>> //     // Example for forcing certain device to force multiplexed
>>>> //     // collections for collection types they don't support multiple
>>>> //     // collections for. Note that this doesn't apply to email folders,
>>>> //     // which are NEVER sent multiplexed.
>>>> //     // NOTE: The Horde_ActiveSync library already determines this based
>>>> //     //	  on some userAgent and version sniffing. You should only
>>>> //     //       perform this here if it doesn't work for you, or you have
>>>> //     //       discovered a device that doesn't fit the logic.
>>>>
>>>> //     // For android devices that don't advertise the android  
>>>> version we have
>>>> //     // to manually set the multiplex flag if we want to force  
>>>> any. E.g.,
>>>> //     // the Galaxy Note 3 doesn't support multiple collections prior to
>>>> //     // KitKat so we have to force them all.
>>>>     if (device->multiplex) {
>>>>         switch (strtolower($device->userAgent)) {
>>>>         case 'HTC-EAS-HTCOneM8':
>>>> //             // Note 3, Android 4.3
>>>>             $device->multiplex =  
>>>> Horde_ActiveSync_Device::MULTIPLEX_NOTES |
>>>>                 Horde_ActiveSync_Device::MULTIPLEX_CONTACTS |
>>>>                 Horde_ActiveSync_Device::MULTIPLEX_CALENDAR |
>>>>                 Horde_ActiveSync_Device::MULTIPLEX_TASKS;
>>>>         }
>>>>     }
>>>>
>>>>     return $device;
>>>> }
>>>>
>>>>
>>>> }
>>>>
>>>> And it does not work for me.
>>>
>>>
>>> Yeah, the hook is incorrect. If you are going to adapt it to the  
>>> example code instead of just replacing it, you need to do some  
>>> more stuff. You reversed the logic on the if conditional so now it  
>>> only checks the userAgent if multiplex is already set - so if the  
>>> device wasn't detected by existing code as needed multiplex, the  
>>> hook will never set it either. You also are comparing uppercase  
>>> UserAgent string with a strtolower'd string so that will never  
>>> match either. Try replacing the entire hook with:
>>>
>>> // conditional prevents overwriting any existing multiplex values.
>>> // It's possible that in some edge cases existing code could set an
>>> // incorrect multiplex value (instead of just not setting one at all)
>>> // so this check can be removed and replaced with a  
>>> straight-forward userAgent
>>> // comparison or username/device/userAgent or whatever works in  
>>> your case...
>>> if (empty($device->multiplex)) {
>>>   switch (strtolower($device->userAgent)) {
>>>   case 'htc-eas-htconem8':
>>>       $device->multiplex =
>>>           Horde_ActiveSync_Device::MULTIPLEX_NOTES |
>>>           Horde_ActiveSync_Device::MULTIPLEX_CONTACTS |
>>>           Horde_ActiveSync_Device::MULTIPLEX_CALENDAR |
>>>           Horde_ActiveSync_Device::MULTIPLEX_TASKS;
>>>   }
>>> }
>>>
>>> return $device;
>>
>>
>> As soon as I put the code in the server responding with  
>> communication failed to server.
>>
>> It now looks like that in the file:
>>
>>   * @return Horde_ActiveSync_Device  The possibly modified device object.
>>    */
>>  // public function  
>> activesync_device_modify(Horde_ActiveSync_Device $device)
>>  // {
>>  //     // Example for forcing certain device to force multiplexed
>>  //     // collections for collection types they don't support multiple
>>  //     // collections for. Note that this doesn't apply to email folders,
>>  //     // which are NEVER sent multiplexed.
>>  //     // NOTE: The Horde_ActiveSync library already determines this based
>>  //     //	  on some userAgent and version sniffing. You should only
>>  //     //       perform this here if it doesn't work for you, or you have
>>  //     //       discovered a device that doesn't fit the logic.
>>
>>  //     // For android devices that don't advertise the android  
>> version we have
>>  //     // to manually set the multiplex flag if we want to force any. E.g.,
>>  //     // the Galaxy Note 3 doesn't support multiple collections prior to
>>  //     // KitKat so we have to force them all.
>>  //     if (device->multiplex) {
>>  //         switch (strtolower($device->userAgent)) {
>>  //         case 'HTC-EAS-HTCOneM8':
>>  //             // Note 3, Android 4.3
>>  //             $device->multiplex =  
>> Horde_ActiveSync_Device::MULTIPLEX_NOTES |
>>  //                 Horde_ActiveSync_Device::MULTIPLEX_CONTACTS |
>>  //                 Horde_ActiveSync_Device::MULTIPLEX_CALENDAR |
>>  //                 Horde_ActiveSync_Device::MULTIPLEX_TASKS;
>>  //         }
>>  //     }
>>
>>  //     return $device;
>>  // }
>>
>> if (empty($device->multiplex)) {
>>    switch (strtolower($device->userAgent)) {
>>    case 'htc-eas-htconem8':
>>        $device->multiplex =
>>            Horde_ActiveSync_Device::MULTIPLEX_NOTES |
>>            Horde_ActiveSync_Device::MULTIPLEX_CONTACTS |
>>            Horde_ActiveSync_Device::MULTIPLEX_CALENDAR |
>>            Horde_ActiveSync_Device::MULTIPLEX_TASKS;
>>    }
>> }
>>
>> return $device;
>>
>> }
>>
>> And brings up the comunication problem with the server.
>>
>> Andreas
>
>
> -- 
> Horde mailing list
> Frequently Asked Questions: http://horde.org/faq/
> To unsubscribe, mail: horde-unsubscribe at lists.horde.org



-- 
mike
The Horde Project
http://www.horde.org
https://www.facebook.com/hordeproject
https://www.twitter.com/hordeproject
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5869 bytes
Desc: S/MIME Signature
URL: <http://lists.horde.org/archives/horde/attachments/20150322/d6402648/attachment.bin>


More information about the horde mailing list