GSoC coding - Part 3- 1 min
We have finally come up with a systematic scheme by which we can handle sharing of photos more efficiently. The problem with earlier scheme was, it was too focused on sharing image on Google Photos. Soon, the maintainer (Debarshi Ray) realized that the scheme was inefficient and will not scale as we might have multiple places to share in future (for example, bluetooth sharing).
In the new scheme, we have a manager known as “Share point Manager” and the source of sharing to, which is known as a “share point”. Every share point included in application will be a derived class from share-point. For example, currently there has been implementation of google-share-point which enables to upload photos on Google. Similarly, bluetooth-share-point, facebook-share-point, flickr-share-point, email-share-point will all be derived class of share-point. This enables to add as many as share-point as required in a systematic fashion.
The share dialog previously implementated, communicate with the share point manager to get a list of all available share points. The share point object contains the icon, label name, identifier and its source object. Using this object, share point creates GIcon for every share point available and displays it in the UI. Additional members for particular share point can be included in the derived class.
So, are we all set?
Not yet :(
Duplication problem. Online miners in gnome-photos fetch images from services like Google, Facebook, Flickr. If the user uploads a local image to these services (which is what my current project is), the overview mode gets duplicated; one with local image and other as remote copy. Therefore, my current focus is avoid this duplication and provide merging of images in the UI. Things get complicated when the image is the part of the album.
There has been some solution on hand; embedding metadata bits in the image file providing a local -> remote mapping identifier. This could be used to leverage the de-duplication. We are still on the way the most optimum way in which we can handle this problem.
Stay tuned for more. Happy Hacking.