[Windows Mobile Apps and Games] kalhimeo:
It has been a bit more than 1 week now that I am using CHT 2.0 final (coming from 1.8.5). First I want to say that I could already not live without it. It's a great piece of software, done by a talented coder. I really appreciate the attention put to the details (for example the fact that volume keys are activated on the locksreen only when the music widget is playing, just brilliant).

I thought it may be useful to give you a detailed bug report, some basic feature requests (only those related to existing features) and a small code update suggestion for the appointment widget.

Bugs I met

:

- As already reported by others, the tasks widget crash when there are no tasks. Full report with debug files in post 2679

- An other bug with the tasks widget, the "Max Tasks Count" setting is not applied correctly. Full report in post 2702

- Bug when QuickLinks have "Independent page count" and you swipe left/right, up/down too fast. If you have for example 1 line of a 4x4 QuickLinks (with 3 pages) on your HomeScreen, try to swipe to the left or right on the quicklinks to move to the next Quicklinks page, and then swipe down quickly to go to the full 4x4 Quicklinks. If you do that before the "left/right" animation has ended, you will end with a bugged display. This does not happen if the Quicklinks are NOT set as "Independent" (in that case the whole HomeScreen page slide left/right of course).

- Sometimes (usually the first time) when in "Edit mode" the menu will not appear after a long tap (this is probably the same as the bug in "known issues".

- I don't know what is the intended behaviour when you drop down the "slider" of the Appointment and Task widgets, I thought that it would always come "on the top" of any other item which is overlapped. It seems to work like that for the Tasks widget, but I noticed that the Appointment widget does not override the Tasks widget (it does work indeed when you "release" the slider, then any other widget behind is hidden, but not while holding the slider).

- The weather animation seems not to override the RSS Widget (sun rays appear over the Task and Appointment widgets, but below the RSS Widget)

- When using contacts in QuickLinks, sometimes the contact picture is replaced by the default black and white contact image. For info this seems to happen randomly to contact with or without a facebook account (an picture) linked.

- After a few time the quicklinks will start to be mixed (in my case some quicklinks were mirrored to random positions, overwriting the existing ones). It looks like it happens after screen rotations to landscape.

- The lockscreen sometimes display the keyboard icon. This was already reported and I read that co0kie is looking for alternative solutions to use the "full screen" feature of the lockscreen.

- Once my taskbar (top bar) disapeared after a few time using the device, I cannot provide more details for the moment.

Suggestions

:

- I saw this request from other users as well, I think it may be nice to have a link to come back to a "default" CHT page/level. I think that the easiest way to do that would be a command line parameter for "CHT_Helper.exe" like "-switchtopage level page".

- When a new email or sms message arrives, it would be useful to make the email and messages widget to display this last message automatically. For example if your widget was displaying message 7/50 and you receive a new message, the widget automatically goes to message 1/51.

- Since we can display 5 softkeys, I think that it would make sense to be able to add 5 custom softkeys instead of 3 :) For those who may be interested, I was able to temporarily fix that by editing the CHT_Softkeys.lua. Look for "CHTSoftKeysSimple:AddKeySimple" and manually replace the icon and execution path (use 'function() Shell_NavigateTo("path", "parameter")').

- It would be nice to have an option to disable the "mark email as read" (or message) when the widget is used on the lockscreen.

Code update suggestions

:

I love the new "Don't repeat multiday" feature of CHT 2.0. I have a lot of appointments going through midnight and it was a pain to have multiple lines for that. Co0kie you did a GREAT job on that. But I still missed some details for my appointments like the "stop time" (hour) of the last day for example.

So I modified the Co0kieAppointments.lua to change the display of the multidays appointments when the "Don't repeat multiday" option is enabled.

I post it here as a suggestion, feel free to use it :

elseif parRange == VALID_RANGE_MultiDay_Today then
if self.doNotRepeatMultiday then
-- START kalhimeo
local locNextDay2 = GetNextDay(parStart)
-- Started yesterday
if locToday.Year == locNextDay2.Year and locToday.Month == locNextDay2.Month and locToday.Day == locNextDay2.Day then
-- End today
if parEnd.Year == locToday.Year and parEnd.Month == locToday.Month and parEnd.Day == locToday.Day then
locReturnString = Locale:GetString("IDS_YESTERDAY") .. ": " .. parStart:GetTimeString(TimeFormatOptions_Default) .. " - " .. Locale:GetString("IDS_TODAY") .. ": " .. parEnd:GetTimeString(TimeFormatOptions_Default)
-- End later
else
locReturnString = Locale:GetString("IDS_YESTERDAY") .. ": " .. parStart:GetTimeString(TimeFormatOptions_Default) .. " - " .. parEnd:GetDateString(Locale:GetString("IDS_DATEFORMAT"))
end
-- Started before yesterday
else
-- End today
if parEnd.Year == locToday.Year and parEnd.Month == locToday.Month and parEnd.Day == locToday.Day then
locReturnString = locReturnString .. ": " .. parStart:GetTimeString(TimeFormatOptions_Default) .. " - " .. Locale:GetString("IDS_TODAY") .. ": " .. parEnd:GetTimeString(TimeFormatOptions_Default)
-- End later
else
locReturnString = locReturnString .. ": " .. parStart:GetTimeString(TimeFormatOptions_Default) .. " - " .. parEnd:GetDateString(Locale:GetString("IDS_DATEFORMAT"))
end
end
-- STOP kalhimeo
else
locReturnString = locReturnString .. Locale:GetString("IDS_MULTIDAY") .. " - " .. parEnd:GetTimeString(TimeFormatOptions_Default)
end
elseif parRange == VALID_RANGE_Today_MultiDay then
if self.doNotRepeatMultiday then
-- START kalhimeo
local locConsDay = GetNextDay(parStart)
-- Start/Stop 2 consecutive days
if parEnd.Year == locConsDay.Year and parEnd.Month == locConsDay.Month and parEnd.Day == locConsDay.Day then
locReturnString = locReturnString .. parStart:GetTimeString(TimeFormatOptions_Default) .. " - " .. parEnd:GetTimeString(TimeFormatOptions_Default)
-- Stop tomorrow
elseif parEnd.Year == locNextDay.Year and parEnd.Month == locNextDay.Month and parEnd.Day == locNextDay.Day then
locReturnString = locReturnString .. " - " .. Locale:GetString("IDS_TOMORROW") .. parEnd:GetTimeString(TimeFormatOptions_Default)
-- Stop later on
else
locReturnString = locReturnString .. parStart:GetTimeString(TimeFormatOptions_Default) .. " - " .. parEnd:GetDateString(Locale:GetString("IDS_DATEFORMAT"))
end
-- STOP kalhimeo
else
locReturnString = locReturnString .. parStart:GetTimeString(TimeFormatOptions_Default) .. " - " .. Locale:GetString("IDS_MULTIDAY")
end
elseif parRange == VALID_RANGE_MultiDay then
if self.doNotRepeatMultiday then
locReturnString = locReturnString .. parStart:GetDateString(Locale:GetString("IDS_DATEFORMAT")) .. " - " .. parEnd:GetDateString(Locale:GetString("IDS_DATEFORMAT"))
else
locReturnString = locReturnString .. Locale:GetString("IDS_MULTIDAY")
end
end

That's it for now, I hope that you won't be to bored to read this long post :p

Keep up the good work, if it can helps here is my donation 2H168298SX252032V :D

Laurent