Closed Bug 1067306 Opened 10 years ago Closed 10 years ago

[Contacts] Estimate current haida status in contacts

Categories

(Firefox OS Graveyard :: Gaia::Contacts, defect)

x86
macOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
2.1 S6 (10oct)

People

(Reporter: arcturus, Assigned: arcturus)

References

Details

(Whiteboard: [p=3])

In bug 1022646 we started working on haida, but work has been stop.

We need to estimate current work, and see what things are missing to plan haida for next sprints.
No longer blocks: 1022646
Whiteboard: [p=3]
Target Milestone: --- → 2.1 S5 (26sep)
Assignee: nobody → francisco
Here I manage to put some ideas separating the form to a document:

=====================
Contacts dependencies
=====================


Navigational changes
====================

Contacts.cancel
  - Cancel edition and transition to the contacts list

Contacts.navigation.home
  - Go back to the list after a contact delete. Replaceable by
    a message

Contacts.goBack
  - Navigation to go back after we pick the another contact for
    merging. This saves and go back. Navigation action replaceable
    by message


Utility functions
=================

Contacts.updatePhoto
  - Setup a new photo and propagate to the rest of the app
    the new photo. Can be extracted to an utility method.
    NOT A MESSAGE TO OTHER PARTS -> ISOLATED

Contacts.goToSelectTag
  - Just used in the form, we can move it outside Contacts.js

Contacts.isEmpty
  - Used to check for contacts empty fields. Used in form and
    detail. We can move this to an utility class

contacts.NFC
  - Stop listening for NFC events, we could lazy load the NFC
    class.

Contacts.confirmDialog
  - For confirmation when deleting. Lazy load the dialog html
    in theory could be extracted to an utility library


Interaction with other parts of the application
===============================================

contacts.Search
  - When deleting a contact we need to invalidate the search.
    We can replace this with a message.

Contacts.setCurrent
  - Used to notify contacts what's the current contact object selected.
    We can replace this with a message.



Deep integration (matching and mergin)
======================================

Contacts.extServices
  - Shows duplicated contacts. Check if we can lazyload or we
    need to load from scracth.

contacts.Merger
  - Right now is lazy loaded, shouldn't be a problem

contacts.Matcher
  - Lazy loaded and executed, shouldn't be a problem.


Facebook
========
Makes uses of all the facebook set of functions and postmessaages.
Wich means that we need to load the fb frames as well.


Activities
==========
form.js handles 1 activity, 'new' we dont need to load the whole activity handler,
right now we use just
ActivityHandler.currentlyHandling
ActivityHandler.postNewSuccess
We could have an activity handler just for the form. Also we need to setup the
message handler.


====
HTML
====
- We need to try to get a bare minimun html for form.html. Use the element form.html
  as content, it doesnt make sense to lazy load just that section.


================
Other objectives
================
- Avoid to load contacts.js
Latest work can be found here:

https://github.com/michalbe/gaia/compare/Bug946750-form-temp


Key points that I think that are important:

- Create a new document form.html
- Load the new document into the current architecture via navigation shim.
- Communication between documents via broadcast messenger shim.

Things we need to worry about:
- We have already several iframes that will be reused, and can be triggered from both documents. FB (iframes). This was causing some problems on undesired executions.

- We should trim the form.html to ideally contain just the minimun, current solution also loads contact.js
Otherwise our memory footprint will grow like crazy.

- Don't share all the code, we have activities that are a lot of code. Let's just put the specific part that each document will need.
Target Milestone: 2.1 S5 (26sep) → 2.1 S6 (10oct)
I would suggest to land following the plan:

- Integrate in the current branch thew new form design.
- Clean html for the form.html
- Fix problems with frames interactions (merge, fb, etc.)
- Work on form startup (initialization with data)

I would suggest continue working on a separate branch and perform constant (every single day) rebase from master.

The task could be splitted as exposed above, and this is my estimation for them:

- Integrate the current branch (last work) with latest master: 4 points (16 hours)
- Clean html for the form.html: 2 points (8 hours)
- Fix problems with frames interactions: 3 points (12 hours)
- Work on form startup: 4 points (16 hours)

Definitely to be splitted in more than one sprint.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Folks,

I would need you to validate my estimations and work to be done, based on the comments on this bug.

Thanks!
Flags: needinfo?(sergi.mansilla)
Flags: needinfo?(jmcf)
hi Francisco

I see your estimations rather optimistic. This task has been deviating for a long time so we would need to be conservative with our estimations

thanks!
Flags: needinfo?(jmcf)
(In reply to Jose Manuel Cantera from comment #5)
> hi Francisco
> 
> I see your estimations rather optimistic. This task has been deviating for a
> long time so we would need to be conservative with our estimations
> 
> thanks!

Thanks for the feedback Jose, any proposal?
Flags: needinfo?(jmcf)
(In reply to Francisco Jordano [:arcturus] [:francisco] from comment #6)
> (In reply to Jose Manuel Cantera from comment #5)
> > hi Francisco
> > 
> > I see your estimations rather optimistic. This task has been deviating for a
> > long time so we would need to be conservative with our estimations
> > 
> > thanks!
> 
> Thanks for the feedback Jose, any proposal?

I would suggest we double those estimations, WDYT?
Flags: needinfo?(jmcf)
I agree with doubling the estimeation.
Flags: needinfo?(sergi.mansilla)
You need to log in before you can comment on or make changes to this bug.