Pointui » Home 2 Applets Showcase

[APPLET][26-Apr][v1.6 b1 patch]Calendar + Appointment (plus v2.0 preview)

(219 posts)
  1. [26-April] This is a patch file to improve on the performance, especially when you rotate the screen. Also eliminate redundant objects, so it should use up lesser memory. Calendar Applet v1.6 b1 is needed for this patch

    [21-April] Enhancement to add features such as year view, landscape support, performance optimization & bug fix. Home2 0.30b is needed for this release

    [11-April] Enhancement to add features such as animation and "Show all day appointments" screen, as well as limited support for QVGA and VGA devices. You can watch the video of the calendar applet version 1.5 b1 in action from here

    [30-March] Incremental update to fix the appointment view refresh bug.

    [29-March] I have decided to release the calendar+appointment applet as first beta release. Instead of waiting for PointUI's release of 0.30b (because of the missing functions needed to create a calendar view), I have decided to develop the missing functions although it's not elegantly written. It's just a stop-gap fix, once PointUI's 0.30b is released, I will update the code accordingly.

    [24-March] After modifying a few applets, I was impressed by PointUI's scripting capability, that I decided to roll up my sleeve to get hands on in developing a calendar + appointment applet. As some key date api functions are currently missing, and will only available in 0.30, the applet will not be released so soon. However, I made some initial development, on classes and UI necessary to 'paint' the calendar page, and the appointments.


    April-26: version 1.6 beta-1 patch download link for VGA/WVGA and QVGA/WQVGA
    • Fix: Improves performance and memory usage
    • Removed: Appointment detail screen support. Clicking on the individual appointment brings you to the default OS calendar directly
    • Installation Prerequisite: Calendar Applet v1.6 b1 must be installed first

    April-21: version 1.6 beta-1 download link for VGA/WVGA and QVGA/WQVGA

    • Fix: Today indicator and text does not automatically get updated (when a new Today occurs)
    • Fix: Bug in the appointment area which always default to year 2009
    • Enhance: Optimize performance esply when you switch from month to month
    • Enhance: Improved UI for All Appointment/Day view
    • Added: Variable size applet support (applet now make use of the available applet space, based on your setting such as full screen, search button, etc)
    • Added: Landscape support (for wvga screen, the appointments will show on the right hand side of the calendar)
    • Added: Year view to select and jump to the month calendar view
    • Installation Prerequisite: Home2 0.30b must be installed
    • Installation Note: Install the CAB and add the calendar applet from the applet screen. The loading time of the applet could take a few seconds but this is only when you first add the applet, or when PointUI is starting up. Copy the Theme.XML file to your active theme folder for optimal display


    April-11: version 1.5 beta-1
    • Fix: Today indicator and "Today"/"Tomorrow" text not updated after a day
    • Feature Added: Animation while loading calendar and displaying appointment summary on main screen
    • Feature Added: Tapping on the appointment date (under the calendar) brings up screen that shows all the appointments for the selected date. The appointments are paginated (4 per screen) and you can swipe left/right to navigate from screen to screen.
    • limited support for VGA/QVGA device
    • Installation Note: Backup/Remove the calendar folder, Run Calendar-1.5-b1.CAB in your device's file explorer. Copy Theme.xml to your active theme folder

    March-30: version 1.0 beta-2

    • Fix: Appointment view does not auto-refresh
    • Installation Note: Copy Calendar.cs to the version 0.1 beta-1


    March-29: version 1.0 beta-1
    • First beta release, support WVGA only
    • Baseline Features Added: Month View, Day & Next Day Appointment View, Today Highlight
    • Known Issue: Leap year not supported, Appointment view does not auto-refresh (fix in 0.1 beta-2)
    • Installation Note: Copy Theme.xml to your active theme folder
    • Also add WQVGA support

    Here's some screenshots

    Planned Feature

    1. Click on each day brings you appointments on that day, and the following day (completed)
    2. Click on prev and next button to change month calendar view
    3. (added in 1.0b1)
    4. Click on appointment listing to go to calendar application (added in 1.5b1)
    5. Ability to select year/month/week/day view (added in 1.6b1 except for week view, see below)
    6. Need to handle multi-day and all-day appointments (added in 1.0b1)
    7. Always highlight Today in the calendar (added in 1.0b1)
    8. Add Landscape support (added in 1.6b1)
    9. Click & Hold on appointment view to go to screen appointment listing in full screen view (added in 1.5b1)
    10. Support for variable applet size (Wide versus Normal, QVGA vs VGA, etc) (added in 1.6b1)
    11. Local language support
    12. Performance Optimization (updated in 1.6b1)
    13. Add tasks support
    14. Add user preference setting (select first day of week, calendar size, etc)
    15. Highlighting days that have appointments [dev note: This is highly dependent on pointui's scripting support as current method will cause a slowness in performance if the feature is enabled for month view. Week view might be possible]
    16. Option to show the upcoming events for the whole week in the applet (i.e. week view)
    17. Add sliding function to go to other years (as with day view, i.e. appointment pages)

    Known bugs

    1. Today indicator does not update automatically (fixed in v1.6b1)
    2. Appointment listing on main screen shows "Today" and "Tomorrow" wrongly a day after the applet is loaded fixed in v1.5
    3. Appointment listing on main screen always default year to 2009 (fixed in v1.6b1)
    4. Leap year not supported (fixed in v1.6b1)
    5. Appointments in Today screen does not refresh automatically/Past due appointments still show up
    6. At the appointment detail view, there is no going back to day view. It always goes directly back to the month view
    7. Appointment detail view does not support landscape mode
    8. Clicking on 'Back' softkey at the Day View jumps out to the month view instead of previous screen
    9. Message "No appointments for day XXX" are not properly aligned


    Disclaimer
    Unlike many applet developers, My last active/intensive software development effort was more than a decade ago. Although in the last few years, I have written a couple of small utility programs, they are afterall, developed for fun. Therefore, I am not liable for any damages or liabilities, in any shape or form, as a result of the use of my program.

    Download link for latest version VGA/WVGA and QVGA/WQVGA

    Attachments

    1. sshot006.png (34.4 KB, 178 downloads) 1 year old
    2. sshot004.png (67.6 KB, 83 downloads) 1 year old
    3. sshot003.png (28 KB, 83 downloads) 1 year old
    4. sshot002.png (34.7 KB, 74 downloads) 1 year old
    5. sshot001.png (71.4 KB, 150 downloads) 1 year old
    6. Calendar-20090411-wqvga-qvga.zip (21.2 KB, 20,574 downloads) 1 year old
    7. Calendar-20090411-wvga-vga.zip (40 KB, 3,403 downloads) 1 year old
    8. Calendar-20090330-wvga-wqvga.zip (5.2 KB, 1,116 downloads) 1 year old
    9. Calendar-20090329-wvga.zip (31.6 KB, 725 downloads) 1 year old
    10. Calendar-20090329-wqvga.zip (16.6 KB, 856 downloads) 1 year old
    Posted 1 year ago #
  2. nice work zenkinz, I started such a thing to complete my Appointment Applet, I would be realy interested by the algorithme you use to build the calendar layout, because I didn't succed in doing this by using just the DateTime API.

    Posted 1 year ago #
  3. @joelaloose,

    the current DateTime API is insufficient to dynamically draw the calendar page, as there's no way for me to determine if the year is leap year, or when the first day of the month starts. So I'm right now coding assuming that there'll be function to determine leap year and day, and by 0.30b we should have these functions made avaialble.

    Posted 1 year ago #
  4. randy_c
    Member

    Would mind posting your theme too?

    Posted 1 year ago #
  5. you can find the theme here

    Posted 1 year ago #
  6. michaelp
    Member

    Watching with interest.

    Posted 1 year ago #
  7. Oliverano
    Member

    how can I download this applet???

    Posted 1 year ago #
  8. it's not available yet, mainly because the api functions required to render the calendar is missing in current home2 release. Right now I'm using a pseudo function to assimilate the missing function, so that I can have this proof of concept.

    Posted 1 year ago #
  9. This is gonna be one of the most interesting applets! Great!
    Here are some ideas about what I 'd like to find, just as a suggestion...
    1) colors on the grid depend on time (ie green=morning, red=afternoon, blue=evening).
    Same feature could be done with jif little icons ("themeABLE")
    2) clicking on a cell brings to a scrollable window with all of the appointments for that day, double clicking or holding brings to oem calendar/thumbcal (configurable)
    3) today cell has a different background/border
    4) under the grid I can choose how many days to see in advance, or how many appointments in the same day, including 0 (nothing shown). Double-clicking in the area maximize the list to a fullscreen scrollable list (like contacts)

    Thank you in advance for your efforts :-)

    Posted 1 year ago #
  10. can't seem to upload the new wip UI.

    But anyway, quite a fair bit have been done in the last couple of hours. Now I do need some design ideas.

    When PointUI 0.30 is released, this applet should be ready.

    Posted 1 year ago #
  11. uploaded the latest WIP applet screenshot :)

    I have taken out the feature that highlight the grid when there's appointment on that day. If I were to include this feature, there will be performance hit as I need to lookup 30 days of appointment. Until there's a better option for me to look up the day's busy status, I will keep the calendar like the one shown in the thread.

    Posted 1 year ago #
  12. This will be a welcome and amazing new applet.

    Just will have to wait for a QVGA version :(

    Posted 1 year ago #
  13. ABCDEFGabcdefg
    Member

    zenkinz... isn't there something of a function available that just lists all appointments? So without having to look on a day by day basis? Maybe you can then filter the appointment list by the active month?

    Also don't try to add to much images to your calendar. I really like the clean look of it now! If you try to cramp too much information in it, it might appear cluttered in the end. But hey... that's just my 49 cents ;-)

    Edit: for instance, use the following code to filter the code

    DataTable appts;
    Appointments.GetAppointments(appts);
    while (appts.MoveNext())
    {
    //if appts.date.month == currentmonth then store in new datatable
    }

    And then when painting the calendar use this filtered datatable to lookup the appointments for the day you're painting. And instead of a 'foreach' statement, iterate through it remembering the pointer.
    Example in sorta-pseudo-code

    for (int day = 1; day <= month.DaysInMonth; day++)
    {
    if (app.date.day > day)
    {
    //paint day
    }
    else
    {
    //paint day with appointment icon
    while (!app.date.day > day && !app.endOfTable)
    {
    app.MoveNext;
    }
    }
    }

    Posted 1 year ago #
  14. Harboe
    Member

    Looks super cool. Hope someone can convert it to wqvga. :-)

    Posted 1 year ago #
  15. FloatingFatMan
    Member

    @aussie_boi


    This will be a welcome and amazing new applet.

    Just will have to wait for a QVGA version :(

    No way is he going to be able to fit the calendar display on to QVGA screens. There just isn't enough room with current font sizes. He MIGHT be able to do it if he uses graphics for the day numbers, but that will increase the memory footprint.

    Calendars are buggers to generate...

    Posted 1 year ago #
  16. LeAdReW
    Member

    please qvga i really need calendar applet!

    Posted 1 year ago #
  17. if it's qvga it probably means there's no appointment list.

    I'm quite undecided on the calendar design, with grid line or without. The good thing is it can be skinned, just wonder if default skin should have grid line or not.

    Attachments

    1. sshot001_2.gif (75.7 KB, 25 downloads) 1 year old
    Posted 1 year ago #
  18. FloatingFatMan
    Member

    @zenkins.

    Honest opinion? I'd say not. It's always good to keep the base applet as memory light as possible. However, it can't hurt to provide a separate zip with the grid skin included. ;)

    Posted 1 year ago #
  19. DataTable appts;
    Appointments.GetAppointments(appts);
    while (appts.MoveNext())
    {
    //if appts.date.month == currentmonth then store in new datatable
    }

    I believe this will throw out ALL the appointments in the POOM. So it's equivalent to to scan the entire POOM just to find out which appointments are in the current selected month. I could be wrong...

    Posted 1 year ago #
  20. FloatingFatMan
    Member

    Wouldn't it be better to use the filter and just filter out anything not in the current month?

    Posted 1 year ago #
  21. Wouldn't it be better to use the filter and just filter out anything not in the current month?

    yes it can be done. But the query will take a couple of second, and the thing is during these couple of second, the system will be frozen. If the filter is just for a few days, the performance hit is not obvious.

    I will check with Joel if there's a better way of getting a list of appointments w/o impacting the performance....

    Posted 1 year ago #
  22. @zenkins.

    Honest opinion? I'd say not. It's always good to keep the base applet as memory light as possible. However, it can't hurt to provide a separate zip with the grid skin included. ;)

    I thought grid-less is also cleaner too ;-)

    Just uploaded one w/o the grid lines.

    Posted 1 year ago #
  23. FloatingFatMan
    Member

    An ideal situation would be to be able to apply a filter to the Appointments object itself, so that your call to GetAppointments ONLY retrieves the filtered list instead of everything. I've thought from the start that getting everything was silly and inefficient...

    Posted 1 year ago #
  24. Thanks FloatingFatMan, I basically knew that, was really wishful thinking.

    Actually I wish more applet developers could do something similar to what alf has done with myPhone Applet - where he has a button function to link to another screen.

    I think you will know what I mean ... see the attached, where alf uses this to basically call a new screen

    This way the opening screen would be for the calendar and when you select the date, it would link to a new screen with the appointments.

    Otherwise, I need a new WVGA phone :(

    Attachments

    1. myApplet_Controls.png (3.9 KB, 15 downloads) 1 year old
    Posted 1 year ago #
  25. LeAdReW
    Member

    please qvga i really need calendar applet!

    Posted 1 year ago #
  26. WildSioux
    Member

    Wow this is kind of like thumbcal. QVGA PLEASE!

    Posted 1 year ago #
  27. randysng
    Member

    good job !!!!!!!!!!!!!!!!!!!!!!!!!

    Posted 1 year ago #
  28. ABCDEFGabcdefg
    Member

    zenkinz... if you can and are willing to spare a few minutes of your time, can you check something for me?

    In your active theme, change the Theme.xml to have the Red color value be #ff0101 instead of #ff0000. This way there PointUI won't show a white shadow on the background of the current day. I'm wondering how this looks like? I think the current day will 'pop out' more in the calendar with the modified red. (I at least had to look at the WIP image 4 times notice the current day change in color...)

    Thanks!

    Posted 1 year ago #
  29. zenkinz... if you can and are willing to spare a few minutes of your time, can you check something for me?

    In your active theme, change the Theme.xml to have the Red color value be #ff0101 instead of #ff0000. This way there PointUI won't show a white shadow on the background of the current day. I'm wondering how this looks like? I think the current day will 'pop out' more in the calendar with the modified red. (I at least had to look at the WIP image 4 times notice the current day change in color...)

    Thanks!

    I decided to do away from the red font, but instead do with this. Can you spot the current day? :)

    Attachments

    1. sshot004.gif (68.4 KB, 15 downloads) 1 year old
    Posted 1 year ago #
  30. first beta release! :-)

    Posted 1 year ago #

RSS feed for this topic

Reply »

You must log in to post.