ICEmobile
  1. ICEmobile
  2. MOBI-141

Incremental Update for cloud notifications

    Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.0 Beta
    • Fix Version/s: 1.1 Beta
    • Component/s: None
    • Labels:
      None
    • Environment:
      ICEmobile

      Description

      Current strategy for handling a C2DM notification in Android container, is to cause a page reload. What we really want is to do a page update just as if it had been a normal icepush notification. The icepush bridge needs to provide an API that will allow this, and the container integration needs to use it.

        Activity

        Steve Maryka created issue -
        Hide
        Steve Maryka added a comment -

        Assigning to mircea to provide the bridge api required. Can assign back to me for doing Android container integration. Once we have that working, we can look at Apple and BB.

        Show
        Steve Maryka added a comment - Assigning to mircea to provide the bridge api required. Can assign back to me for doing Android container integration. Once we have that working, we can look at Apple and BB.
        Steve Maryka made changes -
        Field Original Value New Value
        Assignee Steve Maryka [ steve.maryka ] Mircea Toma [ mircea.toma ]
        Hide
        Ted Goddard added a comment -

        The bridge already provides pause and resume APIs for the push connection, so likely the only thing necessary is an ICEfaces bridge method to request a page update.

        When we expand further to non-ICEfaces applications, we will likely need to include the pushid in the notification callback, which may or may not be possible on the different platforms.

        Show
        Ted Goddard added a comment - The bridge already provides pause and resume APIs for the push connection, so likely the only thing necessary is an ICEfaces bridge method to request a page update. When we expand further to non-ICEfaces applications, we will likely need to include the pushid in the notification callback, which may or may not be possible on the different platforms.
        Steve Maryka made changes -
        Fix Version/s 1.1 Beta [ 10320 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #29052 Tue May 15 15:53:08 MDT 2012 mircea.toma MOBI-141 Make retrieveUpdate function public.
        Files Changed
        Commit graph MODIFY /icefaces3/trunk/icefaces/core/src/main/javascript/application.js
        Hide
        Mircea Toma added a comment -

        Made the internal ICEfaces bridge function for retrieving updates public. The function signature is ice.retrieveUpdate(pushID) where the parameter is the pushID that the function will retrieve the update for. The function returns another function that can be called repeatedly, ready to be used as a callback.

        Usage:

        var updateView = ice.retrieveUpdate(pushID);
        ice.push.register([pushID], updateView);

        Show
        Mircea Toma added a comment - Made the internal ICEfaces bridge function for retrieving updates public. The function signature is ice.retrieveUpdate(pushID) where the parameter is the pushID that the function will retrieve the update for. The function returns another function that can be called repeatedly, ready to be used as a callback. Usage: var updateView = ice.retrieveUpdate(pushID); ice.push.register( [pushID] , updateView);
        Mircea Toma made changes -
        Assignee Mircea Toma [ mircea.toma ] Steve Maryka [ steve.maryka ]
        Hide
        Ted Goddard added a comment -

        We likely need something with no parameters like

        ice.ajaxRefresh()

        That will update the current page using ajax. To make this compatible with portlet applications, each view should register so that the above call would result in an ajax update of every view on the page.

        Show
        Ted Goddard added a comment - We likely need something with no parameters like ice.ajaxRefresh() That will update the current page using ajax. To make this compatible with portlet applications, each view should register so that the above call would result in an ajax update of every view on the page.
        Ted Goddard made changes -
        Assignee Steve Maryka [ steve.maryka ] Mircea Toma [ mircea.toma ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #29166 Wed May 23 18:47:03 MDT 2012 mircea.toma MOBI-141 Introduce public ice.ajaxRefresh function.
        Files Changed
        Commit graph MODIFY /icefaces3/trunk/icefaces/core/src/main/javascript/application.js
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #29167 Wed May 23 18:49:07 MDT 2012 mircea.toma MOBI-141 Avoid NPE when body element doesn't have a configuration attached.
        Files Changed
        Commit graph MODIFY /icefaces3/trunk/icefaces/core/src/main/javascript/application.js
        Hide
        Mircea Toma added a comment -

        Implemented ice.ajaxRefresh(viewID) public function that can be used to retrieve the partial updates. When viewID (which is also a pushID) is not provided the function assumes that there's only one view in the page, the viewID will be looked up internally.

        Show
        Mircea Toma added a comment - Implemented ice.ajaxRefresh(viewID) public function that can be used to retrieve the partial updates. When viewID (which is also a pushID) is not provided the function assumes that there's only one view in the page, the viewID will be looked up internally.
        Mircea Toma made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #29389 Thu Jun 07 16:51:55 MDT 2012 steve.maryka Mobi-141: Android container now supports incremental update on resume, so C2DM no longer causes full page refresh.
        Files Changed
        Commit graph MODIFY /icemobile/trunk/icemobile/client/android/container/src/org/icemobile/client/android/ICEmobileContainer.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #29391 Thu Jun 07 17:04:09 MDT 2012 steve.maryka Mobi-141: Removed a bit more obsolete logic around detecting C2DM intent for onResume.
        Files Changed
        Commit graph MODIFY /icemobile/trunk/icemobile/client/android/container/src/org/icemobile/client/android/ICEmobileContainer.java
        Hide
        Steve Maryka added a comment -

        This has been added to the Android container, and is working well. Not only less intrusive from the user perspective, but simplifies processing in the container. No longer need to disable the update if user is using the camera for instance. The thumbnail and hidden fields stay intact while the carousel updates when returning to the main activity from the camera.

        Show
        Steve Maryka added a comment - This has been added to the Android container, and is working well. Not only less intrusive from the user perspective, but simplifies processing in the container. No longer need to disable the update if user is using the camera for instance. The thumbnail and hidden fields stay intact while the carousel updates when returning to the main activity from the camera.
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #29428 Mon Jun 11 12:22:05 MDT 2012 ted.goddard mobiRefresh will use ice.ajaxRefresh if available, otherwise window.location.reload (MOBI-141)
        Files Changed
        Commit graph MODIFY /icemobile/trunk/icemobile/client/blackberry/container/src/org/icemobile/client/blackberry/blackberry-interface.js
        Commit graph MODIFY /icemobile/trunk/icemobile/client/android/container/assets/icefaces/native-interface.js
        Commit graph MODIFY /icemobile/trunk/icemobile/client/ios/icemobile/Container/MainViewController.mm
        Commit graph MODIFY /icemobile/trunk/icemobile/client/ios/icemobile/Container/native-interface.js
        Hide
        Ted Goddard added a comment -

        The native-interface.js files now contain define the function ice.mobiRefresh(). This will invoke ice.ajaxRefresh() if available or window.location.reload if not.

        Show
        Ted Goddard added a comment - The native-interface.js files now contain define the function ice.mobiRefresh(). This will invoke ice.ajaxRefresh() if available or window.location.reload if not.
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #29433 Mon Jun 11 14:36:10 MDT 2012 ted.goddard invoking mobiRefresh via setTimeout (MOBI-141)
        Files Changed
        Commit graph MODIFY /icemobile/trunk/icemobile/client/blackberry/container/src/org/icemobile/client/blackberry/blackberry-interface.js
        Commit graph MODIFY /icemobile/trunk/icemobile/client/android/container/assets/icefaces/native-interface.js
        Commit graph MODIFY /icemobile/trunk/icemobile/client/ios/icemobile/Container/MainViewController.mm
        Commit graph MODIFY /icemobile/trunk/icemobile/client/ios/icemobile/Container/native-interface.js
        Hide
        Ted Goddard added a comment -

        ajaxRefresh was being invoked, but seemed to have no effect on the iPhone, so is now being invoked via setTimeout of 50ms.

        Show
        Ted Goddard added a comment - ajaxRefresh was being invoked, but seemed to have no effect on the iPhone, so is now being invoked via setTimeout of 50ms.
        Migration made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Steve Maryka
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: