US20130332526A1 - Creating and sharing image streams - Google Patents
Creating and sharing image streams Download PDFInfo
- Publication number
- US20130332526A1 US20130332526A1 US13/631,948 US201213631948A US2013332526A1 US 20130332526 A1 US20130332526 A1 US 20130332526A1 US 201213631948 A US201213631948 A US 201213631948A US 2013332526 A1 US2013332526 A1 US 2013332526A1
- Authority
- US
- United States
- Prior art keywords
- image
- photo stream
- images
- stream
- comment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/52—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
Definitions
- a person uses a web browser to navigate to a website. The person then logs on to the website and starts posting photos. In some cases, the person can also leave comments regarding those photos. The photos and comments may be viewed by everyone or by a group of people (e.g., friends, family, colleagues) that is associated with the person.
- a group of people e.g., friends, family, colleagues
- the person may take a photo with a smart phone having a camera. To share that photo, the person then has to navigate to the website and log onto the website before he or she can even start uploading the photo. This can entail opening a web browser and inputting the website's URL address into web browser. If a desktop or laptop computer is being used, the person may also have to plug in the smart phone to the computer and then import the photo into the computer. Accordingly, there can be many different steps that must be performed just to share that one photo.
- the website might not provide any easy options to select certain people that can or cannot view a group of photos. For example, when a person shares photos, they can be seen by either everyone or all people (e.g., friends, family, colleagues) that are associated with that person. Similarly, any comments that are left regarding the photos can be viewed by either everyone or the associated people. As such, there may be no easy way to specify a personal or mini social network that excludes one group of people (e.g., friends) while including another group of people (e.g., family).
- Some embodiments described herein provide tools that allow a person to share content (e.g., images, video clips) on one device with multiple other people using different devices. Examples of such devices include a desktop computer, laptop, tablet, smart phone, digital media receiver, smart television (“TV”), etc.
- the content may also be shared across the person's own devices.
- the content sharing tools allow the person to (1) create a shared stream that represents a set of shared content, and (2) invite one or more recipients (e.g., friends, family) to subscribe to the shared stream. When a recipient subscribes to the shared stream, the set of shared content is streamed across to one or more of the recipient's devices.
- the content sharing tools allow different participants to share comments regarding the stream's content.
- the comments are pushed in real time to all devices (e.g., across different platforms) of the different participants associated with the shared stream.
- the content sharing tools create a social network (e.g., a mini social network, a personal social network).
- a participant can take a photo with his or her smart phone, add it to a shared stream album, and receive, at a moment's notice, comments from only those other participants that are associated with the shared stream album.
- the image sharing tools of some embodiments provide a variety of different tools to modify a shared photo stream album.
- the user can use these tools to add or delete image from the shared photo stream album.
- the image is distributed across the user's own devices and the devices of other participants that have subscribed to the shared photo stream album.
- the image may be deleted from the user's own devices and the participants' devices.
- the image sharing tools allow a user to manage a shared photo stream album.
- Example of such management features include resending a photo stream invitation, inviting additional subscribers, removing existing subscribers, and deleting the shared photo stream album.
- the image sharing tools of some embodiments only allow an owner (i.e., the person that created the shared photo stream album) to perform one or more of these management operations.
- the image sharing tools may allow the owner to specify access privileges. That is, the owner can specify whether a subscriber can add images to or remove images from the shared photo stream album, add or remove subscribers, make comments, etc.
- the image sharing tools provide a control that when selected unsubscribes a subscriber from a shared photo stream album.
- the image sharing tools of some embodiments allow content and comments to be shared across different platforms (e.g., from different vendors). That is, a person using one type of computing device (e.g., a tablet, smart phone) can share images and comments with a different person using another type of computing device (e.g., personal computer, laptop).
- the image sharing tools are integrated into an operating system (“OS”).
- OS operating system
- the image sharing tools may be provided as part of an image application (e.g., a photo viewing application, an image organizing and editing application).
- each client may communicate with a control server.
- the control server facilitates the sharing by managing control data associated with different shared photo streams. Examples of such control data include user data (e.g., a list of devices associated with a user) and photo stream data (e.g., a list of photo stream associated with the user, a list of individuals that can access a particular photo stream).
- the control server When a new shared stream album is created, the control server of some embodiments sends file location data to the owner's device. The owner's device then uploads images in the shared photo stream album to a storage server. This storage server may be a third-party storage server. The control sever may also send a message to each recipient that has been invited to participate in the shared stream album. When a recipient accepts the invitation, the images may be downloaded from the storage sever to one or more of the recipient's devices.
- the image sharing tools allow images in a shared photo stream album to be published as a webpage to a website.
- the layout of the webpage is selected based on the number of images and the orientation of the images.
- one particular layout is selected for each batch.
- the images in a batch may be presented in a particular order (e.g., starting with the oldest image and ending with the newest image, or vice versa).
- the different batches may be presented in a particular order (e.g., starting with the oldest batch and ending with the newest batch, or vice versa).
- the webpage is generated by a web-publishing server.
- a client device may generate the web page and upload it to the web-publishing server.
- the image sharing tools in some embodiments are part of a standalone application that executes on top of the operating system of a device, while in other embodiments they are part of the operating system. Also, in many of the examples below (such as those illustrated in FIGS. 1-6 , 8 - 13 , 15 - 18 , 21 - 35 , 38 - 41 , and 49 - 51 ) the device on which the application executes has a touch screen through which a user can interact with the image editing application.
- cursor controllers or other input devices can be used to interact with the controls and applications shown in these examples for other embodiments that execute on devices with cursors and cursor controllers or other input mechanisms (e.g., voice control, remote control).
- FIG. 1 illustrates an example graphical user interface (“GUI”) of an application for sharing images.
- GUI graphical user interface
- FIG. 2 provides an illustrative example of a recipient becoming a subscriber by accepting a photo stream invitation.
- FIG. 3 provides an illustrative example of sharing a comment regarding an image in the photo stream.
- FIG. 4 provides an illustrative example of selecting several images for a photo stream.
- FIG. 5 provides an illustrative example of specifying a name and subscriber for a photo stream.
- FIG. 6 provides an illustrative example of inputting a comment for an image in the new photo stream.
- FIG. 7 conceptually illustrates a process that some embodiments use to create a new photo stream.
- FIG. 8A provides an illustrative example of how a recipient is notified of the photo stream invitation.
- FIG. 8B illustrates an example of the owner receiving notification of the acceptance of the invitation.
- FIG. 9 provides an illustrative example of an email that is received at the recipient's device.
- FIG. 10 provides an illustrative example of a first recipient forwarding the photo stream to a second recipient.
- FIG. 11A provides an illustrative example of the second recipient accepting the photo stream invitation.
- FIG. 11B provides an illustrative example of a notification that is pushed onto the owner's device upon the second recipient accepting the invitation.
- FIG. 12 provides an illustrative example of a subscriber selecting and viewing the photo stream after accepting the invitation.
- FIG. 13 provides an illustrative example of a recipient declining a photo stream invitation.
- FIG. 14 conceptually illustrates a process that some embodiments use to accept or decline a photo stream invitation.
- FIG. 15 provides an illustrative example of adding an image to an existing photo stream.
- FIG. 16 provides an illustrative example of several notifications that are received at the subscriber's device.
- FIG. 17 provides an illustrative example of deleting an image from a photo stream.
- FIG. 18 provides an illustrative example of the photo stream on the subscriber's device after deleting the image.
- FIG. 19 conceptually illustrates a process that some embodiments perform to add or delete images from a photo stream.
- FIG. 20 conceptually illustrates a process that some embodiments perform when a participant adds images to or deletes images from a photo stream.
- FIG. 21 provides an illustrative example of resending a photo stream invitation to a recipient that has not accepted or declined the invitation.
- FIG. 22 provides an illustrative example of adding a subscriber for the photo stream.
- FIG. 23 provides an illustrative example of removing a subscriber.
- FIG. 24 provides an illustrative example of deleting a photo stream.
- FIG. 25 provides an illustrative example of unsubscribing from a photo stream by a subscriber.
- FIG. 26 provides an illustrative example of preventing the user of a device from receiving a photo stream invitation.
- FIG. 27 provides an illustrative example of turning off the shared photo stream features.
- FIG. 28 provides an illustrative example of blocking photo stream alerts.
- FIG. 29 provides an illustrative example of adding a comment regarding an image in a photo stream.
- FIG. 30 provides an illustrative example of how the comment appears on a subscriber's device.
- FIG. 31 provides an illustrative example of how the comment appears on the user's device.
- FIG. 32 provides an illustrative example of marking an image.
- FIG. 33 provides an illustrative example of how the image application of some embodiments displays an image with comments.
- FIG. 34 provides an illustrative example of scrolling through different images with comments.
- FIG. 35 provides an illustrative example of scrolling through the comments associated with one image.
- FIG. 36 conceptually illustrates a process that some embodiments use to post a comment.
- FIG. 37 conceptually illustrates a process that some embodiments use to provide one or more notifications regarding a new comment.
- FIG. 38 provides an illustrative example of publishing a photo stream to a website.
- FIG. 39A provides an illustrative example accessing the webpage with the subscriber's device.
- FIG. 39B provides an example message that is received at a recipient's device.
- FIG. 40 provides an illustrative example of how the webpage is updated when a new image is added to the photo stream.
- FIG. 41 provides an example of scrolling through images in the photo stream.
- FIG. 42 provides an illustrative example of a webpage layout for a photo stream that includes two images.
- FIG. 43 provides an illustrative example of a webpage layout for a photo stream that includes three or four images.
- FIG. 44 provides an illustrative example of a webpage layout for a photo stream that includes five or six images.
- FIG. 45 illustrates webpage layouts for a photo stream that includes more than six images.
- FIG. 46 provides several examples of how images are framed in a webpage layout.
- FIG. 47 provides an illustrative example of how portrait and landscape images are presented in a batch layout.
- FIG. 48 conceptually illustrates a process that some embodiments use to publish images in a photo stream to a website.
- FIG. 49 provides an illustrative example of the image sharing tools on a tablet.
- FIG. 50 provides another example of the image sharing tools on a tablet.
- FIG. 51 provides an illustrative example of how comments are presented on the tablet.
- FIG. 52 provides an illustrative example of opening a shared photo stream with a digital media receiver.
- FIG. 53 provides an illustrative example of navigating images in the photo stream.
- FIG. 54 provides an illustrative example of filtering a display to only display images with one or more new comments.
- FIG. 55 illustrates an example of another image application for a digital media receiver or smart TV.
- FIG. 56 provides an illustrative example of installing and configuring the image sharing tools.
- FIG. 57 illustrates an example of specifying a subscriber and a name for the photo stream.
- FIG. 58 illustrates selecting images for the photo stream and inputting comments for several of the images.
- FIG. 59 provides an illustrative example of accepting a photo stream invitation with a subscriber's device.
- FIG. 60 provides an example of adding an image to a photo stream.
- FIG. 61 provides an illustrative example of leaving a comment using a PC.
- FIG. 62 provides an illustrative example of an alternate embodiment of the integrated image sharing tools.
- FIG. 63 provides an illustrative example of the image sharing tools that are integrated into an image organizing and editing application.
- FIG. 64 provides an illustrative example of accepting a photo stream invitation with a subscriber's device.
- FIG. 65 provides an illustrative example of how the image sharing tools of some embodiments present comments on the photo application.
- FIG. 66 conceptually illustrates an example system architecture in which the clients communicate with the different servers to share images and comments.
- FIG. 67 conceptually illustrates an example of how a user's photo streams are represented at the server side.
- FIG. 68 conceptually illustrates an example process that some embodiments perform to notify recipients of a new-shared stream invitation.
- FIG. 69 conceptually illustrates an example process that some embodiments perform when it receives a response from a recipient device.
- FIG. 70 conceptually illustrates an example process that some embodiments perform to notify participants of a new comment.
- FIG. 71 conceptually illustrates an example process that some embodiments perform to deliver a new comment.
- FIG. 72 conceptually illustrates the software architecture of content sharing tools of some embodiments
- FIG. 73 is an example of an architecture of such a mobile computing device.
- FIG. 74 conceptually illustrates another example of an electronic system with which some embodiments of the invention are implemented.
- Some embodiments described herein provide tools that allow a person to share images on one device with multiple other people using different devices. Examples of such devices include a desktop computer, laptop, tablet, smart phone, digital media receiver, smart television (“TV”), etc.
- the images may also be shared across the person's own devices.
- these tools allow the person to (1) create a photo stream that represents a set of shared images and (2) invite one or more recipients to subscribe to the photo stream. When a recipient subscribes to the photo stream, the set of images is streamed across to one or more of the recipient's devices.
- the image sharing tools allow different participants to share comments regarding the photo stream's images.
- the comments are pushed in real time to all devices (e.g., across different platforms) of the different participants associated with the shared stream.
- the content sharing tools create a social network (e.g., a mini social network, a personal social network).
- a participant can take a photo with his or her smart phone, add it to a shared photo stream, and receive, at a moment's notice, comments from only those other participants that are associated with the shared photo stream.
- the image sharing tools are integrated into an operating system (“OS”).
- the image sharing tools may be provided as part of an image application (e.g., a photo viewing application, an image organizing and editing application).
- FIG. 1 illustrates a graphical user interface (“GUI”) 100 of an application with such image and comment sharing features. Specifically, this figure illustrates in five operational stages 170 - 190 how a user can use the GUI 100 to create a shared photo stream.
- GUI graphical user interface
- a first user creates a photo stream and sends an invitation to a second different user to subscribe to the photo stream.
- the first user may be referred to as an owner, and the second user may be referred to as a recipient or subscriber depending on whether the second user has subscribed to the photo stream.
- the GUI 100 includes (1) an image display area 105 , (2) a photo stream options display area 125 (hereinafter an options sheet), and (3) a photo stream comment display area 150 (hereinafter a comment sheet).
- the image display area 105 is an area within the GUI 100 through which the user can view images.
- the image display area 105 displays thumbnail representations of images. Thumbnails are reduced-size representations of full-size images. At any time, the user can select any one of the thumbnail images to display the corresponding image at a higher resolution. This higher resolution image is typically not the full size image (which is often of a higher resolution than resolution of the display device).
- the thumbnail image represents only a portion of an image.
- the thumbnails in the image display area 105 are all squares, irrespective of the aspect ratio of the full-size images.
- the application of some embodiments identifies the smaller dimension of the image and uses the center portion of the image in the longer dimension.
- the image display area 105 displays images from a collection, namely a camera roll. This is indicated by a top bar 110 that displays “Camera Roll” as the heading for the image display area 105 .
- the camera roll collection includes one or more images taken with the device (e.g., a smart phone, tablet) on which the image application executes. Accordingly, the thumbnail images 102 , 104 , and 106 represent those images taken with the device.
- the GUI 100 includes a bottom bar 115 that displays several selectable controls 112 , 114 , and 116 .
- the user can view images in another collection (e.g., album) by selecting the “Albums” tab 112 .
- the application of some embodiments lists different collections, such as the camera roll collection.
- the user can select the “Photo Stream” tab 114 to display a list of different photo streams.
- the “Places” tab 116 can be selected to display a map showing mapped locations of geotagged images (e.g., images associated with Global Positioning System (GPS) metadata).
- GPS Global Positioning System
- the application includes a separate “Camera Roll” tab for displaying images in the camera roll collection.
- the application may also include a “Photos” tab for displaying all images (e.g., a library of images) taken with the device and/or imported into the device.
- the photo stream options sheet 125 is used to specify different options for a shared photo stream.
- This sheet 125 includes a subscriber field 130 and a name field 135 .
- the subscriber field 130 is an area in the sheet that the user can input one or more recipients for the photo stream. That is, the owner can input contact information into this field to invite the recipients to join the photo stream.
- the contact information that can be inputted in the subscriber field 130 is an email address or a name associated with an email address.
- other types of contact information e.g., a phone number
- the application includes an auto-complete feature. For instance, one or more suggested names from a contacts directory or an address book may be displayed as the owner inputs text into the field 130 . The owner can then select a suggested name to automatically fill in the field 130 .
- the name field 135 allows the user to specify a name or title for the photo stream. For example, the owner can use this field to input a name or title that summarizes the photo stream's images.
- the name specified with the name field 135 may be displayed in a number of different places. The name may appear in the photo stream invitation (e.g., email message). The name may also appear as the heading for the shared photo stream.
- the comment sheet 150 can be used to add a comment.
- the comment sheet 150 includes a comment field 155 for inputting the comment.
- the comment is associated with a first image in the photo stream (e.g., the first selected image 102 in the image display area 105 ). This comment may be displayed with the first image (e.g., as a caption over a lower portion of the first image) on each device of participants associated with the photo stream.
- the comment field is an optional field because the owner does not have to input a comment in order to create the photo stream.
- the image display area 105 displays thumbnail representations 102 - 106 of images from the camera roll collection.
- the camera roll collection includes one or more images taken with the device (e.g., a smart phone or tablet equipped with a camera).
- the second stage 175 illustrates the GUI 100 after the user has selected several images for the shared photo stream.
- the user has selected (e.g., by performing a gesture such as tapping the user's finger on) the first thumbnail image 102 representing a first image for the photo stream, and a second thumbnail image 104 representing a second image.
- the user might have first selected an edit button 118 (e.g., an image selection button, an action button) prior to selecting the thumbnail images 102 and 104 .
- the image display area 105 may display a full-screen representation of the selected image.
- the selection of a thumbnail image causes it to display a marking near or at least partially over the selected thumbnail image.
- This marking provides the user with a visual indication of the selection of the thumbnail image.
- the marking is a check mark 122 that is displayed over each of the selected thumbnail images 102 and 104 .
- the application may display a different marking to provide the same visual indication.
- the user selects (e.g., by performing a gesture such as tapping the user's finger on) a share button 160 .
- the selection of the share button 160 causes a pop-up menu 145 to appear, as shown in the third stage 180 .
- the pop-up menu 145 may appear by sliding up from the bottom of the screen and disappear by sliding down towards the bottom of the screen.
- the pop-up menu 145 includes several selectable items.
- the selectable items are arranged as a 2 ⁇ 2 grid of buttons. Each button is associated with an icon and a description.
- the selectable items include a photo stream button 165 , a message button 124 , a mail button 126 , and a copy button 172 .
- the photo stream button 165 is for creating a new photo stream or adding the selected images to an existing photo stream
- the message button 124 is for creating a text message (e.g., SMS, iMessage) with the selected images
- the mail button 126 is for generating an email with the selected images
- the copy button 172 is for copying the selected images.
- the pop-up menu 145 also includes a cancel button 128 for canceling and returning to the previous view.
- the pop-up menu 145 includes a print button (not shown) for printing the selected images.
- the selectable items are icon based.
- the application presents each item with text and an icon, only with the text and without the icon, or only with the icon and without the text.
- the application of some embodiments presents different selectable items based on the number of images that are selected from the image display area. For instance, if only one image is selected, the pop-up menu 145 may include an option to use the selected image as a desktop wallpaper.
- the user selects the photo stream button 165 .
- the fourth stage 185 illustrates the GUI 100 after the user has selected the photo stream button 165 .
- the selection resulted in the display of the photo stream options sheet 125 for creating a new photo stream.
- the application provides an option to add the selected images to an existing photo stream or create a new photo stream, in some embodiments.
- the photo stream option sheet 125 is overlaid by the top bar 110 that includes a heading.
- the heading reads “Photo Stream”. In some embodiments, the heading reminds the user that he or she is creating a new photo stream by specifically stating “New Photo Stream”.
- the user has typed in an email address into the subscriber field 130 using an on-screen or virtual keyboard 140 .
- the user has also typed in a name for the photo stream in the name field 135 .
- the user can select a next button 134 that is shown on the top bar 110 .
- the user can select a cancel button 132 to return to a pervious view (e.g., the view illustrated in the second stage 175 ).
- the next button 134 is disabled when there are one or more blank fields.
- the next button 134 may be disabled when the subscriber field and/or the name field are blank.
- the application of some embodiments modifies the appearance of the button 134 (e.g., changes its color) to indicate that it is selectable or disabled.
- the fifth stage 190 illustrates the application after the selection of the next button 134 .
- the selection results in the display of the comment sheet 150 .
- the application presents the comment sheet 150 with animation.
- the application may present it by flipping over the photo stream options sheet 125 , similar to a two-sided card being flipped over.
- the comment sheet 150 includes a heading that states that it is associated with the photo stream.
- the name of the photo stream is also shown on the comment sheet. Specifically, the name of the photo stream is displayed below the comment field 155 with an icon (e.g., a photo stream icon).
- the comment field 155 remains empty, as the user has not inputted any comment for an image (e.g., the first image) in the photo stream.
- the comment sheet 150 displays one or more thumbnail images of images in the photo stream.
- thumbnail images of the selected images are shown as being attached (e.g., paper clipped) to the comment sheet 150 .
- different embodiments may differently present previews of the photo stream's images.
- the application may present the images as a grid of thumbnails on one or more rows.
- the user selects a post button 136 to create the new photo stream.
- the user can select a cancel button 138 to return to a previous display area, namely the options sheet 125 that is illustrated in the fourth stage 185 .
- the selection of the cancel button 138 causes the application to return to the image display area 105 that is illustrated in the second stage 175 .
- the application of some embodiments When the post button is selected, the application of some embodiments generates a message regarding the new photo stream and sends the notification to a control or push server. Based on the message, the control server may respond with file location data (e.g., with one or more Uniform Resource Locators (“URLs”)) to send the images to a storage server (e.g., a third-party storage server).
- the application may also generate images to send to the storage server. For example, the application may generate one or more lower resolution images from a stored image (e.g., raw image) and send those images to the storage server.
- control server identifies each device associated with the recipient (e.g., based on the recipient's email address) and sends one or more messages or notifications regarding the photo stream invitation.
- the images are downloaded from the storage server onto each associated device. To more quickly display the images, the images may be downloaded to a recipient's device prior to the recipient accepting the invitation, and may be deleted from the device if the recipient rejects the invitation.
- FIG. 2 provides an illustrative example of a recipient becoming a subscriber by accepting the photo stream invitation. Specifically, this figure illustrates in three operational stages 225 - 235 how the recipient can accept the photo stream invitation to display the shared images on the recipient's device.
- the recipient's device is executing the same image application as the owner's device. As such, the GUI 200 is the same one described above by reference to FIG. 1 .
- the application is displaying a photo stream display area 220 (hereinafter a photo stream menu).
- a photo stream menu To display the menu 220 , the recipient might have first selected (e.g., by performing a gesture such as tapping the recipient's finger on) the “Photo Stream” tab 114 .
- the menu 220 displays the photo stream created by the owner.
- the photo stream is listed with (1) an icon associated with the image sharing tools, (2) the name of the photo stream, and (3) a number that identifies the number of images in the photo stream.
- the menu 220 identifies the owner as it states that the photo stream is shared by “Emily Parker”.
- the name of the owner is listed using a smaller font than the name of the photo stream.
- the image sharing tools provide one or more visual indications that there is a new photo stream invitation and/or an update to an existing photo stream.
- This is shown in the photo stream menu 220 as the new photo stream is listed with a marking 245 .
- the marking 245 is a colored dot (e.g., blue dot) but other types of markings (e.g., textual markings) can be used to convey the same message.
- the “Photo Stream” tab 114 shows an icon 285 that is badged with a number 280 . This number indicates that there is one new photo stream invitation.
- the application removes the badge 280 from the icon upon displaying the photo stream menu.
- the marking 245 may be shown on the menu until the recipient either accepts or declines the photo stream invitation.
- the image sharing tools of some embodiments provide different visual indications at multiple different levels to notify a user of a new photo stream invitation and/or an update to an existing photo stream.
- the image sharing tools may badge the application's icon at the operating system (“OS”) desktop level, mark different photo streams with a marking at the application menu level, and/or flag images (e.g., as new images) at the photo stream image level.
- the image sharing tools of some embodiments alerts the user by causing the recipient's device to play a sound and/or vibrate.
- the recipient selects (e.g., by performing a gesture such as tapping the recipient's finger on) the photo stream from the photo stream menu 220 .
- the selection causes the application to display a pop-up menu 215 , as illustrated in the second stage 215 .
- the pop-up menu 215 is superimposed over a portion of the photo stream menu 220 by sliding up from the bottom of the screen.
- the pop-up menu 215 includes a heading. The heading states that the owner would like to share the photo stream with the recipient.
- the owner is identified by the owner's name and email address, and the photo stream is identified by its associated name.
- the pop-up menu 215 includes (1) an accept button 250 for accepting the photo stream invitation, (2) a decline button 255 for declining the invitation, and (3) a cancel button 260 for closing the pop-up menu without accepting or declining the invitation (e.g., keeping the invitation pending and deciding at a later time).
- the recipient selects the accept button 250 from the pop-up menu 215 .
- the image display area 105 is the same as the one described above by reference to FIG. 1 .
- the image display area 105 displays thumbnail representations 202 and 204 of the images in the photo stream. The user can select any one of the thumbnail representations 202 or 204 to display a full screen representation of the corresponding image.
- the image display area 105 is overlaid by the top bar 210 , which includes the name of photo stream.
- the top bar 210 also includes a back button 265 for returning to the photo stream menu 220 and an edit button 270 for selecting images in the photo stream.
- the image display area also displays text below the two thumbnails 202 and 204 . The text states the name of the owner and the number of images shared by the owner.
- the application displays a marking that identifies the number of new image that are in the photo stream. This is shown in the third stage 235 as a flag 275 is displayed over the thumbnail 202 of the first new image.
- the flag is marked with text that states that there are two new images in the photo stream.
- the application of some embodiments displays such a marking for each new batch of images. For example, when the owner adds a new batch of images to the photo stream, the application may display a similar flag on a first thumbnail image that corresponds to the first image in the new batch.
- the image application of some embodiments displays images in a batch in a particular order (e.g., starting with the oldest image and ending with the newest image, or vice versa).
- the application of some embodiments displays different batches in a particular order (e.g., starting with the oldest batch to the newest batch, or vice versa).
- the images may not necessarily be ordered in a display area (e.g., the image display 105 ). For example, this can occur when there are multiple batches and when an image in a first batch is newer (e.g., has a timestamp that is later) than another image in one of the subsequent batches.
- Many different examples of batching or grouping images will be described below.
- the recipient's device is in an invited state through the first two stages 225 and 230 .
- the photo stream's images may not be pushed to the recipient's device or any other devices associated with the recipient. However, the images may be pushed to all of the recipient's devices upon the recipient accepting the invitation.
- a notification is sent to one or more of the owner's devices upon the recipient accepting the invitation. This notification may state that the recipient has subscribed to the photo stream
- FIG. 3 provides an illustrative example of sharing a comment regarding an image in the photo stream.
- Four operational stages 305 - 320 of the application are illustrated in this figure. These stages are continuations of the stages that are illustrated in FIG. 2 .
- the image display area 105 displays thumbnail representations 202 and 204 of the images associated with the photo stream.
- the subscriber selects the first thumbnail image 202 .
- the selection causes the image display area 105 to display a full screen representation 325 of the corresponding image.
- the full screen representation is overlaid by the top and bottom bars 210 and 370 .
- the top bar 210 includes a back button 330 to return to the thumbnail view.
- the top bar 210 also states that the displayed image 325 is a first of two images in the photo stream.
- the bottom bar 370 includes (1) a share button 345 for sharing the selected image, (2) a play button 350 for playing a slide show of the images in the photo stream, and (3) a comment button 360 for leaving a comment regarding the displayed image.
- the bottom bar may also include a stream button (not shown) for streaming the images in the photo stream to one or more other devices (e.g., a desktop computer, a laptop).
- each item in the bottom bar 370 is displayed with a corresponding icon.
- the comment button 360 is displayed with a chat bubble icon 375 .
- the chat bubble icon 375 includes a plus sign (i.e., “+”) that provides a visual indication that a comment can be added for the displayed image 325 .
- the user selects the comment button 360 .
- the selection causes the virtual or on-screen overlay keyboard 140 to appear, as illustrated in the third stage 315 .
- the selection also causes the top bar 110 to display a heading that states “New Comment”.
- the user types in a comment regarding the image 325 .
- the user can select the cancel button 380 to return to the full screen representation.
- the fourth stage 320 illustrates the image application after inputting the comment. As shown, the comment is displayed over the image 325 . The comment is also associated with comment metadata. The metadata is displayed below the comment, and identifies the person who left the comment and the time and date that the comment was left. In the example illustrated in the fourth stage 320 , the person who left the comment is identified as “Me”. This is because the subscriber left the comment with the subscriber's device. The comment is also displayed with an add comment field 365 that can be selected to add another comment.
- the comments are shared in real time across multiple different devices (e.g., across different platforms of different vendors). For instance, when a new comment has been received, the application of some embodiments generates a message regarding the new comment and sends the message to the control server.
- the message may include the comment and a key that uniquely identifies the image that is associated with the comment.
- the control server may store the comment, identify participants associated with the photo stream, and send a message regarding an update to a photo stream to each device associated with the identified participants.
- the participant's device then downloads the comment and displays it with the associated image.
- Section I describes another more detailed example of creating a new photo stream. This section also describes another example of accepting a photo stream invitation. Section II then describes adding and removing images from a photo stream. Section III describes several examples of managing a photo stream (e.g., resending an invitation, adding or removing a subscriber, unsubscribing, etc.). Section IV then describes additional examples of exchanging comments. Section V describes publishing a photo stream to a public website. These previous sections are then followed by examples of the image sharing tools that are implemented on different devices and/or platforms. Specially, Section VI describes example of the image sharing tools that operate on a tablet. The tablet examples are followed by Section VII that describes an example digital media receiver.
- Section VIII then describes how the image sharing tools of some embodiments are integrated in an operating system (e.g., of a personal computer (“PC”)).
- Section IX then describes several more examples of the image sharing tools that are integrated into one or more image editing and organizing application.
- Section X then describes an example system architecture used to facilitate the image and comment sharing operations.
- Section XI then describes example processes that are performed on the server-side.
- Section XII then describes a software architecture of content sharing tools of some embodiments.
- Section XIII then describes several example electronic systems that implement some embodiments described herein.
- the image sharing tools allow an owner to create a shared photo stream album that includes images, and invite any number of recipients to join the shared photo stream album and view those images.
- the images are downloaded onto one or more of the recipient's devices.
- FIG. 4 provides an illustrative example of selecting several images for a photo stream.
- Six operational stages 405 - 430 of the owner's device 400 are illustrated in this figure.
- the figure includes the image display area 105 that is described above by reference to FIG. 1 .
- the first stage 405 illustrates the device 400 displaying a graphical user interface (“GUI”) of its operating system (“OS”).
- GUI graphical user interface
- the GUI includes selectable icons for opening different applications. Several of the icons are displayed along a menu bar (e.g., a dock). The icons include ones for opening a phone application, email application, web browser, and music player.
- An image application icon 435 e.g., Photos application icon
- a camera application icon 440 are overlaid on the OS's desktop or main display area. To open the image application, the owner selects (e.g., by tapping the owner's finger on) the image application icon 435 .
- the second stage 410 illustrates the device after the owner has selected the icon 435 .
- the application displays a list 445 of different collections.
- the owner might have first selected the albums tab 112 to display this list.
- the owner selects the camera roll collection 460 from the list.
- the selection causes the image display area 105 displays thumbnail representations of images in the camera roll collection.
- the camera roll collection includes the images taken with the device (e.g., a smart phone or tablet equipped with a camera).
- the third and fourth stages 415 and 420 illustrate selections of several images for the new photo stream.
- the owner selects (e.g., by performing a gesture such as tapping the owner's finger on) a first thumbnail image 450 to select a first image for the photo stream, and selects a second thumbnail image 455 to select a second image for the photo stream.
- the owner might have selected the edit button 118 prior to selecting the first thumbnail image 450 .
- the image display area 105 may display a full screen representation of the selected image.
- the selection of a thumbnail image causes it to display a marking near or at least partially over the selected thumbnail image.
- This marking provides the user with a visual indication of the selection of the thumbnail image.
- the marking is a check mark 122 that is displayed over each of the selected thumbnail images 450 and 455 .
- the application may display a different marking to provide the same visual indication.
- the owner selects (e.g., by tapping the owner's finger on) the share button 160 .
- the selection causes the pop-up menu 145 to appear, as illustrated in the sixth stage 430 .
- the menu 145 includes the photo stream button 165 for creating a new photo stream or adding the selected images to an existing photo stream. To create a new photo stream, the owner then selects the photo stream button.
- FIG. 5 provides an illustrative example of specifying a name and subscriber for a photo stream.
- Five operational stages 505 - 525 of the image application are shown in this figure. The operations are continuations of the ones illustrated in FIG. 4 .
- the first stage 505 illustrates the image application after the owner has selected the photo stream button 165 from the pop-up menu 145 .
- the selection resulted in the display of the photo stream options sheet 125 .
- the photo stream options sheet includes a subscriber field 130 for inputting one or more subscribers, and a name field for inputting a name for the photo stream.
- the owner selects (e.g., by tapping the owner's finger on) the subscriber field 130 .
- the second stage 510 illustrates inputting a name of a subscriber into the subscriber field 130 .
- the owner begins to input (e.g., type in) an email address in the subscriber field 130 using the on-screen or virtual keyboard 140 .
- the application provides a list of suggested names 535 from the address book.
- the auto-complete feature displays a name of a person. The name is shown with the associated email address. The owner then selects the name from the list 535 to automatically fill in the subscriber field 130 .
- the owner selects (e.g., by tapping the owner's finger on) the name field 135 for inputting a name (e.g., title) of the new photo stream.
- a name e.g., title
- the owner types in a name for the photo stream in the name field 135 .
- the owner selects the next button 134 to continue defining the photo stream.
- FIG. 6 provides an illustrative example of inputting a comment for an image in the new photo stream.
- Five operational stages 605 - 625 of the image application are shown in this figure. These operations are continuations of the ones illustrated in FIG. 5 .
- the first stage 605 illustrates the comment sheet 150 that is shown after the selection of the next button 134 .
- the comment field 155 remains empty, as the owner has not inputted any comment for an image (e.g., the first image) in the photo stream. To input a comment, the owner selects the comment field 155 .
- the selection of the comment field 155 causes an on-screen keyboard 140 to appear.
- the owner then types in a comment (e.g., “Summer Vacation”) into the comment field 155 .
- a comment e.g., “Summer Vacation”
- the image sharing tools of some embodiments associate the comment to the first image in the photo stream.
- the image sharing tools provide separate fields to input comment for different images.
- the image sharing tools of some embodiments automatically populates comment fields. For example, the comment fields may be populated using the image filenames.
- the image sharing tools may analyze the image files names to differentiate machine-generated names and user-specified names. Several example of such analysis will be described in detail below by reference to FIG. 58 .
- the third stage illustrates the owner selecting (e.g., by tapping the user's finger on) the post button 136 to post or share the photo stream.
- the fourth stage 620 illustrates the image application displaying the photo stream menu 220 .
- the user selects the new photo stream (e.g., “Family Photos”) from the menu 220 .
- the selection causes thumbnail representation of the images in the new photo stream to be displayed in the image display area 105 , as illustrated in the fifth stage 625 .
- the application of some embodiments When a new photo stream is defined, the application of some embodiments generates a message regarding the new photo stream and sends the notification to a control or push server. Based on the message, the control server may respond with file location data (e.g., with one or more URLs) to send the images to a storage server (e.g., a third-party storage server).
- the application may also generate images to send to the storage server. For example, the application may generate one or more lower resolution images from a stored image (e.g., raw image) and send those images to the storage server.
- control server identifies each device associated with the recipient (e.g., based on the recipient's email address) and sends one or more messages or notifications regarding the photo stream invitation.
- the images are downloaded from the storage server onto each associated device. To more quickly display the images, the images may be downloaded to a recipient's device prior to the recipient accepting the invitation, and may be deleted from the device if the recipient rejects the invitation.
- FIG. 7 conceptually illustrates an example process 700 that some embodiments use to create a new photo stream.
- the process 700 is performed by the image application.
- the process 700 begins when it identifies (at 705 ) images for the photo stream. In the example described above, the owner selects the images through an image display area. After identifying the images, the process identifies (at 710 ) the name of the photo stream. Next, the process 700 identifies (at 715 ) each recipient of the photo stream invitation. Examples of specifying a name of the photo stream and a recipient of the photo stream invitation are described above by reference to FIG. 5 .
- the process 700 determines (at 720 ) whether any comment has been left regarding an image (e.g., a first selected image) in the photo stream. If a comment was made, the process 700 identifies (at 725 ) the comment and associates it with the image. The process 700 then generates (at 730 ) a message regarding the new photo stream based on the identifications. After generating the message, the process sends (at 735 ) the message to a control server. In some embodiments, the control server facilitates the sharing of content by managing control data associated with a shared photo stream.
- control data examples include user data (e.g., a list of devices associated with a user) and photo stream data (e.g., a list of photo stream associated with the user, a list of individuals that can access a particular photo stream, file location data).
- user data e.g., a list of devices associated with a user
- photo stream data e.g., a list of photo stream associated with the user, a list of individuals that can access a particular photo stream, file location data.
- the process 700 receives (at 740 ) file location data from the control server.
- the file location data comprises one or more URLs to upload images to a storage server (e.g., a third-party storage server).
- a storage server e.g., a third-party storage server.
- the process 700 sends (at 745 ) the images to a storage server using the file location data. The process 700 then ends.
- the process 700 generates one or more copies of each original image (e.g., RAW image) prior to sending them to the storage server. That is, the process may take an image and generate different versions (e.g., at different resolutions) of that same image. Depending on the type of client (e.g., digital media receiver, tablet, smart TV, etc.), one of several different versions of the same image may be downloaded onto a client.
- RAW image e.g., RAW image
- the images are sent to the storage server when there is a particular type of network connection.
- the images may not be sent to the storage server when the device is connected to the Internet through a cellular (e.g., a 3G, 4G) connection. That is, the device may send the image data to the storage server when there is a different type of connection such as a Wi-Fi connection.
- a smart phone or a tablet operates in a high-power state when transferring data using the cellular network.
- the smart phone or tablet may operate in a low-power state when connected to the Internet through a wired connection or Wi-Fi connection. As such, power consumption (e.g., battery consumption) is minimized.
- the process 700 generates and sends an email message to each recipient.
- the email message may include a link that when selected causes cause the recipient to be added as a subscriber to the shared photo stream.
- Some embodiments perform variations on the process 700 .
- the specific operations may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments.
- the process 700 might not identify any comment associated with an image.
- the process 700 may generate multiple messages (e.g., one regarding a new shared photo stream album and another regarding a comment that was left for an image in the new shared photo stream) to send to the control server.
- the process 700 could be implemented using several sub-processes, or as part of a larger macro process.
- FIG. 8A provides an illustrative example of how a recipient is notified of the photo stream invitation. This figure is followed by FIG. 8B which illustrates an example of the owner receiving notification of the acceptance of the invitation. Three operational stages 805 - 815 are illustrated in FIG. 8A .
- the first stage 805 illustrates the recipient receiving notification through his or her device (e.g., “Derek's Device”). This first stage 805 occurs after the owner (e.g., “Emily”) has created the photo stream and sent the photo stream invitation.
- a banner 820 is displayed on the recipient's device. Specifically, the banner is superimposed along the top edge of the operating system's desktop. In some embodiments, the banner rotates into view as a simulated 3D effect. The banner may float on top of the display area for a predetermined period of time and then disappear (e.g., rotate out of view, fade away).
- the banner 820 includes a message and an icon 825 .
- the message states that there is a new shared photo stream.
- the message states that the photo stream's owner would like to share the photo stream with the recipient.
- the owner is identified by the owner's name (e.g., “Emily Parker”), while the photo stream is identified by its name (e.g., “Family Photos”).
- the icon 825 is the one associated with the image application.
- the application of some embodiments displays a thumbnail representation of an image in the shared photo stream.
- the banner 820 may include a thumbnail representation of the first image in the shared photo stream.
- the application of some embodiments alerts the recipient through one or more other means. For instance, the application may cause a device to vibrate or play a sound. When the device is in a locked mode, a pop-up window or dialog box with the message may appear in a lock screen.
- the application displays a badge at the operating system (“OS”) level to alert the recipient of an update to a photo stream.
- OS operating system
- the application may display one or more other markings.
- One such type of notification is a badge that appears at least partially over the application's icon. This is shown in the first stage 805 as a badge 830 is displayed on the icon 840 of the image application.
- the badge 830 includes a number (e.g., “1”). In the example illustrated in the first stage 805 , the number does not represent the number of new images in the photo stream. Instead, it indicates there is an update to a photo stream (e.g., there is a new photo stream invitation, a batch of images has been added to an existing photo stream, a new comment has been received regarding an image the existing photo stream, etc.).
- the first stage 805 illustrates the selection of the application icon 840 (e.g., through a touch operation such as tapping the recipient's finger on the icon).
- the selection causes the image application to be opened.
- the application displays the photo stream menu 220 .
- the user might have first selected the photo stream tab 114 to display this menu.
- the menu 220 lists the new photo stream (i.e., “Family Photos”) 845 .
- the recipient selects the photo stream 845 from the menu 220 .
- the selection causes the application to display the pop-up menu 215 , as shown in the third stage 815 .
- the recipient accepts the photo stream invitation by selecting the accept button 250 from the pop-up menu 215 .
- the recipient selects the photo stream from the photo stream menu 220 to display the pop-up menu 215 .
- the selection of the banner 825 (shown in the first stage 805 ) opens the image application.
- the selection of the banner 825 may cause the application to navigate to the photo stream menu 220 and/or displays an invitation sheet (e.g., the pop-up menu 215 ).
- FIG. 8B provides an illustrative example of a notification that is pushed onto the owner's device (e.g., through the image application).
- a banner 835 is displayed on the owner's device.
- the banner 835 is superimposed along the top edge of the OS's desktop.
- the banner 835 includes a message that states that the recipient has subscribed to the photo stream.
- the subscriber is identified by the subscriber's name (e.g., “Derek Parker”), while the photo stream is identified by its name (e.g., “Family Photos”).
- the owner's device might have received the subscriber's name and/or the photo stream's name from a message from the control server.
- a badge is not displayed over the image application's icon. This is because the photo stream has not been updated. For instance, the subscriber has not added any comments regarding the images in the photo stream.
- the application alerts the recipient through one or more other means.
- the application may cause a device to vibrate or play a sound to alert the user.
- a pop-up window or dialog box with the message may appear in the lock screen.
- the application of some embodiments alerts the recipient through one or more other means.
- the application may cause a device to vibrate or play a sound.
- a pop-up window or dialog box with the message may appear in a lock screen.
- the notifications are fully customizable in that the user can disable them (e.g., from the application settings menu). For example, the user can turn on or off notification for certain updates (e.g., new comments, new photo streams, new images, etc.).
- the user can also specify whether to (1) display push notifications, (2) to display the notification as a banner or as an alert (e.g., the message in a bubble), (3) whether to view the notifications in the lock screen, (4) to play sound, and/or (5) badge the application's icon.
- the application displays a banner to notify the recipient of the photo stream invitation.
- an email message may be sent to the recipient upon creation of a new shared photo stream.
- the image application generates the email message that contains a selectable link which when selected opens the image application. The selection of the link may also cause the application to navigate to the photo stream menu and/or may cause the recipient to be added as a subscriber to the photo stream.
- the email message is always sent to each recipient that is invited to join the shared photo stream.
- FIG. 9 provides an illustrative example of an email that is received at the recipient's device.
- Four operational stages 905 - 920 of the recipient's device are illustrated in this figure.
- the first stage 905 illustrates the selection of an icon 925 of an email application.
- the email application displays the email sent from the owner's device.
- the email includes (1) a message 935 , (2) a link 940 , and (3) a thumbnail image 930 .
- the message 935 indicates that the owner shared a photo stream with the recipient. Specifically, it asks the recipient to join the owner's shared photo stream.
- the owner is identified by the owner's name and email address, and the photo stream is identified by its associated name.
- the thumbnail image 930 shows the icon of the image application.
- the icon includes a marking or badge 945 .
- the marking indicates that there is a new photo stream or an update to an existing photo stream.
- the link 940 is a selectable item for opening the image application.
- the email includes a message that states that recipient has to create an account with a cloud service in order to join the shared photo stream. To download the photo stream album, the recipient may have to register his or her device with the cloud service.
- the recipient selects (e.g., by tapping the recipient's finger on) the link 940 .
- the selection causes the image application to be opened. Specifically, the selection results in the display of the photo stream menu 220 .
- the selection also causes the recipient to be added as a subscriber to the shared photo stream. Accordingly, the recipient does not have to select an accept button from an invitation sheet.
- the subscriber selects the photo stream 950 from the photo stream menu 220 .
- the selection resulted in the display of the image display area 105 .
- the image display area 105 shows thumbnail representations of the images in the shared photo stream.
- a return email may be sent to the owner once the recipient accepts the invitation. This return email may state that the recipient joined or subscribed to the shared photo stream.
- the owner may also be notified of the acceptance through a notification (e.g., a banner) that is displayed on the owner's device. An example of such a notification is described above by reference to FIG. 8B .
- the previous example illustrated accepting an invitation to a shared photo stream through an email message.
- the image-sharing tool of some embodiments allows a first recipient to forward the invitation to a second recipient.
- the second recipient can then subscribe to the shared photo stream by accepting the invitation.
- the photo stream invitation is associated with a one-time token that can be used by only one individual. That is, the second recipient can take the place of the first recipient.
- the first and second recipients cannot both subscribe to the shared photo stream through the one photo stream invitation.
- FIG. 10 provides an illustrative example of a first recipient forwarding the photo stream invitation to a second recipient.
- Two operational stages 1005 and 1010 of the first recipient's device are illustrated in this figure.
- the email application has been opened to display the email.
- the email includes the message 935 , the link 940 , and the thumbnail image 930 .
- the email application also displays a bottom bar 1015 .
- This bar includes a reply button 1020 for replying to the email, a forward button 1025 for forwarding the email, and a delete button 1030 for deleting the email.
- the first recipient selects the forward button 1025 . As shown in the second stage 1010 , the first recipient then forwards the email to a second recipient (e.g., to “Joe Parker”).
- a second recipient e.g., to “Joe Parker”.
- FIG. 11A provides an illustrative example of the second recipient accepting the photo stream invitation.
- Three operational stages 1105 - 1115 of the second recipient's device are illustrated in this figure.
- the first stage 1105 illustrates the selection of an icon 925 of an email application.
- the email application displays the email forwarded from the first recipient's device.
- the email includes the message 935 , the link 940 , and the thumbnail image 930 .
- the second recipient selects (e.g., by tapping the second recipient's finger on) the link 940 .
- the selection causes the image application to be opened. Specifically, the selection results in the display of the photo stream menu 220 .
- the selection also causes the second recipient to be added as a subscriber to the shared photo stream. Accordingly, the second recipient does not have to select an accept button from an invitation sheet.
- FIG. 11B provides an illustrative example of a notification that is pushed onto the owner's device upon the second recipient subscribing to the shared photo stream.
- a banner 835 is displayed on the owner's device.
- the banner 835 is superimposed along the top edge of the OS's desktop.
- the banner 835 includes a message that states that the second recipient has subscribed to the photo stream.
- the subscriber is identified by the second recipient's name (e.g., “Joe Parker”), and the photo stream is identified by its name (e.g., “Family Photos”).
- the banner may state that a person using a different email address has joined the shared photo stream.
- the banner may further state that the owner can remove the subscriber if the owner does not recognize the person or the email address.
- a return email may be sent to the owner once the second recipient accepts the invitation. This return email may include the same message as the banner.
- FIG. 12 provides an illustrative example of how the images in the photo stream are presented to the subscriber. Three operational stages 1205 - 1215 of the subscriber's device are illustrated in this figure.
- the first stage 1205 illustrates the image application displaying thumbnails representations of the image in the shared photo stream.
- the application of some embodiments displays a marking that identifies the number of new image that are in the photo stream. This is shown in the first stage 1205 as a flag 275 is displayed over the thumbnail 202 of the first new image.
- the flag is marked with text that states that there are two new images in the photo stream.
- the application of some embodiments displays such a marking for each new batch of images. For example, when the owner adds a new batch of images to the photo stream, the application may display a similar flag on a first thumbnail image that corresponds to the first image in the new batch.
- the image application displays a visual indication that an image is associated with one or more comments. This visual indication may also indicate that there is at least one unread comment associated with the image.
- the first thumbnail 275 is displayed with a chat bubble 1220 that is colored (e.g., blue).
- the chat bubble 275 indicates that there is one or more comments associated with the corresponding image, and the color of the chat bubble indicates that there is at least one unread comment associated with the same image.
- the second stage 1210 illustrates that the selection resulted in the display of a full-screen representation 1225 of the corresponding image.
- the full-screen representation 1225 is overlaid by the top and bottom bars 210 and 370 .
- the top bar 210 includes a back button 330 to return to the thumbnail view.
- the back button 330 is labeled with the name of the photo stream.
- the top bar 210 also states that the displayed image 325 is a first of two images in the photo stream.
- the bottom bar 370 includes (1) a share button 345 to share the selected image, (2) a play button 350 to play a slide show of the images in the photo stream, and (3) a comment button 360 to display the comment associated with the displayed image or leave another comment.
- the comment button 360 is displayed with a chat bubble icon 375 .
- the chat bubble icon includes a number that identifies the number of comments associated with the displayed image.
- the user selects (e.g., swipes across) the screen to display the next image.
- the selection causes the application to display the next image 1230 .
- the selection also causes the top and bottom bars to disappear.
- the chat bubble icon 375 remains at the same location.
- the displayed image is not associated with any comments, the number in the chat bubble has been replaced by a “+” sign.
- the sign provides a visual indication that a comment can be added for the displayed image 1230 .
- the subscriber can add a new comment by selecting the chat bubble.
- the top and bottom bars 210 and 370 disappear upon displaying the next image 1230 .
- the application may remove these bars after a set period of time.
- the top and bottom bars 210 and 370 may automatically disappear once a predefined period (e.g., a few seconds) has been reached.
- a recipient becomes a subscriber to a photo stream by accepting a photo stream invitation.
- FIG. 13 provides an illustrative example of a recipient declining the photo stream invitation.
- Three operational stages 1305 - 1315 of the recipient's device are illustrated in this figure.
- the first stage 1305 illustrates the image application displaying the photo stream menu 220 .
- the menu 220 includes the photo stream 1320 created by the owner.
- the recipient selects the photo stream 1320 from the photo stream menu 220 .
- the selection causes the application to display a pop-up menu 215 in the second stage 1310 .
- Included in the pop-up menu 220 is a decline button 255 , which when selected, declines the invitation.
- the recipient selects the decline button 255 to decline the invitation.
- the third stage 1315 illustrates the photo stream menu 220 after the recipient has declined the photo stream invitation. As shown, the selection of the decline button 255 results in the removal of the photo stream 1320 from the photo stream menu 220 .
- FIG. 14 conceptually illustrates a process 1400 that some embodiments use to accept or decline a photo stream invitation.
- the process 1400 in some embodiments, is performed by the image application.
- the process 1400 begins when it receives (at 1405 ), from a control server, a message regarding an update to a photo stream. After receiving the message, the process 1400 retrieves (at 1410 ) a list of photo streams from the control server. Based on the list, the process 1400 then notifies (at 1415 ) the recipient of the update.
- notifications or markings including a banner notification and a badged icon at the OS level, a marking (e.g., a blue dot) at the application's album level, etc.
- the recipient's device may also play a sound or vibrate upon receiving the message.
- the process 1400 displays the photo stream invitation.
- the invitation may be a part of a pop-up window with buttons for accepting and/or declining the invitation.
- the invitation may be an email message with one or more selectable links for accepting and/or declining the invitation.
- the photo stream invitation is displayed upon the recipient selecting a notification (e.g., a banner).
- the invitation may be displayed upon the recipient selecting the photo stream from a photo stream menu.
- the process 1400 awaits (at 1425 ) input from the recipient. If the invitation has been accepted, the process 1400 sends (at 1430 ) a message to the control server regarding the accepted invitation.
- the control server receives the message and adds the recipient as a subscriber in access list.
- this access list lists each subscriber that is authorized to view the images in the photo stream and make comments regarding those images. The list may also specify whether the subscriber can add images to the photo stream, remove images, add subscribers to the photo stream, and/or remove subscribers from the photo stream.
- the process 1400 retrieves (at 1435 ), from the control server, file location data (e.g., with one or more Uniform Resource Locators (“URLs”)) for the images in the photo stream. Then, the process retrieves (at 1440 ) the images from a storage server (e.g., a third-party storage server) using the location data. The process 1400 then ends.
- file location data e.g., with one or more Uniform Resource Locators (“URLs”)
- URLs Uniform Resource Locators
- the process 1400 determines whether the recipient declined the invitation. If the recipient declined the invitation, the process sends (at 1430 ) a message to the control server regarding the declined invitation.
- the process 1400 may also delete the photo stream from the list of photo stream (e.g., that is represented in the photo stream menu). Based on the message, the control server of some embodiments removes the recipient from a list that lists different individuals that are invited to join the photo stream.
- the process maintains (at 1460 ) the pending status of the invitation. As the invitation is pending, the process 1400 may not remove the photo stream from the photo stream menu and/or the marking (e.g., the colored dot) that is displayed with the name of the photo stream in that photo stream menu.
- the marking e.g., the colored dot
- Some embodiments perform variations on the process 1400 .
- the specific operations may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments.
- the process 1400 could be implemented using several sub-processes, or as part of a larger macro process.
- the image application of some embodiments provides tools to add or delete images from a shared photo stream.
- the images may be published to all of the participant's devices as well as the devices of other participants.
- the participant deletes images the images may be deleted from all of the participant's devices and the devices of the other participants.
- FIG. 15 provides an illustrative example of adding an image to an existing photo stream.
- Five operational stages 1505 - 1525 of the owner's device are illustrated in this figure.
- the image display area 105 of the application displays thumbnail representations of images from the camera roll collection.
- the owner selects (e.g., by performing a gesture such as tapping the owner's finger on) the third thumbnail image 1525 .
- the second stage 1510 illustrates the image display area 105 after the owner has selected the thumbnail image 1525 .
- the selection results in the image display area 105 displaying a full screen representation 1530 of the selected image.
- the owner selects the share button 345 .
- the selection causes the pop-up menu 145 to appear.
- the pop-up menu 145 appears with animation by sliding up from the bottom of the screen.
- the owner selects the photo stream button 165 from the pop-up menu 145 .
- the selection of the photo stream button 165 causes the application to display the photo stream menu 220 .
- the photo stream menu 220 lists the existing photo stream 1535 .
- the menu 220 also lists an option 1540 to create a new photo stream.
- the top bar 210 is superimposed on the photo stream menu 220 .
- the top bar 210 includes a cancel button 1545 to return to the previous view (e.g., the full screen view illustrated in the second stage 1510 ).
- the top bar 210 also includes a heading that states “Add to a Photo Stream”. Alternatively, the heading may indicate that a photo stream should be chosen.
- the application of some embodiments displays the photo stream options sheet 125 that is described above by reference to FIG. 1 . This allows the owner to skip the photo stream menu screen when creating a new photo stream.
- the owner selects (e.g., by tapping the owner's finger on) the photo stream 1535 from the menu 220 .
- the selection of the photo stream 1535 results in the display of the comment sheet 150 .
- the comment sheet 150 includes the field 155 for inputting a comment for the selected image.
- a thumbnail representation 1550 of the selected image is also shown on the comment sheet 150 .
- the owner selects the post button 136 .
- the owner selects a single image 1525 from the image display area 105 .
- the owner can select multiple images from the image display area 105 (e.g., by selecting the edit button 118 in the thumbnail view).
- An example of selecting multiple images has been described above by reference to FIG. 1 .
- FIG. 16 provides an illustrative example of different markings (e.g., a banner notification, a badged icon) that are displayed on the subscriber's device.
- markings e.g., a banner notification, a badged icon
- Two operational stages 1605 and 1610 of the subscriber's device are illustrated in FIG. 16 .
- the first stage 1605 illustrates the different markings that are shown on the subscriber's device. This first stage 1605 occurs after the owner has added the image to the photo stream (e.g., as illustrated in FIG. 15 ).
- a banner 1615 is displayed on the subscriber's device.
- the banner 1615 is superimposed along the top edge of the operating system's desktop.
- the banner 1615 rotates into view in a simulated 3D effect.
- the banner 1615 may float on top of the main display area for a predetermined period of time and then disappear (e.g., rotate out of view or fade away).
- the banner 1615 includes a heading and a message.
- the heading identifies the photo stream, and the message states there is a new image from the owner.
- the message states that the owner has added one new image to the photo stream.
- the photo stream is identified by its associated name, and the owner is identified by the owner's name.
- the banner 1615 includes a thumbnail representation 1620 of the new image added to the photo stream.
- the application displays a thumbnail representation of one image (e.g., the first image in the new batch) regardless of the number of images added to the photo stream.
- the application of some embodiments displays multiple thumbnail images of the images added to the photo stream.
- the thumbnail representation 1620 is only displayed upon the recipient accepting the invitation to the photo stream. Otherwise, the banner 1615 displays the icon of the image application in some embodiments.
- the subscriber is also notified through the icon 435 of the image application that there is an update in the photo stream.
- the icon 435 is displayed with a marking or badge 830 .
- the badge 830 at least partially overlaps the icon 435 .
- the badge includes a number that indicates that a photo stream has been updated. Hence, the number on the badge 830 does not represent the number of new images in the photo stream but represents the number of photo streams that are updated or new.
- FIG. 17 provides an illustrative example of deleting an image from the photo stream.
- Six operational stages 1705 - 1730 of the owner's device are illustrated in this figure.
- the application displays the photo stream menu 220 .
- the photo stream menu 220 lists the photo stream 1735 .
- the owner selects (e.g., by performing a gesture such as tapping the owner's finger on) the photo stream 1735 .
- the selection of the photo stream 1735 results in the application displaying the image display area 105 .
- the image display area 105 displays thumbnail representations of images 1733 , 1736 , and 1738 in the photo stream. This is indicated by the top bar 210 , which displays the name of the selected photo stream.
- the owner selects the second thumbnail image 1736 to display a full screen representation of the same image.
- the third stage 1715 illustrates the image display area 105 after the owner has selected the thumbnail image 1736 .
- the selection results in the image display area displaying a full screen representation of the selected image.
- the selection also causes the application to display several contextual menu items. These menu items are displayed on the bottom bar 370 .
- the bottom bar 370 includes the share button 345 for sharing the displayed image, the play button 350 for playing a slide show of the images in the photo stream, the stream button 355 for streaming the images in the photo stream to one or more other devices (e.g., a desktop computer, a laptop), the delete button 1740 for deleting the image from the photo stream, and a comment button 360 to leave a comment regarding the displayed image.
- the delete function is only available to the user that created the photo stream. As such, the subscriber may not be able to access this button 1740 on the subscriber's device when viewing the photo stream. In other words, the button 1740 may not be displayed at all on the bottom bar 370 .
- the owner selects the delete button 1740 .
- the selection of the delete button causes a pop-up menu 1745 to be displayed, as illustrated in the fourth stage 1720 .
- the pop-up menu 1745 includes (1) a confirmation button 1750 to confirm deleting the selected image from the photo stream and (2) a cancel button 1755 to cancel the delete operation (i.e., the delete operation initiated by selecting the delete button 1740 ).
- the pop-up menu 1745 includes a warning message or a prompt stating that the image will be deleted from all of the owner's devices and the subscribers' devices.
- the owner selects the delete button 1750 from the pop-up menu 1745 .
- the fifth stage 1725 illustrates the owner's device after deleting the selected image from the photo stream.
- the application displays a full screen representation of the next image 1738 in the photo stream.
- the owner selects the back button 330 to return to the thumbnail view.
- the image display area 105 displays only two thumbnail images 1733 and 1738 because the second image 1736 has been deleted from the photo stream.
- FIG. 18 provides an illustrative example of the photo stream on the subscriber's device after the owner deletes the image. Two operational stages 1805 and 1810 of the subscriber's device are illustrated in this figure.
- the subscriber's device displays the photo stream menu 220 .
- the subscriber might have selected the application's icon from the desktop and then navigated to the photo stream menu 220 .
- the subscriber may not be notified of this update. For instance, a banner notification may not be shown on the subscriber's device and/or a badge may not be shown on the application's icon.
- the subscriber selects the photo stream 1815 from the photo stream menu 220 .
- the selection causes the application to display thumbnail representations of the images in the photo stream.
- the image display area only displays representations of the remaining two images 1733 and 1738 .
- FIG. 19 conceptually illustrates a process 1900 that some embodiments use to add or delete images from a photo stream.
- the process 1900 is performed by the image application (e.g., executing on the owner's device).
- the process 1900 begins when it receives (at 1905 ) input to modify a photo stream.
- the process 1900 determines (at 1910 ) whether a new batch of images has been added to the photo stream. If not, the process 1900 proceeds to 1935 , which is described below. If so, the process 1900 generates ( 1915 ) a message regarding the new batch of images. After generating the message, the process 1900 sends (at 1920 ) the message to a control server.
- the control server facilitates the sharing of content by managing control data associated with a shared photo stream. Examples of such control data include user data (e.g., a list of devices associated with a user) and photo stream data (e.g., a list of photo stream associated with the user, file location data).
- the control data may also include a subscriber list that lists individuals that can access a particular photo stream.
- the subscriber list may also specify whether a subscriber can add images to the photo stream, remove images, add subscribers to the photo stream, make comments, and/or remove subscribers from the photo stream.
- the process 1900 receives (at 1925 ) file location data from the control server.
- the file location data includes one or more URLs to upload the images to a storage server (e.g., a third-party storage server).
- a storage server e.g., a third-party storage server.
- the process 1900 determines whether any images have been deleted from the photo stream. If not, the process 1900 proceeds to 1950 , which is described below. If so, the process 1900 generates ( 1940 ) a message regarding the deleted images. After generating the message, the process 1900 sends (at 1945 ) the message to a control server. Based on the message, the control server may disassociate the images from the photo stream. For instance, the control server may remove references to those images from a photo stream list that lists all images associated with the photo stream.
- the process 1900 modifies ( 1950 ) the photo stream based on the input.
- modifications include adding a new subscriber, deleting a current subscriber, deleting the photo stream, changing the photo stream's name, etc.
- the application of some embodiments Similar to adding and deleting images, the application of some embodiments generates and sends a message to the control server based on the modification.
- the control server then makes changes to the shared photo stream. For instance, the control server may remove a subscriber from a subscriber list that lists all individuals that are able to access the photo stream.
- FIG. 20 conceptually illustrates a process 2000 that some embodiments perform when a participant adds images to or deletes images from a photo stream.
- the process 1900 is performed by the image application (e.g., executing on the subscriber's device).
- the process 2000 begins when it receives (at 2005 ), from a control server, a message regarding an update to a photo stream.
- the process 2000 retrieves (at 2010 ) a list of photo streams from the control server. Based on the list, the process 2000 then notifies (at 2015 ) the subscriber of the update. In some embodiments, the process 2000 only notifies a participant of certain types of updates and ignores other updates. For instance, the process 2000 might display a notification if a new image has been added to the photo stream. On the other hand, if an image has been deleted, the process 2000 might not display any notifications.
- the application of some embodiment allows its user to specify what type of events (e.g., new comment, new image, new subscriber, etc.) triggers a notification.
- the process 2000 determines (at 2020 ) whether new images have been added to the photo stream. If not, the process 2000 proceeds to 2025 , which is described below. If so, the process 2000 retrieves (at 2035 ) file location data from the control server. The process 2000 then retrieves (at 2040 ) the images from a storage server based on the file location data. At 2025 , the process 2000 determines whether any images have been deleted from the photo stream. If so, the process 2000 deletes (at 2030 ) the local copies of the images from the photo stream. Otherwise, the process 2000 ends.
- Some embodiments perform variations on the processes 1900 and 2000 .
- the specific operations of each of these processes may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments.
- the processes 19 and 20 could be implemented using several sub-processes, or as part of a larger macro process.
- a participant modifies a photo stream by adding and deleting images.
- the image application of some embodiments provides a variety of different tools that allow a participant to manage a photo stream.
- the management entails (1) resending an invitation to a recipient who has not responded, (2) adding a new subscriber, (3) deleting a current subscriber, and/or (4) deleting the photo stream.
- FIG. 21 provides an illustrative example of resending a photo stream invitation to a recipient who has not accepted or declined the invitation. Specifically, this figure illustrates in five operational stages 2105 - 2125 how an owner can use the image application to resend the invitation.
- This figure includes the photo stream menu 220 that lists one or more photo streams.
- the figure also includes an edit menu 2130 .
- the edit menu 2130 provides several different tools to modify a photo stream. As shown, the edit menu 2130 includes a name field 2135 , a subscriber section 2140 , a public website control 2145 , and a delete button 2150 .
- the name field 2135 is an area in the edit menu 2130 that displays the name of the photo stream. In some embodiments, the name field 2135 can be used to edit the name of the photo stream. For example, the owner can select the name field 2135 to display a virtual or onscreen keyboard. The owner can then use the virtual keyboard to modify the name of the photo stream.
- the delete button 2150 can be used to delete the selected photo stream.
- the subscriber section 2140 displays a list of individual that have been invited to join the photo stream. Specifically, the section lists the name of each person along with a corresponding subscription status. In some embodiments, the different subscription statuses include pending (e.g., invited), declined, and accepted. The owner can select any person from the list to remove the person as a subscriber, or resend the invitation if the person has not accepted or declined the invitation. As shown in FIG. 21 , the subscriber section includes an add people control 2155 . The owner can select this control to invite other people to join the photo stream.
- the application provides tools to publish the photo stream's images to a website (e.g., a public website). That is, instead of pushing the images to each participant's device, the images can be displayed in a web browser by accessing the website.
- the edit menu 2130 includes the public website control 2145 .
- the owner can select or toggle this control 2145 to publish the shared photo stream to the website. For example, the owner can select the control 2145 to turn on or off the public website feature.
- the application of some embodiments displays the URL associated with the photo stream's website.
- the image sharing tools of some embodiments allows the owner to control user access to the photo stream. For example, the owner can control read and write access by specifying one or more individuals that can add images to and/or remove image from the photo stream.
- the image sharing tools of some embodiments allows the owner to control commenting (e.g., which subscriber can or cannot leave comments, etc.).
- the photo stream menu 220 includes a selectable item 2182 (e.g., a colored icon with a directional arrow) for the shared photo stream. This item 2182 can be selected to display the edit menu 2130 for the corresponding photo stream.
- the application of some embodiments includes an edit button 2160 for entering the photo stream editing mode.
- the owner selects the selectable item 2182 associated with the “Family Photos” photo stream.
- the selection of the selectable item 2182 causes the application to display the edit menu 2130 .
- the edit menu 2130 displays the name of the selected photo stream in the name field 2135 .
- the subscriber section 2140 includes a list of people that have been invited to the photo stream. The list includes “Derek Parker” and “Susan Parker”. The subscriber section also displays the subscription status below the name of each individual. Specifically, the statuses indicate that Derek Parker has accepted the invitation, while Susan Parker's invitation status is pending (e.g., invited).
- the owner selects (e.g., by tapping the owner's finger on) the recipient “Susan Parker” from the subscriber section 2140 .
- the selection causes the application to display the subscriber menu 2175 , as illustrated in the fourth stage 2120 .
- the subscriber menu 2175 is overlaid by the top bar 2180 .
- the top bar 2180 includes a back button 2185 to return to the previous view.
- the top bar 2180 also includes a heading that states the name of the subscriber.
- the subscriber menu 2175 includes (1) an email field 2190 , (2) a resend invitation button 2195 , and (3) a remove subscriber button 2196 .
- the email field 2190 displays the email address of the recipient. The owner can also use this field to modify the email address of the recipient.
- the resend invitation button 2195 can be used to resend the invitation to the recipient.
- the remove subscriber button 2196 can be used to remove the recipient or subscriber from the photo stream.
- the owner selects the resend invitation button 2195 to resend the photo stream invitation.
- the recipient's device may display one more notifications of the invitation. For example, the recipient's device may re-display a banner stating that the owner shared a photo stream with the recipient.
- an email message may be sent to the recipient's device regarding the photo stream invitation.
- the email may include a link that when selected adds the recipient as a subscriber to the photo stream.
- FIG. 22 provides an illustrative example of sending an invitation to another recipient to join the shared photo stream. Three operational stages 2205 - 2215 of the owner's device are illustrated in this figure.
- the application displays the photo stream edit menu 2130 .
- the menu includes the add people button 2155 .
- the owner selects (e.g., by tapping the owner's finger on) the add people button 2155 .
- the selection causes a virtual or on-screen overlay keyboard 140 to be displayed, as illustrated in the second stage 2210 .
- the owner then begins to input an email address of the subscriber.
- the application displays, in a suggestion field 535 , a contact from the owner's contacts list or address book.
- the name of the contact is shown with the contact's associated email address.
- the owner can selects the name from the list 535 to automatically fill in the subscriber field 130 .
- the third stage 2215 illustrates the photo stream edit menu 2130 after the owner has specified another recipient to join the photo stream.
- the name of the recipient is listed in the subscriber section 2140 . Specifically, the name is listed with the pending status (e.g., invited status), as the person has not yet accepted the photo stream invitation.
- the owner uses the image application to invite a person to join the shared photo stream.
- the image application of some embodiments allows the owner to remove subscribers from the photo stream. This includes the recipients that have not yet responded to the photo stream invitation.
- FIG. 23 provides an illustrative example of removing a subscriber. Four operational stages 2305 - 2320 of the owner's device are illustrated in this figure.
- the application displays the subscriber menu 2175 .
- the top bar 2180 includes the heading that states the name of the person that subscribed to the photo stream.
- the menu 2175 also includes the remove subscriber button 2196 for removing the subscriber.
- the resend invitation button is not shown in the subscriber menu 2175 .
- the owner selects the remove subscriber button 2196 .
- the second stage 2310 illustrates the application after the owner has selected the remove subscriber button 2196 .
- the application displays a pop-up window 2335 (e.g., an action sheet).
- the pop-up window states that the photo stream and its images will be removed from all of the subscriber's devices.
- the owner selects a confirmation button 2330 to confirm removing the subscriber.
- the application is awaiting confirmation of the removal from a server (e.g., the control server) that maintains the list of individuals (e.g., an access list) associated with the photo stream.
- the menu is overlaid by a prompt 2320 that indicates that the individual is being removed.
- the application also displays a spinner 2325 while awaiting confirmation of the removal.
- the application may display one or more other graphical symbols (e.g., an hourglass) or text to convey the same meaning.
- the fourth stage 2320 illustrates the photo stream edit menu 2130 after the subscriber has been removed from the photo stream. As shown, the name of the subscriber is no longer listed in the subscriber section 2140 .
- the image application allows an owner to delete a photo stream.
- FIG. 24 provides an illustrative example of deleting a photo stream. Four operational stages 2405 - 2420 of the owner's device are illustrated in this figure.
- the application displays the photo stream edit menu 2130 .
- the menu includes the delete button 2150 for deleting a photo stream.
- the owner has previously selected the photo stream from the photo stream menu (not shown). To delete the photo stream, the owner selects the delete button 2150 .
- the pop-up window 2430 includes a confirmation button 2435 to delete the photo stream and a cancel button 2440 to cancel the delete operation.
- the pop-up window 2430 also includes a message stating that the photo stream will be deleted from all the owner's devices and the subscribers' devices. The photo stream is identified by its name in the message.
- the owner selects (e.g., by performing a gesture such as tapping the owner's finger on) the confirmation button 2435 to confirm deletion of the photo stream.
- the third stage 2415 illustrates the owner's device after the owner has selected the confirmation button 2435 .
- the application displays a prompt 2450 stating that the photo stream is being deleted.
- the photo stream is also displayed with a spring wheel or spinner 2455 indicating that it is awaiting confirmation of the delete operation.
- the confirmation is sent from the control server to the owner's device.
- the fourth stage 2420 illustrates the photo stream menu 220 after the photo stream has been deleted. As the “Family Photos” photo stream has been deleted, it is not listed in the photo stream menu 220 .
- the owner is allowed to modify a photo stream by resending an invitation to a recipient, adding a subscriber, removing a subscriber, and deleting the photo stream.
- the application of some embodiments prevents subscribers from performing one or more of these operations.
- the application of some embodiments allows the subscriber to unsubscribe from the photo stream.
- FIG. 25 provides an illustrative example of unsubscribing from a photo stream.
- Five operational stages 2505 - 2525 of the subscriber's device are illustrated in this figure.
- the image application displays the photo stream menu 220 .
- the photo stream menu 220 lists the “Family Photos” photo stream 2535 .
- the subscriber selects the selectable item 2182 .
- this menu includes only the subscriber section and a unsubscribe button 2555 . That is, it does not include menu items to remove or add a subscriber, resend an invitation, rename a photo stream, etc. This is because the subscriber is not the owner of the photo stream. In this example, the subscriber can unsubscribe from the photo stream but has limited control over managing the photo stream.
- the image sharing tools may allow an owner of the photo stream to specify access privileges. For example, the owner can specify whether the subscriber can add images to the photo stream, remove images, add subscribers to the photo stream, and/or remove subscribers from the photo stream.
- the name of the subscriber 2540 can be selected from the subscriber section 2140 .
- the selection results in the display of the subscriber menu (not shown).
- the subscriber menu may include an email field that displays the email address of the subscriber.
- the application allows the subscriber to modify or update the email using this field.
- One example of such a subscriber menu has been described above by reference to FIG. 21 .
- the subscriber selects (e.g., by performing a gesture such as tapping the subscriber's finger on) the unsubscribe button 2555 .
- the selection results in the display of a pop-up window 2560 .
- the pop-up window 2560 includes a confirmation button 2565 to confirm unsubscribing from the photo stream and a cancel button 2570 to cancel the unsubscribe operation.
- the pop-up window 2560 also includes a message stating that the photo stream will be deleted from all of the subscribers' devices.
- the owner selects (e.g., by performing a gesture such as tapping the owner's finger on) the confirmation button 2565 to confirm unsubscribing from the photo stream.
- the application of some embodiments generates a message having information (e.g., a user ID such as an email address) to unsubscribe the subscriber.
- the message is then sent to the control server.
- the control server may remove the user ID from an access list associated with the photo stream.
- the access list contains a list of authorized individuals that are able to access the photo stream.
- the fourth stage 2520 illustrates the subscriber's device after the subscriber has selected the confirmation button 2560 .
- the application displays a prompt 2575 indicating that the photo stream is being removed.
- the photo stream is also displayed with a spring wheel or spinner 2580 indicating that it is awaiting confirmation of the unsubscribe operation.
- the fifth stage 2525 illustrates the photo stream menu 220 after the unsubscribe operation. As the subscriber has been unsubscribed from the photo stream, the “Family Photos” photo stream is removed from the photo stream menu 220 .
- the image application of some embodiments provides tools to set restrictions or parental controls for one or more of its features.
- the restrictions include preventing a user of a device from sending and receiving photo stream invitations.
- FIG. 26 provides an illustrative example of preventing the user from receiving photo stream invitations. Four operational stages 2605 - 2620 of the user's device are illustrated in this figure.
- the first stage 2605 illustrates the device 400 displaying a desktop graphical user interface of its operating system.
- the operating system's desktop includes several selectable icons of different applications (e.g., image application, camera application).
- the desktop also displays an icon 2625 for the settings menu. To open the settings menu, the user selects the icon 2625 from the desktop.
- the second stage 2610 illustrates the settings menu 2630 after the user has selected the icon 2625 .
- the settings menu 2630 displays “General” in the heading, under which different general settings relating to the operating system and/or the device are displayed. The user might have navigated to this section from a main settings menu (not shown).
- the general section includes a selectable item 2635 for setting restrictions or parental controls. To set restrictions, the user selects the item 2635 from the general section of the settings menu 2630 .
- the third stage 2615 illustrates the user's device after the selection of the selectable item 2635 .
- the selection causes a passcode field 2640 and the virtual or on-screen keyboard 140 to appear.
- the passcode field 2640 is for restricting unwanted users (e.g., children) from making changes to device or application settings.
- the user then uses the keyboard 140 to type the passcode into the passcode field 2640 .
- the settings menu 2630 displays the restriction section 2650 as illustrated in the fourth stage 2620 .
- the restriction section 2650 includes a list of restriction controls for different applications. To simply the discussion, only two restriction controls related to the image application area shown in the fourth stage 2620 .
- the restriction section 2650 includes a send invitation control 2655 (e.g., toggle switch) to turn on or off the send invitation feature.
- the restriction section 2650 also includes a receive invitation control 2660 to turn on or off the receive invitation feature. Each of these controls 2655 and 2660 is displayed with an icon that indicates that the control is associated with the image application. As shown in the fourth stage 2620 , the user selects the receive invitation control 2660 to prevent any user of the device from receiving photo stream invitations.
- the user places restrictions on receiving photo stream invitations.
- the image sharing tools allow the user to freeze or lock a cloud service account in its current state. By locking the account, the user cannot create a new photo stream (e.g., with the user's device associated with the account) or become a subscriber to another photo stream.
- the master account lock is provided in the restriction section 2650 .
- the restriction section 2650 may include a “Don't Allow Changes” option for locking the account its current state or an “Allow Changes” option for unlocking the account.
- FIG. 27 provides an illustrative example of turning off such shared photo stream features. Two operational stages 2705 and 2710 of the user's device are illustrated in this figure.
- the device is displaying a settings menu 2715 for managing cloud services associated with an account.
- cloud services include cloud storage service, synchronizing data across user devices, etc.
- the settings menu 2715 includes an account tab 2720 that can be selected to view account information (e.g., account payment information, available storage space).
- the settings menu 2715 also includes a photo stream menu item 2725 for displaying a photo stream settings menu 2740 .
- the photo stream menu item 2725 is displayed with text that indicates that the personal photo stream and/or the shared photo stream is currently turned on.
- the first stage 2715 illustrates the user selecting the photo stream menu item 2725 .
- the selection causes the image application to display the photo stream menu 2740 .
- This menu includes a first control 2730 (e.g., a toggle switch) for turning on or off the personal photo stream feature (e.g., device to device syncing).
- the first control 2730 is displayed with text that indicates that, when the control is turn on, the new images (e.g., captured or imported images) will automatically be uploaded and sent to one or more other devices associated with the cloud service account.
- the menu 2740 includes a second control 2735 (e.g., a toggle switch) for turning on or off the shared photo stream feature.
- the second control is displayed with text that indicates that, when the control has been turned on, the device can be used to create new photo streams to share with other people, or subscribe to other people's photo stream.
- the user selects the second control 2735 to turn off the shared photo stream feature.
- the image application of some embodiments provides different tools to manage notifications. These tools can be used to specify whether a banner is displayed, an alert is shown, and/or a sound is played (e.g., when a new comment has been received for a photo stream, when there is a new photo stream invitation, etc.).
- the application of some embodiments allows the user to granularly manage notification by implementing a whitelist feature.
- the whitelist feature allows the user to specify whether photo stream notifications are presented for everyone or presented for only those entities that are listed in the user's contact list.
- FIG. 28 provides an illustrative example of turning on the whitelist feature.
- Two operational stages 2805 and 2805 of the user's device are illustrated in this figure.
- the device In the first stage 2805 , the device is displaying a notification section 2815 .
- the user might have navigated to this section from the main settings menu.
- the user can select an application to manage different notifications (e.g., banner, sound, badge, etc.).
- the image application is listed in the list of applications 2870 .
- the first stage 2805 the user selects the image application from the list 2870 .
- the second stage 2810 illustrates the device after the selection of the image application from the notification section 2815 .
- the selection results in the display of the image application's notification menu 2820 .
- the menu includes multiple controls 2825 - 2865 for managing notifications.
- This menu 2820 includes a control 2835 to turn on or off a notification center and a control 2840 to specify the number of notifications to show in the notification center.
- the notification center is a display area that lists different notifications.
- the menu 2820 includes selectable items 2845 - 2855 for turning on or off banner notification and alerts.
- the menu 2820 also includes a control 2860 to turn on or off badging icons (e.g., with a number), and a control 2865 to turn on or off playing sound.
- the menu 2820 includes selectable items 2825 and 2830 for switching between receiving alerts from everyone or from only those in the user's contacts. In the second stage 2810 , the user selects the selectable item 2830 to display alerts for only those in the user's contact list.
- the image application provides tools to share comments regarding images in the photo stream. Several examples of sharing comments will now be described by reference to FIGS. 29-37 .
- FIG. 29 provides an illustrative example of leaving a comment regarding an image in a shared photo stream.
- Six operational stages 2905 - 2930 of the owner's device are illustrated in this figure.
- the first stage 2905 illustrates the image display area 105 , which includes thumbnail representations of images.
- the thumbnails represent images associated with the photo stream (e.g., “Family Photos”).
- the owner might have first selected the name of the photo stream from the photo stream menu (not shown) to display these thumbnail images.
- the owner selects the corresponding thumbnail image 2940 from the image display area 105 .
- the selection causes the image display area 105 to display a full screen representation 2945 of the corresponding image.
- the selection also causes the top and bottom bars 210 and 370 to be modified.
- the top bar 210 includes a back button 330 to return to the thumbnail view.
- the top bar 210 also includes a heading that states that the displayed image 2945 is the second of two images in the photo stream.
- the top bar 210 may also include an edit button that when selected provides different editing tools to edit the displayed image.
- the editing entails enhancing the image, removing red eye from the image, and/or cropping the image.
- the bottom bar 370 includes (1) a share button 345 for sharing the selected image, (2) a play button 350 for playing a slide show of the images in the photo stream, (3) a delete button 1740 for deleting the image from the photo stream, and (4) a comment button 360 for leaving comments regarding the displayed image.
- the bottom bar may also include a stream button (not shown) for streaming the images in the photo stream to one or more other devices (e.g., a desktop computer, a laptop).
- each item in the bottom bar 370 is displayed with a corresponding icon.
- the comment button 360 is displayed with a chat bubble icon 375 .
- the chat bubble icon 375 includes a plus sign (i.e., “+”) that provides a visual indication that a comment can be added for the displayed image 325 .
- the owner selects the comment button 360 .
- the selection causes a virtual or on-screen overlay keyboard 140 to appear, as illustrated in the third stage 2915 .
- the owner then types in a comment regarding the image 2945 in a comment field 155 .
- the post button 2950 may also change its appearance when the owner types in a character in the comment field.
- the owner types in a comment into the comment field and selects the post button 2950 .
- the application provides a selectable item for deleting a comment.
- the application may display a delete button next to a comment. The delete operation can only be performed by the person that left the comment, in some embodiments.
- the fifth stage 2925 illustrates the image display area 105 after posting the comment. As shown, the comment is displayed over the image 2945 . The comment is also associated with metadata. The metadata is displayed below the comment, and identifies the person that left the comment and the time the comment was left. As shown in the fifth stage 2925 , the person who left the comment is identified as “Me”. This is because the owner left the comment with his or her device. The comment is also displayed with an add comment field 365 that can be selected to add additional comments.
- the top and bottom bars 210 and 370 disappear upon selection of the post button 2950 .
- the chat bubble icon 375 remains in the same position.
- the “+” sign has been replaced with the number “1”
- the color of the chat bubble icon has been changed from a first color (e.g., white) to a second different color (e.g., blue).
- the number identifies the number of comments associated with the image.
- the color of the icon indicates that the image application is in a comment displaying mode.
- the owner can select the chat bubble icon to (1) hide the comment, (2) hide the add comment field 365 , and (1) return the chat bubble icon to its first color (e.g., white).
- the number remains visible on the chat bubble icon (e.g., by changing color).
- FIG. 30 provides an illustrative example of how the comment appears on a subscriber's device.
- Six operational stages 3005 - 3030 of the subscriber's device are illustrated in this figure.
- the subscriber's device displays the desktop of its operating system.
- the desktop includes the icon 435 for opening the image application.
- the icon 435 does not display any marking indicating that there are one or more updates to the photo stream.
- the icon 435 is not overlaid by a badge with a number indicating that a photo stream has been updated.
- the application of some embodiments displays a marking on the icon 435 when the subscriber has participated in the conversation (i.e., previously left a comment regarding the same image).
- the second stage 3010 illustrates the application's photo stream menu 220 .
- the subscriber might have previously selected the photo stream tab 114 to display this menu.
- the name of the photo stream is listed with a marking 3040 .
- the marking 3040 provides a visual indication to the subscriber that there is one or more updates to the photo stream.
- the marking 3040 is a blue dot.
- different types of markings can be used to convey the same meaning. For instance, the icon 285 of the “Photo Stream” tab 114 can be badged with a number 280 that indicates that there is an update to a photo stream.
- the subscriber selects the photo stream 3045 from the menu 220 .
- the selection causes the application to display the image display area 105 , as illustrated in the third stage 3015 .
- the image display area 105 includes thumbnail representations and of images in the photo stream 3045 .
- the application of some embodiments provides a visual indication that an image is associated with one or more comments. This is shown in the third stage 3015 because the second thumbnail image 3050 is displayed on the image display area 105 with a marking 3055 .
- the marking 3055 is a chat bubble that is displayed at least partially over the image 3050 .
- the chat bubble is also colored (e.g., blue). The color provides a visual indication to the subscriber that there is an unread comment associated with the corresponding image.
- the subscriber selects the thumbnail image 3050 .
- the selection causes the image display area 105 to display a full screen representation 3060 of the corresponding image.
- the selection also causes the comment button 360 to appear along the bottom bar 370 .
- the comment button 360 contains a chat bubble icon 375 .
- the chat bubble icon 375 is colored white and includes a number “1”. The number represents the number of comments associated with the image.
- the subscriber selects the comment button 360 .
- the fifth stage 3025 illustrates the image display area 105 after the selection of the comment button 360 . As shown, the comment is displayed over the image 3060 . The comment is also associated with metadata. The metadata is displayed below the comment, and identifies the person who left the comment and the time when the comment was left. In the example illustrated in the fifth stage 3025 , the person who left the comment is identified as “Emily Parker”.
- the subscriber selects the comment field 365 to add another comment.
- the sixth stage 3030 illustrates the subscriber leaving another comment. Specifically, the comment is inputted into the comment field using the on-screen keyboard 140 .
- the subscriber is notified of the update to the photo stream after opening the image application and navigating to the photo stream menu 220 .
- the application of some embodiments provides one or more different types of notifications to alert a participant that a new comment has been posted.
- the owner is always notified of any new comments that have been posted.
- a subscriber may be notified when the subscriber has participated in the conversation. That is, the subscriber has left a comment regarding an image and another comment was left regarding that same image by another participant.
- a participant e.g., subscriber, owner
- shared an image that participant is always notified of any new comments that have been posted regarding the same image.
- FIG. 31 provides an illustrative example of how the image application notifies an owner of a new comment and presents the new comment on the owner's device.
- Five operational stages 3105 - 3125 of the owner's device are illustrated in this figure.
- the owner's device displays the desktop of its operating system.
- the desktop includes the icon 435 for opening the image application.
- the image application displays a banner 3130 indicating that a new comment has been left for an image.
- the banner 3130 is superimposed along the top edge of the operating system's desktop.
- the banner 3130 rotates into view by simulating a 3D effect.
- the banner 3130 may float on top of the main display area for a predetermined period of time and then disappear (e.g., rotate out of view, fade away).
- the banner 3130 includes the comment and the name of the subscriber that left the comment.
- the banner 3130 also includes a thumbnail representation 3135 of the image associated with the comment.
- the banner 3130 is a selectable item that when selected opens the image application.
- the image application may also open to display a full screen representation of the image with the comment.
- the image application may provide a different type of marking.
- One such type of marking is a badge that is displayed at least partially over the icon of the image application. This is shown in the first stage 3105 as the icon 435 is displayed with a badge 830 that is marked with a number “1”.
- the number represents the number of photo streams that have one or more updates, and does not represent the number of new comments.
- the application of some embodiments may display such a marking to identify the number of new comments that have been received for a photo stream.
- the owner selects the icon 435 to open the image application.
- the second stage 3110 illustrates the application's photo stream menu 220 after the application is opened. The owner might have previously selected the photo stream tab 3035 to display this menu 220 .
- the name of the photo stream 3140 is listed with a marking 3040 .
- the marking 3040 provides a visual indication to the subscriber that there is one or more updates to the photo stream 3140 .
- the owner selects the photo stream 3140 from the menu 220 .
- the selection causes the application to display the image display area 105 , as illustrated in the third stage 3115 .
- the image display area 105 includes thumbnail representations of images in the photo stream.
- the application of some embodiments provides a visual indication that an image is associated with one or more comments. This is shown in the third stage 3115 because the second thumbnail image 3050 is displayed on the image display area with a marking 3150 .
- the marking 3150 is a double chat bubble or speech bubble icon.
- the double chat bubble indicates that the owner has participated in the conversation. That is, the owner has previously left a comment regarding the image and a new comment has been received.
- the double chat bubble is displayed at least partially over the thumbnail image 3050 .
- the double chat bubble is also colored (e.g., blue). The color provides a visual indication to the owner that there is an unread comment associated with the corresponding image.
- the application does not differentiate whether a person participated in a conversation. For example, the application may display a same marking (e.g., the single chat bubble and not the double chat bubble) regardless of whether the person participated in the conversation.
- the owner selects the thumbnail image 3050 .
- the selection causes the image display area 105 to display a full screen representation 3060 of the corresponding image as illustrated in the fourth stage 3120 .
- the new comment is displayed over the image 3060 .
- the new comment is also associated with metadata that identifies the person who left the comment and the time when the comment was left.
- the comments are sequentially displayed in the image display area 105 . Specifically, the new comment is shown below the previous comment.
- the add comment field 365 is displayed below the previous comment.
- the fifth stage 3125 illustrates the image display area 105 after navigating out of the full screen view (e.g., by selecting a back button).
- the thumbnail view is identical to the one shown in the third stage 3115 .
- the double chat bubbles 3150 have been modified to indicate that there are no unread comments.
- the color of the double chat bubble 3150 has been modified from one color (e.g., blue) to another color (e.g., white).
- the double chat bubble 3150 can be removed from the thumbnail image 3050 to provide the same indication (e.g., no unread comments).
- the different marking are displayed over images with comments.
- the application follows a set of rules to display the different markings. For example, a first marking (e.g., a comment or chat bubble) that is colored a first color (e.g., blue) indicates that the image is associated with an unread comment and the participant has not left a comment for the same image.
- a first marking e.g., a comment bubble
- a second different color e.g., white
- a second different marking e.g., a double comment or chat bubble
- the first color e.g., blue
- the second different marking a double comment bubble
- the second different color e.g., white
- FIG. 32 provides an illustrative example of marking an image. Three operational stages 3205 - 3215 of the user's device are illustrated in this figure.
- the first stage 3205 illustrates the image application displaying a full screen representation of an image 3220 .
- the image 3220 is associated with several comments and a mark 3225 .
- the mark 3225 includes an image or symbol.
- the mark 3225 is a smiley face or happy face that provides an indication that one or more individuals listed adjacent to it approves or likes the displayed image 3220 .
- any number of different symbols e.g., heart symbol
- images e.g., flags, icons
- the name of a subscriber is displayed next to the smiley face symbol 3225 .
- the second stage 3210 illustrates the owner selecting the marking 3225 to indicate that he or she likes the marking. Specifically, the user selects the marking 3225 from the image display area 105 .
- the third stage 3215 illustrates the image display area 105 after the selection of the symbol 3225 . As shown, the selection results in the owner being added to the list of individuals adjacent to the symbol 3225 . Specifically, the owner's identification has been added next to the subscriber's name. In this example, the owner is identified as “Me”.
- the application counts the association of the approval mark as one comment. That is, the number of likes is counted towards the number of comments. This is shown in the second and third stage 3210 and 3210 because the number of comments in the comment bubble 3235 is incremented by one (i.e., changes from three comments to four comments).
- the application of some embodiments allows a participant to remove the approval mark. For instance, the owner can reselect the marking 3225 to unlike the displayed image.
- FIG. 33 provides an illustrative example of how the image application of some embodiments displays an image with comments.
- Four operational stages 3305 - 3320 of the owner's device are illustrated in this figure.
- the first stage 3305 illustrates the image application displaying a full screen representation of an image 3325 with comments.
- the full screen representation is overlaid by the top bar 210 and the bottom bar 370 .
- the top bar 210 includes the back button 330 and a heading. The heading indicates that the displayed image is the second of two images.
- the bottom bar 370 includes (1) a share button 345 for sharing the displayed image, (2) a play button 350 for playing a slide show of the images in the photo stream, (3) a delete button 1740 for deleting the displayed image, and (4) a comment button 360 for leaving a comment regarding the displayed image.
- the bottom bar may also include a stream button (not shown) for streaming the images in the photo stream to one or more other devices (e.g., a desktop computer, a laptop).
- the owner selects the full screen representation of the second image in the photo stream. As illustrated in the second stage 3310 , the selection causes the top and bottom bars to disappear (e.g., fade away). However, the comments remain overlaid on the full screen representation. In addition, the icon 3335 of the comments button 360 (e.g., the comment bubble) is displayed in the same location over the full screen representation. As shown in the second stage 3310 , the owner then selects a location 3340 on the full screen representation 3325 to zoom in on the image.
- the third stage 3315 illustrates the image display area 105 after the selection of the location 3340 on the full screen representation.
- the selection results in the application zooming in on the displayed image towards the selected location.
- the icon 3335 of the comment button 360 e.g., the comment bubble
- the comments are not displayed in this zoomed view.
- the owner selects the icon 3335 .
- the fourth stage 3320 illustrates the image display area 105 after the selection of the icon 3335 .
- the selection results in the application displaying the comments in the zoomed view.
- the selection may result in the application displaying the full screen representation with the comment.
- the selection may cause the application to zoom out of the displayed image.
- the selection may also cause the comments to reappear over the full screen representation 3325 .
- the application of some embodiments displays the full screen view that is illustrated in the second stage 3310 .
- FIG. 34 provides an illustrative example of scrolling through different images with comments. Three operational stages 3405 - 3415 of the owner's device are illustrated in this figure.
- the first stage 3405 illustrates the image application displaying the full screen representation 3420 of the image associated with several comments.
- the comments and the comment icon 3335 appear over the full screen representation 3420 .
- the comment icon 3335 has been activated (e.g., changed from a first color to a second different color) to indicate that comments are being displayed.
- the top and bottom bars are not shown in this full screen view.
- the user selects (e.g., swipes across) the screen to display the next image. This causes the application to display the next image 3425 . As shown in the third stage 3415 , the next image 3425 is also displayed with its associated comment. When the next image is not associated with any comments, the application of some embodiments only displays the add comment field 365 and the icon 3335 (e.g., with the plus sign instead of a number).
- FIG. 35 provides an illustrative example of scrolling through the comments associated with one image.
- Three operational stages 3505 - 3515 of the owner's device are illustrated in this figure.
- the first stage 3505 illustrates the image application displaying the full screen representation of the image with the comment. Specifically, there are six comments associated with the displayed image and five of those are shown in the image display area. The comments are also in a sorted order, starting with the oldest comment at or near the top and the newest one at the bottom.
- the application displays the comments in opposite order, starting with the newest comment at the top and the oldest one at the bottom.
- the application of some embodiments presents the comment with shading. For example, the application may display the top of the comment list being white down to the bottom becoming grayer and grayer.
- the image display area displays four comments and the add a comment field 365 .
- the user then scroll through the comments associated with the image by using a touch gesture (e.g., moving or dragging the user's finger up or down the device's screen).
- the gesture causes the application to display one older comment while removing the add comment field 365 .
- the user inputs the same gesture to display another comment. As shown, the input causes another comment comes into view while a newer comment scrolls out of the view.
- the input also causes a marking tool (e.g., the smiley face, the like icon) also comes into view.
- FIG. 36 conceptually illustrates a process 3600 that some embodiments use to post a new comment.
- the process 3600 is performed by the image application.
- the process 3600 begins when it receives (at 3605 ) a user input to post a new comment for an image in a shared photo stream.
- the user might have first inputted a comment into a comment field and then selected a post button.
- the process 3600 After receiving the input, the process 3600 generates (at 3610 ) a message regarding the new comment.
- the message may include the new comment.
- the message may also include one or more identifying information, such as (1) a user identification (“ID”) that identifies a participant that left the new comment, (2) a photo stream ID that identifies the photos stream, (3) an image ID that identifies the image with the new comment, (4) comment ID that identifies the new comment, and (5) a timestamp that identifies the time and date the new comment was left.
- ID user identification
- the message may also include one or more identifying information, such as (1) a user identification (“ID”) that identifies a participant that left the new comment, (2) a photo stream ID that identifies the photos stream, (3) an image ID that identifies the image with the new comment, (4) comment ID that identifies the new comment, and (5) a timestamp that identifies the time and date the new comment was left.
- ID user identification
- the process 3600 then sends (at 3615 ) the message to a control server.
- the control server receives the message and stores the comment. Based on the message, the control server may also identify entities (e.g., owner, subscribers) associated with the photo stream. The control server may then send a message regarding an update to a photo stream to each device associated with the identified entities.
- entities e.g., owner, subscribers
- FIG. 37 conceptually illustrates a process 3700 that some embodiments use to display the new comment.
- the process in some embodiments, is performed by the image application.
- the process begins when it receives (at 3705 ), from a control server, a message regarding an update to the shared photo stream.
- the process 3700 retrieves (at 3710 ) a list of photo streams from the control server. Based on the list, the process 3700 retrieves (at 3715 ) the new comment from the control server.
- the process 3700 notifies a participant (e.g., the device's user) of the new comment.
- a participant e.g., the device's user
- the application of some embodiments always notifies the owner when a new comment has been posted regarding an image in the shared photo stream.
- a subscriber may be notified when the subscriber has participated in the conversation. That is, the subscriber has left a comment regarding an image and another comment was left regarding that same image by another participant.
- a participant e.g., subscriber, owner
- that participant is always notified of any new comments that have been posted regarding the same image.
- the process 3700 may display one or more marking and/or cause the participant's device to play a sound or vibrate. For instance, a visual indication of the association of the comment may be shown with a banner and a badge over an icon. The visual indication may be presented at a thumbnail view (e.g., with a chat bubble near or at least partially over the thumbnail representation) and/or at a full-screen view (e.g., with a similar chat bubble near or at least partially over the thumbnail representation).
- the process 3700 determines (at 3725 ) whether there is an input to display the new comment.
- the participant might select (e.g., tap the participant's finger on) a banner notification.
- the participant might select a comment tool (e.g., the chat bubble icon) to display the new comment. If there is an input to display the new comment, the process 3700 displays (at 3730 ) the new comment with the associated image. Otherwise, the process 3700 ends.
- Some embodiments perform variations on the processes 3600 and 3700 .
- the specific operations of each of these processes may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments.
- the processes 3600 and 3700 could be implemented using several sub-processes, or as part of a larger macro process.
- the image application of some embodiments allows a participant to publish the photo stream to a website.
- the website is a public website that can be accessed by any browser with the correct uniform resource locator (URL) address.
- URL uniform resource locator
- FIG. 38 provides an illustrative example of publishing a shared photo stream to a website. Specifically, in three operational stages 3805 - 3815 , this figure illustrates how an owner can publish the photo stream using the image application. This figure includes the edit photo stream menu 2130 that has been described above by reference to FIG. 21 .
- the first stage 3805 illustrates the owner's device displaying the edit menu 2130 .
- the owner might have first selected a selectable item (e.g., a colored icon with a directional arrow) that is displayed with the name of the photo stream in the photo stream menu.
- the edit menu 2130 includes the public website control 2145 .
- the owner can select the control 2145 to turn on or off the public website feature.
- the public website feature is turned off or disabled.
- the owner selects (e.g., by performing a gesture such as tapping the owner's finger on) the control 2145 .
- the second stage 3810 illustrates the image application after the selection of the control 2145 .
- the selection causes the application to send data to one or more servers to publish the photo stream to the website.
- the application may generate one or more lower resolution images from a stored image (e.g., raw image) and send those images to a server.
- the application may exchange messages with a control server regarding publication.
- the edit menu 2130 is overlaid by a spinner or spinning wheel 2325 (e.g., below the control in the edit menu).
- the spinner 2325 provides a visual indication that the application is awaiting confirmation of the publication.
- the third stage 3815 illustrates the image application after the publication of the images associated with the photo stream.
- the publication of the photo stream results in the display of a share link control 3820 .
- the share link control 3820 is displayed below the public website control 2145 .
- the share link control 3820 can be selected to generate a message (e.g., an email) that contains a link to the URL to access the website.
- the message can be sent to anyone, including those that are not subscribed to the photo stream.
- the selection of the share link button may cause the application to display different options (e.g., buttons with icons). Each of these options may allow the user to share the link differently, e.g., through an email message, text message, social network post, social network message, etc.
- the URL is also displayed on the edit menu 2130 .
- the edit menu 2130 is overlaid by a message 3825 stating that the photo stream can also be viewed at the URL (e.g., http) address.
- FIG. 39A provides an illustrative example accessing the webpage with the subscriber's device.
- Three operational stages 3905 - 3915 of the subscriber's device are illustrated in this figure.
- the first stage 3905 illustrates the selection of an icon 925 of the email application.
- the email application displays the email sent from the owner's device.
- the email includes a message 935 , a link 940 , and a thumbnail image 930 .
- the message 935 states that the owner shared a photo stream with the recipient.
- the thumbnail image 930 shows the icon of the image application.
- the icon is shown with a marking or badge 945 indicating that there is a new photo stream or an update to an existing photo stream.
- the link 940 is a selectable item for the webpage that contains the images from the photo stream.
- the subscriber selects the link 940 .
- the selection causes a web browser to be opened, as illustrated in the third stage 3915 .
- the browser 3930 displays the webpage that includes the images from the photo stream.
- the webpage is overlaid by a top bar 3920 .
- the top bar 3920 states the title of the photo stream and the name of the owner.
- the group of images includes its own heading 3925 .
- the heading 3925 includes (1) the date and time the group of images was added to the photo stream, and (2) the number of photos in the group.
- the images are displayed in a grid format. Specifically, the images are displayed in a two by two grid with two images on each grid row. The images are displayed side by side with minimal or no spacing between them in either the horizontal or vertical direction.
- the image layout is selected based on the number of images in a batch and the orientation of the images in the batch. Several examples of selecting a layout for the images will be described by reference to FIGS. 42-47 .
- FIG. 39B provides an example of an alternate email message that is received at the subscriber's device. This figure is identical to stage two 3910 of the previous figure. However, the link to the public website is a secondary link 3935 .
- the primary link 3940 being a link to join the photo stream, which is similar to the one described above by reference to FIG. 9 .
- FIG. 40 provides an illustrative example of how the webpage is updated when a new image is added to the photo stream. Three operational stages 4005 - 4015 of the subscriber's device are illustrated in this figure.
- the browser 3930 displays the webpage that includes the images from the photo stream.
- the webpage displays the batches in reverse chronological order, starting with the newest batch at the top and the previous batch below.
- the images in each batch are displayed in chronological order, starting from the oldest to the newest. Specifically, the images are sequentially displayed starting with top left image 4020 of the first row, which represents the oldest image, to the bottom right image 4025 of the second row, which represents the newest image.
- the user uses a touch gesture to scroll down the webpage to display a second batch of images.
- the third stage 4015 illustrates the webpage displaying a second batch of images that were added at a different time than the first batch.
- the batch includes only one image.
- the heading 4020 indicates that the older batch contains one image and the time when the image was added, which is before the first batch of images.
- FIG. 41 provides an example of scrolling through images in the photo stream.
- the subscriber selects an image 4140 from the webpage.
- the selection causes the web browser to display a full-screen representation 4125 of the selected image.
- the full-screen representation may be displayed with one or more comments.
- the full-screen representation 4125 is displayed only with the first associated comment 4120 .
- the comment 4120 appears as a caption that is displayed over the lower portion of the full-screen representation 4125 .
- the full-screen representation 4125 is displayed with a back button 4135 for returning to the previous view (i.e., the view illustrated in the first stage 4105 ) and a slide show button 4130 for playing a slide show of the published images.
- the full-screen representation 4125 is displayed with navigation buttons (not shown) that can be used to display a next or previous image.
- the subscriber selects (e.g., swipes across the device's screen to display a previous image.
- the third stage 4115 illustrates the web browser 3930 after the selection.
- the browser displays a previous image 4145 in the photo stream.
- the displayed image 4145 is the last image (e.g., the newest image) in another batch (e.g., the newest batch).
- the selection to display a previous image may result in the browser displaying a full-screen representation of the first image (e.g., the oldest image) in the batch.
- a web publishing server publishes images in a photo stream as one or more webpages to a website.
- the web publishing server selects a webpage layout based on the number of images in different batches and the orientation of those images.
- the webpage layout may display images in a particular order (e.g., starting with the oldest image and ending with the newest image, or vice versa).
- the webpage layout may display different batches in a particular order (e.g., starting with the oldest batch to the newest batch, or vice versa).
- FIGS. 42-45 Several example webpage layouts will now be described by reference to FIGS. 42-45 .
- the boxes represent horizontal or landscape images. Each box is numbered, and the number represents the sequence of images, starting from the oldest image to the newest image.
- FIG. 42 provides an illustrative example of webpage layouts for a batch that includes two images.
- Four different example layouts 4205 - 4220 are shown in this figure.
- the layout 4205 represents a layout for a batch that contains two portrait images
- layout 4210 represents one with two landscape images.
- the portrait image may occupy one square grid cell, while the width of the landscape image is matched with the width of the square grid cell.
- the layout 4215 represents a layout where the first image is a portrait image while the second image is a landscape image.
- the layout 4220 represents a layout where the first image is a landscape image while the second image is a portrait image.
- FIG. 43 provides an illustrative example of a webpage layout for a batch that includes three or four images.
- the layout 4305 represents a batch with three images, where the first image is a portrait image, while the layout 4310 represents one where the first image is a landscape image.
- the remaining two images in batch are displayed as square images.
- the layout 4315 shows that all images are displayed as square images when there are four images in a batch.
- FIG. 44 provides an illustrative example of a webpage layout for a batch that includes five images.
- the layout 4405 is for a five-image batch shows that the first four images are arranged in a two-by-two block and the fifth image is placed below the block. The fifth image is also four times the size of each of the first four images.
- the five-image layout 4410 e.g., the landscape layout
- the landscape layout used to display images on certain platforms (e.g., smart TV, digital media receivers). For example, an image application that operates on a digital media receiver may select this layout to display images in a batch.
- FIG. 45 illustrates webpage layouts for a batch that includes more than six images.
- the seven-image layout 4505 is the same as the six-image layouts, except a seventh image is arranged below the first six images.
- the layout 4510 is for a batch where the seventh and eighth images are a mix of landscape and portrait images
- the layout 4515 is for a batch where the seventh and eighth images are landscape images
- the layout 4520 is for a batch where the seventh and eighth images are portrait images.
- This figure also illustrates examples of nine-image layouts 4525 - 4535 , a ten-image layout 4540 , an eleven-image layout 4545 , and a twelve-image layout 4550 .
- These layouts 4525 - 4550 follow a pattern by adding one or more of the layouts described above. Similar to the twelve-image layout 4550 , a layout may be added to another layout by inverting or flipping the order in relation to the different image sizes.
- This figure illustrates example portrait layouts. However, the groups of images can be arranged side-by-side for different landscape layouts for certain platforms (e.g., smart TV, digital media receivers).
- the images are displayed in square cells or blocks, regardless of whether they are landscape or portrait images.
- the web publishing system of some embodiments performs a framing operation that fits the image's smaller dimension (i.e., width or height) on a square cell and displays the portion of the image that is within the grid cell.
- the framing operation may also entail centering or top aligning the image on the grid cell.
- FIG. 46 provides several examples of how images are framed in a webpage layout.
- the figure includes two square cells 4605 and 4610 .
- the landscape image 4615 is placed on the cell 4605 .
- the height of the landscape image 4615 is matched with the height of the cell 4605 .
- the landscape image 4615 is then centered on the grid cell 4605 .
- the portion of the landscape image 4615 within the square cell 4605 is the displayed portion of the landscape image.
- the portrait image 4620 is placed on the cell 4610 . As shown, the width of the portrait image 4620 is matched with the width of the cell 4610 . Different from the landscape image 4615 , the portrait image 4620 is not centered on the grid cell 4610 . Instead, the portrait image 4620 is top aligned on the cell.
- FIG. 47 provides an illustrative example of how portrait and landscape images 4705 are presented in a batch layout (e.g., two-image layout, three-image layout, etc.). As shown, the layout crops the top portion of the landscape image 4705 after shifting the image up a particular amount (e.g., 10% of the image). That is, the top portion of the image and the lower portion of the image are not shown in the batch layout. In this example, the lower portion of the image is cutoff more than the top portion. Different from the landscape image, the center portion of the portrait image 4710 is cropped. Specifically, the portrait image 4710 is cropped such that the left and right outer portions are not shown in the batch layout.
- a particular amount e.g. 10% of the image
- FIG. 48 conceptually illustrates a process 4800 that some embodiments use to publish images in a photo stream to a website.
- the process 4800 in some embodiments, is performed at the server-side by a server computer (e.g., by the web publishing server).
- a client device may generate the web page and upload it to the web publishing server.
- the process 4800 begins when it receives (at 4805 ) a request to publish images. For instance, the process 4800 might receive a request to turn on the website from a client device. The process 4800 then identifies (at 4810 ) the number of images and the orientations of the images in a batch. Based on the identifications, the process 4800 specifies (at 4815 ) a layout for the batch.
- the process 4800 determines whether there are any other batches. If so, the process 4800 returns to 4810 , which is described above. Otherwise, the process 4800 generates (at 4825 ) a webpage based each specified layout. When the batch has been previously published, the process 4800 might use a previously selected layout to generate the webpage. The process 4800 then publishes (at 4830 ) the webpage to a website (e.g., to a web servers).
- a website e.g., to a web servers.
- Some embodiments perform variations on the process 4800 .
- the specific operations may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments.
- the process 4800 might receive images from a client device in order to publish those images.
- the process 4800 returns a Uniform Resource Locator (“URL”) address for accessing the webpage to the client device.
- URL Uniform Resource Locator
- the process 4800 could be implemented using several sub-processes, or as part of a larger macro process.
- the batch layout operations described above may be performed at a client device to display the images.
- a client device For instance, an image application that operates on a digital media receiver, smart TV, or a personal computer may perform the batch layout operation to generate a batch view of the images in the photo stream.
- an image application that operates on a digital media receiver, smart TV, or a personal computer may perform the batch layout operation to generate a batch view of the images in the photo stream.
- the image sharing tools are implemented as part of an image application.
- the image application executes on both the owner and subscriber's device to facilitate image sharing and commenting operations.
- the image sharing tools are implemented across different devices (e.g., smart phone, tablet, laptop, desktop, digital media receiver, etc.) and/or different operating systems (e.g., Windows®, iOS, MAC OS X, etc.). These implementations allow the different platforms to inter-operate in order to share images and comments.
- FIGS. 49-51 An example implementation of the image sharing tools on a tablet device will now be described by reference to FIGS. 49-51 .
- FIG. 49 provides an illustrative example of the image sharing tools on a tablet.
- the image sharing tools are provided as part of the image application described above.
- the tablet's user interface is different from the smart phone's user interface because the tablet has a larger screen than the smart phone.
- Four operational stages 4905 - 4920 of the owner's tablet are illustrated in this figure. This figure includes an image display area 4925 , a photo stream menu 4955 , a photo stream options sheet 4960 , and a comment sheet 4965 .
- These user interface items correspond to those items that are described above for the smart phone by reference to FIGS. 1 and 2 .
- the image application displays images from a collection (e.g., an image library). Specifically, the application displays thumbnail representations of the images. Each thumbnail image is not displayed as a square image but is displayed in its corresponding aspect ratio (e.g., as a portrait image, a landscape image). Three images have been selected using the image display area 4925 .
- the user has also selected the share button 4930 .
- the selection of the share button 4930 results in the display of a pop-up menu 4935 .
- the pop-up menu 4935 appears below the share button 4930 and overlays a portion of the upper-left hand corner of the image display area 4925 .
- the pop-up menu 4935 includes (1) a photo stream button 4940 to create a new photo stream or add images to an existing photo stream, (2) an email button 4945 to email the selected images, and (3) a print button 4950 to print the selected images.
- the user selects (e.g., by tapping the user's finger on) the photo stream button 4940 .
- the second stage 4910 illustrates the owner's tablet after the selection of the photo stream button 4940 .
- the selection results in the display of the photo stream options sheet 4960 .
- the photo stream options sheet 4960 covers only a portion of the image display area 4925 .
- the options sheet 4960 is presented similar to a fill-in card with a field 4970 to input one or more subscribers for the photo stream, a field 4975 to input a name of the photo stream.
- the option sheet also includes a control 4980 to turn on or turn off the public website version of the photo stream.
- the third stage 4915 illustrates the image application after the owner has selected a next button 4985 .
- the selection caused the application to display the comment sheet 4965 .
- the comment sheet 4965 is presented similar to a fill-in card and covers only a center portion of the image.
- the image application displays an animation when switching or transitioning from one display area to another display area. For example, the application may display the photo stream options sheet 4960 being flipped over to the comment sheet 4965 , similar to a two-sided card being flipped over.
- the comment sheet includes a comment filed 4966 and a post button 4968 .
- the user can use the comment field 4966 to input a comment regarding an image (e.g., the first image) in the photo stream.
- the post button 4968 can be selected to publish the photo stream.
- the user does not input any comment into the comment field 4966 and selects the post button 4968 .
- the fourth stage 4920 illustrates the photo stream menu 4955 after the selection of the post button 4968 .
- the new photo stream 4956 is listed with its name.
- the new photo stream 4956 includes previews of one or more images in the photo stream.
- the thumbnail representations of images in the photo stream are sequentially stacked on top of each other starting with the first image on top and the third image at the bottom.
- the image preview could be presented differently.
- the thumbnail images can be presented in a grid format instead of being stacked on top of each other.
- FIG. 50 illustrates another example of the image sharing tools on a tablet. This figure is identical to the previous figure; however, the pop-up menu 4935 includes a grid of icons, instead of the text-based buttons. A similar grid of icons has been described above by reference to FIG. 1 .
- FIG. 51 provides an illustrative example of how comments are presented on the tablet. Three operational stages 5105 - 5115 of the owner's tablet are illustrated in this figure.
- the first stage 5105 illustrates the image application displaying thumbnail representations of images in the photo stream.
- the thumbnail images 5120 - 5125 are also marked with markings These markings indicate that there are comments associated with the corresponding images.
- the thumbnail image 5120 is marked with a single chat bubble and the thumbnail image 5125 is marked with a double chat bubble.
- the single chat bubble indicates that the owner has not participated in the conversation (e.g., left a comment regarding the image).
- the double chat bubble indicates that the owner has previously left a comment regarding the corresponding image.
- the color of these markings (e.g., blue markings) indicates that there are new or unread comments.
- the owner selects (e.g., by tapping the owner's finger on) the thumbnail representation 5125 of the image.
- the selection causes the image application to generate a display of a full screen representation 5130 of the image.
- the image display area 4925 is overlaid by a semi-transparent bottom bar 5135 .
- the thumbnail representations of images in the photo stream are sequentially displayed along the bottom bar 5135 .
- the owner can select any one of these images to display the corresponding full screen representation in the image display area 4925 .
- the comment bubble 5140 includes a number (e.g., “2”) that represents the number of comments associated with the image.
- the comment bubble 5140 is also colored (e.g., colored white) to indicate that the comment mode has not been activated.
- the owner selects the comment bubble 5140 to activate the comment mode.
- Selection of the comment bubble 5140 causes it to change colors (e.g., turn blue), which in turn provides the owner with a visual indication that the comment mode has been activated.
- the selection of the comment bubble also results in the display of the comments 5150 associated with the image.
- the comments 5150 are displayed sequentially with the oldest one on top and the newest one at the bottom.
- the comments 5150 are also associated with metadata.
- the metadata is displayed below each comment, and identifies the person who left the comment and the time when the comment was left.
- the comments 5150 are also displayed with an add comment field 5155 that can be selected to add additional comments.
- the application displays a marking (e.g., a like button, smiley face icon) that can be selected to specify that the participant likes the displayed image. Several examples of such a marking have been described above by reference to FIG. 32 .
- the image sharing tools are provided as part of an image application that executes on a digital media receiver (e.g., high-definition (“HD”) media streaming device) or smart television (“TV”).
- a digital media receiver e.g., high-definition (“HD”) media streaming device
- TV smart television
- a digital media receiver e.g., high-definition (“HD”) media streaming device
- FIGS. 52-55 Several examples of such an image application that executes on a digital media receiver will now be described by reference to FIGS. 52-55 .
- the digital media receiver is controlled by a remote control.
- the remote control may include a set of navigation buttons (e.g., up, down, left, right buttons) and a selection button.
- the remote control may also include other controls such as a menu button to return to a preview view (e.g., previous menu).
- FIG. 52 provides an illustrative example of opening a shared photo stream with a digital media receiver. Specifically, this figure illustrates in three operational stages 5205 - 5215 how the image application presents the photo stream on a wide screen television (“TV”). As shown, the figure includes an operating system desktop 5220 (hereinafter a grid view), a photo stream menu 5225 (hereinafter an album list), and an image display area 5230 (hereinafter a batch view).
- an operating system desktop 5220 hereinafter a grid view
- a photo stream menu 5225 hereinafter an album list
- an image display area 5230 hereinafter a batch view
- the grid view 5220 displays different application icons in a gird formation. The user can select any one of the icons to open a corresponding application.
- the grid view 5220 includes only two icons, namely a photo stream icon for opening the image application and a TV show icon for opening a TV show streaming application.
- the grid view 5220 can include other icons for other applications (e.g., movie streaming application, music streaming application, etc.).
- the grid view may also include a settings icon for opening a settings menu.
- the album list 5225 displays a list of photo streams.
- each photo stream is listed with its name, a thumbnail representation of an image (e.g., a first image) in the photo stream, and a number that identifies the number of images in the photo stream).
- the photo stream menu includes a preview display area 5235 that displays one or more images from a photo stream selected from the list.
- the photo stream list 5225 is organized into four different sections.
- the top section lists a personal photo stream that represents a group of images shared only across the user's devices.
- the remaining sections include (1) a shared albums section (e.g., “my shared albums”) listing the name of each photo stream shared by the user, (2) an invitation section listing the name of each pending invitation for a photo stream from another user, and (3) a shared by others section listing the name of each photo stream shared by another user.
- a shared albums section e.g., “my shared albums”
- an invitation section listing the name of each pending invitation for a photo stream from another user
- a shared by others section listing the name of each photo stream shared by another user.
- the four sections can be organized into two sections with the personal photo stream in one section and the remaining photo streams in another section.
- the image application lists different shared photo streams in chronological or reverse chronological order by publication dates of the shared photo streams (e.g., the time and date the shared photo stream was created).
- the image application of some embodiments uses a different ordering to list the photo streams. For instance, the application may group all shared photo stream invitations at top or upper section of the photos stream menu list and sort them alphabetically. The application may also alphabetically sort all remaining photo streams and group them underneath the invitations.
- the alphabetical sorting is useful in that it allows the application's user to quickly find a shared photo stream when there are several different shared photo streams. For example, when there are many shared photo streams that were published at different dates, this sorting allows the user quickly search for a particular shared photo stream by its name.
- the application provides user interface items to change the sorting of the shared photo streams and/or search for a particular photo stream.
- the batch view 5230 displays one or more images in a selected photo stream.
- the batch view 5230 presents the images in different groups or batches.
- Each group of images may be sequentially ordered (e.g., in chronological order starting with the oldest image on the top left corner to the newest image on the bottom right corner).
- all groups may be sequentially ordered (e.g., in reverse chronological order starting with the newest group and ending with the oldest group).
- the batch view 5230 is overlaid by a top bar 5240 that includes a new comments button 5250 , a slide show button 5255 , a settings button 5260 , and an unsubscribe button 5265 .
- the new comments button 5250 can be selected to display only images with new comments. An example of displaying only images with new comments will be described below by reference to FIG. 54 .
- the slide show button 5255 can be selected to play a slide show of the images in the photo stream. The slide show may start with a first selected (e.g., highlighted) image in the batch view 5230 . In some embodiments, one or more music clips may be selected or streamed to accompany the slide show presentation.
- the settings tool 5260 can be selected to modify different photo stream setting.
- the settings are contextual so they relate directly to the displayed photo stream.
- the settings for a personal photo stream may differ from the settings for a photo stream shared with others.
- the unsubscribe button 5265 can be used to unsubscribe from a photo stream.
- the button 5265 may only appear in the top bar 5240 when a subscribed photo stream is selected from the album list 5225 .
- the selection of this button 5265 may also display a prompt requiring confirmation of the unsubscribe operation.
- One reason for the displaying the prompt is that the images in the subscribed photo stream may be deleted from all devices associated with the subscriber.
- the first stage 5205 illustrates the grid view 5220 of the device's operating system.
- the grid view 5220 includes the photo stream icon and the TV show icon.
- the icon for the image application displays a marking when one or more photo streams have been updated.
- the marking is badge 5270 that is displayed partially over the photo stream icon.
- the badge 5270 includes a number “2” that indicates the number of new invitations and/or the number of photo streams that have been updated.
- the badge 5270 is removed from the icon when the image application is opened (e.g., to the album list 5225 ).
- the photo stream icon is selected (e.g., with the device's remote).
- the user selects the application (e.g., by selecting the select or enter button on the remote).
- the second stage 5210 illustrates the image application after the selection of the photo stream icon.
- the selection results in the display of the album list 5225 .
- the album list 5225 lists different photo streams. Specifically, it lists the user's personal photo stream, a “Vacation” photo stream that is shared by the user, and a “Family Photos” photo stream that is shared by another user.
- the list 5225 also includes an invitation to a “Kids” photo stream. The user can select the “Kids” photo stream to accept or decline the invitation. The “Kids” photo stream is moved to the “Shared by Others” section when the invitation is accepted, and it is removed from the album list 5225 when the invitation is declined.
- marking 5275 Similar to the marked icon, several of the photo streams listed in the album list 5225 are marked with a marking 5275 .
- This inner marking represents a second level of marking, the first level being at the icon level.
- the “Kids” photo stream is marked because it is a new photo stream invitation
- the “Family Photos” photo stream is marked because it has been updated (e.g., includes new images and/or comments).
- the marking 5275 is a colored circle or dot (e.g., blue circle).
- the number of circles corresponds to the number shown on the photo stream icon's badge 5270 .
- a marking may be removed from the list once the corresponding photo stream has been opened.
- the album list 5225 has been navigated (e.g., by selecting the down button on the remote) to the “Family Photos” photo stream.
- the user selects the “Family Photos” photo stream (e.g., by selecting the select or enter button on the remote).
- the selection results in the display of the batch view 5230 , as illustrated in the third stage 5215 .
- the third stage 5215 illustrates the application displaying the batch view 5230 .
- the batch view 5230 is overlaid by the top bar 5240 with the new comments button 5250 , the slide show button 5255 , the settings button 5260 , and the unsubscribe button 5265 .
- the top bar 5240 also includes the name of the photo stream, the name of the owner of the photo stream, and a number (e.g., in parentheses) that identifies the number of images in the photo stream.
- the application uses relative dating to display the date and time information. For example, if the date is within the week, the application may display “Today”, “Yesterday”, “Monday”, “Tuesday”, etc. However, if the date is not within the week, the application may display the day and the month of the date. If the date is not within the year, the application may display the year in some embodiments.
- the images are associated with comments.
- three images are associated with comments. This is indicated by a marking that is displayed over each of the three corresponding thumbnail representations 5232 - 5234 .
- the marking is a comment bubble.
- the comment bubble is colored a first color (e.g., white) for the thumbnail image 5232 and a second different color (e.g., blue) for the thumbnail images 5233 and 5234 .
- the first color provides a visual indication to the user that the first image in the first group is associated with viewed comments, and the first and second images in the second group is associated with one or more unread comments.
- the number of images associated with new comments is also indicated by the new comments button 5250 that includes a number (e.g., in parentheses).
- FIG. 53 provides an illustrative example of navigating images in the photo stream. Three operational stages 5105 - 5115 of the image application are shown in this figure.
- the first stage 5305 illustrates the image application displaying the batch view 5230 .
- the user has navigated to the first image 5320 (e.g., by using the remote's directional buttons).
- the user selects the first image 5320 (e.g., by selecting the remote's select or enter button).
- the selection causes the display of the full screen representation 5325 of the selected image, as illustrated in the second stage 5310 .
- the full screen representation is displayed with a marking 5330 .
- the marking 5330 is a comment bubble with a number. This number corresponds to the number of comments associated with the image.
- the full-screen view displays images (e.g., across batches) in chronological order starting with the oldest image and ending with the newest images.
- the batches may also be sorted in reverse chronological order, starting with the newest batch and ending with the oldest batch. Alliteratively, the batches may be sorted in chronological order, starting with the earliest batch and ending with the latest batch.
- the images may be ordered in reverse chronological order starting with the latest image and ending with the earliest image.
- the user makes another selection (e.g., by selecting the select button or down button on the remote).
- the selection causes the application to display a carousel view 5335 , as illustrated in the third stage 5315 .
- the carousel view 5335 displays several images of the photo stream across a screen. The images are displayed at different sizes that emulate a three-dimensional carousel of images. That is, the center image is the largest one while other images are progressively smaller.
- the user can change the center image by selecting a next or previous image (e.g., by selecting the next button on the remote).
- the carousel view 5335 displays each image in a group along the virtual carousel in chronological order (i.e., from the newest to the oldest). Similar to the full screen view, the carousel view shows all images (e.g., across batches) in chronological order, starting with the oldest image on the left to the newest image on the right. The batches may also be sorted in reverse chronological order, starting with the newest batch and ending with the oldest batch. This is illustrated in the first stage 5305 as the first image 5320 in the batch view 5230 is not the first image along the virtual carousel or in the list of images as it is the oldest image amongst the first group of images. Accordingly, five other images are in the list prior to the first image 5320 .
- the list of images includes different groups of images in chronological order. This is also shown in the third stage 5315 as the last image (e.g., the image with the earliest timestamp) from the second group (e.g., the earlier batch) is displayed adjacent to the first image 5320 in the first group.
- the batches are sorted in chronological order, starting with the earliest batch and ending with the latest batch.
- the images may be ordered in reverse chronological order starting with the latest image and ending with the earliest image.
- the comment 5340 is displayed below the image 5320 .
- the comment's metadata is also shown in the carousel view 5335 . Specifically, the name of the person who left the comment and the time when the person left the comment are displayed below the comment 5340 .
- a chat bubble 5360 with the number of comments is also shown above the comment 5340 .
- an icon 5350 is displayed next to the chat bubble 5360 . The user can select this icon 5350 to indicate that the user likes or approves of the image 5320 . In some embodiments, the approval rating is counted similar to a comment in that the number of comments increases (e.g., in the chat bubble 5360 ).
- the application of some embodiments allows the user to add and/or delete comments.
- the comment may be selected for different actions or operations, such as replying to a comment, deleting the comment, etc.
- a participant of the shared photo stream can navigate to the comment with the remote's navigational buttons and then press the select button.
- the application may display a list of different operations that can be performed.
- the image application allows the user to view only images that are associated with one or more new comments.
- FIG. 54 provides an illustrative example of filtering a display to only display images with one or more new comments. Three operational stages 5405 - 5415 of the application are shown in this figure.
- the first stage 5405 illustrates the image application displaying the batch view 5230 .
- the user has navigated to the new comments button 5250 (e.g., by using the remote's directional arrows).
- the new comments button 5250 is labeled with a number two indicating that two images are associated with unread comments.
- the user selects the button 5250 (e.g., by selecting the remote's select or enter button).
- the second stage 5410 illustrates the image application's user interface after the selection of the new comments button 5250 .
- the selection causes the application to display the carousel view 5335 .
- the carousel view 5335 in this figure includes only images 5420 and 5425 associated with unread comments.
- the image 5420 is the center image.
- the one comment that is associated with the image is displayed below the image 5420 .
- the user navigates to the next image 5425 (e.g., by selecting the remote's next button).
- Third stage 5415 illustrates the carousel view 5335 after navigating to the image 5425 .
- the image 5425 is associated with five comments and one approval rating.
- the number of comments and/or approval ratings is indicated by the number that is shown on the comment bubble 5430 .
- only four single-lined comments are shown below the image 5425 .
- the other remaining comment is not shown.
- Different embodiments may display more or less lines of comments.
- the carousel view 5335 presents comments associated with an image by automatically scrolling through them.
- the application of some embodiments automatically scrolls through unread comments starting from the newest to the oldest unread comment and then stops.
- the comments can also be scrolled with the remote's navigational buttons, in some embodiments. For example, the user can scroll up the comments by selecting the up (e.g., top) button and scroll down by selecting the down (e.g., bottom) button.
- FIG. 55 illustrates an example of another image application for a digital media receiver or smart TV.
- the image application is an alternate embodiment that implements the image sharing tools. Different from the examples described above, this application includes three controls along a top bar 5540 : a new comments button 5525 , a slide show button 5530 , and a more button 5535 .
- the new comments 5525 button is the same as the one described above by reference to FIG. 54 .
- the selection of the slide show button 5530 causes the application to display several selectable items relating to the slide show presentation. Specifically, the application provides a selectable item (e.g., a play button) for starting a slide show using the images in the shared photo stream. The selection of the slide show button 5530 also causes the application to display a set of slide show configuration tools for configuring the slide show presentation (e.g., to add a music track to the presentation, to specify how the images are presented, etc.).
- the application of some embodiments provides different management commands. For example, the application may provide a selectable item for unsubscribing from the displayed photo stream. The application may also provide a selectable item for using the images in the shared photo stream as a screen saver. Several other management commands are described above by reference to FIG. 21 .
- FIG. 55 Three operational stages 5510 , 5515 , and 5520 of the image application are illustrated in FIG. 55 . These stages are similar to the ones shown in FIG. 52 .
- the images are grouped into two different batches 5545 and 5550 .
- each batch is a publishing of a group of one or more images to a shared photo stream.
- the primary sort order is reverse chronological order by batch, and the secondary sort order is chronological by image. That is, the batch 5545 on the left-hand side is the newest batch, and the batch 5550 on the right-hand side is the older batch.
- the images ( 5501 - 5504 or 5505 - 5508 ) in each batch are sorted starting with the oldest image on the top left and the newest image on the bottom right.
- the application of some embodiments linearizes the photo stream's images by taking the batch order and flattening into a straight set. This is shown in the third stage 5520 because the first four images 5501 - 5504 in the carousel view 5555 represent the first four images from the first batch 5545 .
- the fifth image in the carousel view 5555 is the first image from second batch 5550 .
- the user can view the remaining three images 5506 - 5508 in their batch order by using the remote control to scroll though the carousel view.
- this linearization does not sort the images in a proper chronological order, it allows the user to view the images in an order that was shown in the batch view.
- the application may present the images in a number of different ways. For instance, the application may display the images from different batches in chronological order starting with the oldest image to the newest image without regard to the batch sorting. In some embodiments, the application provides selectable items to switch from one type of sorting (e.g., the sorting illustrated in the third stage 5520 ) to another type of sorting (e.g., chronological or reverse chronological sorting).
- one type of sorting e.g., the sorting illustrated in the third stage 5520
- another type of sorting e.g., chronological or reverse chronological sorting
- the image sharing tools of some embodiments are integrated into a main graphical user interface or shell of an operating system (“OS”). That is, the image sharing tools are not part of an image application but are part of the main graphical user interface (“GUI”).
- OS operating system
- GUI main graphical user interface
- FIGS. 56-61 Several example of such image sharing tools will now be described by reference to FIGS. 56-61 .
- the operating system is a Windows operating system that is extended to support image-sharing operations.
- other types of operating systems e.g., Linux, Mac OS X
- the image sharing tools are integrated into an OS upon executing an installer program.
- FIG. 56 provides an illustrative example of installing and configuring the image sharing tools. Four operational stages 5605 - 5620 of the owner's personal computer (PC) are illustrated in this figure.
- the first stage 5605 illustrates the OS's desktop.
- the owner has selected the installation program (e.g., executable file) to display an installation window 5690 .
- the owner might have first downloaded the installation program using a web browser (not shown) or obtained it from a storage device (e.g., hard disk, flash driver, etc.).
- the installation window 5690 includes a heading indicating that it is installing a control panel item for configuring the image sharing tools.
- the installation window includes a message that the control panel item will be installed on the PC.
- the control panel is a part of the OS's GUI that allows users to configure different software and hardware settings.
- the user selects (e.g., with a cursor click operation) a next button 5625 .
- the user can select a cancel button 5630 to cancel the installation of the image sharing tools.
- the second stage 5610 illustrates the OS's desktop after installing the control panel item.
- the control panel item has been opened to display a login window 5635 .
- the owner has typed in a username (e.g., an email address) and password into a username field and a password field, respectively.
- the user might have first created an account with a cloud service provider in order to register the username and password.
- the user selects a sign-in button 5640 to sign in with the cloud service provider.
- the cloud service provider of some embodiments facilitates the image sharing operations between different user devices.
- the selection of the sign-in button 5640 results in the display of a cloud service control panel window 5650 (herein after a settings menu), as illustrated in the third stage 5615 .
- the settings menu 5650 includes several selectable items (e.g., check boxes) for synchronizing bookmarks across user devices.
- the settings menu 5650 may also include selectable items for syncing calendars and other data.
- the settings menu 5650 includes a selectable item 5655 for selecting a photo stream and a button 5685 for setting photo stream options.
- the user can select (e.g., through a cursor click operation) this item to turn on or off the image streaming features.
- the owner's PC may be registered with the cloud service provider to share images with other devices associated with the owner and/or different users.
- the selection of this item 5655 may cause the image sharing tools to be integrated in the OS's shell.
- the owner selects the button 5685 .
- the selection results in the display of a photo stream options window 5665 .
- This window list a first selectable item 5670 for turning on or off the owner's personal photo stream, and a second selectable item 5675 for turning on or off shared photo streams. That is, the window 5665 includes separate controls for activating a personal photo stream that is shared across only the user's device, and for activating a shared photo stream that is shared with other users.
- the window 5665 also includes a control 5680 to specify the location of the photo stream folder (e.g., that contain folders for the personal and shared photo streams).
- the window 5664 may also include one or more controls for blocking or allowing notifications (e.g., photo stream invitations, comment notifications, new image notifications) from people that are not in the user's address book or contact list.
- the window 5665 include other options to turn on or off sending or receiving photos stream invitations, showing notifications in a notification area (e.g., a system tray on a taskbar), receiving invitations from only those in the owner's contact list, etc.
- FIG. 57 illustrates an example of specifying a subscriber and a name for the photo stream.
- FIG. 58 illustrates selecting images for the photo stream and inputting comments for several of the images.
- FIG. 57 Four operational stages 5705 - 5720 of the OS are illustrated in FIG. 57 .
- the OS is displaying a browser or explorer window 5725 .
- the image-sharing tool has been integrated into the browser window 5725 .
- the browser's menu bar 5730 includes a new photo stream menu item 5735 for creating a new photo stream, add photos menu item 5740 for adding images to an existing photo stream, and an options menu item 5745 for specifying options for the photo stream.
- the selection of the add photo menu item 5740 causes the browser 5725 to display a list of available photo streams to add one or more selected images.
- the selection of the options menu item 5745 causes the OS to display different options for adding a new subscriber, deleting a subscriber, resending a photo stream invitation, and/or turning on or off web publication for the photo stream.
- the displayed options may also include an option for unsubscribing from a photo stream. This unsubscribe option may only be selected or displayed when the photo stream (e.g., the photo stream displayed in the browser 5725 ) is one that was subscribed to by the PC's user.
- the browser's hierarchical or tree view includes a photo stream item 5750 (hereinafter a photo stream folder) with a photo stream icon.
- the photo stream folder 5750 includes a sub folder for the photo stream that is shared only by the owner's devices.
- the owner selects (e.g., through a cursor click operation) the new photo stream menu item 5735 .
- the selection causes the OS to display a photo stream options window 5755 , as illustrated in the second stage 5710 .
- This window 5755 includes the photo stream icon 5760 on the top left-hand corner with a heading that states “New Photo Stream”. Beneath the heading is a subscriber field 5765 for inputting subscribers for the photo stream.
- the subscriber field 5765 is followed by a name field 5770 for specifying a name for the photo stream and a selectable item (e.g., a check box 5775 ) for turning on or off the option to publish the photo stream to a website (e.g., a public website).
- a selectable item e.g., a check box 5775
- the owner inputs an email address of a potential subscriber.
- the owner can input one or more email addresses of other potential subscribers into this field 5765 .
- the user then inputs a title or name for the photo stream in the name field 5770 .
- the user selects a next button 5780 to continue creating the photo stream.
- FIG. 58 illustrates the OS after the selection of the next button 5780 .
- Four operational stages 5805 - 5820 of the OS are illustrated in this figure.
- the owner selects several images for the photo stream. Specifically, the images are selected using a choose photos window 5825 .
- the first image 5830 is named “Me_Singing”
- the second image 5832 is named with a default name (e.g., one specified by a camera)
- the third image 5835 is named “Bike”. After choosing the images, the user then selects a continue button 5840 .
- the second stage 5810 illustrates the OS after selecting the continue button 5840 .
- the selected images are displayed in a comments window 5845 .
- the comments windows 5845 displays each selected image with a field to associate a comment with the selected image.
- the comment field is automatically populated based on the name of the image.
- one or more installed components of the image sharing tools may analyze the filename of the image and determine whether to input the filename as a comment.
- the filename may be analyzed using a number of different techniques.
- the analysis entails identifying one or more words, names, or people in the filename.
- the analysis may entail identifying random names that are generated by different image capturing devices (e.g., digital cameras, smart phones, tablets).
- the analysis may also entail identifying different characters (e.g., underscore) and replacing them with a space.
- the first image 5830 and the third image 5835 are associated with their corresponding filenames.
- the underscore in the name of the first image 5830 has been replaced with a space for the first image's comment. The owner can modify any one of these comments by inputting a new comment in the corresponding comment field.
- the third stage 5815 illustrates the browser 5725 after creating the photo stream.
- the new photo stream folder 5855 is displayed on the browser 5725 .
- the new photo stream folder 5855 is displayed with an icon that provides a visual indication of the images in the photo stream.
- the icon includes thumbnail representations of the three images 5830 - 5835 in the photo stream.
- the thumbnails are also sized differently. That is, the first thumbnail image is shown larger than the other two thumbnail images.
- the new photo stream is listed in the browser's hierarchical or tree view 5750 .
- the fourth stage 5820 illustrates the browser 5725 after the owner has selected the photo stream folder icon 5855 .
- the selection results in the browser 5725 displaying the images in the photo stream.
- each of the images 5830 - 5835 associated with a particular comment is shown with a marking 5860 (e.g., a comment bubble).
- the marking 5860 provides a visual indication to the owner as to the association of the particular comment with the corresponding image.
- the color of the marking indicates whether the image is associated with one or more unread comments. For instance, a first color (e.g., white) may indicate that there are no unread comments associated with an image, and a second different color (e.g., blue) may indicate that there are one or more unread comments associated with the image.
- a first color e.g., white
- a second different color e.g., blue
- the batch view 5865 includes a photo stream heading 5870 that identifies the name of the photo stream and the number of images in the photo stream, a batch heading 5875 that identifies the date and time when the images were added to the photo stream and the number of images in the batch.
- the batch heading 5875 is followed by the images in the photo stream.
- the image sharing tools select a particular layout based on the number of images and/or the orientations of those images. Several examples of selecting different layouts are described above by reference to FIGS. 42-47 .
- the browser window 5725 displays additional information (e.g., metadata) associated with the photos stream.
- additional information e.g., metadata
- the browser's metadata section 5880 lists (1) the name of the photo stream, (2) the owner of the photo stream, the number of images in the photo stream, (3) each subscriber with corresponding subscription status, and (4) a public website status stating that the feature of publishing to the public website is not activated or turned on for this photo stream.
- the owner creates a new photo stream using the image sharing tools that are integrated into the browser.
- a photo stream invitation is pushed to one or more devices associated with the person invited to the photo stream.
- these devices may be the same type of computing device (e.g., a PC) or some other type of device with a different platform (e.g., a smart phone, tablet, digital media receiver, etc.).
- FIG. 59 provides an illustrative example of accepting a photo stream invitation with a subscriber's device.
- the subscriber's device is a PC that is running the same OS as the owner's device.
- Three operational stages 5905 - 5915 are shown in this figure.
- the figure includes the OS's desktop 5920 and taskbar 5925 .
- the first stage 5905 illustrates an example notification that is received via the taskbar 5925 .
- the notification appears as a pop-up window 5930 (e.g., bubble).
- the pop-up window 5930 appears over a cloud service system tray icon 5935 in the task bar 5925 .
- the pop-up window 5930 includes a photo stream icon and a notification stating that a new photo stream invitation has been received.
- the notification also states how to select (e.g., click) the window to view the photo stream invitation.
- the recipient selects the pop-up window 5930 .
- the selection causes the OS to display the photo stream invitation window 5940 , as illustrated in the second stage 5910 .
- the invitation includes the photo stream icon and the invitation.
- the invitation states the owner and name of the photo stream.
- the photo stream invitation window 5940 also includes an accept button 5945 to accept the invitation, a decline button 5950 to decline it, and a decide later button 5955 to keep the invitation pending.
- the third stage 5915 illustrates the OS after the recipient has accepted the invitation.
- the selection results in a window browser 5725 displaying the images in the photo stream. Similar to the owner's device, the images are displayed in the batch view 5865 .
- FIG. 60 provides an example of adding an image to a photo stream. Three operational stages 6005 - 6015 of the owner's PC are illustrated in this figure.
- the OS displays its desktop.
- the desktop includes an icon 6020 for an image file.
- the owner selects (e.g., by selecting the right-click button on the cursor controller, or holding a modifier key and selecting the left-click button) the image icon 6020 from the desktop.
- the selection causes the OS to display a context menu 6025 .
- the context menu 6025 includes a menu item 6030 to open the image file.
- the context menu 6025 also includes a menu item to add to photo stream 6035 for adding one or more selected images to a particular photo stream.
- This context menu 6025 is an extension to the shell (e.g., when the cloud service control panel was installed on the owner's PC).
- the menu item to add to photo stream 6035 only appears upon turning on the image sharing feature (e.g., by selecting a check box in the cloud service control panel (not shown)).
- the owner has selected the menu item to add to photo stream 6035 .
- the selection results in a list of existing photo streams displayed in a sub-menu 6040 .
- the sub-menu 6040 includes a menu item 6045 to add the selected image to the owner's personal photo stream, a menu item 6050 to add it to a photo stream shared with a subscriber, and a menu item 6055 to add it to a new photo stream.
- the owner selects the menu item 6050 to add the selected image to the photo stream that is shared with the subscriber.
- the third stage 6015 illustrates the OS after selecting the menu item 6050 .
- the selected image is displayed in the comments window 5845 .
- the comments windows 5845 displays each selected image with a field to associate a comment for the selected image.
- the owner selects the done button 6060 to add the selected image to the photo stream.
- the image sharing tools of some embodiments allow an owner to add images to a photo stream by dragging and dropping images onto the photo stream folder.
- the owner can also delete one or more selected images from the photo stream folder.
- the images may be deleted from one or more of the owner's other devices and/or one or more of each subscriber's device.
- the owner can delete the photo stream folder to delete the entire photo stream from one or more of the owner's other devices and/or one or more of each subscriber's device.
- FIG. 61 provides an illustrative example of leaving a comment using a PC.
- Four operational stages 6105 - 6120 of the user's PC are illustrated in this figure.
- the browser 5725 displays images in a photo stream.
- the heading 6125 includes the name of the photo stream and the number of images in the photo stream.
- the sub-heading 6130 includes the date and time that the group of images was added to the photo stream.
- the first image 6135 has been selected from the browser 5725 .
- the selection results in the display of the image's metadata in the metadata section 6140 .
- the metadata section 6140 states (1) the image format (e.g., JPEG, GIF, PNG), (2) the date (e.g., timestamp, file creation date) associated with the image, and (3) the number of comments associated with image.
- the metadata section also includes a comments button 6145 for opening a comments tool that is described below.
- the image 6135 is associated with four comments.
- a marking 6150 is displayed over the image 6135 on the lower right-hand corner.
- the marking 6150 (e.g., the double comment bubble) indicates that the user is a part of the conversation. That is, the user has previously left at least one comment regarding the image 6135 and a subscriber has left at least one other comment regarding the same image.
- the color of the marking 6150 indicates that there are one or more unread comments.
- the first stage 6105 illustrates the selection of the comments button 6145 .
- the selection causes the browser 5725 to display the comments tool 6155 , as illustrated in the second stage 6110 .
- the comments tool 6155 appears as a side bar of the browser. In this example, the comments tool 6155 is shown on the right side of the browser 5725 .
- the comments tool includes a comment field 6160 for inputting a comment and a post button 6165 to post the comment.
- the comment field 6160 displays a line of text that invites the user to add a comment.
- the comments tool 6155 is displayed with a heading “Comments”. Adjacent to the heading is a selectable item or selectable icon 6170 (e.g., of a heart, smiley face) that can be selected to indicate that the user approves or likes the images.
- Adjacent to the heading is a selectable item or selectable icon 6170 (e.g., of a heart, smiley face) that can be selected to indicate that the user approve
- the comments are listed under the comments heading. Specifically, there are four comments associated with the image 6135 . As shown by the comments' metadata, the user has left one comment at one time and the subscriber has left another comment at another time. The remaining two comments are attributed to the selections of the selectable item 6170 . Accordingly, the image sharing tools of some embodiments counts the number of approvals or likes as comments.
- the third stage 6115 illustrates the comments tool 6155 after the user has inputted a comment into the comment field 6160 .
- the user selects the post button 6165 to post the comment.
- the new comment has been added into the comments tool 6155 .
- the new comment has been displayed at the top of the comments list but below the approval ratings.
- the number of comments displayed in the metadata section 6140 has also been incremented by one. In the example described above, a number of different comments are listed in the comments tool 6155 . When the number of comments exceeds the display area of the comments tool, the comments tool of some embodiments provides a scroll bar for scrolling through the comments.
- FIG. 62 provides an illustrative example of an alternate embodiment of the integrated image sharing tools. Three operational stages 6205 - 6205 of the user's PC are illustrated in this figure.
- FIG. 62 is similar to the ones described above.
- the image sharing tools do not include a bottom section that displays information about a shared photo stream or its images.
- the bottom section contained a comment button for showing comments.
- the menu bar 6245 includes a menu item 6220 .
- the menu item can be selected to display any comment associated with a selected image and/or to leave a comment regarding the image.
- the user can select the comment bubble 6250 to display or leave comments.
- the menu bar 6245 includes a menu item 6225 for displaying a photo stream option window 6230 .
- the photo stream options window may also be displayed through a context menu item.
- the window 6230 is similar to the options sheet described above by reference to FIG. 21 .
- the window includes a name field 6235 for specifying the name of the shared photo stream, a subscriber field 6240 for adding or removing subscribers, and a control 6245 (e.g., a checkbox) for specifying whether the shared photo stream is published to a public website.
- the image sharing tools provide different controls depending on whether the user is an owner or subscriber.
- the photo stream options window 6230 may include a control (e.g., button) for unsubscribing from a subscribed photo stream when the browser window displays images from the subscribed photo stream.
- the image sharing tools are integrated into an image organizing and editing application that operates on a Mac Operating System (e.g., Mac OS X).
- the OS may include one or more other applications (e.g., a professional image editing and management application) that include the same or similar image sharing features.
- FIG. 63 provides an illustrative example of the image sharing tools that are integrated into an image organizing and editing application. Specifically, this figure illustrates in four operational stages 6305 - 6320 how an owner can create a photo stream using the image organizing and editing application.
- the photo application includes (1) a sidebar 6325 that displays different collections of images, (2) an image display area 6330 that displays images in a collection, and (3) a share button 6335 to share one or more images selected from the image display area 6330 .
- the photo application also includes a bottom bar 6340 that displays different tools, such as a search tool 6345 for searching images, a slider 6350 for resizing images in the image display area 6330 , a slide show tool 6355 for playing a slideshow of images in a collection, an edit button 6360 for selecting different editing operations (e.g., removing red eye, cropping, enhancing, etc.) to perform on a selected image.
- the bottom bar 6340 includes an add to button 6365 for adding selected images to a particular collection (e.g., an album, a photo stream, etc.) and a share button 6335 for sharing the selected images.
- the first stage 6305 illustrates selecting a photo stream option using the share button 6335 .
- the “Photos” collection has been selected from the side bar 6325 .
- the image display area 6330 displays thumbnail representations of the images in the collection.
- the owner has selected two images from the image display area 6330 . To share these images, the owner has also selected the share button 6335 .
- the selection of the share button results in the display of a pop-up window 6370 .
- the pop-up window 6370 includes a list of share options.
- the list includes an option 6372 to order prints of the selected images, an option 6373 to email the images, and an option 6375 to create a photo stream using the images.
- the owner selects the photo stream option 6375 from the pop-up window 6370 .
- the selection causes the application to display other options in a pop-up window 6380 , as illustrated in the second stage 6310 .
- the pop-up window 6380 includes an option 6382 to create a new photo stream using the selected images and an option 6383 to add the selected images to a previous created photo stream.
- the previously created photo stream is the owner's personal photo stream.
- the personal photo stream represents a group of images that are streamed or pushed to those devices associated with one owner (e.g., the owner).
- a slider for scrolling through different photo streams may be presented on the pop-up window 6380 (e.g., when all of the different photo streams cannot be listed in its limited space).
- the third stage 6315 illustrates the photo application after the selection of the new photo stream option 6382 .
- the selection causes the application to display a photo stream options window 6385 .
- This window includes the photo stream icon on the top left-hand corner with a heading that states “New Photo Stream”. Beneath the heading is a subscriber field 6386 for designating subscribers for the photo stream.
- the subscriber field 6386 is followed by a name field 6388 for specifying a name for the photo stream and a selectable item (e.g., a check box 6389 ) for turning on or off the option to publish the photo stream to a website (e.g., a public website).
- a website e.g., a public website.
- the owner has inputted an email address of a potential subscriber.
- the owner can input one or more email addresses of other potential subscribers into this field 6386 .
- the owner has also inputted a name for the photo stream in the name field 6388 .
- the owner selects the OK button 6387 to create the photo stream.
- the application provides a window (not shown) to input a particular comment for one or more of the selected images.
- the fourth stage 6320 illustrates the application after the owner has created the photo stream.
- the image display area 6330 includes a heading that includes a top bar 6390 that includes an option 6393 to display each image the personal photo stream, an option 6395 to display each image in the newly created photo stream, and an option 6392 to display all images in the different photo streams.
- the image display area 6330 displays all the images as the option 6392 is selected from the top bar 6390 .
- the image display area 6330 is also organized by new images and old images. The new images are displayed at the top and the one previous image is displayed below.
- Each group of images includes a heading that states the group name (e.g., “New Photos”, “Previous Photos”) and the number of images in the group.
- the application provides a form of a batch view that is different from the one that was discussed above (e.g., by reference to FIGS. 50-52 ).
- the previous or new image section can include multiple different batches.
- One reason for displaying the images in this format is that it makes more efficient use of screen real estate than the above-described batch view.
- the application displays images in one view format and provides an option to display the images in another view format.
- the owner creates a new photo stream using the image sharing tools that are integrated into the photo application.
- a photo stream invitation is pushed to one or more devices associated with the person who was invited to the photo stream.
- these devices may be the same type of computing device or some other type of device with a different platform (e.g., a smart phone, tablet, digital media receiver, etc.)
- FIG. 64 provides an illustrative example of accepting a photo stream invitation with a subscriber's device.
- the subscriber's device is the same type of device that is running the same OS as the owner's device.
- Four operational stages 6405 - 6420 are shown in this figure.
- the figure includes the OS's desktop 6425 and a dock 6430 .
- the dock 6430 displays icons for opening different applications. As shown, the dock includes an icon 6435 for opening the photo application.
- the first stage 6405 illustrates an example notification that is at the OS level. As shown, the notification appears as a marking on the application's icon 6435 .
- One type of notification is a marking or a badge that appears at least partially over the application's icon. This is shown in the first stage 6405 as a badge 6440 that is displayed on the icon of the photo application.
- the badge 6440 includes a number (e.g., “1”). In the example illustrated in the first stage 6405 , it indicates there is one new photo stream invitation. Alternatively, the badge may indicate that there is an update to one existing photo stream.
- the user selects the icon of the photo application on the dock 6430 .
- the selection causes the photo application to open a pop up window 6445 that includes a message, as illustrated in the second stage 6410 .
- the message states that the recipient has received a first photo stream invitation, and that the owner would like to share a photo stream with the recipient.
- the message also provides instructions for viewing the photo stream. Specifically, it states how to select the photo stream under the web section in the source list on the left (i.e., the side bar 6450 ).
- the application displays this window only once upon the recipient receiving a first invitation. That is, the application may not display the window when another invitation is received at the recipient's device.
- the window 6445 includes a show me button 6460 and a cancel button 6455 .
- the selection of the show me button 6460 causes the application to display a top level a photo stream menu.
- the cancel button 6455 closes the window.
- the user selects the show me button 6460 .
- the third stage 6415 illustrates the application after the selection of the show me button 6460 .
- the selection causes the application to display an icon representing the new photo stream 6465 in the image display area 6330 .
- the photo stream 6465 has also been highlighted in the side bar 6450 .
- the photo stream 6465 in the side bar is also marked with a number that indicates that there is a new invitation for a new photo stream or an update to an existing one. This marking provides the recipient with a visual indication at the application level, as opposed to a visual indication at the OS level.
- the image display area 6330 is overlaid by a heading 6470 that state “Photo Stream”.
- the name of the new photo stream is also marked with a marking.
- the marking is a colored dot (e.g., a blue dot). Different from the markings described above, the marking here provides the recipient with a visual indication at the album level or photo stream level.
- the recipient selects the new photo stream 6465 from the image display area 6330 .
- the selection causes the application to display a photo stream invitation window 6475 , as illustrated in the fourth stage 6420 .
- the invitation includes the photo stream icon and the invitation.
- the invitation originates from a device of the owner that shared the images.
- the invitation states the name and owner of the photo stream.
- the photo stream invitation window 6475 also includes an accept button 6480 to accept the invitation, a decline button 6485 to decline it, and a decide later button 6482 to keep the invitation pending.
- the recipient selects the accept button 6480 to accept the invitation.
- the images in the photo stream may be downloaded and presented in the image display area 6330 .
- FIG. 65 provides an illustrative example of how the image sharing tools of some embodiments present comments on the photo application.
- Four operational stages 6505 - 6520 of the subscriber's device are illustrated in this figure.
- the first stage 6505 illustrates the image display area 6330 displaying the photo stream.
- the user has added an image to the photo stream, and two new comments have been left for the image.
- the application plays a sound when there is an update to a photo stream.
- the application may play a ding sound, a bell sound, a ring sound, or some other sound to indicate there is an update to a photo stream (e.g., there is a new comment, new image, etc.) and/or when there is a new photo stream invitation.
- the application may play different sounds for different events, in some embodiments.
- the application provides several different visual indications of an update to a photo stream.
- the side bar 6450 displays a marking next to the photo stream 6525 .
- the number i.e., “1” indicates that there is an update to one photo stream.
- a photo stream representation e.g., a thumbnail representation
- the photo stream representation 6530 is marked with a number (i.e., “1”) next to an image symbol 6535 (e.g., a photo icon) and a different number (i.e., “2”) next to a comment symbol 6540 (e.g., a chat bubble).
- These markings provide a visual indication to the subscriber that there is one new image and two new comments.
- the user selects the photo stream representation 6530 from the image display are 6330 .
- the selection causes the application to display thumbnail representations of the images in the photo stream.
- the display is dynamically or automatically updated each time a person (e.g., the owner shares) additional images.
- the application provides another visual indication of the updates.
- the images are batched into different sections (e.g., a new image section and a previous image section).
- the current batch view display images by displaying new images separately from all other images that were added previously. This can entail grouping previous sets or batches of images into one group (e.g., labeled previous photos).
- the thumbnail representation of the image is marked with a marking (e.g., a chat bubble). Many examples of such a marking are described above.
- the thumbnail representation 6545 of the new image is associated with new comments.
- the user selects an info button 6550 from the bottom bar 6340 .
- the selection of the info button 6550 causes the application to display an info pane 6555 , as illustrated in the fourth stage 6520 .
- the fourth stage 6520 illustrates the application displaying the info pane 6555 .
- the info pane 6555 appears on the right hand side of the image display area 6330 .
- the info pane displays information (e.g., metadata) associated with the selected image.
- the info pane 6555 lists (1) the image resolution, (2) the name of the image, and (3) a date or timestamp associated with the image.
- the info pane may list other information, such location information (e.g., based on GPS data associated with the image), people information (e.g., based on face detection algorithms), etc.
- the info pane 6555 lists comments associated with the image.
- the application provides tools to send and receive comments across multiple different sources. This is illustrated in the fourth stage 6520 as the info pane 6555 lists comment from a subscriber of the photo stream as well as a comment that is received through a social network website. That is, the application is not only integrated with the image sharing tools but is also integrated with the social network website (e.g., through the website's API). This allows the info pane display area to display comments from people associated with the social network website as well as those people associated with the shared stream.
- the comment section includes a heading that states the total number of comments that are received from both sources.
- Each source includes a heading.
- the photo stream comment is listed under a photo stream heading and the social network comment is listed under a social network heading.
- Each of the two sections includes an add comment field to add a comment (i.e., 6556 or 6558 ) and a post button for adding comments.
- the photo stream section also includes an icon or symbol (e.g., a smiley face icon) that can be selected to indicate that the subscriber approves or likes the selected image.
- the social network website section may have a similar selectable item in some embodiments.
- the info pane 6555 lists the image's metadata as well as the comments associated with the image.
- the application displays other information relating to the photo stream in the info pane.
- the photo application of some embodiments displays information regarding a photo stream.
- the info pane can be used to modify the photo stream.
- the info pane can be used to rename the photo stream, add or remove subscribers, resend an invitation or nudge the recipient, or turn on or off the public website version.
- the info pane may list the URL of the public website.
- the image sharing tools are implemented across different user devices and/or different platforms (e.g., from different vendors).
- the devices may communicate with several different servers. These servers may include storage servers (e.g., third-party storage servers) and control servers.
- FIG. 66 conceptually illustrates an example system architecture in which the clients communicate with the different servers to share images and comments.
- the figure includes different clients 6620 - 6640 , a set of control servers 6610 and a set of storage servers 6615 .
- the clients are different computing devices that communicate with the control and storage servers over network 6605 . Any one of these devices can be used to create a photo stream that includes a set of images, and invite one or more individuals to view and/or comment on the set of images.
- the clients includes a smart phone 6620 , a laptop 6630 (e.g., that operates on a MAC OS), a personal computer 6625 (e.g., that operate on a Windows OS), a tablet 6635 , and a digital media receiver 6640 .
- a client can be one of any number of different types of devices, such as a Personal Data Assistant (PDA), a workstation, etc.
- PDA Personal Data Assistant
- the set of storage servers 6615 stores photo stream images for the different clients.
- the set of storages may be contracted by the cloud service provider (e.g., that manages the set of control servers 6610 ) to store content for the different clients.
- the set of storage servers may be a set of third-party servers.
- the set of third-party storage servers may be associated with an application program interface (API).
- the client devices may use this API to store and receive images stored by the third-party storage servers.
- the set of storage servers may store the images for a temporary period of time, in some embodiments.
- the set of control servers 6610 manages control data associated with the different clients. Examples of such control data include user data, photo stream data (e.g., a list of photo stream albums associated with a user, a list of individuals that can access a particular photos stream), etc.
- the control data may include references to the images that are stored by the set of storage servers 6615 .
- the set of control servers may maintain information relating to different shared streams, while not storing any of the images associated with those shared streams. However, the set of control servers may store comments associated images in the photo stream.
- each control server is associated with one or more storages (e.g., data stores).
- the control server and the one or more storages is a logical partition in which data relating a particular user resides.
- control server is configured to receive notifications from a client that one or more files are to be transmitted from the client. In response to such a notification, the control server sends, to the client, storage location data that indicates where the one or more files are to be sent.
- the storage location data may be data associated with a storage server. The client uses the storage location data to transmit the one or more files to the storage service.
- the control server of some embodiments is a push server that pushes notifications (e.g., event triggers) to clients. For instance, when one user creates a shared photo stream that invites another person, the control server may add the other person to a list of authorized users that are able to access the shared stream. The control server may add the person once he or she accepts the invitation, in some embodiments. The control server may also send messages to all of the clients associated with the person. The clients then request for a list of albums from the control server. The content server provides the list with a new photo stream associated with an invitation. When the person accepts the invitation on one client, then all of the clients may retrieve the images in the photo stream from the set of storage servers 6615 .
- notifications e.g., event triggers
- the notifications may be presented differently in different clients.
- the smart phone client 6620 may display a badge (e.g., over an application icon, play a sound, and/or cause it to vibrate), while the PC client 6625 may display a notification through the OS's system tray.
- the set of control servers communicates with the different clients using one custom protocol. That is, each client uses the same protocol to communicate with a control server.
- the protocol may identify a particular type of client device (e.g., a digital media receiver, a smart phone). However, the control server may not perform any special operation or logic for that particular type of client.
- the protocol is based on an API that includes different API calls or messages for modifying the photo stream's images (e.g., adding images, deleting images), inviting subscribers, accepting invitations, declining invitation, managing comments (e.g., creating a comment, deleting a comment), etc.
- FIG. 67 conceptually illustrates an example of how a user's photo streams are represented at the server side (e.g., at a control server).
- the figure includes a hierarchical structure that represents the different hierarchical levels of the user's photo stream data.
- This figure includes user 6705 , a set of photo streams 6710 - 6720 , a set of images 6725 - 6735 , and a set of comments 6740 - 6750 .
- These different boxes represent data structures associated with the user's photo streams.
- the user is at the top of the hierarchical structure.
- the user may be associated with a user identification (“ID”) and password.
- ID user identification
- password password
- the user can be associated with any number of photo streams, including a personal photo stream and a shared stream.
- the user is associated with three photo streams 6710 - 6720 .
- each photo stream is associated with a photo stream ID that uniquely identifies the photo stream and a name that identifies a name for the photo stream.
- Each photo stream is associated with one or more images.
- the images 6725 - 6735 are associated with the photo stream 6710 .
- the images may be stored at one or more third party storages. Accordingly, the control server may store a reference to each image (a URL) using the photo stream data structure.
- the control server references the image using a first key (e.g., unique key) for identifying the image in the photo stream.
- the first key may be associated with a second key for accessing the image file that is stored at a storage server (e.g., a third party storage server).
- the second key may include or is a checksum of that one image file.
- the image file is run through a computation algorithm that generates the checksum, which is a hash of the image's content. When a same image is inputted multiple times, the algorithm returns the same file hash (e.g., hash value).
- the storage server may reference the image by the file hash, instead of the first key. This allows the storage server to store one image, even though that image is in multiple different photo streams.
- the control server may reference the same image in different photo streams using different unique keys.
- Each client may generate keys and/or checksums for its images, in some embodiments.
- the comments are at the last level and are associated with the image. Many comments can be associated with the one image.
- the comments 6740 - 6750 are associated with the image 6725 .
- the data structure for a comment is associated with a name or user ID of the user that left the comment.
- the data structure may also include a comment ID for locating or accessing the comment and a timestamp for identifying the time and/or date the comment was left or posted.
- control server that facilitates the sharing of content (e.g., images, video clips) and comments by managing control data associated with a shared content stream.
- control data include user data (e.g., a list of devices associated with a user) and photo stream data (e.g., a list of photo stream associated with the user, a list of individuals that can access a particular photo stream, file location data, etc.).
- user data e.g., a list of devices associated with a user
- photo stream data e.g., a list of photo stream associated with the user, a list of individuals that can access a particular photo stream, file location data, etc.
- FIG. 68 conceptually illustrates an example process 6800 that some embodiments perform to notify recipients of a new-shared stream invitation.
- the process 6800 in some embodiments, is performed by the control server.
- the process 6800 begins when it receives (at 6805 ) a message regarding a new shared content stream from a source device (e.g., the owner's device).
- the process 6800 then sends (at 6810 ) file location data to the source device.
- the file location data includes one or more URLs to upload content to a storage server (e.g., a third-party storage server).
- the process 6800 identities each recipient that has been invited to join the shared stream. For example, the process 6800 might identify a username associated with each recipient. In some embodiment, the username is the same as the recipient's email address. Based on the identification, the process 6800 identifies (at 6820 ) one or more devices (e.g., destination devices) associated with each recipient. The process 6800 sends (at 6825 ) a message regarding the shared stream invitation to each recipient device. The process 6800 then ends.
- the process 6800 identifies (at 6820 ) one or more devices (e.g., destination devices) associated with each recipient.
- the process 6800 sends (at 6825 ) a message regarding the shared stream invitation to each recipient device.
- the process 6800 then ends.
- Some embodiments perform variations on the process 6800 .
- the specific operations may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments.
- the process 6800 could be implemented using several sub-processes, or as part of a larger macro process. For instance, the process 6800 might identify each device associated with the owner and send a message regarding an update to a shared content stream. The process 6800 might also send the file location data to one or more owner devices. The owner devices may then download the content using the file location data.
- FIG. 69 conceptually illustrates an example process 6900 that some embodiments perform when it receives a response from a recipient device.
- the process 6900 in some embodiments, is performed by the control server.
- the process 6900 begins when it receives (at 6905 ) receives a message that requests a list of shared streams from a recipient's device.
- the process 6900 then sends (at 6910 ) the list of shared streams to the recipient device.
- the process 6900 receives, from the recipient's device, a message regarding the shared stream invitation. Based on the message, the process 6900 determines (at 6920 ) whether the shared stream invitation has been accepted. If so, the process 6900 marks or specifies (at 6925 ) the recipient as a subscriber in an authorization list that is associated with the shared content stream.
- the authorization list lists different individuals that can access the shared content stream. The list may also specify whether a subscriber can add content to a shared stream, remove content, add or remove subscribers, and/or make comments.
- the process 6900 sends (at 6930 ) file location data to each device associated with the recipient. Each recipient device may then download the shared content from the storage server using the file location data. The process 6900 then notifies the owner of the acceptance of the shared stream invitation. Specifically, the process 6900 sends (at 6935 ) a message regarding the acceptance of to each device associated with the owner. One or more of the owner's device may then display a notification (e.g., banner notification, system tray notification) regarding the acceptance of the shared stream invitation.
- a notification e.g., banner notification, system tray notification
- the process 6900 removes (at 6940 ) the recipient from the authorization list. Instead of removing the recipient, the process 6900 might mark the recipient as a person that declined the invitation. In some embodiments, the process 6900 maintain two separate lists, e.g., one that lists different subscribers and another that lists different recipients that have not subscribed to the shared stream.
- Some embodiments perform variations on the process 6900 .
- the specific operations may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments.
- the process 6900 could be implemented using several sub-processes, or as part of a larger macro process.
- FIG. 70 conceptually illustrates an example process 7000 that some embodiments perform to notify participants of a new comment.
- the process 7000 in some embodiments, is performed by the control server.
- the process 7000 begins when it receives (at 7005 ) receives a message with the new comment.
- the process 7000 then stores (at 7010 ) the comment.
- the process 7000 identifies participants of the shared content stream. Based on the identification, the process 7000 sends a message regarding an update to the shared content to the devices that are associated with the participants. The process 7000 then ends.
- FIG. 71 conceptually illustrates an example process 7100 that some embodiments perform to deliver a new comment.
- the process 7100 in some embodiments, is performed by the control server.
- the process 7100 begins when it receives (at 7105 ) receives a message that requests a list of shared content streams from a recipient device.
- the process 7100 then sends (at 7110 ) the list of shared streams to the recipient device.
- the process 7100 receives, from the participant device, a message request for the new comment. Based on the message, the process 710 sends (at 7120 ) the comment to the participant's device.
- Some embodiments perform variations on the processes 7000 and 7100 .
- the specific operations may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments.
- each of the processes 7000 and 7100 could be implemented using several sub-processes, or as part of a larger macro process.
- FIG. 72 conceptually illustrates the software architecture of content sharing tools 7200 of some embodiments.
- the content sharing tools are provided as a stand-alone application or are integrated into another application, while in other embodiments the content sharing tools are implemented within an operating system.
- the content sharing tools are provided as part of a server-based solution.
- the content sharing tools are provided via a thin client. That is, the content sharing tools runs on a server while a user interacts with the content sharing tools via a separate machine remote from the server.
- the content sharing tools are provided via a thick client. That is, the content sharing tools are distributed from the server to the client machine and runs on the client machine.
- the content sharing tools 7200 includes a user interface (UI) interaction and generation module 7210 and a shared stream manager 7220 .
- the user interface interaction and generation module 7210 generates a number of different UI elements, including a content display area 7212 , a shared stream menu 7214 , shared stream management tools 7216 , and comment tools 7218 .
- the figure also illustrates stored data associated with the content sharing tools: shared stream data 7244 , content data 7244 , and other data 7248 .
- the shared stream data 7244 stores data related to a shared stream (e.g., a list of photo streams, list of individuals associated with a photo stream, references to images, comments, etc.).
- the content data 7246 may include images and/or video.
- the content data 7246 of some embodiments includes multiple versions of one image (e.g., at different resolution).
- FIG. 72 also illustrates an operating system 7202 that includes input device driver(s) 7204 , display module 7206 and notifications tools.
- the device drivers 7204 and display module 7206 are part of the operating system 7202 even when the content sharing tools 7200 is part of an application that is separate from the operating system 7270 .
- the input device drivers 7204 may include drivers for translating signals from a keyboard, mouse, touchpad, tablet, touchscreen, etc. A user interacts with one or more of these input devices, each of which send signals to its corresponding device driver. The device driver then translates the signals into user input data that is provided to the UI interaction and generation module 7210 .
- the present application describes a graphical user interface that provides users with numerous ways to perform different sets of operations and functionalities. In some embodiments, these operations and functionalities are performed based on different commands that are received from users through different input devices (e.g., keyboard, trackpad, touchpad, mouse, etc.). For example, the present application illustrates the use of touch controls in the graphical user interface to control (e.g., select, move) objects in the graphical user interface. However, in some embodiments, objects in the graphical user interface can also be controlled or manipulated through other controls, such as a cursor control. In some embodiments, the touch control is implemented through an input device that can detect the presence and location of touch on a display of the device. An example of such a device is a touch screen device.
- a user can directly manipulate objects by interacting with the graphical user interface that is displayed on the display of the touch screen device. For instance, a user can select a particular object in the graphical user interface by simply touching that particular object on the display of the touch screen device.
- touch control can be used to control the cursor in some embodiments.
- the display module 7206 translates the output of a user interface for a display device. That is, the display module 7206 receives signals (e.g., from the UI interaction and generation module 7210 ) describing what should be displayed and translates these signals into pixel information that is sent to the display device.
- the display device may be an LCD, plasma screen, CRT monitor, touchscreen, etc.
- the notification tools 7208 presents notifications (e.g., at the operating system level). Examples of such notifications may include one or more of the following: an icon badge, banner notification, system tray notification, lock-screen alert, notification center message, etc.
- the notification tools 7208 causes a computing device (e.g., smart phone, tablet) to play a sound or vibrate.
- the UI interaction and generation module 7210 of the content sharing tools 7200 interprets the user input data received from the input device drivers 7204 and passes it to various UI components, including the content display area 7212 , the shared stream menu 7214 , the shared stream management tools 7216 , and the comment tools 7218 .
- the UI interaction and generation module 7210 also manages the display of the UI, and outputs this display information to the display module 7206 .
- the UI interaction and generation module 7210 generates a basic UI and populates the UI with information from the other modules and stored data (e.g., stored data 7244 , 7248 ).
- the UI interaction and generation module 7210 in some embodiments, generates a number of different UI elements. These elements, in some embodiments, include the content display area 7212 , the shared stream menu 7214 , the shared stream management tools 7216 , and the comment tools 7218 .
- the content display area 7212 is referred to as an image display
- the shared stream menu 7214 is referred to a photo stream menu.
- the shared stream management tools 7216 include a photo stream options sheet, a comment sheet, a photo stream management sheet (e.g., to add or remove subscriber, to resend a photo stream invitation, to delete a photo stream, etc.).
- the comment tools of some embodiments include an add comment field, like button, delete comment button, etc. All of these UI elements are described in many different examples above.
- the shared stream manager includes several components to facilitate the content and comment sharing features.
- the components include (1) a data manager 7222 , (2) a checksum generator 7224 , (3) a web publication module 7226 , (4) a layout manager 7228 , (5) an image generator 7230 , (6) a comment module 7232 , (7) a filename analyzer, and (8) a notification module.
- Different components may be provided for different platforms.
- the filename analyzer may be provided in one platform (e.g., a PC platform) while not provided for another platform (e.g., a smartphone or tablet platform).
- the data manager 7222 facilitates the uploading and downloading of content data from one or more the storage servers 7238 (e.g., third-party storage servers).
- the data manager 7222 may receive file location data (e.g., URL address), and upload to or download content from a storage server.
- This data manager 7222 of some embodiments operates automatically without any user input.
- the shared stream manager 7220 may receive a message regarding a new batch of images in a shared image, and direct the data manager 7222 to download the batch from the storage server.
- the checksum generator 7224 runs an image file through a computation algorithm that generates a checksum of that image file, which is a hash of the image's content.
- the content sharing tools and the control server may reference an image using a first key (e.g., unique key) for identifying the image in the photo stream.
- the first key may be associated with a second key for accessing the image file that is stored at an external data source (e.g., a storage server).
- the second key may include or is a checksum of that one image file. This checksum allows the storage server to store one image, even though that image is in multiple different photo streams.
- the web publication module 7230 allows images to be published as a set of webpages to a website.
- the website is a public website that can be accessed by any browser with the correct URL address.
- the web publication module 7230 may communicate with one or more of the web publishing servers 7242 .
- the content display area 7212 presents images similar to the ones that are published to a website.
- the shared stream manager 7220 may include the layout manager 7228 .
- This layout manager of some embodiments selects a layout based on the number of images in a batch and the orientation of those images.
- the images may be presented in a particular order (e.g., starting with the oldest image and ending with the newest image, or vice versa).
- the batches may be presented in a particular order (e.g., starting with the oldest batch to the newest batch, or vice versa).
- the comment module 7232 allows the sharing of comments regarding content in a shared stream. This module of some embodiments receives a comment and generates a message regarding the comment to send to a control server. The comment module may also receive a message regarding a new comment and perform operations to display the comment (e.g., in the content display area 7212 ). These operations may include identifying the image associated with the comment, the timestamp of the comment, and the person that left the comment. These operations may also entail counting the number of comments and/or likes associated with that same image.
- the filename analyzer 7234 analyzes a filename of a piece of content to automatically input a comment.
- the filename may be analyzed using a number of different techniques.
- the analysis entails identifying one or more words, names, or people in the filename.
- the analysis may entail identifying random filenames that are generated by different image capturing devices (e.g., digital cameras, smart phones, tablets).
- the analysis may also entail identifying different characters (e.g., underscore) and replacing them with a space.
- the notification module detects notifications from a control server and facilitates their presentation. For example, the notification module may cause different photo streams to be marked with a marking (e.g., colored dot) in the shared stream menu 7214 and/or cause images to be marked with a marking (e.g., a chat bubble, double chat bubble, a flag that identifies the number of new images, etc.) in the content display area 7212 .
- the notification module interoperates with the notifications tools 7208 to present notifications (e.g., icon badge, banner notification, system tray notification) at the operating system level.
- While many of the features of the content sharing tools 7200 have been described as being performed by one module (e.g., the comment module 7232 , the web publication module 7226 , etc.), one of ordinary skill in the art will recognize that the components (e.g., functions, modules) described herein might be split up into multiple components. Similarly, components that are described as being performed by multiple different modules might be performed by a single module, in some embodiments.
- Computer readable storage medium also referred to as computer readable medium.
- these instructions are executed by one or more computational or processing unit(s) (e.g., one or more processors, cores of processors, or other processing units), they cause the processing unit(s) to perform the actions indicated in the instructions.
- computational or processing unit(s) e.g., one or more processors, cores of processors, or other processing units
- Examples of computer readable media include, but are not limited to, CD-ROMs, flash drives, random access memory (RAM) chips, hard drives, erasable programmable read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), etc.
- the computer readable media does not include carrier waves and electronic signals passing wirelessly or over wired connections.
- the term “software” is meant to include firmware residing in read-only memory or applications stored in magnetic storage, which can be read into memory for processing by a processor.
- multiple software inventions can be implemented as sub-parts of a larger program while remaining distinct software inventions.
- multiple software inventions can also be implemented as separate programs.
- any combination of separate programs that together implement a software invention described here is within the scope of the invention.
- the software programs when installed to operate on one or more electronic systems, define one or more specific machine implementations that execute and perform the operations of the software programs.
- FIG. 73 is an example of an architecture 7300 of such a mobile computing device.
- mobile computing devices include smartphones, tablets, laptops, etc.
- the mobile computing device 7300 includes one or more processing units 7305 , a memory interface 7310 and a peripherals interface 7315 .
- the peripherals interface 7315 is coupled to various sensors and subsystems, including a camera subsystem 7320 , a wireless communication subsystem(s) 7325 , an audio subsystem 7330 , an I/O subsystem 7335 , etc.
- the peripherals interface 7315 enables communication between the processing units 7305 and various peripherals.
- an orientation sensor 7345 e.g., a gyroscope
- an acceleration sensor 7350 e.g., an accelerometer
- the camera subsystem 7320 is coupled to one or more optical sensors 7340 (e.g., a charged coupled device (CCD) optical sensor, a complementary metal-oxide-semiconductor (CMOS) optical sensor, etc.).
- the camera subsystem 7320 coupled with the optical sensors 7340 facilitates camera functions, such as image and/or video data capturing.
- the wireless communication subsystem 7325 serves to facilitate communication functions.
- the wireless communication subsystem 7325 includes radio frequency receivers and transmitters, and optical receivers and transmitters (not shown in FIG. 73 ). These receivers and transmitters of some embodiments are implemented to operate over one or more communication networks such as a GSM network, a Wi-Fi network, a Bluetooth network, etc.
- the audio subsystem 7330 is coupled to a speaker to output audio (e.g., to output different sound effects associated with different image operations). Additionally, the audio subsystem 7330 is coupled to a microphone to facilitate voice-enabled functions, such as voice recognition, digital recording, etc.
- the I/O subsystem 7335 involves the transfer between input/output peripheral devices, such as a display, a touch screen, etc., and the data bus of the processing units 7305 through the peripherals interface 7315 .
- the I/O subsystem 7335 includes a touch-screen controller 7355 and other input controllers 7360 to facilitate the transfer between input/output peripheral devices and the data bus of the processing units 7305 .
- the touch-screen controller 7355 is coupled to a touch screen 7365 .
- the touch-screen controller 7355 detects contact and movement on the touch screen 7365 using any of multiple touch sensitivity technologies.
- the other input controllers 7360 are coupled to other input/control devices, such as one or more buttons. Some embodiments include a near-touch sensitive screen and a corresponding controller that can detect near-touch interactions instead of or in addition to touch interactions.
- the memory interface 7310 is coupled to memory 7370 .
- the memory 7370 includes volatile memory (e.g., high-speed random access memory), non-volatile memory (e.g., flash memory), a combination of volatile and non-volatile memory, and/or any other type of memory.
- the memory 7370 stores an operating system (OS) 7372 .
- the OS 7372 includes instructions for handling basic system services and for performing hardware dependent tasks.
- the memory 7370 also includes communication instructions 7374 to facilitate communicating with one or more additional devices; graphical user interface instructions 7376 to facilitate graphic user interface processing; image processing instructions 7378 to facilitate image-related processing and functions; input processing instructions 7380 to facilitate input-related (e.g., touch input) processes and functions; audio processing instructions 7382 to facilitate audio-related processes and functions; and camera instructions 7384 to facilitate camera-related processes and functions.
- the instructions described above are merely exemplary and the memory 7370 includes additional and/or other instructions in some embodiments.
- the memory for a smartphone may include phone instructions to facilitate phone-related processes and functions.
- the above-identified instructions need not be implemented as separate software programs or modules.
- Various functions of the mobile computing device can be implemented in hardware and/or in software, including in one or more signal processing and/or application specific integrated circuits.
- FIG. 73 While the components illustrated in FIG. 73 are shown as separate components, one of ordinary skill in the art will recognize that two or more components may be integrated into one or more integrated circuits. In addition, two or more components may be coupled together by one or more communication buses or signal lines. Also, while many of the functions have been described as being performed by one component, one of ordinary skill in the art will realize that the functions described with respect to FIG. 73 may be split into two or more integrated circuits.
- FIG. 74 conceptually illustrates another example of an electronic system 7400 with which some embodiments of the invention are implemented.
- the electronic system 7400 may be a computer (e.g., a desktop computer, personal computer, tablet computer, etc.), phone, PDA, or any other sort of electronic or computing device.
- Such an electronic system includes various types of computer readable media and interfaces for various other types of computer readable media.
- Electronic system 7400 includes a bus 7405 , processing unit(s) 7410 , a graphics processing unit (GPU) 7415 , a system memory 7420 , a network 7425 , a read-only memory 7430 , a permanent storage device 7435 , input devices 7440 , and output devices 7445 .
- GPU graphics processing unit
- the bus 7405 collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of the electronic system 7400 .
- the bus 7405 communicatively connects the processing unit(s) 7410 with the read-only memory 7430 , the GPU 7415 , the system memory 7420 , and the permanent storage device 7435 .
- the processing unit(s) 7410 retrieves instructions to execute and data to process in order to execute the processes of the invention.
- the processing unit(s) may be a single processor or a multi-core processor in different embodiments. Some instructions are passed to and executed by the GPU 7415 .
- the GPU 7415 can offload various computations or complement the image processing provided by the processing unit(s) 7410 .
- the read-only-memory (ROM) 7430 stores static data and instructions that are needed by the processing unit(s) 7410 and other modules of the electronic system.
- the permanent storage device 7435 is a read-and-write memory device. This device is a non-volatile memory unit that stores instructions and data even when the electronic system 7400 is off. Some embodiments of the invention use a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) as the permanent storage device 7435 .
- the system memory 7420 is a read-and-write memory device. However, unlike storage device 7435 , the system memory 7420 is a volatile read-and-write memory, such a random access memory.
- the system memory 7420 stores some of the instructions and data that the processor needs at runtime.
- the invention's processes are stored in the system memory 7420 , the permanent storage device 7435 , and/or the read-only memory 7430 .
- the various memory units include instructions for processing multimedia clips in accordance with some embodiments. From these various memory units, the processing unit(s) 7410 retrieves instructions to execute and data to process in order to execute the processes of some embodiments.
- the bus 7405 also connects to the input and output devices 7440 and 7445 .
- the input devices 7440 enable the user to communicate information and select commands to the electronic system.
- the input devices 7440 include alphanumeric keyboards and pointing devices (also called “cursor control devices”), cameras (e.g., webcams), microphones or similar devices for receiving voice commands, etc.
- the output devices 7445 display images generated by the electronic system or otherwise output data.
- the output devices 7445 include printers and display devices, such as cathode ray tubes (CRT) or liquid crystal displays (LCD), as well as speakers or similar audio output devices. Some embodiments include devices such as a touchscreen that function as both input and output devices.
- CTR cathode ray tubes
- LCD liquid crystal displays
- bus 7405 also couples electronic system 7400 to a network 7425 through a network adapter (not shown).
- the computer can be a part of a network of computers (such as a local area network (“LAN”), a wide area network (“WAN”), or an Intranet, or a network of networks, such as the Internet. Any or all components of electronic system 7400 may be used in conjunction with the invention.
- Some embodiments include electronic components, such as microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media).
- computer-readable media include RAM, ROM, read-only compact discs (CD-ROM), recordable compact discs (CD-R), rewritable compact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM), a variety of recordable/rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic and/or solid state hard drives, read-only and recordable Blu-Ray® discs, ultra density optical discs, any other optical or magnetic media, and floppy disks.
- CD-ROM compact discs
- CD-R recordable compact discs
- the computer-readable media may store a computer program that is executable by at least one processing unit and includes sets of instructions for performing various operations.
- Examples of computer programs or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.
- ASICs application specific integrated circuits
- FPGAs field programmable gate arrays
- PLDs programmable logic devices
- ROM read only memory
- RAM random access memory
- the terms “computer”, “server”, “processor”, and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people.
- display or displaying means displaying on an electronic device.
- the terms “computer readable medium,” “computer readable media,” and “machine readable medium” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral signals.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Telephonic Communication Services (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Some embodiments provide tools that allow a user to share content on one device with multiple other users using different devices. The content sharing tools allow the user to (1) create a shared stream that represents a set of shared content and (2) invite one or more recipients to subscribe to the shared stream. When a recipient subscribes to the shared stream, the set of content is streamed across one or more of his or her devices. In some embodiments, a control server facilitates the sharing of content by managing control data associated with different shared streams.
Description
- This application claims the benefit of U.S. Provisional Application 61/657,806, filed Jun. 10, 2012, U.S. Provisional Application 61/657,883, filed Jun. 10, 2012, and U.S. Provisional Application 61/699,815, filed Sep. 11, 2012. U.S. Provisional Applications 61/657,806, 61/657,883, and 61/699,815 are incorporated herein by reference.
- Today, many different websites exists for sharing images. Typically, a person uses a web browser to navigate to a website. The person then logs on to the website and starts posting photos. In some cases, the person can also leave comments regarding those photos. The photos and comments may be viewed by everyone or by a group of people (e.g., friends, family, colleagues) that is associated with the person.
- There are a number of shortcomings with such image and comment sharing operations described above. As a first example, the person may take a photo with a smart phone having a camera. To share that photo, the person then has to navigate to the website and log onto the website before he or she can even start uploading the photo. This can entail opening a web browser and inputting the website's URL address into web browser. If a desktop or laptop computer is being used, the person may also have to plug in the smart phone to the computer and then import the photo into the computer. Accordingly, there can be many different steps that must be performed just to share that one photo.
- As another example, the website might not provide any easy options to select certain people that can or cannot view a group of photos. For example, when a person shares photos, they can be seen by either everyone or all people (e.g., friends, family, colleagues) that are associated with that person. Similarly, any comments that are left regarding the photos can be viewed by either everyone or the associated people. As such, there may be no easy way to specify a personal or mini social network that excludes one group of people (e.g., friends) while including another group of people (e.g., family).
- Some embodiments described herein provide tools that allow a person to share content (e.g., images, video clips) on one device with multiple other people using different devices. Examples of such devices include a desktop computer, laptop, tablet, smart phone, digital media receiver, smart television (“TV”), etc. The content may also be shared across the person's own devices. To facilitate the sharing operations, the content sharing tools allow the person to (1) create a shared stream that represents a set of shared content, and (2) invite one or more recipients (e.g., friends, family) to subscribe to the shared stream. When a recipient subscribes to the shared stream, the set of shared content is streamed across to one or more of the recipient's devices.
- In conjunction with the content sharing features, the content sharing tools (hereinafter image sharing tools) allow different participants to share comments regarding the stream's content. In some embodiments, the comments are pushed in real time to all devices (e.g., across different platforms) of the different participants associated with the shared stream. By pushing content and comments to a specified group of people, the content sharing tools create a social network (e.g., a mini social network, a personal social network). In this network, a participant can take a photo with his or her smart phone, add it to a shared stream album, and receive, at a moment's notice, comments from only those other participants that are associated with the shared stream album.
- The image sharing tools of some embodiments provide a variety of different tools to modify a shared photo stream album. The user can use these tools to add or delete image from the shared photo stream album. When an image is added to the shared photo stream album, the image is distributed across the user's own devices and the devices of other participants that have subscribed to the shared photo stream album. Conversely, when an image is deleted from the user's device, the image may be deleted from the user's own devices and the participants' devices.
- In some embodiments, the image sharing tools allow a user to manage a shared photo stream album. Example of such management features include resending a photo stream invitation, inviting additional subscribers, removing existing subscribers, and deleting the shared photo stream album. The image sharing tools of some embodiments only allow an owner (i.e., the person that created the shared photo stream album) to perform one or more of these management operations. However, the image sharing tools may allow the owner to specify access privileges. That is, the owner can specify whether a subscriber can add images to or remove images from the shared photo stream album, add or remove subscribers, make comments, etc. In some embodiments, the image sharing tools provide a control that when selected unsubscribes a subscriber from a shared photo stream album.
- The image sharing tools of some embodiments allow content and comments to be shared across different platforms (e.g., from different vendors). That is, a person using one type of computing device (e.g., a tablet, smart phone) can share images and comments with a different person using another type of computing device (e.g., personal computer, laptop). In some embodiments, the image sharing tools are integrated into an operating system (“OS”). Alternatively, the image sharing tools may be provided as part of an image application (e.g., a photo viewing application, an image organizing and editing application).
- In the cross-platform system, each client may communicate with a control server. In some embodiments, the control server facilitates the sharing by managing control data associated with different shared photo streams. Examples of such control data include user data (e.g., a list of devices associated with a user) and photo stream data (e.g., a list of photo stream associated with the user, a list of individuals that can access a particular photo stream).
- When a new shared stream album is created, the control server of some embodiments sends file location data to the owner's device. The owner's device then uploads images in the shared photo stream album to a storage server. This storage server may be a third-party storage server. The control sever may also send a message to each recipient that has been invited to participate in the shared stream album. When a recipient accepts the invitation, the images may be downloaded from the storage sever to one or more of the recipient's devices.
- In some embodiments, the image sharing tools allow images in a shared photo stream album to be published as a webpage to a website. In publishing the images, the layout of the webpage is selected based on the number of images and the orientation of the images. When different batches of images are added at different time, one particular layout is selected for each batch. The images in a batch may be presented in a particular order (e.g., starting with the oldest image and ending with the newest image, or vice versa). Also, the different batches may be presented in a particular order (e.g., starting with the oldest batch and ending with the newest batch, or vice versa). In some embodiments, the webpage is generated by a web-publishing server. Alternatively, a client device may generate the web page and upload it to the web-publishing server.
- Several more detailed embodiments of the invention are provided below. Many of these examples refer to controls (e.g., selectable items) that are part of the image sharing tools. The image sharing tools in some embodiments are part of a standalone application that executes on top of the operating system of a device, while in other embodiments they are part of the operating system. Also, in many of the examples below (such as those illustrated in
FIGS. 1-6 , 8-13, 15-18, 21-35, 38-41, and 49-51) the device on which the application executes has a touch screen through which a user can interact with the image editing application. However, one of ordinary skill in the art will realize that cursor controllers or other input devices can be used to interact with the controls and applications shown in these examples for other embodiments that execute on devices with cursors and cursor controllers or other input mechanisms (e.g., voice control, remote control). - The preceding Summary is intended to serve as a brief introduction to some embodiments as described herein. It is not meant to be an introduction or overview of all subject matter disclosed in this document. The Detailed Description that follows and the Drawings that are referred to in the Detailed Description will further describe the embodiments described in the Summary as well as other embodiments. Accordingly, to understand all the embodiments described by this document, a full review of the Summary, Detailed Description and the Drawings is needed. Moreover, the claimed subject matters are not to be limited by the illustrative details in the Summary, Detailed Description and the Drawings, but rather are to be defined by the appended claims, because the claimed subject matters can be embodied in other specific forms without departing from the spirit of the subject matters.
- The novel features as described here are set forth in the appended claims. However, for purposes of explanation, several embodiments are set forth in the following figures.
-
FIG. 1 illustrates an example graphical user interface (“GUI”) of an application for sharing images. -
FIG. 2 provides an illustrative example of a recipient becoming a subscriber by accepting a photo stream invitation. -
FIG. 3 provides an illustrative example of sharing a comment regarding an image in the photo stream. -
FIG. 4 provides an illustrative example of selecting several images for a photo stream. -
FIG. 5 provides an illustrative example of specifying a name and subscriber for a photo stream. -
FIG. 6 provides an illustrative example of inputting a comment for an image in the new photo stream. -
FIG. 7 conceptually illustrates a process that some embodiments use to create a new photo stream. -
FIG. 8A provides an illustrative example of how a recipient is notified of the photo stream invitation. -
FIG. 8B illustrates an example of the owner receiving notification of the acceptance of the invitation. -
FIG. 9 provides an illustrative example of an email that is received at the recipient's device. -
FIG. 10 provides an illustrative example of a first recipient forwarding the photo stream to a second recipient. -
FIG. 11A provides an illustrative example of the second recipient accepting the photo stream invitation. -
FIG. 11B provides an illustrative example of a notification that is pushed onto the owner's device upon the second recipient accepting the invitation. -
FIG. 12 provides an illustrative example of a subscriber selecting and viewing the photo stream after accepting the invitation. -
FIG. 13 provides an illustrative example of a recipient declining a photo stream invitation. -
FIG. 14 conceptually illustrates a process that some embodiments use to accept or decline a photo stream invitation. -
FIG. 15 provides an illustrative example of adding an image to an existing photo stream. -
FIG. 16 provides an illustrative example of several notifications that are received at the subscriber's device. -
FIG. 17 provides an illustrative example of deleting an image from a photo stream. -
FIG. 18 provides an illustrative example of the photo stream on the subscriber's device after deleting the image. -
FIG. 19 conceptually illustrates a process that some embodiments perform to add or delete images from a photo stream. -
FIG. 20 conceptually illustrates a process that some embodiments perform when a participant adds images to or deletes images from a photo stream. -
FIG. 21 provides an illustrative example of resending a photo stream invitation to a recipient that has not accepted or declined the invitation. -
FIG. 22 provides an illustrative example of adding a subscriber for the photo stream. -
FIG. 23 provides an illustrative example of removing a subscriber. -
FIG. 24 provides an illustrative example of deleting a photo stream. -
FIG. 25 provides an illustrative example of unsubscribing from a photo stream by a subscriber. -
FIG. 26 provides an illustrative example of preventing the user of a device from receiving a photo stream invitation. -
FIG. 27 provides an illustrative example of turning off the shared photo stream features. -
FIG. 28 provides an illustrative example of blocking photo stream alerts. -
FIG. 29 provides an illustrative example of adding a comment regarding an image in a photo stream. -
FIG. 30 provides an illustrative example of how the comment appears on a subscriber's device. -
FIG. 31 provides an illustrative example of how the comment appears on the user's device. -
FIG. 32 provides an illustrative example of marking an image. -
FIG. 33 provides an illustrative example of how the image application of some embodiments displays an image with comments. -
FIG. 34 provides an illustrative example of scrolling through different images with comments. -
FIG. 35 provides an illustrative example of scrolling through the comments associated with one image. -
FIG. 36 conceptually illustrates a process that some embodiments use to post a comment. -
FIG. 37 conceptually illustrates a process that some embodiments use to provide one or more notifications regarding a new comment. -
FIG. 38 provides an illustrative example of publishing a photo stream to a website. -
FIG. 39A provides an illustrative example accessing the webpage with the subscriber's device. -
FIG. 39B provides an example message that is received at a recipient's device. -
FIG. 40 provides an illustrative example of how the webpage is updated when a new image is added to the photo stream. -
FIG. 41 provides an example of scrolling through images in the photo stream. -
FIG. 42 provides an illustrative example of a webpage layout for a photo stream that includes two images. -
FIG. 43 provides an illustrative example of a webpage layout for a photo stream that includes three or four images. -
FIG. 44 provides an illustrative example of a webpage layout for a photo stream that includes five or six images. -
FIG. 45 illustrates webpage layouts for a photo stream that includes more than six images. -
FIG. 46 provides several examples of how images are framed in a webpage layout. -
FIG. 47 provides an illustrative example of how portrait and landscape images are presented in a batch layout. -
FIG. 48 conceptually illustrates a process that some embodiments use to publish images in a photo stream to a website. -
FIG. 49 provides an illustrative example of the image sharing tools on a tablet. -
FIG. 50 provides another example of the image sharing tools on a tablet. -
FIG. 51 provides an illustrative example of how comments are presented on the tablet. -
FIG. 52 provides an illustrative example of opening a shared photo stream with a digital media receiver. -
FIG. 53 provides an illustrative example of navigating images in the photo stream. -
FIG. 54 provides an illustrative example of filtering a display to only display images with one or more new comments. -
FIG. 55 illustrates an example of another image application for a digital media receiver or smart TV. -
FIG. 56 provides an illustrative example of installing and configuring the image sharing tools. -
FIG. 57 illustrates an example of specifying a subscriber and a name for the photo stream. -
FIG. 58 illustrates selecting images for the photo stream and inputting comments for several of the images. -
FIG. 59 provides an illustrative example of accepting a photo stream invitation with a subscriber's device. -
FIG. 60 provides an example of adding an image to a photo stream. -
FIG. 61 provides an illustrative example of leaving a comment using a PC. -
FIG. 62 provides an illustrative example of an alternate embodiment of the integrated image sharing tools. -
FIG. 63 provides an illustrative example of the image sharing tools that are integrated into an image organizing and editing application. -
FIG. 64 provides an illustrative example of accepting a photo stream invitation with a subscriber's device. -
FIG. 65 provides an illustrative example of how the image sharing tools of some embodiments present comments on the photo application. -
FIG. 66 conceptually illustrates an example system architecture in which the clients communicate with the different servers to share images and comments. -
FIG. 67 conceptually illustrates an example of how a user's photo streams are represented at the server side. -
FIG. 68 conceptually illustrates an example process that some embodiments perform to notify recipients of a new-shared stream invitation. -
FIG. 69 conceptually illustrates an example process that some embodiments perform when it receives a response from a recipient device. -
FIG. 70 conceptually illustrates an example process that some embodiments perform to notify participants of a new comment. -
FIG. 71 conceptually illustrates an example process that some embodiments perform to deliver a new comment. -
FIG. 72 conceptually illustrates the software architecture of content sharing tools of some embodiments -
FIG. 73 is an example of an architecture of such a mobile computing device. -
FIG. 74 conceptually illustrates another example of an electronic system with which some embodiments of the invention are implemented. - In the following detailed description of the invention, numerous details, examples, and embodiments of the invention are set forth and described. However, it will be clear and apparent to one skilled in the art that the invention is not limited to the embodiments set forth and that the invention may be practiced without some of the specific details and examples discussed.
- Some embodiments described herein provide tools that allow a person to share images on one device with multiple other people using different devices. Examples of such devices include a desktop computer, laptop, tablet, smart phone, digital media receiver, smart television (“TV”), etc. The images may also be shared across the person's own devices. To facilitate the sharing operations, these tools allow the person to (1) create a photo stream that represents a set of shared images and (2) invite one or more recipients to subscribe to the photo stream. When a recipient subscribes to the photo stream, the set of images is streamed across to one or more of the recipient's devices.
- In conjunction with the image sharing features, the image sharing tools allow different participants to share comments regarding the photo stream's images. In some embodiments, the comments are pushed in real time to all devices (e.g., across different platforms) of the different participants associated with the shared stream. By pushing content and comments to a specified group of people, the content sharing tools create a social network (e.g., a mini social network, a personal social network). In this network, a participant can take a photo with his or her smart phone, add it to a shared photo stream, and receive, at a moment's notice, comments from only those other participants that are associated with the shared photo stream.
- In some embodiments, the image sharing tools are integrated into an operating system (“OS”). Alternatively, the image sharing tools may be provided as part of an image application (e.g., a photo viewing application, an image organizing and editing application). For some embodiments,
FIG. 1 illustrates a graphical user interface (“GUI”) 100 of an application with such image and comment sharing features. Specifically, this figure illustrates in five operational stages 170-190 how a user can use theGUI 100 to create a shared photo stream. - In several examples described below, a first user creates a photo stream and sends an invitation to a second different user to subscribe to the photo stream. To simplify the description, the first user may be referred to as an owner, and the second user may be referred to as a recipient or subscriber depending on whether the second user has subscribed to the photo stream.
- As shown in
FIG. 1 , theGUI 100 includes (1) animage display area 105, (2) a photo stream options display area 125 (hereinafter an options sheet), and (3) a photo stream comment display area 150 (hereinafter a comment sheet). Theimage display area 105 is an area within theGUI 100 through which the user can view images. Theimage display area 105 displays thumbnail representations of images. Thumbnails are reduced-size representations of full-size images. At any time, the user can select any one of the thumbnail images to display the corresponding image at a higher resolution. This higher resolution image is typically not the full size image (which is often of a higher resolution than resolution of the display device). In some embodiments, the thumbnail image represents only a portion of an image. That is, the thumbnails in theimage display area 105 are all squares, irrespective of the aspect ratio of the full-size images. In order to determine the portion of a rectangular image to use for a thumbnail, the application of some embodiments identifies the smaller dimension of the image and uses the center portion of the image in the longer dimension. - As shown in the
first stage 170, theimage display area 105 displays images from a collection, namely a camera roll. This is indicated by atop bar 110 that displays “Camera Roll” as the heading for theimage display area 105. The camera roll collection includes one or more images taken with the device (e.g., a smart phone, tablet) on which the image application executes. Accordingly, thethumbnail images - In the example illustrated in the
FIG. 1 , theGUI 100 includes abottom bar 115 that displays severalselectable controls tab 112. When selected, the application of some embodiments lists different collections, such as the camera roll collection. Different from the “Albums” tab, the user can select the “Photo Stream”tab 114 to display a list of different photo streams. The “Places”tab 116 can be selected to display a map showing mapped locations of geotagged images (e.g., images associated with Global Positioning System (GPS) metadata). In some embodiments, the application includes a separate “Camera Roll” tab for displaying images in the camera roll collection. The application may also include a “Photos” tab for displaying all images (e.g., a library of images) taken with the device and/or imported into the device. - The photo
stream options sheet 125 is used to specify different options for a shared photo stream. Thissheet 125 includes asubscriber field 130 and aname field 135. Thesubscriber field 130 is an area in the sheet that the user can input one or more recipients for the photo stream. That is, the owner can input contact information into this field to invite the recipients to join the photo stream. - In the example illustrated in
FIG. 1 , the contact information that can be inputted in thesubscriber field 130 is an email address or a name associated with an email address. However, other types of contact information (e.g., a phone number) may be provided to invite a recipient to join the shared photo stream. In some embodiments, the application includes an auto-complete feature. For instance, one or more suggested names from a contacts directory or an address book may be displayed as the owner inputs text into thefield 130. The owner can then select a suggested name to automatically fill in thefield 130. - The
name field 135 allows the user to specify a name or title for the photo stream. For example, the owner can use this field to input a name or title that summarizes the photo stream's images. The name specified with thename field 135 may be displayed in a number of different places. The name may appear in the photo stream invitation (e.g., email message). The name may also appear as the heading for the shared photo stream. - The
comment sheet 150 can be used to add a comment. Thecomment sheet 150 includes acomment field 155 for inputting the comment. In some embodiments, the comment is associated with a first image in the photo stream (e.g., the firstselected image 102 in the image display area 105). This comment may be displayed with the first image (e.g., as a caption over a lower portion of the first image) on each device of participants associated with the photo stream. As shown inFIG. 1 , the comment field is an optional field because the owner does not have to input a comment in order to create the photo stream. - Having described the elements of the
GUI 100, the operations of creating a photo stream will now be described by reference to the state of the GUI during the five stages 170-190 that are illustrated inFIG. 1 . In thefirst stage 170, theimage display area 105 displays thumbnail representations 102-106 of images from the camera roll collection. As mentioned above, the camera roll collection includes one or more images taken with the device (e.g., a smart phone or tablet equipped with a camera). - The
second stage 175 illustrates theGUI 100 after the user has selected several images for the shared photo stream. Specifically, the user has selected (e.g., by performing a gesture such as tapping the user's finger on) thefirst thumbnail image 102 representing a first image for the photo stream, and asecond thumbnail image 104 representing a second image. To choose images, the user might have first selected an edit button 118 (e.g., an image selection button, an action button) prior to selecting thethumbnail images image display area 105 may display a full-screen representation of the selected image. - When the application is in an image selection state, the selection of a thumbnail image causes it to display a marking near or at least partially over the selected thumbnail image. This marking provides the user with a visual indication of the selection of the thumbnail image. In the example illustrated in
FIG. 1 , the marking is acheck mark 122 that is displayed over each of the selectedthumbnail images - To share the selected images, the user selects (e.g., by performing a gesture such as tapping the user's finger on) a
share button 160. The selection of theshare button 160 causes a pop-upmenu 145 to appear, as shown in thethird stage 180. The pop-upmenu 145 may appear by sliding up from the bottom of the screen and disappear by sliding down towards the bottom of the screen. - As shown in the
third stage 180, the pop-upmenu 145 includes several selectable items. The selectable items are arranged as a 2×2 grid of buttons. Each button is associated with an icon and a description. The selectable items include aphoto stream button 165, amessage button 124, amail button 126, and acopy button 172. Thephoto stream button 165 is for creating a new photo stream or adding the selected images to an existing photo stream, themessage button 124 is for creating a text message (e.g., SMS, iMessage) with the selected images, themail button 126 is for generating an email with the selected images, and thecopy button 172 is for copying the selected images. The pop-upmenu 145 also includes a cancelbutton 128 for canceling and returning to the previous view. In some embodiments, the pop-upmenu 145 includes a print button (not shown) for printing the selected images. - In the example illustrated in the
third stage 180, the selectable items are icon based. In some embodiments, the application presents each item with text and an icon, only with the text and without the icon, or only with the icon and without the text. The application of some embodiments presents different selectable items based on the number of images that are selected from the image display area. For instance, if only one image is selected, the pop-upmenu 145 may include an option to use the selected image as a desktop wallpaper. - In the
third stage 180, the user selects thephoto stream button 165. Thefourth stage 185 illustrates theGUI 100 after the user has selected thephoto stream button 165. As shown, the selection resulted in the display of the photostream options sheet 125 for creating a new photo stream. When a photo stream has been previously created, the application provides an option to add the selected images to an existing photo stream or create a new photo stream, in some embodiments. Here, the photostream option sheet 125 is overlaid by thetop bar 110 that includes a heading. The heading reads “Photo Stream”. In some embodiments, the heading reminds the user that he or she is creating a new photo stream by specifically stating “New Photo Stream”. - As shown in the
third stage 180, the user has typed in an email address into thesubscriber field 130 using an on-screen orvirtual keyboard 140. The user has also typed in a name for the photo stream in thename field 135. Once thefields next button 134 that is shown on thetop bar 110. Optionally, the user can select a cancelbutton 132 to return to a pervious view (e.g., the view illustrated in the second stage 175). In some embodiments, thenext button 134 is disabled when there are one or more blank fields. For example, thenext button 134 may be disabled when the subscriber field and/or the name field are blank. The application of some embodiments modifies the appearance of the button 134 (e.g., changes its color) to indicate that it is selectable or disabled. - The
fifth stage 190 illustrates the application after the selection of thenext button 134. The selection results in the display of thecomment sheet 150. In some embodiments, the application presents thecomment sheet 150 with animation. For example, the application may present it by flipping over the photostream options sheet 125, similar to a two-sided card being flipped over. - As shown in the
fifth stage 190, thecomment sheet 150 includes a heading that states that it is associated with the photo stream. The name of the photo stream is also shown on the comment sheet. Specifically, the name of the photo stream is displayed below thecomment field 155 with an icon (e.g., a photo stream icon). Thecomment field 155 remains empty, as the user has not inputted any comment for an image (e.g., the first image) in the photo stream. In some embodiments, thecomment sheet 150 displays one or more thumbnail images of images in the photo stream. In the example illustrated in thefifth stage 190, thumbnail images of the selected images are shown as being attached (e.g., paper clipped) to thecomment sheet 150. However, different embodiments may differently present previews of the photo stream's images. For example, the application may present the images as a grid of thumbnails on one or more rows. - In the
fifth stage 190, the user selects apost button 136 to create the new photo stream. Optionally the user can select a cancelbutton 138 to return to a previous display area, namely theoptions sheet 125 that is illustrated in thefourth stage 185. In some embodiments, the selection of the cancelbutton 138 causes the application to return to theimage display area 105 that is illustrated in thesecond stage 175. - When the post button is selected, the application of some embodiments generates a message regarding the new photo stream and sends the notification to a control or push server. Based on the message, the control server may respond with file location data (e.g., with one or more Uniform Resource Locators (“URLs”)) to send the images to a storage server (e.g., a third-party storage server). The application may also generate images to send to the storage server. For example, the application may generate one or more lower resolution images from a stored image (e.g., raw image) and send those images to the storage server.
- In some embodiments, the control server identifies each device associated with the recipient (e.g., based on the recipient's email address) and sends one or more messages or notifications regarding the photo stream invitation. Once the recipient accepts the invitation, the images are downloaded from the storage server onto each associated device. To more quickly display the images, the images may be downloaded to a recipient's device prior to the recipient accepting the invitation, and may be deleted from the device if the recipient rejects the invitation.
-
FIG. 2 provides an illustrative example of a recipient becoming a subscriber by accepting the photo stream invitation. Specifically, this figure illustrates in three operational stages 225-235 how the recipient can accept the photo stream invitation to display the shared images on the recipient's device. In this example, the recipient's device is executing the same image application as the owner's device. As such, theGUI 200 is the same one described above by reference toFIG. 1 . - In the
first stage 225, the application is displaying a photo stream display area 220 (hereinafter a photo stream menu). To display themenu 220, the recipient might have first selected (e.g., by performing a gesture such as tapping the recipient's finger on) the “Photo Stream”tab 114. As shown, themenu 220 displays the photo stream created by the owner. The photo stream is listed with (1) an icon associated with the image sharing tools, (2) the name of the photo stream, and (3) a number that identifies the number of images in the photo stream. In addition, themenu 220 identifies the owner as it states that the photo stream is shared by “Emily Parker”. In the illustrated example, the name of the owner is listed using a smaller font than the name of the photo stream. - In some embodiments, the image sharing tools provide one or more visual indications that there is a new photo stream invitation and/or an update to an existing photo stream. This is shown in the
photo stream menu 220 as the new photo stream is listed with a marking 245. Here, the marking 245 is a colored dot (e.g., blue dot) but other types of markings (e.g., textual markings) can be used to convey the same message. For instance, the “Photo Stream”tab 114 shows anicon 285 that is badged with anumber 280. This number indicates that there is one new photo stream invitation. In some embodiments, the application removes thebadge 280 from the icon upon displaying the photo stream menu. On the other hand, the marking 245 may be shown on the menu until the recipient either accepts or declines the photo stream invitation. - As will be described in detail below, the image sharing tools of some embodiments provide different visual indications at multiple different levels to notify a user of a new photo stream invitation and/or an update to an existing photo stream. For example, the image sharing tools may badge the application's icon at the operating system (“OS”) desktop level, mark different photo streams with a marking at the application menu level, and/or flag images (e.g., as new images) at the photo stream image level. In conjunction with, or instead of one or more of these visual indications, the image sharing tools of some embodiments alerts the user by causing the recipient's device to play a sound and/or vibrate.
- In the
first stage 225, the recipient selects (e.g., by performing a gesture such as tapping the recipient's finger on) the photo stream from thephoto stream menu 220. The selection causes the application to display a pop-upmenu 215, as illustrated in thesecond stage 215. In some embodiments, the pop-upmenu 215 is superimposed over a portion of thephoto stream menu 220 by sliding up from the bottom of the screen. The pop-upmenu 215 includes a heading. The heading states that the owner would like to share the photo stream with the recipient. The owner is identified by the owner's name and email address, and the photo stream is identified by its associated name. The pop-upmenu 215 includes (1) an acceptbutton 250 for accepting the photo stream invitation, (2) adecline button 255 for declining the invitation, and (3) a cancelbutton 260 for closing the pop-up menu without accepting or declining the invitation (e.g., keeping the invitation pending and deciding at a later time). - As shown in the
second stage 230, the recipient selects the acceptbutton 250 from the pop-upmenu 215. This results in the display of animage display area 105, as illustrated in thethird stage 235. Theimage display area 105 is the same as the one described above by reference toFIG. 1 . Theimage display area 105 displays thumbnailrepresentations thumbnail representations - In the example illustrated in
FIG. 2 , theimage display area 105 is overlaid by thetop bar 210, which includes the name of photo stream. Thetop bar 210 also includes aback button 265 for returning to thephoto stream menu 220 and anedit button 270 for selecting images in the photo stream. In the example illustrated in thethird stage 235, the image display area also displays text below the twothumbnails - In some embodiments, the application displays a marking that identifies the number of new image that are in the photo stream. This is shown in the
third stage 235 as aflag 275 is displayed over thethumbnail 202 of the first new image. The flag is marked with text that states that there are two new images in the photo stream. The application of some embodiments displays such a marking for each new batch of images. For example, when the owner adds a new batch of images to the photo stream, the application may display a similar flag on a first thumbnail image that corresponds to the first image in the new batch. - The image application of some embodiments displays images in a batch in a particular order (e.g., starting with the oldest image and ending with the newest image, or vice versa). The application of some embodiments displays different batches in a particular order (e.g., starting with the oldest batch to the newest batch, or vice versa). By displaying different batches in chronological or reverse chronological order, the images may not necessarily be ordered in a display area (e.g., the image display 105). For example, this can occur when there are multiple batches and when an image in a first batch is newer (e.g., has a timestamp that is later) than another image in one of the subsequent batches. Many different examples of batching or grouping images will be described below.
- In the example described above, the recipient's device is in an invited state through the first two
stages - As mentioned above, the image sharing tools create a social network by allowing users to share not only images but also comments regarding those images.
FIG. 3 provides an illustrative example of sharing a comment regarding an image in the photo stream. Four operational stages 305-320 of the application are illustrated in this figure. These stages are continuations of the stages that are illustrated inFIG. 2 . - In the
first stage 305, theimage display area 105 displays thumbnailrepresentations first thumbnail image 202. The selection causes theimage display area 105 to display afull screen representation 325 of the corresponding image. The full screen representation is overlaid by the top andbottom bars top bar 210 includes aback button 330 to return to the thumbnail view. Thetop bar 210 also states that the displayedimage 325 is a first of two images in the photo stream. - Different from the
top bar 210, thebottom bar 370 includes (1) ashare button 345 for sharing the selected image, (2) aplay button 350 for playing a slide show of the images in the photo stream, and (3) acomment button 360 for leaving a comment regarding the displayed image. The bottom bar may also include a stream button (not shown) for streaming the images in the photo stream to one or more other devices (e.g., a desktop computer, a laptop). In the example illustrated inFIG. 3 , each item in thebottom bar 370 is displayed with a corresponding icon. For example, thecomment button 360 is displayed with achat bubble icon 375. Thechat bubble icon 375 includes a plus sign (i.e., “+”) that provides a visual indication that a comment can be added for the displayedimage 325. - As shown in the
second stage 310, the user selects thecomment button 360. The selection causes the virtual or on-screen overlay keyboard 140 to appear, as illustrated in thethird stage 315. The selection also causes thetop bar 110 to display a heading that states “New Comment”. Here, the user types in a comment regarding theimage 325. Alternatively, the user can select the cancelbutton 380 to return to the full screen representation. - The
fourth stage 320 illustrates the image application after inputting the comment. As shown, the comment is displayed over theimage 325. The comment is also associated with comment metadata. The metadata is displayed below the comment, and identifies the person who left the comment and the time and date that the comment was left. In the example illustrated in thefourth stage 320, the person who left the comment is identified as “Me”. This is because the subscriber left the comment with the subscriber's device. The comment is also displayed with anadd comment field 365 that can be selected to add another comment. - In some embodiments, the comments are shared in real time across multiple different devices (e.g., across different platforms of different vendors). For instance, when a new comment has been received, the application of some embodiments generates a message regarding the new comment and sends the message to the control server. The message may include the comment and a key that uniquely identifies the image that is associated with the comment. Based on the message, the control server may store the comment, identify participants associated with the photo stream, and send a message regarding an update to a photo stream to each device associated with the identified participants. In some embodiments, the participant's device then downloads the comment and displays it with the associated image.
- Many more photo stream examples are described below. Section I describes another more detailed example of creating a new photo stream. This section also describes another example of accepting a photo stream invitation. Section II then describes adding and removing images from a photo stream. Section III describes several examples of managing a photo stream (e.g., resending an invitation, adding or removing a subscriber, unsubscribing, etc.). Section IV then describes additional examples of exchanging comments. Section V describes publishing a photo stream to a public website. These previous sections are then followed by examples of the image sharing tools that are implemented on different devices and/or platforms. Specially, Section VI describes example of the image sharing tools that operate on a tablet. The tablet examples are followed by Section VII that describes an example digital media receiver. Section VIII then describes how the image sharing tools of some embodiments are integrated in an operating system (e.g., of a personal computer (“PC”)). Section IX then describes several more examples of the image sharing tools that are integrated into one or more image editing and organizing application. Section X then describes an example system architecture used to facilitate the image and comment sharing operations. Section XI then describes example processes that are performed on the server-side. Section XII then describes a software architecture of content sharing tools of some embodiments. Finally, Section XIII then describes several example electronic systems that implement some embodiments described herein.
- As mentioned above, the image sharing tools allow an owner to create a shared photo stream album that includes images, and invite any number of recipients to join the shared photo stream album and view those images. When a recipient accepts the invitation, the images are downloaded onto one or more of the recipient's devices. Several more example operations of creating a photo stream album and sharing the photo stream album will now be described by reference to
FIGS. 1-14 . - A. Creating the Photo Stream
- An example of creating a photo stream has been described above. A more detailed example of creating a photo stream will now be described by reference to a sequence of operations that is illustrated in
FIG. 4-6 .FIG. 4 provides an illustrative example of selecting several images for a photo stream. Six operational stages 405-430 of the owner'sdevice 400 are illustrated in this figure. The figure includes theimage display area 105 that is described above by reference toFIG. 1 . - The
first stage 405 illustrates thedevice 400 displaying a graphical user interface (“GUI”) of its operating system (“OS”). The GUI includes selectable icons for opening different applications. Several of the icons are displayed along a menu bar (e.g., a dock). The icons include ones for opening a phone application, email application, web browser, and music player. An image application icon 435 (e.g., Photos application icon) and acamera application icon 440 are overlaid on the OS's desktop or main display area. To open the image application, the owner selects (e.g., by tapping the owner's finger on) theimage application icon 435. - The
second stage 410 illustrates the device after the owner has selected theicon 435. As shown, the application displays alist 445 of different collections. The owner might have first selected thealbums tab 112 to display this list. Here, the owner selects thecamera roll collection 460 from the list. As shown in thethird stage 415, the selection causes theimage display area 105 displays thumbnail representations of images in the camera roll collection. Here, the camera roll collection includes the images taken with the device (e.g., a smart phone or tablet equipped with a camera). - The third and
fourth stages first thumbnail image 450 to select a first image for the photo stream, and selects asecond thumbnail image 455 to select a second image for the photo stream. The owner might have selected theedit button 118 prior to selecting thefirst thumbnail image 450. Otherwise, theimage display area 105 may display a full screen representation of the selected image. - When the application is in an image selection state, the selection of a thumbnail image causes it to display a marking near or at least partially over the selected thumbnail image. This marking provides the user with a visual indication of the selection of the thumbnail image. In the example illustrated in
FIG. 4 , the marking is acheck mark 122 that is displayed over each of the selectedthumbnail images - In the
fifth stage 425, the owner selects (e.g., by tapping the owner's finger on) theshare button 160. The selection causes the pop-upmenu 145 to appear, as illustrated in thesixth stage 430. Themenu 145 includes thephoto stream button 165 for creating a new photo stream or adding the selected images to an existing photo stream. To create a new photo stream, the owner then selects the photo stream button. -
FIG. 5 provides an illustrative example of specifying a name and subscriber for a photo stream. Five operational stages 505-525 of the image application are shown in this figure. The operations are continuations of the ones illustrated inFIG. 4 . Thefirst stage 505 illustrates the image application after the owner has selected thephoto stream button 165 from the pop-upmenu 145. The selection resulted in the display of the photostream options sheet 125. The photo stream options sheet includes asubscriber field 130 for inputting one or more subscribers, and a name field for inputting a name for the photo stream. To input an email address of the subscriber, the owner then selects (e.g., by tapping the owner's finger on) thesubscriber field 130. - The
second stage 510 illustrates inputting a name of a subscriber into thesubscriber field 130. In particular, the owner begins to input (e.g., type in) an email address in thesubscriber field 130 using the on-screen orvirtual keyboard 140. Based on the input, the application provides a list of suggestednames 535 from the address book. Here, the auto-complete feature displays a name of a person. The name is shown with the associated email address. The owner then selects the name from thelist 535 to automatically fill in thesubscriber field 130. - In the
third stage 515, the owner selects (e.g., by tapping the owner's finger on) thename field 135 for inputting a name (e.g., title) of the new photo stream. As shown in thefourth stage 520, the owner types in a name for the photo stream in thename field 135. In thefifth stage 525, the owner then selects thenext button 134 to continue defining the photo stream. -
FIG. 6 provides an illustrative example of inputting a comment for an image in the new photo stream. Five operational stages 605-625 of the image application are shown in this figure. These operations are continuations of the ones illustrated inFIG. 5 . Thefirst stage 605 illustrates thecomment sheet 150 that is shown after the selection of thenext button 134. Thecomment field 155 remains empty, as the owner has not inputted any comment for an image (e.g., the first image) in the photo stream. To input a comment, the owner selects thecomment field 155. - As shown in the
second stage 610, the selection of thecomment field 155 causes an on-screen keyboard 140 to appear. The owner then types in a comment (e.g., “Summer Vacation”) into thecomment field 155. As mentioned above, the image sharing tools of some embodiments associate the comment to the first image in the photo stream. In some embodiments, the image sharing tools provide separate fields to input comment for different images. The image sharing tools of some embodiments automatically populates comment fields. For example, the comment fields may be populated using the image filenames. In auto-populating the comment fields, the image sharing tools may analyze the image files names to differentiate machine-generated names and user-specified names. Several example of such analysis will be described in detail below by reference toFIG. 58 . - Returning to
FIG. 6 , the third stage illustrates the owner selecting (e.g., by tapping the user's finger on) thepost button 136 to post or share the photo stream. Thefourth stage 620 illustrates the image application displaying thephoto stream menu 220. Here, the user selects the new photo stream (e.g., “Family Photos”) from themenu 220. The selection causes thumbnail representation of the images in the new photo stream to be displayed in theimage display area 105, as illustrated in thefifth stage 625. - When a new photo stream is defined, the application of some embodiments generates a message regarding the new photo stream and sends the notification to a control or push server. Based on the message, the control server may respond with file location data (e.g., with one or more URLs) to send the images to a storage server (e.g., a third-party storage server). The application may also generate images to send to the storage server. For example, the application may generate one or more lower resolution images from a stored image (e.g., raw image) and send those images to the storage server.
- In some embodiments, the control server identifies each device associated with the recipient (e.g., based on the recipient's email address) and sends one or more messages or notifications regarding the photo stream invitation. Once the recipient accepts the invitation, the images are downloaded from the storage server onto each associated device. To more quickly display the images, the images may be downloaded to a recipient's device prior to the recipient accepting the invitation, and may be deleted from the device if the recipient rejects the invitation.
- Having described several example GUI operations, a process for creating the new photo stream will now be described.
FIG. 7 conceptually illustrates anexample process 700 that some embodiments use to create a new photo stream. Theprocess 700, in some embodiments, is performed by the image application. - The
process 700 begins when it identifies (at 705) images for the photo stream. In the example described above, the owner selects the images through an image display area. After identifying the images, the process identifies (at 710) the name of the photo stream. Next, theprocess 700 identifies (at 715) each recipient of the photo stream invitation. Examples of specifying a name of the photo stream and a recipient of the photo stream invitation are described above by reference toFIG. 5 . - The
process 700 then determines (at 720) whether any comment has been left regarding an image (e.g., a first selected image) in the photo stream. If a comment was made, theprocess 700 identifies (at 725) the comment and associates it with the image. Theprocess 700 then generates (at 730) a message regarding the new photo stream based on the identifications. After generating the message, the process sends (at 735) the message to a control server. In some embodiments, the control server facilitates the sharing of content by managing control data associated with a shared photo stream. Examples of such control data include user data (e.g., a list of devices associated with a user) and photo stream data (e.g., a list of photo stream associated with the user, a list of individuals that can access a particular photo stream, file location data). - A shown in
FIG. 7 , theprocess 700 receives (at 740) file location data from the control server. In some embodiments, the file location data comprises one or more URLs to upload images to a storage server (e.g., a third-party storage server). After receiving the file location data, theprocess 700 sends (at 745) the images to a storage server using the file location data. Theprocess 700 then ends. - In some embodiments, the
process 700 generates one or more copies of each original image (e.g., RAW image) prior to sending them to the storage server. That is, the process may take an image and generate different versions (e.g., at different resolutions) of that same image. Depending on the type of client (e.g., digital media receiver, tablet, smart TV, etc.), one of several different versions of the same image may be downloaded onto a client. - In some embodiments, the images are sent to the storage server when there is a particular type of network connection. For example, the images may not be sent to the storage server when the device is connected to the Internet through a cellular (e.g., a 3G, 4G) connection. That is, the device may send the image data to the storage server when there is a different type of connection such as a Wi-Fi connection. One reason for this is a smart phone or a tablet operates in a high-power state when transferring data using the cellular network. On the hand, the smart phone or tablet may operate in a low-power state when connected to the Internet through a wired connection or Wi-Fi connection. As such, power consumption (e.g., battery consumption) is minimized.
- In some embodiments, the
process 700 generates and sends an email message to each recipient. The email message may include a link that when selected causes cause the recipient to be added as a subscriber to the shared photo stream. Several examples of such an email will be described below by reference toFIG. 9 . - Some embodiments perform variations on the
process 700. The specific operations may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments. For instance, theprocess 700 might not identify any comment associated with an image. Also, theprocess 700 may generate multiple messages (e.g., one regarding a new shared photo stream album and another regarding a comment that was left for an image in the new shared photo stream) to send to the control server. Furthermore, theprocess 700 could be implemented using several sub-processes, or as part of a larger macro process. - B. Push Notifications
- The previous examples illustrated creating a photo stream and sending a photo stream invitation.
FIG. 8A provides an illustrative example of how a recipient is notified of the photo stream invitation. This figure is followed byFIG. 8B which illustrates an example of the owner receiving notification of the acceptance of the invitation. Three operational stages 805-815 are illustrated inFIG. 8A . - The
first stage 805 illustrates the recipient receiving notification through his or her device (e.g., “Derek's Device”). Thisfirst stage 805 occurs after the owner (e.g., “Emily”) has created the photo stream and sent the photo stream invitation. As shown, abanner 820 is displayed on the recipient's device. Specifically, the banner is superimposed along the top edge of the operating system's desktop. In some embodiments, the banner rotates into view as a simulated 3D effect. The banner may float on top of the display area for a predetermined period of time and then disappear (e.g., rotate out of view, fade away). - The
banner 820 includes a message and anicon 825. The message states that there is a new shared photo stream. In addition, the message states that the photo stream's owner would like to share the photo stream with the recipient. The owner is identified by the owner's name (e.g., “Emily Parker”), while the photo stream is identified by its name (e.g., “Family Photos”). Theicon 825 is the one associated with the image application. - In conjunction with the icon, or instead of it, the application of some embodiments displays a thumbnail representation of an image in the shared photo stream. For example, the
banner 820 may include a thumbnail representation of the first image in the shared photo stream. The application of some embodiments alerts the recipient through one or more other means. For instance, the application may cause a device to vibrate or play a sound. When the device is in a locked mode, a pop-up window or dialog box with the message may appear in a lock screen. - In the
first stage 805, the application displays a badge at the operating system (“OS”) level to alert the recipient of an update to a photo stream. At this level, the application may display one or more other markings. One such type of notification is a badge that appears at least partially over the application's icon. This is shown in thefirst stage 805 as abadge 830 is displayed on theicon 840 of the image application. Thebadge 830 includes a number (e.g., “1”). In the example illustrated in thefirst stage 805, the number does not represent the number of new images in the photo stream. Instead, it indicates there is an update to a photo stream (e.g., there is a new photo stream invitation, a batch of images has been added to an existing photo stream, a new comment has been received regarding an image the existing photo stream, etc.). - The
first stage 805 illustrates the selection of the application icon 840 (e.g., through a touch operation such as tapping the recipient's finger on the icon). As shown in thesecond stage 810, the selection causes the image application to be opened. The application displays thephoto stream menu 220. The user might have first selected thephoto stream tab 114 to display this menu. In thesecond stage 810, themenu 220 lists the new photo stream (i.e., “Family Photos”) 845. Here, the recipient selects thephoto stream 845 from themenu 220. The selection causes the application to display the pop-upmenu 215, as shown in thethird stage 815. The recipient then accepts the photo stream invitation by selecting the acceptbutton 250 from the pop-upmenu 215. - In the example illustrated in the
second stage 810, the recipient selects the photo stream from thephoto stream menu 220 to display the pop-upmenu 215. In some embodiments, the selection of the banner 825 (shown in the first stage 805) opens the image application. In conjunction with launching the application, the selection of thebanner 825 may cause the application to navigate to thephoto stream menu 220 and/or displays an invitation sheet (e.g., the pop-up menu 215). - The previous example illustrated an example notification that is displayed on the recipient's device. When a subscriber accepts an invitation, the owner may also be notified of the acceptance of the invitation.
FIG. 8B provides an illustrative example of a notification that is pushed onto the owner's device (e.g., through the image application). - As shown in
FIG. 8B , abanner 835 is displayed on the owner's device. Thebanner 835 is superimposed along the top edge of the OS's desktop. Thebanner 835 includes a message that states that the recipient has subscribed to the photo stream. The subscriber is identified by the subscriber's name (e.g., “Derek Parker”), while the photo stream is identified by its name (e.g., “Family Photos”). The owner's device might have received the subscriber's name and/or the photo stream's name from a message from the control server. In this example, a badge is not displayed over the image application's icon. This is because the photo stream has not been updated. For instance, the subscriber has not added any comments regarding the images in the photo stream. - In some embodiments, the application alerts the recipient through one or more other means. For example, the application may cause a device to vibrate or play a sound to alert the user. When the device is in a locked mode, a pop-up window or dialog box with the message may appear in the lock screen.
- As mentioned above, the application of some embodiments alerts the recipient through one or more other means. For instance, the application may cause a device to vibrate or play a sound. When the device is in a locked mode, a pop-up window or dialog box with the message may appear in a lock screen. In some embodiments, the notifications are fully customizable in that the user can disable them (e.g., from the application settings menu). For example, the user can turn on or off notification for certain updates (e.g., new comments, new photo streams, new images, etc.). The user can also specify whether to (1) display push notifications, (2) to display the notification as a banner or as an alert (e.g., the message in a bubble), (3) whether to view the notifications in the lock screen, (4) to play sound, and/or (5) badge the application's icon. These customization features are described below by reference to
FIG. 28 . - C. Email Notifications
- In the example shown in
FIG. 8A , the application displays a banner to notify the recipient of the photo stream invitation. In conjunction with the banner notification, or instead of it, an email message may be sent to the recipient upon creation of a new shared photo stream. In some embodiments, the image application generates the email message that contains a selectable link which when selected opens the image application. The selection of the link may also cause the application to navigate to the photo stream menu and/or may cause the recipient to be added as a subscriber to the photo stream. In some embodiments, the email message is always sent to each recipient that is invited to join the shared photo stream. -
FIG. 9 provides an illustrative example of an email that is received at the recipient's device. Four operational stages 905-920 of the recipient's device are illustrated in this figure. Thefirst stage 905 illustrates the selection of anicon 925 of an email application. In thesecond stage 910, the email application displays the email sent from the owner's device. The email includes (1) amessage 935, (2) alink 940, and (3) athumbnail image 930. Themessage 935 indicates that the owner shared a photo stream with the recipient. Specifically, it asks the recipient to join the owner's shared photo stream. The owner is identified by the owner's name and email address, and the photo stream is identified by its associated name. - The
thumbnail image 930 shows the icon of the image application. The icon includes a marking orbadge 945. The marking indicates that there is a new photo stream or an update to an existing photo stream. Thelink 940 is a selectable item for opening the image application. In some embodiments, the email includes a message that states that recipient has to create an account with a cloud service in order to join the shared photo stream. To download the photo stream album, the recipient may have to register his or her device with the cloud service. - In the
second stage 910, the recipient selects (e.g., by tapping the recipient's finger on) thelink 940. As shown in thethird stage 915, the selection causes the image application to be opened. Specifically, the selection results in the display of thephoto stream menu 220. The selection also causes the recipient to be added as a subscriber to the shared photo stream. Accordingly, the recipient does not have to select an accept button from an invitation sheet. - In the
third stage 915, the subscriber selects thephoto stream 950 from thephoto stream menu 220. As shown in thefourth stage 920, the selection resulted in the display of theimage display area 105. Theimage display area 105 shows thumbnail representations of the images in the shared photo stream. In some embodiments, a return email may be sent to the owner once the recipient accepts the invitation. This return email may state that the recipient joined or subscribed to the shared photo stream. The owner may also be notified of the acceptance through a notification (e.g., a banner) that is displayed on the owner's device. An example of such a notification is described above by reference toFIG. 8B . - The previous example illustrated accepting an invitation to a shared photo stream through an email message. The image-sharing tool of some embodiments allows a first recipient to forward the invitation to a second recipient. The second recipient can then subscribe to the shared photo stream by accepting the invitation. In some embodiments, the photo stream invitation is associated with a one-time token that can be used by only one individual. That is, the second recipient can take the place of the first recipient. However, the first and second recipients cannot both subscribe to the shared photo stream through the one photo stream invitation.
-
FIG. 10 provides an illustrative example of a first recipient forwarding the photo stream invitation to a second recipient. Twooperational stages first stage 1005, the email application has been opened to display the email. The email includes themessage 935, thelink 940, and thethumbnail image 930. The email application also displays abottom bar 1015. This bar includes areply button 1020 for replying to the email, aforward button 1025 for forwarding the email, and adelete button 1030 for deleting the email. - In the first stage, the first recipient selects the
forward button 1025. As shown in thesecond stage 1010, the first recipient then forwards the email to a second recipient (e.g., to “Joe Parker”). -
FIG. 11A provides an illustrative example of the second recipient accepting the photo stream invitation. Three operational stages 1105-1115 of the second recipient's device are illustrated in this figure. Thefirst stage 1105 illustrates the selection of anicon 925 of an email application. In thesecond stage 1110, the email application displays the email forwarded from the first recipient's device. The email includes themessage 935, thelink 940, and thethumbnail image 930. - In the
second stage 1110, the second recipient selects (e.g., by tapping the second recipient's finger on) thelink 940. As shown in thethird stage 1115, the selection causes the image application to be opened. Specifically, the selection results in the display of thephoto stream menu 220. The selection also causes the second recipient to be added as a subscriber to the shared photo stream. Accordingly, the second recipient does not have to select an accept button from an invitation sheet. -
FIG. 11B provides an illustrative example of a notification that is pushed onto the owner's device upon the second recipient subscribing to the shared photo stream. As shown in, abanner 835 is displayed on the owner's device. Thebanner 835 is superimposed along the top edge of the OS's desktop. Thebanner 835 includes a message that states that the second recipient has subscribed to the photo stream. The subscriber is identified by the second recipient's name (e.g., “Joe Parker”), and the photo stream is identified by its name (e.g., “Family Photos”). - In some embodiments, the banner may state that a person using a different email address has joined the shared photo stream. The banner may further state that the owner can remove the subscriber if the owner does not recognize the person or the email address. Alternatively, or conjunctively with the notification, a return email may be sent to the owner once the second recipient accepts the invitation. This return email may include the same message as the banner.
- D. Selecting and Viewing Photo Stream
- In several examples described above, a recipient becomes a subscriber to a photo stream by accepting a photo stream invitation.
FIG. 12 provides an illustrative example of how the images in the photo stream are presented to the subscriber. Three operational stages 1205-1215 of the subscriber's device are illustrated in this figure. - The
first stage 1205 illustrates the image application displaying thumbnails representations of the image in the shared photo stream. As mentioned above, the application of some embodiments displays a marking that identifies the number of new image that are in the photo stream. This is shown in thefirst stage 1205 as aflag 275 is displayed over thethumbnail 202 of the first new image. The flag is marked with text that states that there are two new images in the photo stream. The application of some embodiments displays such a marking for each new batch of images. For example, when the owner adds a new batch of images to the photo stream, the application may display a similar flag on a first thumbnail image that corresponds to the first image in the new batch. - In some embodiments, the image application displays a visual indication that an image is associated with one or more comments. This visual indication may also indicate that there is at least one unread comment associated with the image. In the example illustrated in the
first stage 1205, thefirst thumbnail 275 is displayed with achat bubble 1220 that is colored (e.g., blue). Thechat bubble 275 indicates that there is one or more comments associated with the corresponding image, and the color of the chat bubble indicates that there is at least one unread comment associated with the same image. - As shown in the
first stage 1205, the subscriber selects thethumbnail 202. Thesecond stage 1210 illustrates that the selection resulted in the display of a full-screen representation 1225 of the corresponding image. The full-screen representation 1225 is overlaid by the top andbottom bars top bar 210 includes aback button 330 to return to the thumbnail view. Theback button 330 is labeled with the name of the photo stream. Thetop bar 210 also states that the displayedimage 325 is a first of two images in the photo stream. - Different from the
top bar 210, thebottom bar 370 includes (1) ashare button 345 to share the selected image, (2) aplay button 350 to play a slide show of the images in the photo stream, and (3) acomment button 360 to display the comment associated with the displayed image or leave another comment. In the example illustrated inFIG. 12 , thecomment button 360 is displayed with achat bubble icon 375. The chat bubble icon includes a number that identifies the number of comments associated with the displayed image. - In the
second stage 1210, the user selects (e.g., swipes across) the screen to display the next image. As shown in thethird stage 1215, the selection causes the application to display thenext image 1230. The selection also causes the top and bottom bars to disappear. However, thechat bubble icon 375 remains at the same location. As the displayed image is not associated with any comments, the number in the chat bubble has been replaced by a “+” sign. The sign provides a visual indication that a comment can be added for the displayedimage 1230. At any time, the subscriber can add a new comment by selecting the chat bubble. - In the example described above, the top and
bottom bars next image 1230. Alternatively, the application may remove these bars after a set period of time. For instance, in thesecond stage 1210, the top andbottom bars - E. Declining an Invitation
- In several examples described above, a recipient becomes a subscriber to a photo stream by accepting a photo stream invitation.
FIG. 13 provides an illustrative example of a recipient declining the photo stream invitation. Three operational stages 1305-1315 of the recipient's device are illustrated in this figure. - The
first stage 1305 illustrates the image application displaying thephoto stream menu 220. Themenu 220 includes thephoto stream 1320 created by the owner. The recipient selects thephoto stream 1320 from thephoto stream menu 220. The selection causes the application to display a pop-upmenu 215 in thesecond stage 1310. Included in the pop-upmenu 220 is adecline button 255, which when selected, declines the invitation. As shown at thisstage 1310, the recipient selects thedecline button 255 to decline the invitation. Thethird stage 1315 illustrates thephoto stream menu 220 after the recipient has declined the photo stream invitation. As shown, the selection of thedecline button 255 results in the removal of thephoto stream 1320 from thephoto stream menu 220. - F. Example Process
- Having described accepting and declining a photo stream invitation, an example process will now be descried.
FIG. 14 conceptually illustrates aprocess 1400 that some embodiments use to accept or decline a photo stream invitation. Theprocess 1400, in some embodiments, is performed by the image application. - The
process 1400 begins when it receives (at 1405), from a control server, a message regarding an update to a photo stream. After receiving the message, theprocess 1400 retrieves (at 1410) a list of photo streams from the control server. Based on the list, theprocess 1400 then notifies (at 1415) the recipient of the update. Several examples of different notifications or markings has been described above, including a banner notification and a badged icon at the OS level, a marking (e.g., a blue dot) at the application's album level, etc. As mentioned above, the recipient's device may also play a sound or vibrate upon receiving the message. - At 1420, the
process 1400 displays the photo stream invitation. Many different examples of such a photo stream invitation are described above. For instance, the invitation may be a part of a pop-up window with buttons for accepting and/or declining the invitation. Different from the pop-up window, the invitation may be an email message with one or more selectable links for accepting and/or declining the invitation. In some embodiments, the photo stream invitation is displayed upon the recipient selecting a notification (e.g., a banner). Alternatively, the invitation may be displayed upon the recipient selecting the photo stream from a photo stream menu. - As shown in
FIG. 14 , theprocess 1400 awaits (at 1425) input from the recipient. If the invitation has been accepted, theprocess 1400 sends (at 1430) a message to the control server regarding the accepted invitation. In some embodiments, the control server receives the message and adds the recipient as a subscriber in access list. In some embodiments, this access list lists each subscriber that is authorized to view the images in the photo stream and make comments regarding those images. The list may also specify whether the subscriber can add images to the photo stream, remove images, add subscribers to the photo stream, and/or remove subscribers from the photo stream. - After notifying the control server of the accepted invitation, the
process 1400 retrieves (at 1435), from the control server, file location data (e.g., with one or more Uniform Resource Locators (“URLs”)) for the images in the photo stream. Then, the process retrieves (at 1440) the images from a storage server (e.g., a third-party storage server) using the location data. Theprocess 1400 then ends. - At 1450, the
process 1400 determines whether the recipient declined the invitation. If the recipient declined the invitation, the process sends (at 1430) a message to the control server regarding the declined invitation. Theprocess 1400 may also delete the photo stream from the list of photo stream (e.g., that is represented in the photo stream menu). Based on the message, the control server of some embodiments removes the recipient from a list that lists different individuals that are invited to join the photo stream. - If the recipient has not declined or accepted the invitation (e.g., by selecting a cancel button or closing the email message), the process maintains (at 1460) the pending status of the invitation. As the invitation is pending, the
process 1400 may not remove the photo stream from the photo stream menu and/or the marking (e.g., the colored dot) that is displayed with the name of the photo stream in that photo stream menu. - Some embodiments perform variations on the
process 1400. The specific operations may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments. Furthermore, theprocess 1400 could be implemented using several sub-processes, or as part of a larger macro process. - The image application of some embodiments provides tools to add or delete images from a shared photo stream. When a participant of the photo stream adds images, the images may be published to all of the participant's devices as well as the devices of other participants. Similarly, when the participant deletes images, the images may be deleted from all of the participant's devices and the devices of the other participants. Several examples of adding and deleting images will now be described by reference to
FIGS. 15-20 . - A. Adding an Image to a Photo Stream
-
FIG. 15 provides an illustrative example of adding an image to an existing photo stream. Five operational stages 1505-1525 of the owner's device are illustrated in this figure. In thefirst stage 1505, theimage display area 105 of the application displays thumbnail representations of images from the camera roll collection. Here, the owner selects (e.g., by performing a gesture such as tapping the owner's finger on) thethird thumbnail image 1525. - The
second stage 1510 illustrates theimage display area 105 after the owner has selected thethumbnail image 1525. The selection results in theimage display area 105 displaying afull screen representation 1530 of the selected image. To share the image, the owner then selects theshare button 345. As shown in thethird stage 1515, the selection causes the pop-upmenu 145 to appear. In some embodiments, the pop-upmenu 145 appears with animation by sliding up from the bottom of the screen. The owner then selects thephoto stream button 165 from the pop-upmenu 145. - As shown in the
fourth stage 1520, the selection of thephoto stream button 165 causes the application to display thephoto stream menu 220. Thephoto stream menu 220 lists the existingphoto stream 1535. Themenu 220 also lists anoption 1540 to create a new photo stream. Thetop bar 210 is superimposed on thephoto stream menu 220. Thetop bar 210 includes a cancelbutton 1545 to return to the previous view (e.g., the full screen view illustrated in the second stage 1510). Thetop bar 210 also includes a heading that states “Add to a Photo Stream”. Alternatively, the heading may indicate that a photo stream should be chosen. When there is no existing photo stream, the application of some embodiments displays the photostream options sheet 125 that is described above by reference toFIG. 1 . This allows the owner to skip the photo stream menu screen when creating a new photo stream. - In the
fourth stage 1520, the owner selects (e.g., by tapping the owner's finger on) thephoto stream 1535 from themenu 220. As shown in thefifth stage 1525, the selection of thephoto stream 1535 results in the display of thecomment sheet 150. Thecomment sheet 150 includes thefield 155 for inputting a comment for the selected image. Athumbnail representation 1550 of the selected image is also shown on thecomment sheet 150. To add the image to the photo stream, the owner then selects thepost button 136. - In the example described above, the owner selects a
single image 1525 from theimage display area 105. Alternatively, the owner can select multiple images from the image display area 105 (e.g., by selecting theedit button 118 in the thumbnail view). An example of selecting multiple images has been described above by reference toFIG. 1 . - When images are added to the photo stream, the subscriber may be notified of the additions.
FIG. 16 provides an illustrative example of different markings (e.g., a banner notification, a badged icon) that are displayed on the subscriber's device. Twooperational stages FIG. 16 . - The
first stage 1605 illustrates the different markings that are shown on the subscriber's device. Thisfirst stage 1605 occurs after the owner has added the image to the photo stream (e.g., as illustrated inFIG. 15 ). Upon the owner adding the image, abanner 1615 is displayed on the subscriber's device. In this example, thebanner 1615 is superimposed along the top edge of the operating system's desktop. In some embodiments, thebanner 1615 rotates into view in a simulated 3D effect. Thebanner 1615 may float on top of the main display area for a predetermined period of time and then disappear (e.g., rotate out of view or fade away). - The
banner 1615 includes a heading and a message. The heading identifies the photo stream, and the message states there is a new image from the owner. In some embodiments, the message states that the owner has added one new image to the photo stream. As shown, the photo stream is identified by its associated name, and the owner is identified by the owner's name. - In the example illustrated in the
first stage 1605, thebanner 1615 includes athumbnail representation 1620 of the new image added to the photo stream. In some embodiments, the application displays a thumbnail representation of one image (e.g., the first image in the new batch) regardless of the number of images added to the photo stream. Alternatively, the application of some embodiments displays multiple thumbnail images of the images added to the photo stream. In some embodiments, thethumbnail representation 1620 is only displayed upon the recipient accepting the invitation to the photo stream. Otherwise, thebanner 1615 displays the icon of the image application in some embodiments. - As shown in the
first stage 1605, the subscriber is also notified through theicon 435 of the image application that there is an update in the photo stream. Specifically, theicon 435 is displayed with a marking orbadge 830. Here, thebadge 830 at least partially overlaps theicon 435. The badge includes a number that indicates that a photo stream has been updated. Hence, the number on thebadge 830 does not represent the number of new images in the photo stream but represents the number of photo streams that are updated or new. - B. Deleting an Image from a Photo Stream
- In the example described above, the owner adds a new image to a shared photo stream.
FIG. 17 provides an illustrative example of deleting an image from the photo stream. Six operational stages 1705-1730 of the owner's device are illustrated in this figure. In thefirst stage 1705, the application displays thephoto stream menu 220. Thephoto stream menu 220 lists thephoto stream 1735. To modify the photo stream, the owner selects (e.g., by performing a gesture such as tapping the owner's finger on) thephoto stream 1735. - As shown in the
second stage 1710, the selection of thephoto stream 1735 results in the application displaying theimage display area 105. Theimage display area 105 displays thumbnail representations ofimages top bar 210, which displays the name of the selected photo stream. The owner then selects thesecond thumbnail image 1736 to display a full screen representation of the same image. - The
third stage 1715 illustrates theimage display area 105 after the owner has selected thethumbnail image 1736. The selection results in the image display area displaying a full screen representation of the selected image. The selection also causes the application to display several contextual menu items. These menu items are displayed on thebottom bar 370. In the example illustrated in thethird stage 1715, thebottom bar 370 includes theshare button 345 for sharing the displayed image, theplay button 350 for playing a slide show of the images in the photo stream, the stream button 355 for streaming the images in the photo stream to one or more other devices (e.g., a desktop computer, a laptop), thedelete button 1740 for deleting the image from the photo stream, and acomment button 360 to leave a comment regarding the displayed image. In some embodiments, the delete function is only available to the user that created the photo stream. As such, the subscriber may not be able to access thisbutton 1740 on the subscriber's device when viewing the photo stream. In other words, thebutton 1740 may not be displayed at all on thebottom bar 370. - In the
third stage 1715, the owner selects thedelete button 1740. The selection of the delete button causes a pop-upmenu 1745 to be displayed, as illustrated in thefourth stage 1720. The pop-upmenu 1745 includes (1) a confirmation button 1750 to confirm deleting the selected image from the photo stream and (2) a cancelbutton 1755 to cancel the delete operation (i.e., the delete operation initiated by selecting the delete button 1740). As shown, the pop-upmenu 1745 includes a warning message or a prompt stating that the image will be deleted from all of the owner's devices and the subscribers' devices. - In the
fourth stage 1720, the owner selects the delete button 1750 from the pop-upmenu 1745. Thefifth stage 1725 illustrates the owner's device after deleting the selected image from the photo stream. As thesecond image 1736 has been deleted, the application displays a full screen representation of thenext image 1738 in the photo stream. The owner then selects theback button 330 to return to the thumbnail view. As shown in thesixth stage 1730, theimage display area 105 displays only twothumbnail images second image 1736 has been deleted from the photo stream. - In the previous example, the owner deletes an image from the owner's device.
FIG. 18 provides an illustrative example of the photo stream on the subscriber's device after the owner deletes the image. Twooperational stages - As shown in the
first stage 1805, the subscriber's device displays thephoto stream menu 220. The subscriber might have selected the application's icon from the desktop and then navigated to thephoto stream menu 220. When one or more images are deleted from the photo stream, the subscriber may not be notified of this update. For instance, a banner notification may not be shown on the subscriber's device and/or a badge may not be shown on the application's icon. - In the
first stage 1805, the subscriber selects thephoto stream 1815 from thephoto stream menu 220. The selection causes the application to display thumbnail representations of the images in the photo stream. As thesecond image 1736 has been deleted (e.g., by the owner), the image display area only displays representations of the remaining twoimages - C. Example Processes
- Having described adding and deleting images from a shared photo stream, several example processes will now be described by reference to
FIGS. 19 and 20 .FIG. 19 conceptually illustrates aprocess 1900 that some embodiments use to add or delete images from a photo stream. Theprocess 1900, in some embodiments, is performed by the image application (e.g., executing on the owner's device). - The
process 1900 begins when it receives (at 1905) input to modify a photo stream. Theprocess 1900 then determines (at 1910) whether a new batch of images has been added to the photo stream. If not, theprocess 1900 proceeds to 1935, which is described below. If so, theprocess 1900 generates (1915) a message regarding the new batch of images. After generating the message, theprocess 1900 sends (at 1920) the message to a control server. As mentioned above, the control server facilitates the sharing of content by managing control data associated with a shared photo stream. Examples of such control data include user data (e.g., a list of devices associated with a user) and photo stream data (e.g., a list of photo stream associated with the user, file location data). The control data may also include a subscriber list that lists individuals that can access a particular photo stream. The subscriber list may also specify whether a subscriber can add images to the photo stream, remove images, add subscribers to the photo stream, make comments, and/or remove subscribers from the photo stream. - As shown in
FIG. 19 , theprocess 1900 receives (at 1925) file location data from the control server. In some embodiments, the file location data includes one or more URLs to upload the images to a storage server (e.g., a third-party storage server). Once the file location data is received, theprocess 1900 sends (at 1930) the images to the storage server using the file location data. - At 1935, the
process 1900 determines whether any images have been deleted from the photo stream. If not, theprocess 1900 proceeds to 1950, which is described below. If so, theprocess 1900 generates (1940) a message regarding the deleted images. After generating the message, theprocess 1900 sends (at 1945) the message to a control server. Based on the message, the control server may disassociate the images from the photo stream. For instance, the control server may remove references to those images from a photo stream list that lists all images associated with the photo stream. - When the modification is another type of modification, the
process 1900 modifies (1950) the photo stream based on the input. Examples of such modifications include adding a new subscriber, deleting a current subscriber, deleting the photo stream, changing the photo stream's name, etc. Similar to adding and deleting images, the application of some embodiments generates and sends a message to the control server based on the modification. The control server then makes changes to the shared photo stream. For instance, the control server may remove a subscriber from a subscriber list that lists all individuals that are able to access the photo stream. Several examples of such modifications are described below in detail in Section III. -
FIG. 20 conceptually illustrates a process 2000 that some embodiments perform when a participant adds images to or deletes images from a photo stream. Theprocess 1900, in some embodiments, is performed by the image application (e.g., executing on the subscriber's device). The process 2000 begins when it receives (at 2005), from a control server, a message regarding an update to a photo stream. - After receiving the message, the process 2000 retrieves (at 2010) a list of photo streams from the control server. Based on the list, the process 2000 then notifies (at 2015) the subscriber of the update. In some embodiments, the process 2000 only notifies a participant of certain types of updates and ignores other updates. For instance, the process 2000 might display a notification if a new image has been added to the photo stream. On the other hand, if an image has been deleted, the process 2000 might not display any notifications. The application of some embodiment allows its user to specify what type of events (e.g., new comment, new image, new subscriber, etc.) triggers a notification.
- As shown in
FIG. 20 , the process 2000 determines (at 2020) whether new images have been added to the photo stream. If not, the process 2000 proceeds to 2025, which is described below. If so, the process 2000 retrieves (at 2035) file location data from the control server. The process 2000 then retrieves (at 2040) the images from a storage server based on the file location data. At 2025, the process 2000 determines whether any images have been deleted from the photo stream. If so, the process 2000 deletes (at 2030) the local copies of the images from the photo stream. Otherwise, the process 2000 ends. - Some embodiments perform variations on the
processes 1900 and 2000. The specific operations of each of these processes may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments. Furthermore, the processes 19 and 20 could be implemented using several sub-processes, or as part of a larger macro process. - In the examples described above, a participant modifies a photo stream by adding and deleting images. The image application of some embodiments provides a variety of different tools that allow a participant to manage a photo stream. In some embodiment, the management entails (1) resending an invitation to a recipient who has not responded, (2) adding a new subscriber, (3) deleting a current subscriber, and/or (4) deleting the photo stream. Several examples of these photo stream management features will now be described by reference to
FIGS. 21-28 . - A. Resending an Invitation
-
FIG. 21 provides an illustrative example of resending a photo stream invitation to a recipient who has not accepted or declined the invitation. Specifically, this figure illustrates in five operational stages 2105-2125 how an owner can use the image application to resend the invitation. This figure includes thephoto stream menu 220 that lists one or more photo streams. The figure also includes anedit menu 2130. - The
edit menu 2130 provides several different tools to modify a photo stream. As shown, theedit menu 2130 includes aname field 2135, asubscriber section 2140, apublic website control 2145, and adelete button 2150. Thename field 2135 is an area in theedit menu 2130 that displays the name of the photo stream. In some embodiments, thename field 2135 can be used to edit the name of the photo stream. For example, the owner can select thename field 2135 to display a virtual or onscreen keyboard. The owner can then use the virtual keyboard to modify the name of the photo stream. Thedelete button 2150 can be used to delete the selected photo stream. - The
subscriber section 2140 displays a list of individual that have been invited to join the photo stream. Specifically, the section lists the name of each person along with a corresponding subscription status. In some embodiments, the different subscription statuses include pending (e.g., invited), declined, and accepted. The owner can select any person from the list to remove the person as a subscriber, or resend the invitation if the person has not accepted or declined the invitation. As shown inFIG. 21 , the subscriber section includes an add people control 2155. The owner can select this control to invite other people to join the photo stream. - In some embodiment, the application provides tools to publish the photo stream's images to a website (e.g., a public website). That is, instead of pushing the images to each participant's device, the images can be displayed in a web browser by accessing the website. To facilitate web publication, the
edit menu 2130 includes thepublic website control 2145. The owner can select or toggle thiscontrol 2145 to publish the shared photo stream to the website. For example, the owner can select thecontrol 2145 to turn on or off the public website feature. When turned on, the application of some embodiments displays the URL associated with the photo stream's website. Several examples of publishing images to the website will be described in detail below by reference toFIGS. 38-48 . - In conjunction with one or more of the menu items, or instead of them, the image sharing tools of some embodiments allows the owner to control user access to the photo stream. For example, the owner can control read and write access by specifying one or more individuals that can add images to and/or remove image from the photo stream. The image sharing tools of some embodiments allows the owner to control commenting (e.g., which subscriber can or cannot leave comments, etc.).
- Having described the
edit menu 2130, the operations of resending a photos stream invitation will now be described by reference to the state of the application's GUI during the five stages 2105-2125 that are illustrated inFIG. 21 . In thefirst stage 2105, the owner's device is displaying thephoto stream menu 220. Thephoto stream menu 220 includes a selectable item 2182 (e.g., a colored icon with a directional arrow) for the shared photo stream. Thisitem 2182 can be selected to display theedit menu 2130 for the corresponding photo stream. Instead of the selectable item, the application of some embodiments includes an edit button 2160 for entering the photo stream editing mode. - In the
first stage 2105, the owner selects theselectable item 2182 associated with the “Family Photos” photo stream. As shown in thesecond stage 2110, the selection of theselectable item 2182 causes the application to display theedit menu 2130. Theedit menu 2130 displays the name of the selected photo stream in thename field 2135. Thesubscriber section 2140 includes a list of people that have been invited to the photo stream. The list includes “Derek Parker” and “Susan Parker”. The subscriber section also displays the subscription status below the name of each individual. Specifically, the statuses indicate that Derek Parker has accepted the invitation, while Susan Parker's invitation status is pending (e.g., invited). - In the
third stage 2115, the owner selects (e.g., by tapping the owner's finger on) the recipient “Susan Parker” from thesubscriber section 2140. The selection causes the application to display thesubscriber menu 2175, as illustrated in thefourth stage 2120. Thesubscriber menu 2175 is overlaid by thetop bar 2180. Thetop bar 2180 includes aback button 2185 to return to the previous view. Thetop bar 2180 also includes a heading that states the name of the subscriber. - The
subscriber menu 2175 includes (1) anemail field 2190, (2) aresend invitation button 2195, and (3) aremove subscriber button 2196. Theemail field 2190 displays the email address of the recipient. The owner can also use this field to modify the email address of the recipient. Theresend invitation button 2195 can be used to resend the invitation to the recipient. Theremove subscriber button 2196 can be used to remove the recipient or subscriber from the photo stream. - As shown in the
fourth stage 2120, the owner selects theresend invitation button 2195 to resend the photo stream invitation. When the invitation is resent, the recipient's device may display one more notifications of the invitation. For example, the recipient's device may re-display a banner stating that the owner shared a photo stream with the recipient. Alternatively, or conjunctively with the banner, an email message may be sent to the recipient's device regarding the photo stream invitation. As mentioned above, the email may include a link that when selected adds the recipient as a subscriber to the photo stream. - B. Adding a Subscriber
- In the example described above, an owner uses the image application to resend an invitation to a recipient. The image application of some embodiments allows the owner to add additional subscribers.
FIG. 22 provides an illustrative example of sending an invitation to another recipient to join the shared photo stream. Three operational stages 2205-2215 of the owner's device are illustrated in this figure. - In the
first stage 2205, the application displays the photostream edit menu 2130. The menu includes the addpeople button 2155. To add a subscriber, the owner selects (e.g., by tapping the owner's finger on) theadd people button 2155. The selection causes a virtual or on-screen overlay keyboard 140 to be displayed, as illustrated in thesecond stage 2210. The owner then begins to input an email address of the subscriber. Based on the input, the application displays, in asuggestion field 535, a contact from the owner's contacts list or address book. The name of the contact is shown with the contact's associated email address. The owner can selects the name from thelist 535 to automatically fill in thesubscriber field 130. - The
third stage 2215 illustrates the photostream edit menu 2130 after the owner has specified another recipient to join the photo stream. The name of the recipient is listed in thesubscriber section 2140. Specifically, the name is listed with the pending status (e.g., invited status), as the person has not yet accepted the photo stream invitation. - C. Removing a Subscriber
- In the example described above, the owner uses the image application to invite a person to join the shared photo stream. The image application of some embodiments allows the owner to remove subscribers from the photo stream. This includes the recipients that have not yet responded to the photo stream invitation.
FIG. 23 provides an illustrative example of removing a subscriber. Four operational stages 2305-2320 of the owner's device are illustrated in this figure. - In the
first stage 2305, the application displays thesubscriber menu 2175. As shown, thetop bar 2180 includes the heading that states the name of the person that subscribed to the photo stream. Themenu 2175 also includes theremove subscriber button 2196 for removing the subscriber. As the person has subscribed to the photo stream, the resend invitation button is not shown in thesubscriber menu 2175. To remove the subscriber, the owner selects theremove subscriber button 2196. - The
second stage 2310 illustrates the application after the owner has selected theremove subscriber button 2196. Here, the application displays a pop-up window 2335 (e.g., an action sheet). The pop-up window states that the photo stream and its images will be removed from all of the subscriber's devices. Here, the owner selects aconfirmation button 2330 to confirm removing the subscriber. - In the
third stage 2315, the application is awaiting confirmation of the removal from a server (e.g., the control server) that maintains the list of individuals (e.g., an access list) associated with the photo stream. The menu is overlaid by a prompt 2320 that indicates that the individual is being removed. The application also displays aspinner 2325 while awaiting confirmation of the removal. However, the application may display one or more other graphical symbols (e.g., an hourglass) or text to convey the same meaning. - The
fourth stage 2320 illustrates the photostream edit menu 2130 after the subscriber has been removed from the photo stream. As shown, the name of the subscriber is no longer listed in thesubscriber section 2140. - D. Deleting a Photo Stream
- In some embodiments, the image application allows an owner to delete a photo stream.
FIG. 24 provides an illustrative example of deleting a photo stream. Four operational stages 2405-2420 of the owner's device are illustrated in this figure. - In the
first stage 2405, the application displays the photostream edit menu 2130. The menu includes thedelete button 2150 for deleting a photo stream. The owner has previously selected the photo stream from the photo stream menu (not shown). To delete the photo stream, the owner selects thedelete button 2150. - As shown in the
second stage 2410, the selection of thedelete button 2150 results in the display of the pop-upwindow 2430. The pop-upwindow 2430 includes aconfirmation button 2435 to delete the photo stream and a cancelbutton 2440 to cancel the delete operation. The pop-upwindow 2430 also includes a message stating that the photo stream will be deleted from all the owner's devices and the subscribers' devices. The photo stream is identified by its name in the message. Here, the owner selects (e.g., by performing a gesture such as tapping the owner's finger on) theconfirmation button 2435 to confirm deletion of the photo stream. - The
third stage 2415 illustrates the owner's device after the owner has selected theconfirmation button 2435. The application displays a prompt 2450 stating that the photo stream is being deleted. The photo stream is also displayed with a spring wheel orspinner 2455 indicating that it is awaiting confirmation of the delete operation. In some embodiments, the confirmation is sent from the control server to the owner's device. Thefourth stage 2420 illustrates thephoto stream menu 220 after the photo stream has been deleted. As the “Family Photos” photo stream has been deleted, it is not listed in thephoto stream menu 220. - E. Unsubscribing
- In several of the examples described above, the owner is allowed to modify a photo stream by resending an invitation to a recipient, adding a subscriber, removing a subscriber, and deleting the photo stream. In contrast to the owner, the application of some embodiments prevents subscribers from performing one or more of these operations. However, the application of some embodiments allows the subscriber to unsubscribe from the photo stream.
-
FIG. 25 provides an illustrative example of unsubscribing from a photo stream. Five operational stages 2505-2525 of the subscriber's device are illustrated in this figure. In thefirst stage 2505, the image application displays thephoto stream menu 220. Thephoto stream menu 220 lists the “Family Photos”photo stream 2535. To display theedit menu 2130, the subscriber selects theselectable item 2182. - As shown in the
second stage 2510, the selection results in the display of the edit menu 2530. Different from the edit menu described above, this menu includes only the subscriber section and aunsubscribe button 2555. That is, it does not include menu items to remove or add a subscriber, resend an invitation, rename a photo stream, etc. This is because the subscriber is not the owner of the photo stream. In this example, the subscriber can unsubscribe from the photo stream but has limited control over managing the photo stream. As mentioned above, the image sharing tools may allow an owner of the photo stream to specify access privileges. For example, the owner can specify whether the subscriber can add images to the photo stream, remove images, add subscribers to the photo stream, and/or remove subscribers from the photo stream. - In some embodiments, the name of the
subscriber 2540 can be selected from thesubscriber section 2140. The selection results in the display of the subscriber menu (not shown). The subscriber menu may include an email field that displays the email address of the subscriber. In some embodiments, the application allows the subscriber to modify or update the email using this field. One example of such a subscriber menu has been described above by reference toFIG. 21 . - In the
second stage 2515, the subscriber selects (e.g., by performing a gesture such as tapping the subscriber's finger on) theunsubscribe button 2555. As shown in thethird stage 2515, the selection results in the display of a pop-upwindow 2560. The pop-upwindow 2560 includes aconfirmation button 2565 to confirm unsubscribing from the photo stream and a cancelbutton 2570 to cancel the unsubscribe operation. The pop-upwindow 2560 also includes a message stating that the photo stream will be deleted from all of the subscribers' devices. - As shown in the
third stage 2515, the owner selects (e.g., by performing a gesture such as tapping the owner's finger on) theconfirmation button 2565 to confirm unsubscribing from the photo stream. When the input is received, the application of some embodiments generates a message having information (e.g., a user ID such as an email address) to unsubscribe the subscriber. The message is then sent to the control server. After receiving the message, the control server may remove the user ID from an access list associated with the photo stream. As mentioned above, the access list contains a list of authorized individuals that are able to access the photo stream. - The
fourth stage 2520 illustrates the subscriber's device after the subscriber has selected theconfirmation button 2560. The application displays a prompt 2575 indicating that the photo stream is being removed. The photo stream is also displayed with a spring wheel orspinner 2580 indicating that it is awaiting confirmation of the unsubscribe operation. Thefifth stage 2525 illustrates thephoto stream menu 220 after the unsubscribe operation. As the subscriber has been unsubscribed from the photo stream, the “Family Photos” photo stream is removed from thephoto stream menu 220. - F. Parental Control
- The image application of some embodiments provides tools to set restrictions or parental controls for one or more of its features. In some embodiments, the restrictions include preventing a user of a device from sending and receiving photo stream invitations.
FIG. 26 provides an illustrative example of preventing the user from receiving photo stream invitations. Four operational stages 2605-2620 of the user's device are illustrated in this figure. - The
first stage 2605 illustrates thedevice 400 displaying a desktop graphical user interface of its operating system. The operating system's desktop includes several selectable icons of different applications (e.g., image application, camera application). The desktop also displays anicon 2625 for the settings menu. To open the settings menu, the user selects theicon 2625 from the desktop. - The
second stage 2610 illustrates thesettings menu 2630 after the user has selected theicon 2625. As shown, thesettings menu 2630 displays “General” in the heading, under which different general settings relating to the operating system and/or the device are displayed. The user might have navigated to this section from a main settings menu (not shown). The general section includes aselectable item 2635 for setting restrictions or parental controls. To set restrictions, the user selects theitem 2635 from the general section of thesettings menu 2630. - The
third stage 2615 illustrates the user's device after the selection of theselectable item 2635. The selection causes apasscode field 2640 and the virtual or on-screen keyboard 140 to appear. Thepasscode field 2640 is for restricting unwanted users (e.g., children) from making changes to device or application settings. The user then uses thekeyboard 140 to type the passcode into thepasscode field 2640. - Once the correct passcode is entered, the
settings menu 2630 displays therestriction section 2650 as illustrated in thefourth stage 2620. Therestriction section 2650 includes a list of restriction controls for different applications. To simply the discussion, only two restriction controls related to the image application area shown in thefourth stage 2620. Specially, therestriction section 2650 includes a send invitation control 2655 (e.g., toggle switch) to turn on or off the send invitation feature. Therestriction section 2650 also includes a receiveinvitation control 2660 to turn on or off the receive invitation feature. Each of thesecontrols fourth stage 2620, the user selects the receiveinvitation control 2660 to prevent any user of the device from receiving photo stream invitations. - In the previous example, the user places restrictions on receiving photo stream invitations. Alternatively or conjunctively, the image sharing tools allow the user to freeze or lock a cloud service account in its current state. By locking the account, the user cannot create a new photo stream (e.g., with the user's device associated with the account) or become a subscriber to another photo stream. In some embodiments, the master account lock is provided in the
restriction section 2650. For example, instead of thecontrols restriction section 2650 may include a “Don't Allow Changes” option for locking the account its current state or an “Allow Changes” option for unlocking the account. - In conjunction with the restriction controls or instead of it, the image application of some embodiments provides tools to specify whether a particular device can be used to create a shared photo stream and to subscribe to different shared photo stream.
FIG. 27 provides an illustrative example of turning off such shared photo stream features. Twooperational stages - In the
first stage 2705, the device is displaying asettings menu 2715 for managing cloud services associated with an account. Examples of such cloud services include cloud storage service, synchronizing data across user devices, etc. Thesettings menu 2715 includes anaccount tab 2720 that can be selected to view account information (e.g., account payment information, available storage space). Thesettings menu 2715 also includes a photostream menu item 2725 for displaying a photostream settings menu 2740. The photostream menu item 2725 is displayed with text that indicates that the personal photo stream and/or the shared photo stream is currently turned on. - The
first stage 2715 illustrates the user selecting the photostream menu item 2725. As shown in thesecond stage 2710, the selection causes the image application to display thephoto stream menu 2740. This menu includes a first control 2730 (e.g., a toggle switch) for turning on or off the personal photo stream feature (e.g., device to device syncing). Thefirst control 2730 is displayed with text that indicates that, when the control is turn on, the new images (e.g., captured or imported images) will automatically be uploaded and sent to one or more other devices associated with the cloud service account. - In addition, the
menu 2740 includes a second control 2735 (e.g., a toggle switch) for turning on or off the shared photo stream feature. The second control is displayed with text that indicates that, when the control has been turned on, the device can be used to create new photo streams to share with other people, or subscribe to other people's photo stream. In the example illustrated in thesecond stage 2710, the user selects thesecond control 2735 to turn off the shared photo stream feature. - G. Managing Notifications
- The image application of some embodiments provides different tools to manage notifications. These tools can be used to specify whether a banner is displayed, an alert is shown, and/or a sound is played (e.g., when a new comment has been received for a photo stream, when there is a new photo stream invitation, etc.). The application of some embodiments allows the user to granularly manage notification by implementing a whitelist feature. The whitelist feature allows the user to specify whether photo stream notifications are presented for everyone or presented for only those entities that are listed in the user's contact list.
-
FIG. 28 provides an illustrative example of turning on the whitelist feature. Twooperational stages first stage 2805, the device is displaying anotification section 2815. The user might have navigated to this section from the main settings menu. In this section, the user can select an application to manage different notifications (e.g., banner, sound, badge, etc.). As shown, the image application is listed in the list ofapplications 2870. - In the
first stage 2805, the user selects the image application from thelist 2870. Thesecond stage 2810 illustrates the device after the selection of the image application from thenotification section 2815. The selection results in the display of the image application'snotification menu 2820. The menu includes multiple controls 2825-2865 for managing notifications. Thismenu 2820 includes acontrol 2835 to turn on or off a notification center and acontrol 2840 to specify the number of notifications to show in the notification center. In some embodiments, the notification center is a display area that lists different notifications. - As shown in the
second stage 2810, themenu 2820 includes selectable items 2845-2855 for turning on or off banner notification and alerts. Themenu 2820 also includes acontrol 2860 to turn on or off badging icons (e.g., with a number), and acontrol 2865 to turn on or off playing sound. Lastly, themenu 2820 includesselectable items second stage 2810, the user selects theselectable item 2830 to display alerts for only those in the user's contact list. - In some embodiments, the image application provides tools to share comments regarding images in the photo stream. Several examples of sharing comments will now be described by reference to
FIGS. 29-37 . - A. Exchanging Comments
-
FIG. 29 provides an illustrative example of leaving a comment regarding an image in a shared photo stream. Six operational stages 2905-2930 of the owner's device are illustrated in this figure. Thefirst stage 2905 illustrates theimage display area 105, which includes thumbnail representations of images. As indicated by the heading 2935, the thumbnails represent images associated with the photo stream (e.g., “Family Photos”). The owner might have first selected the name of the photo stream from the photo stream menu (not shown) to display these thumbnail images. To leave a comment for an image, the owner selects thecorresponding thumbnail image 2940 from theimage display area 105. - As shown in the
second stage 2910, the selection causes theimage display area 105 to display afull screen representation 2945 of the corresponding image. The selection also causes the top andbottom bars top bar 210 includes aback button 330 to return to the thumbnail view. Thetop bar 210 also includes a heading that states that the displayedimage 2945 is the second of two images in the photo stream. Thetop bar 210 may also include an edit button that when selected provides different editing tools to edit the displayed image. In some embodiments, the editing entails enhancing the image, removing red eye from the image, and/or cropping the image. - Different from the
top bar 210, thebottom bar 370 includes (1) ashare button 345 for sharing the selected image, (2) aplay button 350 for playing a slide show of the images in the photo stream, (3) adelete button 1740 for deleting the image from the photo stream, and (4) acomment button 360 for leaving comments regarding the displayed image. The bottom bar may also include a stream button (not shown) for streaming the images in the photo stream to one or more other devices (e.g., a desktop computer, a laptop). In the example illustrated in thesecond stage 2910, each item in thebottom bar 370 is displayed with a corresponding icon. For example, thecomment button 360 is displayed with achat bubble icon 375. Thechat bubble icon 375 includes a plus sign (i.e., “+”) that provides a visual indication that a comment can be added for the displayedimage 325. - As shown in the
second stage 2910, the owner selects thecomment button 360. The selection causes a virtual or on-screen overlay keyboard 140 to appear, as illustrated in thethird stage 2915. The owner then types in a comment regarding theimage 2945 in acomment field 155. Thepost button 2950 may also change its appearance when the owner types in a character in the comment field. Here, the owner types in a comment into the comment field and selects thepost button 2950. In some embodiments, the application provides a selectable item for deleting a comment. For example, the application may display a delete button next to a comment. The delete operation can only be performed by the person that left the comment, in some embodiments. - The
fifth stage 2925 illustrates theimage display area 105 after posting the comment. As shown, the comment is displayed over theimage 2945. The comment is also associated with metadata. The metadata is displayed below the comment, and identifies the person that left the comment and the time the comment was left. As shown in thefifth stage 2925, the person who left the comment is identified as “Me”. This is because the owner left the comment with his or her device. The comment is also displayed with anadd comment field 365 that can be selected to add additional comments. - In the example illustrated in the
fifth stage 2925, the top andbottom bars post button 2950. However, thechat bubble icon 375 remains in the same position. As shown, the “+” sign has been replaced with the number “1”, and the color of the chat bubble icon has been changed from a first color (e.g., white) to a second different color (e.g., blue). The number identifies the number of comments associated with the image. The color of the icon indicates that the image application is in a comment displaying mode. Here, the owner can select the chat bubble icon to (1) hide the comment, (2) hide the addcomment field 365, and (1) return the chat bubble icon to its first color (e.g., white). In some embodiments, the number remains visible on the chat bubble icon (e.g., by changing color). - Upon posting, the comment is pushed to all devices of participants associated with the photo stream.
FIG. 30 provides an illustrative example of how the comment appears on a subscriber's device. Six operational stages 3005-3030 of the subscriber's device are illustrated in this figure. In thefirst stage 3005, the subscriber's device displays the desktop of its operating system. The desktop includes theicon 435 for opening the image application. In this example, theicon 435 does not display any marking indicating that there are one or more updates to the photo stream. For instance, theicon 435 is not overlaid by a badge with a number indicating that a photo stream has been updated. As will be described in detail by reference toFIG. 31 , the application of some embodiments displays a marking on theicon 435 when the subscriber has participated in the conversation (i.e., previously left a comment regarding the same image). - As shown in the
first stage 3005, the subscriber selects theicon 435 to open the image application. Thesecond stage 3010 illustrates the application'sphoto stream menu 220. The subscriber might have previously selected thephoto stream tab 114 to display this menu. Different from thedesktop icon 435, the name of the photo stream is listed with amarking 3040. The marking 3040 provides a visual indication to the subscriber that there is one or more updates to the photo stream. In the example illustrated in thesecond stage 3010, the marking 3040 is a blue dot. However, different types of markings can be used to convey the same meaning. For instance, theicon 285 of the “Photo Stream”tab 114 can be badged with anumber 280 that indicates that there is an update to a photo stream. - In the
second stage 3010, the subscriber selects thephoto stream 3045 from themenu 220. The selection causes the application to display theimage display area 105, as illustrated in thethird stage 3015. Theimage display area 105 includes thumbnail representations and of images in thephoto stream 3045. The application of some embodiments provides a visual indication that an image is associated with one or more comments. This is shown in thethird stage 3015 because thesecond thumbnail image 3050 is displayed on theimage display area 105 with amarking 3055. In the example illustrated in thethird stage 3015, the marking 3055 is a chat bubble that is displayed at least partially over theimage 3050. The chat bubble is also colored (e.g., blue). The color provides a visual indication to the subscriber that there is an unread comment associated with the corresponding image. - As shown in the
third stage 3015, the subscriber selects thethumbnail image 3050. The selection causes theimage display area 105 to display afull screen representation 3060 of the corresponding image. The selection also causes thecomment button 360 to appear along thebottom bar 370. Thecomment button 360 contains achat bubble icon 375. Thechat bubble icon 375 is colored white and includes a number “1”. The number represents the number of comments associated with the image. To display the comment, the subscriber selects thecomment button 360. - The fifth stage 3025 illustrates the
image display area 105 after the selection of thecomment button 360. As shown, the comment is displayed over theimage 3060. The comment is also associated with metadata. The metadata is displayed below the comment, and identifies the person who left the comment and the time when the comment was left. In the example illustrated in the fifth stage 3025, the person who left the comment is identified as “Emily Parker”. - In the fifth stage 3025, the subscriber selects the
comment field 365 to add another comment. Thesixth stage 3030 illustrates the subscriber leaving another comment. Specifically, the comment is inputted into the comment field using the on-screen keyboard 140. - In the example described above, the subscriber is notified of the update to the photo stream after opening the image application and navigating to the
photo stream menu 220. The application of some embodiments provides one or more different types of notifications to alert a participant that a new comment has been posted. In some embodiments, the owner is always notified of any new comments that have been posted. A subscriber may be notified when the subscriber has participated in the conversation. That is, the subscriber has left a comment regarding an image and another comment was left regarding that same image by another participant. In some embodiment, if a participant (e.g., subscriber, owner) shared an image, that participant is always notified of any new comments that have been posted regarding the same image. -
FIG. 31 provides an illustrative example of how the image application notifies an owner of a new comment and presents the new comment on the owner's device. Five operational stages 3105-3125 of the owner's device are illustrated in this figure. In thefirst stage 3105, the owner's device displays the desktop of its operating system. The desktop includes theicon 435 for opening the image application. As the device is associated with the owner, the image application displays abanner 3130 indicating that a new comment has been left for an image. Specifically, thebanner 3130 is superimposed along the top edge of the operating system's desktop. In some embodiments, thebanner 3130 rotates into view by simulating a 3D effect. Thebanner 3130 may float on top of the main display area for a predetermined period of time and then disappear (e.g., rotate out of view, fade away). - As shown in the
first stage 3105, thebanner 3130 includes the comment and the name of the subscriber that left the comment. Thebanner 3130 also includes athumbnail representation 3135 of the image associated with the comment. In some embodiments, thebanner 3130 is a selectable item that when selected opens the image application. The image application may also open to display a full screen representation of the image with the comment. - In conjunction with the banner or instead of it, the image application may provide a different type of marking. One such type of marking is a badge that is displayed at least partially over the icon of the image application. This is shown in the
first stage 3105 as theicon 435 is displayed with abadge 830 that is marked with a number “1”. In this example, the number represents the number of photo streams that have one or more updates, and does not represent the number of new comments. However, the application of some embodiments may display such a marking to identify the number of new comments that have been received for a photo stream. - In the
first stage 3105, the owner selects theicon 435 to open the image application. Thesecond stage 3110 illustrates the application'sphoto stream menu 220 after the application is opened. The owner might have previously selected thephoto stream tab 3035 to display thismenu 220. The name of thephoto stream 3140 is listed with amarking 3040. The marking 3040 provides a visual indication to the subscriber that there is one or more updates to thephoto stream 3140. - In the
second stage 3110, the owner selects thephoto stream 3140 from themenu 220. The selection causes the application to display theimage display area 105, as illustrated in thethird stage 3115. Theimage display area 105 includes thumbnail representations of images in the photo stream. As mentioned above, the application of some embodiments provides a visual indication that an image is associated with one or more comments. This is shown in thethird stage 3115 because thesecond thumbnail image 3050 is displayed on the image display area with amarking 3150. - In the example illustrated in the
third stage 3115, the marking 3150 is a double chat bubble or speech bubble icon. Different from a single chat bubble, the double chat bubble indicates that the owner has participated in the conversation. That is, the owner has previously left a comment regarding the image and a new comment has been received. The double chat bubble is displayed at least partially over thethumbnail image 3050. The double chat bubble is also colored (e.g., blue). The color provides a visual indication to the owner that there is an unread comment associated with the corresponding image. In some embodiments, the application does not differentiate whether a person participated in a conversation. For example, the application may display a same marking (e.g., the single chat bubble and not the double chat bubble) regardless of whether the person participated in the conversation. - As shown in the
third stage 3115, the owner selects thethumbnail image 3050. The selection causes theimage display area 105 to display afull screen representation 3060 of the corresponding image as illustrated in thefourth stage 3120. As shown, the new comment is displayed over theimage 3060. The new comment is also associated with metadata that identifies the person who left the comment and the time when the comment was left. The comments are sequentially displayed in theimage display area 105. Specifically, the new comment is shown below the previous comment. The addcomment field 365 is displayed below the previous comment. - The
fifth stage 3125 illustrates theimage display area 105 after navigating out of the full screen view (e.g., by selecting a back button). The thumbnail view is identical to the one shown in thethird stage 3115. However, thedouble chat bubbles 3150 have been modified to indicate that there are no unread comments. Specifically, the color of thedouble chat bubble 3150 has been modified from one color (e.g., blue) to another color (e.g., white). One of ordinary skill in the art would understand that modifying the color is just one of many different ways in which the application can provide such visual indication. For instance, thedouble chat bubble 3150 can be removed from thethumbnail image 3050 to provide the same indication (e.g., no unread comments). - In the example described above, the different marking are displayed over images with comments. In some embodiments, the application follows a set of rules to display the different markings. For example, a first marking (e.g., a comment or chat bubble) that is colored a first color (e.g., blue) indicates that the image is associated with an unread comment and the participant has not left a comment for the same image. A first marking (e.g., a comment bubble) that is colored a second different color (e.g., white) indicates that all comments have been read and the participant did not leave any comments for the same image.
- A second different marking (e.g., a double comment or chat bubble) that is colored the first color (e.g., blue) indicates the image associated with an unread comment and the participant has previously left a comment for that image. The second different marking (a double comment bubble) that is colored the second different color (e.g., white) indicates that all comments have been read and the participant previously left a comment for that same image.
- B. Marking Images
- In the examples described above, the owner and the subscriber exchange comments regarding an image. The image application of some embodiments allows a participant to mark an image. In some such embodiments, the marking provides a visual indication that the participant approves or likes the image.
FIG. 32 provides an illustrative example of marking an image. Three operational stages 3205-3215 of the user's device are illustrated in this figure. - The
first stage 3205 illustrates the image application displaying a full screen representation of animage 3220. Theimage 3220 is associated with several comments and amark 3225. Themark 3225 includes an image or symbol. Here, themark 3225 is a smiley face or happy face that provides an indication that one or more individuals listed adjacent to it approves or likes the displayedimage 3220. However, any number of different symbols (e.g., heart symbol) and/or images (e.g., flags, icons) can be used to provide the same indication. In the example illustrated in thefirst stage 3205, the name of a subscriber is displayed next to thesmiley face symbol 3225. - The
second stage 3210 illustrates the owner selecting the marking 3225 to indicate that he or she likes the marking. Specifically, the user selects the marking 3225 from theimage display area 105. Thethird stage 3215 illustrates theimage display area 105 after the selection of thesymbol 3225. As shown, the selection results in the owner being added to the list of individuals adjacent to thesymbol 3225. Specifically, the owner's identification has been added next to the subscriber's name. In this example, the owner is identified as “Me”. - In some embodiments, the application counts the association of the approval mark as one comment. That is, the number of likes is counted towards the number of comments. This is shown in the second and
third stage - C. Displaying Comments
- The previous two examples illustrated adding comments or markings to images. Several examples of displaying and scrolling comments will be described by reference to
FIGS. 33-35 .FIG. 33 provides an illustrative example of how the image application of some embodiments displays an image with comments. Four operational stages 3305-3320 of the owner's device are illustrated in this figure. - The
first stage 3305 illustrates the image application displaying a full screen representation of animage 3325 with comments. The full screen representation is overlaid by thetop bar 210 and thebottom bar 370. Thetop bar 210 includes theback button 330 and a heading. The heading indicates that the displayed image is the second of two images. Different from thetop bar 210, thebottom bar 370 includes (1) ashare button 345 for sharing the displayed image, (2) aplay button 350 for playing a slide show of the images in the photo stream, (3) adelete button 1740 for deleting the displayed image, and (4) acomment button 360 for leaving a comment regarding the displayed image. The bottom bar may also include a stream button (not shown) for streaming the images in the photo stream to one or more other devices (e.g., a desktop computer, a laptop). - In the
first stage 3305, the owner selects the full screen representation of the second image in the photo stream. As illustrated in thesecond stage 3310, the selection causes the top and bottom bars to disappear (e.g., fade away). However, the comments remain overlaid on the full screen representation. In addition, theicon 3335 of the comments button 360 (e.g., the comment bubble) is displayed in the same location over the full screen representation. As shown in thesecond stage 3310, the owner then selects alocation 3340 on thefull screen representation 3325 to zoom in on the image. - The
third stage 3315 illustrates theimage display area 105 after the selection of thelocation 3340 on the full screen representation. The selection results in the application zooming in on the displayed image towards the selected location. As shown, theicon 3335 of the comment button 360 (e.g., the comment bubble) remains in the same location with respect to the device's screen. However, the comments are not displayed in this zoomed view. To display the comments, the owner selects theicon 3335. - The
fourth stage 3320 illustrates theimage display area 105 after the selection of theicon 3335. The selection results in the application displaying the comments in the zoomed view. Alternative, the selection may result in the application displaying the full screen representation with the comment. For instance, the selection may cause the application to zoom out of the displayed image. The selection may also cause the comments to reappear over thefull screen representation 3325. Accordingly, upon selection of theicon 3335, the application of some embodiments displays the full screen view that is illustrated in thesecond stage 3310. - The previous example illustrated zooming in on an image with comments. In some embodiments, the comment toggle is persistent across other images. For example, when the comment mode has been activated, the application allows its user to scroll through images with comments.
FIG. 34 provides an illustrative example of scrolling through different images with comments. Three operational stages 3405-3415 of the owner's device are illustrated in this figure. - The
first stage 3405 illustrates the image application displaying thefull screen representation 3420 of the image associated with several comments. The comments and thecomment icon 3335 appear over thefull screen representation 3420. Thecomment icon 3335 has been activated (e.g., changed from a first color to a second different color) to indicate that comments are being displayed. The top and bottom bars are not shown in this full screen view. - In the
second stage 3410, the user selects (e.g., swipes across) the screen to display the next image. This causes the application to display thenext image 3425. As shown in thethird stage 3415, thenext image 3425 is also displayed with its associated comment. When the next image is not associated with any comments, the application of some embodiments only displays theadd comment field 365 and the icon 3335 (e.g., with the plus sign instead of a number). - The previous example illustrated scrolling through different images with comments.
FIG. 35 provides an illustrative example of scrolling through the comments associated with one image. Three operational stages 3505-3515 of the owner's device are illustrated in this figure. Thefirst stage 3505 illustrates the image application displaying the full screen representation of the image with the comment. Specifically, there are six comments associated with the displayed image and five of those are shown in the image display area. The comments are also in a sorted order, starting with the oldest comment at or near the top and the newest one at the bottom. In some embodiments, the application displays the comments in opposite order, starting with the newest comment at the top and the oldest one at the bottom. The application of some embodiments presents the comment with shading. For example, the application may display the top of the comment list being white down to the bottom becoming grayer and grayer. - As shown in the
first stage 3505, there is limited amount of space to display different comments. Here, the image display area displays four comments and the add acomment field 365. In thesecond stage 3510, the user then scroll through the comments associated with the image by using a touch gesture (e.g., moving or dragging the user's finger up or down the device's screen). The gesture causes the application to display one older comment while removing theadd comment field 365. In thethird stage 3510, the user inputs the same gesture to display another comment. As shown, the input causes another comment comes into view while a newer comment scrolls out of the view. The input also causes a marking tool (e.g., the smiley face, the like icon) also comes into view. - D. Example Processes
- Several example processes for exchanging comments will now be described by reference to
FIGS. 36 and 37 .FIG. 36 conceptually illustrates aprocess 3600 that some embodiments use to post a new comment. Theprocess 3600, in some embodiments, is performed by the image application. Theprocess 3600 begins when it receives (at 3605) a user input to post a new comment for an image in a shared photo stream. As mentioned above, the user might have first inputted a comment into a comment field and then selected a post button. - After receiving the input, the
process 3600 generates (at 3610) a message regarding the new comment. The message may include the new comment. The message may also include one or more identifying information, such as (1) a user identification (“ID”) that identifies a participant that left the new comment, (2) a photo stream ID that identifies the photos stream, (3) an image ID that identifies the image with the new comment, (4) comment ID that identifies the new comment, and (5) a timestamp that identifies the time and date the new comment was left. - The
process 3600 then sends (at 3615) the message to a control server. In some embodiments, the control server receives the message and stores the comment. Based on the message, the control server may also identify entities (e.g., owner, subscribers) associated with the photo stream. The control server may then send a message regarding an update to a photo stream to each device associated with the identified entities. -
FIG. 37 conceptually illustrates aprocess 3700 that some embodiments use to display the new comment. The process, in some embodiments, is performed by the image application. The process begins when it receives (at 3705), from a control server, a message regarding an update to the shared photo stream. After receiving the notification, theprocess 3700 retrieves (at 3710) a list of photo streams from the control server. Based on the list, theprocess 3700 retrieves (at 3715) the new comment from the control server. - At 3720, the
process 3700 notifies a participant (e.g., the device's user) of the new comment. As mentioned above, the application of some embodiments always notifies the owner when a new comment has been posted regarding an image in the shared photo stream. A subscriber may be notified when the subscriber has participated in the conversation. That is, the subscriber has left a comment regarding an image and another comment was left regarding that same image by another participant. In some embodiment, if a participant (e.g., subscriber, owner) shared an image, that participant is always notified of any new comments that have been posted regarding the same image. - In notifying the participant, the
process 3700 may display one or more marking and/or cause the participant's device to play a sound or vibrate. For instance, a visual indication of the association of the comment may be shown with a banner and a badge over an icon. The visual indication may be presented at a thumbnail view (e.g., with a chat bubble near or at least partially over the thumbnail representation) and/or at a full-screen view (e.g., with a similar chat bubble near or at least partially over the thumbnail representation). - As shown in
FIG. 37 , theprocess 3700 determines (at 3725) whether there is an input to display the new comment. Many different examples of such an input are described above. For instance, the participant might select (e.g., tap the participant's finger on) a banner notification. Alternatively, the participant might select a comment tool (e.g., the chat bubble icon) to display the new comment. If there is an input to display the new comment, theprocess 3700 displays (at 3730) the new comment with the associated image. Otherwise, theprocess 3700 ends. - Some embodiments perform variations on the
processes processes - The image application of some embodiments allows a participant to publish the photo stream to a website. In some embodiments, the website is a public website that can be accessed by any browser with the correct uniform resource locator (URL) address. Several example of publishing a photo stream to a website will now be described by reference to
FIGS. 38-48 . - A. Publishing a Photo Stream to a Website
-
FIG. 38 provides an illustrative example of publishing a shared photo stream to a website. Specifically, in three operational stages 3805-3815, this figure illustrates how an owner can publish the photo stream using the image application. This figure includes the editphoto stream menu 2130 that has been described above by reference toFIG. 21 . - The
first stage 3805 illustrates the owner's device displaying theedit menu 2130. To display theedit menu 2130, the owner might have first selected a selectable item (e.g., a colored icon with a directional arrow) that is displayed with the name of the photo stream in the photo stream menu. As shown, theedit menu 2130 includes thepublic website control 2145. The owner can select thecontrol 2145 to turn on or off the public website feature. In the example illustrated in thefirst stage 3805, the public website feature is turned off or disabled. To publish the photo stream, the owner selects (e.g., by performing a gesture such as tapping the owner's finger on) thecontrol 2145. - The
second stage 3810 illustrates the image application after the selection of thecontrol 2145. The selection causes the application to send data to one or more servers to publish the photo stream to the website. For example, the application may generate one or more lower resolution images from a stored image (e.g., raw image) and send those images to a server. The application may exchange messages with a control server regarding publication. In the example illustrated in thesecond stage 3810, theedit menu 2130 is overlaid by a spinner or spinning wheel 2325 (e.g., below the control in the edit menu). Thespinner 2325 provides a visual indication that the application is awaiting confirmation of the publication. - The
third stage 3815 illustrates the image application after the publication of the images associated with the photo stream. The publication of the photo stream results in the display of ashare link control 3820. In this example, theshare link control 3820 is displayed below thepublic website control 2145. Theshare link control 3820 can be selected to generate a message (e.g., an email) that contains a link to the URL to access the website. In some embodiments, the message can be sent to anyone, including those that are not subscribed to the photo stream. The selection of the share link button may cause the application to display different options (e.g., buttons with icons). Each of these options may allow the user to share the link differently, e.g., through an email message, text message, social network post, social network message, etc. As shown, the URL is also displayed on theedit menu 2130. Here, theedit menu 2130 is overlaid by amessage 3825 stating that the photo stream can also be viewed at the URL (e.g., http) address. -
FIG. 39A provides an illustrative example accessing the webpage with the subscriber's device. Three operational stages 3905-3915 of the subscriber's device are illustrated in this figure. Thefirst stage 3905 illustrates the selection of anicon 925 of the email application. In thesecond stage 3910, the email application displays the email sent from the owner's device. The email includes amessage 935, alink 940, and athumbnail image 930. Themessage 935 states that the owner shared a photo stream with the recipient. Thethumbnail image 930 shows the icon of the image application. The icon is shown with a marking orbadge 945 indicating that there is a new photo stream or an update to an existing photo stream. Thelink 940 is a selectable item for the webpage that contains the images from the photo stream. - As shown in the
second stage 3910, the subscriber selects thelink 940. The selection causes a web browser to be opened, as illustrated in thethird stage 3915. Thebrowser 3930 displays the webpage that includes the images from the photo stream. The webpage is overlaid by atop bar 3920. Thetop bar 3920 states the title of the photo stream and the name of the owner. In addition to the top bar, the group of images includes itsown heading 3925. Specifically, the heading 3925 includes (1) the date and time the group of images was added to the photo stream, and (2) the number of photos in the group. - In the example illustrated in the
third stage 3915, the images are displayed in a grid format. Specifically, the images are displayed in a two by two grid with two images on each grid row. The images are displayed side by side with minimal or no spacing between them in either the horizontal or vertical direction. In some embodiments, the image layout is selected based on the number of images in a batch and the orientation of the images in the batch. Several examples of selecting a layout for the images will be described by reference toFIGS. 42-47 . -
FIG. 39B provides an example of an alternate email message that is received at the subscriber's device. This figure is identical to stage two 3910 of the previous figure. However, the link to the public website is asecondary link 3935. Theprimary link 3940 being a link to join the photo stream, which is similar to the one described above by reference toFIG. 9 . - The previous example illustrated publishing images in the photo stream to a website. In some embodiments, the webpage containing the published images is updated each time a participant adds additional images to a shared photo stream.
FIG. 40 provides an illustrative example of how the webpage is updated when a new image is added to the photo stream. Three operational stages 4005-4015 of the subscriber's device are illustrated in this figure. - In the
first stage 4005, thebrowser 3930 displays the webpage that includes the images from the photo stream. In this example, the webpage displays the batches in reverse chronological order, starting with the newest batch at the top and the previous batch below. The images in each batch are displayed in chronological order, starting from the oldest to the newest. Specifically, the images are sequentially displayed starting with topleft image 4020 of the first row, which represents the oldest image, to the bottomright image 4025 of the second row, which represents the newest image. - As shown in the
second stage 4010, the user uses a touch gesture to scroll down the webpage to display a second batch of images. Thethird stage 4015 illustrates the webpage displaying a second batch of images that were added at a different time than the first batch. Here, the batch includes only one image. The heading 4020 indicates that the older batch contains one image and the time when the image was added, which is before the first batch of images. -
FIG. 41 provides an example of scrolling through images in the photo stream. In thefirst stage 4105, the subscriber selects animage 4140 from the webpage. As shown in thesecond stage 4110, the selection causes the web browser to display a full-screen representation 4125 of the selected image. The full-screen representation may be displayed with one or more comments. In some embodiments, the full-screen representation 4125 is displayed only with the first associatedcomment 4120. As shown, thecomment 4120 appears as a caption that is displayed over the lower portion of the full-screen representation 4125. - In the example illustrated in the
second stage 4110, the full-screen representation 4125 is displayed with aback button 4135 for returning to the previous view (i.e., the view illustrated in the first stage 4105) and aslide show button 4130 for playing a slide show of the published images. In some embodiments, the full-screen representation 4125 is displayed with navigation buttons (not shown) that can be used to display a next or previous image. - In the
second stage 4110, the subscriber selects (e.g., swipes across the device's screen to display a previous image. Thethird stage 4115 illustrates theweb browser 3930 after the selection. As shown, the browser displays aprevious image 4145 in the photo stream. In this example, the displayedimage 4145 is the last image (e.g., the newest image) in another batch (e.g., the newest batch). In some embodiments, the selection to display a previous image may result in the browser displaying a full-screen representation of the first image (e.g., the oldest image) in the batch. - B. Webpage Layouts
- In some embodiments, a web publishing server publishes images in a photo stream as one or more webpages to a website. The web publishing server of some embodiments selects a webpage layout based on the number of images in different batches and the orientation of those images. The webpage layout may display images in a particular order (e.g., starting with the oldest image and ending with the newest image, or vice versa). The webpage layout may display different batches in a particular order (e.g., starting with the oldest batch to the newest batch, or vice versa). Several example webpage layouts will now be described by reference to
FIGS. 42-45 . In these examples, the boxes represent horizontal or landscape images. Each box is numbered, and the number represents the sequence of images, starting from the oldest image to the newest image. -
FIG. 42 provides an illustrative example of webpage layouts for a batch that includes two images. Four different example layouts 4205-4220 are shown in this figure. Thelayout 4205 represents a layout for a batch that contains two portrait images, whilelayout 4210 represents one with two landscape images. When the batch includes a portrait image and a landscape image, the portrait image may occupy one square grid cell, while the width of the landscape image is matched with the width of the square grid cell. Thelayout 4215 represents a layout where the first image is a portrait image while the second image is a landscape image. Conversely, thelayout 4220 represents a layout where the first image is a landscape image while the second image is a portrait image. -
FIG. 43 provides an illustrative example of a webpage layout for a batch that includes three or four images. Specifically, thelayout 4305 represents a batch with three images, where the first image is a portrait image, while thelayout 4310 represents one where the first image is a landscape image. In these twolayouts layout 4315 shows that all images are displayed as square images when there are four images in a batch. -
FIG. 44 provides an illustrative example of a webpage layout for a batch that includes five images. In particular, thelayout 4405 is for a five-image batch shows that the first four images are arranged in a two-by-two block and the fifth image is placed below the block. The fifth image is also four times the size of each of the first four images. In contrast, the five-image layout 4410 (e.g., the landscape layout) shows that first four images are arranged in a two-by-two block and the fifth image (i.e., the largest one) is placed thereafter (e.g., to the right). In some embodiments, the landscape layout used to display images on certain platforms (e.g., smart TV, digital media receivers). For example, an image application that operates on a digital media receiver may select this layout to display images in a batch. -
FIG. 45 illustrates webpage layouts for a batch that includes more than six images. Specifically, the seven-image layout 4505 is the same as the six-image layouts, except a seventh image is arranged below the first six images. There are also three different layouts 4510-4520 for photo streams containing eight images. Specifically, thelayout 4510 is for a batch where the seventh and eighth images are a mix of landscape and portrait images, thelayout 4515 is for a batch where the seventh and eighth images are landscape images, and thelayout 4520 is for a batch where the seventh and eighth images are portrait images. This figure also illustrates examples of nine-image layouts 4525-4535, a ten-image layout 4540, an eleven-image layout 4545, and a twelve-image layout 4550. Several of these layouts 4525-4550 follow a pattern by adding one or more of the layouts described above. Similar to the twelve-image layout 4550, a layout may be added to another layout by inverting or flipping the order in relation to the different image sizes. This figure illustrates example portrait layouts. However, the groups of images can be arranged side-by-side for different landscape layouts for certain platforms (e.g., smart TV, digital media receivers). - C. Image Framing
- In many of the examples described above, the images are displayed in square cells or blocks, regardless of whether they are landscape or portrait images. To account for the mismatch in the aspect ratio, the web publishing system of some embodiments performs a framing operation that fits the image's smaller dimension (i.e., width or height) on a square cell and displays the portion of the image that is within the grid cell. The framing operation may also entail centering or top aligning the image on the grid cell.
-
FIG. 46 provides several examples of how images are framed in a webpage layout. The figure includes twosquare cells landscape image 4615 is placed on thecell 4605. As shown, the height of thelandscape image 4615 is matched with the height of thecell 4605. Thelandscape image 4615 is then centered on thegrid cell 4605. The portion of thelandscape image 4615 within thesquare cell 4605 is the displayed portion of the landscape image. - The
portrait image 4620 is placed on thecell 4610. As shown, the width of theportrait image 4620 is matched with the width of thecell 4610. Different from thelandscape image 4615, theportrait image 4620 is not centered on thegrid cell 4610. Instead, theportrait image 4620 is top aligned on the cell. - In conjunction with the framing operation, or instead of it, an image may be cropped or different portions (e.g., the outer parts) of the image may be removed from the layout.
FIG. 47 provides an illustrative example of how portrait andlandscape images 4705 are presented in a batch layout (e.g., two-image layout, three-image layout, etc.). As shown, the layout crops the top portion of thelandscape image 4705 after shifting the image up a particular amount (e.g., 10% of the image). That is, the top portion of the image and the lower portion of the image are not shown in the batch layout. In this example, the lower portion of the image is cutoff more than the top portion. Different from the landscape image, the center portion of theportrait image 4710 is cropped. Specifically, theportrait image 4710 is cropped such that the left and right outer portions are not shown in the batch layout. - D. Example Process for Publishing a Photo Stream to a Website
- Having described several example batch layouts, an example process for publishing a photo stream will now be described.
FIG. 48 conceptually illustrates aprocess 4800 that some embodiments use to publish images in a photo stream to a website. Theprocess 4800, in some embodiments, is performed at the server-side by a server computer (e.g., by the web publishing server). Alternatively, a client device may generate the web page and upload it to the web publishing server. - The
process 4800 begins when it receives (at 4805) a request to publish images. For instance, theprocess 4800 might receive a request to turn on the website from a client device. Theprocess 4800 then identifies (at 4810) the number of images and the orientations of the images in a batch. Based on the identifications, theprocess 4800 specifies (at 4815) a layout for the batch. - At 4820, the
process 4800 determines whether there are any other batches. If so, theprocess 4800 returns to 4810, which is described above. Otherwise, theprocess 4800 generates (at 4825) a webpage based each specified layout. When the batch has been previously published, theprocess 4800 might use a previously selected layout to generate the webpage. Theprocess 4800 then publishes (at 4830) the webpage to a website (e.g., to a web servers). - Some embodiments perform variations on the
process 4800. The specific operations may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments. For instance, theprocess 4800 might receive images from a client device in order to publish those images. In some embodiments, theprocess 4800 returns a Uniform Resource Locator (“URL”) address for accessing the webpage to the client device. Furthermore, theprocess 4800 could be implemented using several sub-processes, or as part of a larger macro process. - In some embodiments, the batch layout operations described above may be performed at a client device to display the images. For instance, an image application that operates on a digital media receiver, smart TV, or a personal computer may perform the batch layout operation to generate a batch view of the images in the photo stream. Several examples presenting images on different clients are described below
- In the examples described above, the image sharing tools are implemented as part of an image application. The image application executes on both the owner and subscriber's device to facilitate image sharing and commenting operations. In some embodiments, the image sharing tools are implemented across different devices (e.g., smart phone, tablet, laptop, desktop, digital media receiver, etc.) and/or different operating systems (e.g., Windows®, iOS, MAC OS X, etc.). These implementations allow the different platforms to inter-operate in order to share images and comments. An example implementation of the image sharing tools on a tablet device will now be described by reference to
FIGS. 49-51 . -
FIG. 49 provides an illustrative example of the image sharing tools on a tablet. The image sharing tools are provided as part of the image application described above. However, the tablet's user interface is different from the smart phone's user interface because the tablet has a larger screen than the smart phone. Four operational stages 4905-4920 of the owner's tablet are illustrated in this figure. This figure includes animage display area 4925, aphoto stream menu 4955, a photostream options sheet 4960, and acomment sheet 4965. These user interface items correspond to those items that are described above for the smart phone by reference toFIGS. 1 and 2 . - In the
first stage 4905, the image application displays images from a collection (e.g., an image library). Specifically, the application displays thumbnail representations of the images. Each thumbnail image is not displayed as a square image but is displayed in its corresponding aspect ratio (e.g., as a portrait image, a landscape image). Three images have been selected using theimage display area 4925. To share the selected images, the user has also selected theshare button 4930. The selection of theshare button 4930 results in the display of a pop-upmenu 4935. Here, the pop-upmenu 4935 appears below theshare button 4930 and overlays a portion of the upper-left hand corner of theimage display area 4925. The pop-upmenu 4935 includes (1) aphoto stream button 4940 to create a new photo stream or add images to an existing photo stream, (2) anemail button 4945 to email the selected images, and (3) aprint button 4950 to print the selected images. - To create a new photo stream, the user selects (e.g., by tapping the user's finger on) the
photo stream button 4940. Thesecond stage 4910 illustrates the owner's tablet after the selection of thephoto stream button 4940. The selection results in the display of the photostream options sheet 4960. In the tablet version, the photostream options sheet 4960 covers only a portion of theimage display area 4925. Here, theoptions sheet 4960 is presented similar to a fill-in card with afield 4970 to input one or more subscribers for the photo stream, afield 4975 to input a name of the photo stream. The option sheet also includes acontrol 4980 to turn on or turn off the public website version of the photo stream. - In the
second stage 4910, the owner has specified a subscriber and a name for the photo stream. Thethird stage 4915 illustrates the image application after the owner has selected anext button 4985. The selection caused the application to display thecomment sheet 4965. Similar to theoptions sheet 4960, thecomment sheet 4965 is presented similar to a fill-in card and covers only a center portion of the image. In some embodiments, the image application displays an animation when switching or transitioning from one display area to another display area. For example, the application may display the photostream options sheet 4960 being flipped over to thecomment sheet 4965, similar to a two-sided card being flipped over. - The comment sheet includes a comment filed 4966 and a
post button 4968. The user can use thecomment field 4966 to input a comment regarding an image (e.g., the first image) in the photo stream. Thepost button 4968 can be selected to publish the photo stream. Here, the user does not input any comment into thecomment field 4966 and selects thepost button 4968. - The
fourth stage 4920 illustrates thephoto stream menu 4955 after the selection of thepost button 4968. As shown, thenew photo stream 4956 is listed with its name. In addition, thenew photo stream 4956 includes previews of one or more images in the photo stream. Here, the thumbnail representations of images in the photo stream are sequentially stacked on top of each other starting with the first image on top and the third image at the bottom. One of ordinary skill in the art would understand that the image preview could be presented differently. For example, the thumbnail images can be presented in a grid format instead of being stacked on top of each other. -
FIG. 50 illustrates another example of the image sharing tools on a tablet. This figure is identical to the previous figure; however, the pop-upmenu 4935 includes a grid of icons, instead of the text-based buttons. A similar grid of icons has been described above by reference toFIG. 1 . - The previous example illustrated creating a new photo stream using a tablet.
FIG. 51 provides an illustrative example of how comments are presented on the tablet. Three operational stages 5105-5115 of the owner's tablet are illustrated in this figure. - The
first stage 5105 illustrates the image application displaying thumbnail representations of images in the photo stream. The thumbnail images 5120-5125 are also marked with markings These markings indicate that there are comments associated with the corresponding images. In the example illustrated in thefirst stage 5105, thethumbnail image 5120 is marked with a single chat bubble and thethumbnail image 5125 is marked with a double chat bubble. The single chat bubble indicates that the owner has not participated in the conversation (e.g., left a comment regarding the image). The double chat bubble indicates that the owner has previously left a comment regarding the corresponding image. The color of these markings (e.g., blue markings) indicates that there are new or unread comments. - In the
first stage 5105, the owner selects (e.g., by tapping the owner's finger on) thethumbnail representation 5125 of the image. The selection causes the image application to generate a display of afull screen representation 5130 of the image. Theimage display area 4925 is overlaid by asemi-transparent bottom bar 5135. The thumbnail representations of images in the photo stream are sequentially displayed along thebottom bar 5135. The owner can select any one of these images to display the corresponding full screen representation in theimage display area 4925. - As shown in the
second stage 5110, the selection of thethumbnail image 5125 results in the display of acomment bubble 5140. Thecomment bubble 5140 includes a number (e.g., “2”) that represents the number of comments associated with the image. Thecomment bubble 5140 is also colored (e.g., colored white) to indicate that the comment mode has not been activated. - In the
second stage 5110, the owner selects thecomment bubble 5140 to activate the comment mode. Selection of thecomment bubble 5140 causes it to change colors (e.g., turn blue), which in turn provides the owner with a visual indication that the comment mode has been activated. The selection of the comment bubble also results in the display of thecomments 5150 associated with the image. - As shown in the third stage 5115, the
comments 5150 are displayed sequentially with the oldest one on top and the newest one at the bottom. Thecomments 5150 are also associated with metadata. The metadata is displayed below each comment, and identifies the person who left the comment and the time when the comment was left. Thecomments 5150 are also displayed with anadd comment field 5155 that can be selected to add additional comments. In some embodiments, the application displays a marking (e.g., a like button, smiley face icon) that can be selected to specify that the participant likes the displayed image. Several examples of such a marking have been described above by reference toFIG. 32 . - In some embodiments, the image sharing tools are provided as part of an image application that executes on a digital media receiver (e.g., high-definition (“HD”) media streaming device) or smart television (“TV”). Several examples of such an image application that executes on a digital media receiver will now be described by reference to
FIGS. 52-55 . In these examples, the digital media receiver is controlled by a remote control. The remote control may include a set of navigation buttons (e.g., up, down, left, right buttons) and a selection button. The remote control may also include other controls such as a menu button to return to a preview view (e.g., previous menu). -
FIG. 52 provides an illustrative example of opening a shared photo stream with a digital media receiver. Specifically, this figure illustrates in three operational stages 5205-5215 how the image application presents the photo stream on a wide screen television (“TV”). As shown, the figure includes an operating system desktop 5220 (hereinafter a grid view), a photo stream menu 5225 (hereinafter an album list), and an image display area 5230 (hereinafter a batch view). - The grid view 5220 displays different application icons in a gird formation. The user can select any one of the icons to open a corresponding application. To simplify the discussion, the grid view 5220 includes only two icons, namely a photo stream icon for opening the image application and a TV show icon for opening a TV show streaming application. However, the grid view 5220 can include other icons for other applications (e.g., movie streaming application, music streaming application, etc.). The grid view may also include a settings icon for opening a settings menu.
- Similar to the
photo stream menu 220 described above, thealbum list 5225 displays a list of photo streams. Here, each photo stream is listed with its name, a thumbnail representation of an image (e.g., a first image) in the photo stream, and a number that identifies the number of images in the photo stream). The photo stream menu includes apreview display area 5235 that displays one or more images from a photo stream selected from the list. - In the example illustrated in
FIG. 52 , thephoto stream list 5225 is organized into four different sections. Here, the top section lists a personal photo stream that represents a group of images shared only across the user's devices. The remaining sections include (1) a shared albums section (e.g., “my shared albums”) listing the name of each photo stream shared by the user, (2) an invitation section listing the name of each pending invitation for a photo stream from another user, and (3) a shared by others section listing the name of each photo stream shared by another user. One of ordinary skill in the art would understand that this is just one example organization scheme and that the application may organize the different types of photo streams differently in different embodiments. For example, the four sections can be organized into two sections with the personal photo stream in one section and the remaining photo streams in another section. - In some embodiments, the image application lists different shared photo streams in chronological or reverse chronological order by publication dates of the shared photo streams (e.g., the time and date the shared photo stream was created). Alternatively, the image application of some embodiments uses a different ordering to list the photo streams. For instance, the application may group all shared photo stream invitations at top or upper section of the photos stream menu list and sort them alphabetically. The application may also alphabetically sort all remaining photo streams and group them underneath the invitations. The alphabetical sorting is useful in that it allows the application's user to quickly find a shared photo stream when there are several different shared photo streams. For example, when there are many shared photo streams that were published at different dates, this sorting allows the user quickly search for a particular shared photo stream by its name. In some embodiments, the application provides user interface items to change the sorting of the shared photo streams and/or search for a particular photo stream.
- Returning to
FIG. 52 , thebatch view 5230 displays one or more images in a selected photo stream. When the photo stream includes sets of images that were added at different time, thebatch view 5230 presents the images in different groups or batches. Each group of images may be sequentially ordered (e.g., in chronological order starting with the oldest image on the top left corner to the newest image on the bottom right corner). In addition, all groups may be sequentially ordered (e.g., in reverse chronological order starting with the newest group and ending with the oldest group). - As shown, the
batch view 5230 is overlaid by atop bar 5240 that includes anew comments button 5250, aslide show button 5255, asettings button 5260, and anunsubscribe button 5265. Thenew comments button 5250 can be selected to display only images with new comments. An example of displaying only images with new comments will be described below by reference toFIG. 54 . Theslide show button 5255 can be selected to play a slide show of the images in the photo stream. The slide show may start with a first selected (e.g., highlighted) image in thebatch view 5230. In some embodiments, one or more music clips may be selected or streamed to accompany the slide show presentation. - The
settings tool 5260 can be selected to modify different photo stream setting. In some embodiments, the settings are contextual so they relate directly to the displayed photo stream. For example, the settings for a personal photo stream may differ from the settings for a photo stream shared with others. Theunsubscribe button 5265 can be used to unsubscribe from a photo stream. In some embodiments, thebutton 5265 may only appear in thetop bar 5240 when a subscribed photo stream is selected from thealbum list 5225. The selection of thisbutton 5265 may also display a prompt requiring confirmation of the unsubscribe operation. One reason for the displaying the prompt is that the images in the subscribed photo stream may be deleted from all devices associated with the subscriber. - Having described several user interface elements, the operations of opening a photo stream will be described by reference to three stages 5205-5215 that are illustrated in
FIG. 52 . Thefirst stage 5205 illustrates the grid view 5220 of the device's operating system. The grid view 5220 includes the photo stream icon and the TV show icon. In some embodiments, the icon for the image application displays a marking when one or more photo streams have been updated. In the example illustrated in thefirst stage 5205, the marking isbadge 5270 that is displayed partially over the photo stream icon. Thebadge 5270 includes a number “2” that indicates the number of new invitations and/or the number of photo streams that have been updated. Thebadge 5270 is removed from the icon when the image application is opened (e.g., to the album list 5225). - In the
first stage 5205, the photo stream icon is selected (e.g., with the device's remote). The user then selects the application (e.g., by selecting the select or enter button on the remote). Thesecond stage 5210 illustrates the image application after the selection of the photo stream icon. The selection results in the display of thealbum list 5225. Thealbum list 5225 lists different photo streams. Specifically, it lists the user's personal photo stream, a “Vacation” photo stream that is shared by the user, and a “Family Photos” photo stream that is shared by another user. Thelist 5225 also includes an invitation to a “Kids” photo stream. The user can select the “Kids” photo stream to accept or decline the invitation. The “Kids” photo stream is moved to the “Shared by Others” section when the invitation is accepted, and it is removed from thealbum list 5225 when the invitation is declined. - Similar to the marked icon, several of the photo streams listed in the
album list 5225 are marked with amarking 5275. This inner marking represents a second level of marking, the first level being at the icon level. As shown, the “Kids” photo stream is marked because it is a new photo stream invitation, and the “Family Photos” photo stream is marked because it has been updated (e.g., includes new images and/or comments). Here, the marking 5275 is a colored circle or dot (e.g., blue circle). In some embodiments, the number of circles corresponds to the number shown on the photo stream icon'sbadge 5270. A marking may be removed from the list once the corresponding photo stream has been opened. - As shown in the
second stage 5210, thealbum list 5225 has been navigated (e.g., by selecting the down button on the remote) to the “Family Photos” photo stream. The user then selects the “Family Photos” photo stream (e.g., by selecting the select or enter button on the remote). The selection results in the display of thebatch view 5230, as illustrated in thethird stage 5215. - The
third stage 5215 illustrates the application displaying thebatch view 5230. Thebatch view 5230 is overlaid by thetop bar 5240 with thenew comments button 5250, theslide show button 5255, thesettings button 5260, and theunsubscribe button 5265. Thetop bar 5240 also includes the name of the photo stream, the name of the owner of the photo stream, and a number (e.g., in parentheses) that identifies the number of images in the photo stream. - As shown in the
third stage 5215, two groups of images are displayed in thebatch view 5230. The first group includes six images and the second group includes four images. The owner of the photo stream has added these groups of images to the photo stream at different times. Each group includes a bottom field (5280 or 5285) that states the date and time the corresponding group of images were added, and the number of images in the group. In some embodiments, the application uses relative dating to display the date and time information. For example, if the date is within the week, the application may display “Today”, “Yesterday”, “Monday”, “Tuesday”, etc. However, if the date is not within the week, the application may display the day and the month of the date. If the date is not within the year, the application may display the year in some embodiments. - In the example illustrated in the
third stage 5215, several of the images are associated with comments. Specifically, three images are associated with comments. This is indicated by a marking that is displayed over each of the three corresponding thumbnail representations 5232-5234. Here, the marking is a comment bubble. The comment bubble is colored a first color (e.g., white) for thethumbnail image 5232 and a second different color (e.g., blue) for thethumbnail images new comments button 5250 that includes a number (e.g., in parentheses). - The previous example illustrated opening a photo stream using the digital media receiver.
FIG. 53 provides an illustrative example of navigating images in the photo stream. Three operational stages 5105-5115 of the image application are shown in this figure. - The
first stage 5305 illustrates the image application displaying thebatch view 5230. The user has navigated to the first image 5320 (e.g., by using the remote's directional buttons). The user then selects the first image 5320 (e.g., by selecting the remote's select or enter button). The selection causes the display of the full screen representation 5325 of the selected image, as illustrated in thesecond stage 5310. Here, the full screen representation is displayed with amarking 5330. The marking 5330 is a comment bubble with a number. This number corresponds to the number of comments associated with the image. - The user can navigate through the images in the photo stream in this full screen view. In some embodiments, the full-screen view displays images (e.g., across batches) in chronological order starting with the oldest image and ending with the newest images. The batches may also be sorted in reverse chronological order, starting with the newest batch and ending with the oldest batch. Alliteratively, the batches may be sorted in chronological order, starting with the earliest batch and ending with the latest batch. In addition, the images may be ordered in reverse chronological order starting with the latest image and ending with the earliest image.
- In the
second stage 5310, the user makes another selection (e.g., by selecting the select button or down button on the remote). The selection causes the application to display acarousel view 5335, as illustrated in thethird stage 5315. Thecarousel view 5335 displays several images of the photo stream across a screen. The images are displayed at different sizes that emulate a three-dimensional carousel of images. That is, the center image is the largest one while other images are progressively smaller. At any time, the user can change the center image by selecting a next or previous image (e.g., by selecting the next button on the remote). - In some embodiments, the
carousel view 5335 displays each image in a group along the virtual carousel in chronological order (i.e., from the newest to the oldest). Similar to the full screen view, the carousel view shows all images (e.g., across batches) in chronological order, starting with the oldest image on the left to the newest image on the right. The batches may also be sorted in reverse chronological order, starting with the newest batch and ending with the oldest batch. This is illustrated in thefirst stage 5305 as thefirst image 5320 in thebatch view 5230 is not the first image along the virtual carousel or in the list of images as it is the oldest image amongst the first group of images. Accordingly, five other images are in the list prior to thefirst image 5320. Only two of the five images are shown in thethird stage 5315. Similarly, the list of images includes different groups of images in chronological order. This is also shown in thethird stage 5315 as the last image (e.g., the image with the earliest timestamp) from the second group (e.g., the earlier batch) is displayed adjacent to thefirst image 5320 in the first group. In some embodiments, the batches are sorted in chronological order, starting with the earliest batch and ending with the latest batch. In addition, the images may be ordered in reverse chronological order starting with the latest image and ending with the earliest image. - As shown in the
third stage 5315, thecomment 5340 is displayed below theimage 5320. The comment's metadata is also shown in thecarousel view 5335. Specifically, the name of the person who left the comment and the time when the person left the comment are displayed below thecomment 5340. Achat bubble 5360 with the number of comments is also shown above thecomment 5340. In addition, anicon 5350 is displayed next to thechat bubble 5360. The user can select thisicon 5350 to indicate that the user likes or approves of theimage 5320. In some embodiments, the approval rating is counted similar to a comment in that the number of comments increases (e.g., in the chat bubble 5360). - In conjunction with the selectable icon, or instead of it, the application of some embodiments allows the user to add and/or delete comments. The comment may be selected for different actions or operations, such as replying to a comment, deleting the comment, etc. For example, a participant of the shared photo stream can navigate to the comment with the remote's navigational buttons and then press the select button. Upon selection of the comment, the application may display a list of different operations that can be performed.
- In some embodiments, the image application allows the user to view only images that are associated with one or more new comments.
FIG. 54 provides an illustrative example of filtering a display to only display images with one or more new comments. Three operational stages 5405-5415 of the application are shown in this figure. - The
first stage 5405 illustrates the image application displaying thebatch view 5230. The user has navigated to the new comments button 5250 (e.g., by using the remote's directional arrows). Thenew comments button 5250 is labeled with a number two indicating that two images are associated with unread comments. The user then selects the button 5250 (e.g., by selecting the remote's select or enter button). - The
second stage 5410 illustrates the image application's user interface after the selection of thenew comments button 5250. The selection causes the application to display thecarousel view 5335. Different from the carousel view described above, thecarousel view 5335 in this figure includesonly images image 5420 is the center image. The one comment that is associated with the image is displayed below theimage 5420. To view the next image with one or more unread comments, the user then navigates to the next image 5425 (e.g., by selecting the remote's next button). -
Third stage 5415 illustrates thecarousel view 5335 after navigating to theimage 5425. As shown, theimage 5425 is associated with five comments and one approval rating. The number of comments and/or approval ratings is indicated by the number that is shown on thecomment bubble 5430. In this example, only four single-lined comments are shown below theimage 5425. The other remaining comment is not shown. Different embodiments may display more or less lines of comments. - In some embodiments, the
carousel view 5335 presents comments associated with an image by automatically scrolling through them. The application of some embodiments automatically scrolls through unread comments starting from the newest to the oldest unread comment and then stops. The comments can also be scrolled with the remote's navigational buttons, in some embodiments. For example, the user can scroll up the comments by selecting the up (e.g., top) button and scroll down by selecting the down (e.g., bottom) button. - Several examples of the image application of some embodiments are described above.
FIG. 55 illustrates an example of another image application for a digital media receiver or smart TV. The image application is an alternate embodiment that implements the image sharing tools. Different from the examples described above, this application includes three controls along a top bar 5540: anew comments button 5525, aslide show button 5530, and amore button 5535. Thenew comments 5525 button is the same as the one described above by reference toFIG. 54 . - In the example illustrated in
FIG. 55 , the selection of theslide show button 5530 causes the application to display several selectable items relating to the slide show presentation. Specifically, the application provides a selectable item (e.g., a play button) for starting a slide show using the images in the shared photo stream. The selection of theslide show button 5530 also causes the application to display a set of slide show configuration tools for configuring the slide show presentation (e.g., to add a music track to the presentation, to specify how the images are presented, etc.). When themore button 5535 is selected, the application of some embodiments provides different management commands. For example, the application may provide a selectable item for unsubscribing from the displayed photo stream. The application may also provide a selectable item for using the images in the shared photo stream as a screen saver. Several other management commands are described above by reference toFIG. 21 . - Three
operational stages FIG. 55 . These stages are similar to the ones shown inFIG. 52 . Specifically, the images are grouped into twodifferent batches batch 5545 on the left-hand side is the newest batch, and thebatch 5550 on the right-hand side is the older batch. The images (5501-5504 or 5505-5508) in each batch are sorted starting with the oldest image on the top left and the newest image on the bottom right. - Different from several examples described above, the application of some embodiments linearizes the photo stream's images by taking the batch order and flattening into a straight set. This is shown in the
third stage 5520 because the first four images 5501-5504 in thecarousel view 5555 represent the first four images from thefirst batch 5545. The fifth image in thecarousel view 5555 is the first image fromsecond batch 5550. The user can view the remaining three images 5506-5508 in their batch order by using the remote control to scroll though the carousel view. Although this linearization does not sort the images in a proper chronological order, it allows the user to view the images in an order that was shown in the batch view. Instead of flattening the images into a straight set, the application may present the images in a number of different ways. For instance, the application may display the images from different batches in chronological order starting with the oldest image to the newest image without regard to the batch sorting. In some embodiments, the application provides selectable items to switch from one type of sorting (e.g., the sorting illustrated in the third stage 5520) to another type of sorting (e.g., chronological or reverse chronological sorting). - The image sharing tools of some embodiments are integrated into a main graphical user interface or shell of an operating system (“OS”). That is, the image sharing tools are not part of an image application but are part of the main graphical user interface (“GUI”). Several example of such image sharing tools will now be described by reference to
FIGS. 56-61 . In these examples, the operating system is a Windows operating system that is extended to support image-sharing operations. However, other types of operating systems (e.g., Linux, Mac OS X) can be extended to support the same or similar features. - A. Control Panel
- In some embodiments, the image sharing tools are integrated into an OS upon executing an installer program.
FIG. 56 provides an illustrative example of installing and configuring the image sharing tools. Four operational stages 5605-5620 of the owner's personal computer (PC) are illustrated in this figure. - The
first stage 5605 illustrates the OS's desktop. The owner has selected the installation program (e.g., executable file) to display aninstallation window 5690. The owner might have first downloaded the installation program using a web browser (not shown) or obtained it from a storage device (e.g., hard disk, flash driver, etc.). As shown, theinstallation window 5690 includes a heading indicating that it is installing a control panel item for configuring the image sharing tools. In addition to the heading, the installation window includes a message that the control panel item will be installed on the PC. The control panel is a part of the OS's GUI that allows users to configure different software and hardware settings. In thefirst stage 5605, the user selects (e.g., with a cursor click operation) anext button 5625. Alternatively, the user can select a cancelbutton 5630 to cancel the installation of the image sharing tools. - The
second stage 5610 illustrates the OS's desktop after installing the control panel item. Specifically, the control panel item has been opened to display alogin window 5635. The owner has typed in a username (e.g., an email address) and password into a username field and a password field, respectively. The user might have first created an account with a cloud service provider in order to register the username and password. The user then selects a sign-inbutton 5640 to sign in with the cloud service provider. As will be described in detail below, the cloud service provider of some embodiments facilitates the image sharing operations between different user devices. - The selection of the sign-in
button 5640 results in the display of a cloud service control panel window 5650 (herein after a settings menu), as illustrated in thethird stage 5615. Thesettings menu 5650 includes several selectable items (e.g., check boxes) for synchronizing bookmarks across user devices. Thesettings menu 5650 may also include selectable items for syncing calendars and other data. - In the example illustrated in the
third stage 5615, thesettings menu 5650 includes aselectable item 5655 for selecting a photo stream and abutton 5685 for setting photo stream options. The user can select (e.g., through a cursor click operation) this item to turn on or off the image streaming features. When selected, the owner's PC may be registered with the cloud service provider to share images with other devices associated with the owner and/or different users. In addition, the selection of thisitem 5655 may cause the image sharing tools to be integrated in the OS's shell. - In the
third stage 5615, the owner selects thebutton 5685. As shown in thefourth stage 5620, the selection results in the display of a photostream options window 5665. This window list a firstselectable item 5670 for turning on or off the owner's personal photo stream, and a secondselectable item 5675 for turning on or off shared photo streams. That is, thewindow 5665 includes separate controls for activating a personal photo stream that is shared across only the user's device, and for activating a shared photo stream that is shared with other users. Thewindow 5665 also includes acontrol 5680 to specify the location of the photo stream folder (e.g., that contain folders for the personal and shared photo streams). The window 5664 may also include one or more controls for blocking or allowing notifications (e.g., photo stream invitations, comment notifications, new image notifications) from people that are not in the user's address book or contact list. In some embodiments, thewindow 5665 include other options to turn on or off sending or receiving photos stream invitations, showing notifications in a notification area (e.g., a system tray on a taskbar), receiving invitations from only those in the owner's contact list, etc. - B. Creating a New Photo Stream
- The previous example illustrates installing and configuring image sharing tools on the owner's PC. Once configured, the image sharing tools allow a user to create and modify a photo stream and share comments with other users (e.g., regarding images). An example of creating a photo stream will now be described by reference to
FIGS. 57-58 . Specifically,FIG. 57 illustrates an example of specifying a subscriber and a name for the photo stream. This is followed byFIG. 58 , which illustrates selecting images for the photo stream and inputting comments for several of the images. - Four operational stages 5705-5720 of the OS are illustrated in
FIG. 57 . As shown, the OS is displaying a browser orexplorer window 5725. The image-sharing tool has been integrated into thebrowser window 5725. Specifically, the browser'smenu bar 5730 includes a new photostream menu item 5735 for creating a new photo stream, addphotos menu item 5740 for adding images to an existing photo stream, and anoptions menu item 5745 for specifying options for the photo stream. In some embodiments, the selection of the addphoto menu item 5740 causes thebrowser 5725 to display a list of available photo streams to add one or more selected images. In some embodiments, the selection of theoptions menu item 5745 causes the OS to display different options for adding a new subscriber, deleting a subscriber, resending a photo stream invitation, and/or turning on or off web publication for the photo stream. The displayed options may also include an option for unsubscribing from a photo stream. This unsubscribe option may only be selected or displayed when the photo stream (e.g., the photo stream displayed in the browser 5725) is one that was subscribed to by the PC's user. - In addition to the new menu items, the browser's hierarchical or tree view includes a photo stream item 5750 (hereinafter a photo stream folder) with a photo stream icon. The
photo stream folder 5750 includes a sub folder for the photo stream that is shared only by the owner's devices. - As shown in the
first stage 5705, the owner selects (e.g., through a cursor click operation) the new photostream menu item 5735. The selection causes the OS to display a photostream options window 5755, as illustrated in thesecond stage 5710. Thiswindow 5755 includes thephoto stream icon 5760 on the top left-hand corner with a heading that states “New Photo Stream”. Beneath the heading is asubscriber field 5765 for inputting subscribers for the photo stream. Thesubscriber field 5765 is followed by aname field 5770 for specifying a name for the photo stream and a selectable item (e.g., a check box 5775) for turning on or off the option to publish the photo stream to a website (e.g., a public website). - In the
second stage 5710, the owner inputs an email address of a potential subscriber. The owner can input one or more email addresses of other potential subscribers into thisfield 5765. As shown in thethird stage 5715, the user then inputs a title or name for the photo stream in thename field 5770. In thefourth stage 5720, the user then selects anext button 5780 to continue creating the photo stream. -
FIG. 58 illustrates the OS after the selection of thenext button 5780. Four operational stages 5805-5820 of the OS are illustrated in this figure. In thefirst stage 5805, the owner selects several images for the photo stream. Specifically, the images are selected using a choosephotos window 5825. Thefirst image 5830 is named “Me_Singing”, thesecond image 5832 is named with a default name (e.g., one specified by a camera), and thethird image 5835 is named “Bike”. After choosing the images, the user then selects a continuebutton 5840. - The
second stage 5810 illustrates the OS after selecting the continuebutton 5840. As shown, the selected images are displayed in acomments window 5845. Thecomments windows 5845 displays each selected image with a field to associate a comment with the selected image. In some embodiments, the comment field is automatically populated based on the name of the image. For example, one or more installed components of the image sharing tools may analyze the filename of the image and determine whether to input the filename as a comment. - The filename may be analyzed using a number of different techniques. In some embodiments, the analysis entails identifying one or more words, names, or people in the filename. The analysis may entail identifying random names that are generated by different image capturing devices (e.g., digital cameras, smart phones, tablets). The analysis may also entail identifying different characters (e.g., underscore) and replacing them with a space. In the example illustrated in the
second stage 5810, thefirst image 5830 and thethird image 5835 are associated with their corresponding filenames. In addition, the underscore in the name of thefirst image 5830 has been replaced with a space for the first image's comment. The owner can modify any one of these comments by inputting a new comment in the corresponding comment field. - As shown in the
second stage 5810, the owner selects a donebutton 5850 to create the new photo stream. Thethird stage 5815 illustrates thebrowser 5725 after creating the photo stream. As shown, the newphoto stream folder 5855 is displayed on thebrowser 5725. The newphoto stream folder 5855 is displayed with an icon that provides a visual indication of the images in the photo stream. Specifically, the icon includes thumbnail representations of the three images 5830-5835 in the photo stream. The thumbnails are also sized differently. That is, the first thumbnail image is shown larger than the other two thumbnail images. In addition to thephoto stream folder 5855, the new photo stream is listed in the browser's hierarchical ortree view 5750. - The
fourth stage 5820 illustrates thebrowser 5725 after the owner has selected the photostream folder icon 5855. The selection results in thebrowser 5725 displaying the images in the photo stream. In the example illustrated in thefourth stage 5820, each of the images 5830-5835 associated with a particular comment is shown with a marking 5860 (e.g., a comment bubble). The marking 5860 provides a visual indication to the owner as to the association of the particular comment with the corresponding image. In some embodiments, the color of the marking indicates whether the image is associated with one or more unread comments. For instance, a first color (e.g., white) may indicate that there are no unread comments associated with an image, and a second different color (e.g., blue) may indicate that there are one or more unread comments associated with the image. - Here, the
batch view 5865 includes a photo stream heading 5870 that identifies the name of the photo stream and the number of images in the photo stream, a batch heading 5875 that identifies the date and time when the images were added to the photo stream and the number of images in the batch. The batch heading 5875 is followed by the images in the photo stream. In presenting the images, the image sharing tools select a particular layout based on the number of images and/or the orientations of those images. Several examples of selecting different layouts are described above by reference toFIGS. 42-47 . - As shown in the
fourth stage 5820, thebrowser window 5725 displays additional information (e.g., metadata) associated with the photos stream. Specifically, the browser'smetadata section 5880 lists (1) the name of the photo stream, (2) the owner of the photo stream, the number of images in the photo stream, (3) each subscriber with corresponding subscription status, and (4) a public website status stating that the feature of publishing to the public website is not activated or turned on for this photo stream. - C. Accepting the Invitation
- In the previous two examples, the owner creates a new photo stream using the image sharing tools that are integrated into the browser. Once the new photo stream is created, a photo stream invitation is pushed to one or more devices associated with the person invited to the photo stream. One or more of these devices may be the same type of computing device (e.g., a PC) or some other type of device with a different platform (e.g., a smart phone, tablet, digital media receiver, etc.).
-
FIG. 59 provides an illustrative example of accepting a photo stream invitation with a subscriber's device. In this example, the subscriber's device is a PC that is running the same OS as the owner's device. Three operational stages 5905-5915 are shown in this figure. The figure includes the OS'sdesktop 5920 andtaskbar 5925. - The
first stage 5905 illustrates an example notification that is received via thetaskbar 5925. As shown, the notification appears as a pop-up window 5930 (e.g., bubble). In some embodiments, the pop-upwindow 5930 appears over a cloud servicesystem tray icon 5935 in thetask bar 5925. As shown, the pop-upwindow 5930 includes a photo stream icon and a notification stating that a new photo stream invitation has been received. The notification also states how to select (e.g., click) the window to view the photo stream invitation. - In the
first stage 5905, the recipient selects the pop-upwindow 5930. The selection causes the OS to display the photo stream invitation window 5940, as illustrated in thesecond stage 5910. The invitation includes the photo stream icon and the invitation. The invitation states the owner and name of the photo stream. The photo stream invitation window 5940 also includes an acceptbutton 5945 to accept the invitation, adecline button 5950 to decline it, and a decide laterbutton 5955 to keep the invitation pending. - The
third stage 5915 illustrates the OS after the recipient has accepted the invitation. The selection results in awindow browser 5725 displaying the images in the photo stream. Similar to the owner's device, the images are displayed in thebatch view 5865. - D. Modifying a Photo Stream
- In the previous example, the recipient accepts a photo stream invitation to view images in the photo stream. In some embodiments, the image sharing tools can be used to add or delete images from the photo stream.
FIG. 60 provides an example of adding an image to a photo stream. Three operational stages 6005-6015 of the owner's PC are illustrated in this figure. - In the
first stage 6005, the OS displays its desktop. The desktop includes anicon 6020 for an image file. The owner selects (e.g., by selecting the right-click button on the cursor controller, or holding a modifier key and selecting the left-click button) theimage icon 6020 from the desktop. - As shown in the
second stage 6010, the selection causes the OS to display acontext menu 6025. Thecontext menu 6025 includes amenu item 6030 to open the image file. Thecontext menu 6025 also includes a menu item to add tophoto stream 6035 for adding one or more selected images to a particular photo stream. Thiscontext menu 6025 is an extension to the shell (e.g., when the cloud service control panel was installed on the owner's PC). In some embodiments, the menu item to add tophoto stream 6035 only appears upon turning on the image sharing feature (e.g., by selecting a check box in the cloud service control panel (not shown)). - In the
second stage 6010, the owner has selected the menu item to add tophoto stream 6035. The selection results in a list of existing photo streams displayed in asub-menu 6040. Thesub-menu 6040 includes amenu item 6045 to add the selected image to the owner's personal photo stream, amenu item 6050 to add it to a photo stream shared with a subscriber, and amenu item 6055 to add it to a new photo stream. Here, the owner selects themenu item 6050 to add the selected image to the photo stream that is shared with the subscriber. - The
third stage 6015 illustrates the OS after selecting themenu item 6050. As shown, the selected image is displayed in thecomments window 5845. As mentioned above, thecomments windows 5845 displays each selected image with a field to associate a comment for the selected image. In thethird stage 6015, the owner selects the donebutton 6060 to add the selected image to the photo stream. - The previous example illustrated one of several different ways one or more selected images can be added to a photo stream. In conjunction with or instead of the context menu, the image sharing tools of some embodiments allow an owner to add images to a photo stream by dragging and dropping images onto the photo stream folder. The owner can also delete one or more selected images from the photo stream folder. When deleted, the images may be deleted from one or more of the owner's other devices and/or one or more of each subscriber's device. In some embodiments, the owner can delete the photo stream folder to delete the entire photo stream from one or more of the owner's other devices and/or one or more of each subscriber's device.
- E. Commenting
- Several examples of commenting with different devices have been described above. These examples include commenting using a smart phone, tablet, and a digital media receiver.
FIG. 61 provides an illustrative example of leaving a comment using a PC. Four operational stages 6105-6120 of the user's PC are illustrated in this figure. - In the
first stage 6105, thebrowser 5725 displays images in a photo stream. The heading 6125 includes the name of the photo stream and the number of images in the photo stream. Thesub-heading 6130 includes the date and time that the group of images was added to the photo stream. Thefirst image 6135 has been selected from thebrowser 5725. The selection results in the display of the image's metadata in themetadata section 6140. Specifically, themetadata section 6140 states (1) the image format (e.g., JPEG, GIF, PNG), (2) the date (e.g., timestamp, file creation date) associated with the image, and (3) the number of comments associated with image. The metadata section also includes acomments button 6145 for opening a comments tool that is described below. - As shown in the
first stage 6105, theimage 6135 is associated with four comments. A marking 6150 is displayed over theimage 6135 on the lower right-hand corner. The marking 6150 (e.g., the double comment bubble) indicates that the user is a part of the conversation. That is, the user has previously left at least one comment regarding theimage 6135 and a subscriber has left at least one other comment regarding the same image. The color of the marking 6150 indicates that there are one or more unread comments. - The
first stage 6105 illustrates the selection of thecomments button 6145. The selection causes thebrowser 5725 to display thecomments tool 6155, as illustrated in thesecond stage 6110. Thecomments tool 6155 appears as a side bar of the browser. In this example, thecomments tool 6155 is shown on the right side of thebrowser 5725. The comments tool includes acomment field 6160 for inputting a comment and apost button 6165 to post the comment. Thecomment field 6160 displays a line of text that invites the user to add a comment. Thecomments tool 6155 is displayed with a heading “Comments”. Adjacent to the heading is a selectable item or selectable icon 6170 (e.g., of a heart, smiley face) that can be selected to indicate that the user approves or likes the images. - As shown in the
second stage 6110, the comments are listed under the comments heading. Specifically, there are four comments associated with theimage 6135. As shown by the comments' metadata, the user has left one comment at one time and the subscriber has left another comment at another time. The remaining two comments are attributed to the selections of theselectable item 6170. Accordingly, the image sharing tools of some embodiments counts the number of approvals or likes as comments. - The
third stage 6115 illustrates thecomments tool 6155 after the user has inputted a comment into thecomment field 6160. The user then selects thepost button 6165 to post the comment. As shown in thefourth stage 6120, the new comment has been added into thecomments tool 6155. Specifically, the new comment has been displayed at the top of the comments list but below the approval ratings. The number of comments displayed in themetadata section 6140 has also been incremented by one. In the example described above, a number of different comments are listed in thecomments tool 6155. When the number of comments exceeds the display area of the comments tool, the comments tool of some embodiments provides a scroll bar for scrolling through the comments. - Several examples of the integrated image sharing tools are described above.
FIG. 62 provides an illustrative example of an alternate embodiment of the integrated image sharing tools. Three operational stages 6205-6205 of the user's PC are illustrated in this figure.FIG. 62 is similar to the ones described above. However, the image sharing tools do not include a bottom section that displays information about a shared photo stream or its images. As described above, the bottom section contained a comment button for showing comments. Instead of the comment button, themenu bar 6245 includes amenu item 6220. The menu item can be selected to display any comment associated with a selected image and/or to leave a comment regarding the image. Alternatively, the user can select thecomment bubble 6250 to display or leave comments. - In the example illustrated in
FIG. 62 , themenu bar 6245 includes amenu item 6225 for displaying a photostream option window 6230. The photo stream options window may also be displayed through a context menu item. Thewindow 6230 is similar to the options sheet described above by reference toFIG. 21 . Specially, the window includes aname field 6235 for specifying the name of the shared photo stream, asubscriber field 6240 for adding or removing subscribers, and a control 6245 (e.g., a checkbox) for specifying whether the shared photo stream is published to a public website. In some embodiments, the image sharing tools provide different controls depending on whether the user is an owner or subscriber. For instance, the photostream options window 6230 may include a control (e.g., button) for unsubscribing from a subscribed photo stream when the browser window displays images from the subscribed photo stream. - The previous section describes several examples of how the image sharing tools are provided in one computing platform (e.g., Windows platform). Several examples of the image sharing tools on another computing platform will now be described below by reference to
FIGS. 63-65 . In these examples, the image sharing tools are integrated into an image organizing and editing application that operates on a Mac Operating System (e.g., Mac OS X). The OS may include one or more other applications (e.g., a professional image editing and management application) that include the same or similar image sharing features. - A. Image Sharing Tools in an Image Organizing and Editing Application
-
FIG. 63 provides an illustrative example of the image sharing tools that are integrated into an image organizing and editing application. Specifically, this figure illustrates in four operational stages 6305-6320 how an owner can create a photo stream using the image organizing and editing application. - As shown in the
first stage 6305, the name of the application is “Photo Application”. The photo application includes (1) asidebar 6325 that displays different collections of images, (2) animage display area 6330 that displays images in a collection, and (3) ashare button 6335 to share one or more images selected from theimage display area 6330. The photo application also includes abottom bar 6340 that displays different tools, such as asearch tool 6345 for searching images, aslider 6350 for resizing images in theimage display area 6330, aslide show tool 6355 for playing a slideshow of images in a collection, anedit button 6360 for selecting different editing operations (e.g., removing red eye, cropping, enhancing, etc.) to perform on a selected image. In addition, thebottom bar 6340 includes an add tobutton 6365 for adding selected images to a particular collection (e.g., an album, a photo stream, etc.) and ashare button 6335 for sharing the selected images. - The
first stage 6305 illustrates selecting a photo stream option using theshare button 6335. As shown, the “Photos” collection has been selected from theside bar 6325. Based on the selection, theimage display area 6330 displays thumbnail representations of the images in the collection. The owner has selected two images from theimage display area 6330. To share these images, the owner has also selected theshare button 6335. The selection of the share button results in the display of a pop-upwindow 6370. The pop-upwindow 6370 includes a list of share options. Here, the list includes anoption 6372 to order prints of the selected images, anoption 6373 to email the images, and anoption 6375 to create a photo stream using the images. - As shown in the
first stage 6305, the owner selects thephoto stream option 6375 from the pop-upwindow 6370. The selection causes the application to display other options in a pop-upwindow 6380, as illustrated in thesecond stage 6310. The pop-upwindow 6380 includes anoption 6382 to create a new photo stream using the selected images and anoption 6383 to add the selected images to a previous created photo stream. In this example, the previously created photo stream is the owner's personal photo stream. As mentioned above, the personal photo stream represents a group of images that are streamed or pushed to those devices associated with one owner (e.g., the owner). A slider for scrolling through different photo streams may be presented on the pop-up window 6380 (e.g., when all of the different photo streams cannot be listed in its limited space). - The
third stage 6315 illustrates the photo application after the selection of the newphoto stream option 6382. The selection causes the application to display a photostream options window 6385. This window includes the photo stream icon on the top left-hand corner with a heading that states “New Photo Stream”. Beneath the heading is asubscriber field 6386 for designating subscribers for the photo stream. Thesubscriber field 6386 is followed by aname field 6388 for specifying a name for the photo stream and a selectable item (e.g., a check box 6389) for turning on or off the option to publish the photo stream to a website (e.g., a public website). - In the
third stage 6315, the owner has inputted an email address of a potential subscriber. The owner can input one or more email addresses of other potential subscribers into thisfield 6386. The owner has also inputted a name for the photo stream in thename field 6388. As shown, the owner then selects theOK button 6387 to create the photo stream. In some embodiments, the application provides a window (not shown) to input a particular comment for one or more of the selected images. - The
fourth stage 6320 illustrates the application after the owner has created the photo stream. As shown, theimage display area 6330 includes a heading that includes atop bar 6390 that includes anoption 6393 to display each image the personal photo stream, anoption 6395 to display each image in the newly created photo stream, and anoption 6392 to display all images in the different photo streams. Here, theimage display area 6330 displays all the images as theoption 6392 is selected from thetop bar 6390. Theimage display area 6330 is also organized by new images and old images. The new images are displayed at the top and the one previous image is displayed below. Each group of images includes a heading that states the group name (e.g., “New Photos”, “Previous Photos”) and the number of images in the group. - Conceptually, the application provides a form of a batch view that is different from the one that was discussed above (e.g., by reference to
FIGS. 50-52 ). As illustrated in this figure, the previous or new image section can include multiple different batches. One reason for displaying the images in this format is that it makes more efficient use of screen real estate than the above-described batch view. In some embodiments, the application displays images in one view format and provides an option to display the images in another view format. - B. Accepting the Invitation
- In the previous example, the owner creates a new photo stream using the image sharing tools that are integrated into the photo application. Once the new photo stream is created, a photo stream invitation is pushed to one or more devices associated with the person who was invited to the photo stream. One or more of these devices may be the same type of computing device or some other type of device with a different platform (e.g., a smart phone, tablet, digital media receiver, etc.)
-
FIG. 64 provides an illustrative example of accepting a photo stream invitation with a subscriber's device. In this example, the subscriber's device is the same type of device that is running the same OS as the owner's device. Four operational stages 6405-6420 are shown in this figure. The figure includes the OS'sdesktop 6425 and adock 6430. Thedock 6430 displays icons for opening different applications. As shown, the dock includes anicon 6435 for opening the photo application. - The
first stage 6405 illustrates an example notification that is at the OS level. As shown, the notification appears as a marking on the application'sicon 6435. One type of notification is a marking or a badge that appears at least partially over the application's icon. This is shown in thefirst stage 6405 as abadge 6440 that is displayed on the icon of the photo application. Thebadge 6440 includes a number (e.g., “1”). In the example illustrated in thefirst stage 6405, it indicates there is one new photo stream invitation. Alternatively, the badge may indicate that there is an update to one existing photo stream. - In the
first stage 6405, the user selects the icon of the photo application on thedock 6430. The selection causes the photo application to open a pop upwindow 6445 that includes a message, as illustrated in thesecond stage 6410. The message states that the recipient has received a first photo stream invitation, and that the owner would like to share a photo stream with the recipient. The message also provides instructions for viewing the photo stream. Specifically, it states how to select the photo stream under the web section in the source list on the left (i.e., the side bar 6450). In some embodiments, the application displays this window only once upon the recipient receiving a first invitation. That is, the application may not display the window when another invitation is received at the recipient's device. - As shown, the
window 6445 includes a show mebutton 6460 and a cancelbutton 6455. In some embodiments, the selection of the show mebutton 6460 causes the application to display a top level a photo stream menu. The cancelbutton 6455 closes the window. In thesecond stage 6410, the user selects the show mebutton 6460. - The
third stage 6415 illustrates the application after the selection of the show mebutton 6460. The selection causes the application to display an icon representing thenew photo stream 6465 in theimage display area 6330. Thephoto stream 6465 has also been highlighted in theside bar 6450. Thephoto stream 6465 in the side bar is also marked with a number that indicates that there is a new invitation for a new photo stream or an update to an existing one. This marking provides the recipient with a visual indication at the application level, as opposed to a visual indication at the OS level. - As shown, the
image display area 6330 is overlaid by a heading 6470 that state “Photo Stream”. The name of the new photo stream is also marked with a marking. Here, the marking is a colored dot (e.g., a blue dot). Different from the markings described above, the marking here provides the recipient with a visual indication at the album level or photo stream level. - In the
third stage 6415, the recipient selects thenew photo stream 6465 from theimage display area 6330. The selection causes the application to display a photostream invitation window 6475, as illustrated in thefourth stage 6420. The invitation includes the photo stream icon and the invitation. The invitation originates from a device of the owner that shared the images. The invitation states the name and owner of the photo stream. The photostream invitation window 6475 also includes an acceptbutton 6480 to accept the invitation, adecline button 6485 to decline it, and a decide laterbutton 6482 to keep the invitation pending. Here, the recipient selects the acceptbutton 6480 to accept the invitation. Once accepted, the images in the photo stream may be downloaded and presented in theimage display area 6330. - C. Commenting
- The previous example illustrated accepting a photo stream invitation on a subscriber's device.
FIG. 65 provides an illustrative example of how the image sharing tools of some embodiments present comments on the photo application. Four operational stages 6505-6520 of the subscriber's device are illustrated in this figure. - The
first stage 6505 illustrates theimage display area 6330 displaying the photo stream. The user has added an image to the photo stream, and two new comments have been left for the image. In some embodiments, the application plays a sound when there is an update to a photo stream. For example, the application may play a ding sound, a bell sound, a ring sound, or some other sound to indicate there is an update to a photo stream (e.g., there is a new comment, new image, etc.) and/or when there is a new photo stream invitation. The application may play different sounds for different events, in some embodiments. - In the example illustrated in the
first stage 6505, the application provides several different visual indications of an update to a photo stream. At the application level, theside bar 6450 displays a marking next to thephoto stream 6525. Here the number (i.e., “1”) indicates that there is an update to one photo stream. At the photo stream list or album list level, a photo stream representation (e.g., a thumbnail representation) may be marked with one or more markings. For example, thephoto stream representation 6530 is marked with a number (i.e., “1”) next to an image symbol 6535 (e.g., a photo icon) and a different number (i.e., “2”) next to a comment symbol 6540 (e.g., a chat bubble). These markings provide a visual indication to the subscriber that there is one new image and two new comments. - In the
first stage 6505, the user selects thephoto stream representation 6530 from the image display are 6330. As shown in thesecond stage 6510, the selection causes the application to display thumbnail representations of the images in the photo stream. In some embodiments, the display is dynamically or automatically updated each time a person (e.g., the owner shares) additional images. At this photo stream level, the application provides another visual indication of the updates. For example, the images are batched into different sections (e.g., a new image section and a previous image section). Different from several of the batch view described above, the current batch view display images by displaying new images separately from all other images that were added previously. This can entail grouping previous sets or batches of images into one group (e.g., labeled previous photos). In addition, the thumbnail representation of the image is marked with a marking (e.g., a chat bubble). Many examples of such a marking are described above. - As shown in the
second stage 6510, thethumbnail representation 6545 of the new image is associated with new comments. In thethird stage 6515, the user selects aninfo button 6550 from thebottom bar 6340. The selection of theinfo button 6550 causes the application to display aninfo pane 6555, as illustrated in thefourth stage 6520. - The
fourth stage 6520 illustrates the application displaying theinfo pane 6555. Theinfo pane 6555 appears on the right hand side of theimage display area 6330. The info pane displays information (e.g., metadata) associated with the selected image. In this example, theinfo pane 6555 lists (1) the image resolution, (2) the name of the image, and (3) a date or timestamp associated with the image. However, the info pane may list other information, such location information (e.g., based on GPS data associated with the image), people information (e.g., based on face detection algorithms), etc. - In addition to image info, the
info pane 6555 lists comments associated with the image. In some embodiments, the application provides tools to send and receive comments across multiple different sources. This is illustrated in thefourth stage 6520 as theinfo pane 6555 lists comment from a subscriber of the photo stream as well as a comment that is received through a social network website. That is, the application is not only integrated with the image sharing tools but is also integrated with the social network website (e.g., through the website's API). This allows the info pane display area to display comments from people associated with the social network website as well as those people associated with the shared stream. - In the example illustrated in the
fourth stage 6520, the comment section includes a heading that states the total number of comments that are received from both sources. Each source includes a heading. Specifically, the photo stream comment is listed under a photo stream heading and the social network comment is listed under a social network heading. Each of the two sections includes an add comment field to add a comment (i.e., 6556 or 6558) and a post button for adding comments. The photo stream section also includes an icon or symbol (e.g., a smiley face icon) that can be selected to indicate that the subscriber approves or likes the selected image. The social network website section may have a similar selectable item in some embodiments. - In the example described above, the
info pane 6555 lists the image's metadata as well as the comments associated with the image. In some embodiments, the application displays other information relating to the photo stream in the info pane. For example, the photo application of some embodiments displays information regarding a photo stream. For example, when no image is selected in the image display area, the application may present the photo stream's name, a list of subscribers, or an indication of whether the public website version of the photo stream has been turned on or off. In some embodiments, the info pane can be used to modify the photo stream. For example, the info pane can be used to rename the photo stream, add or remove subscribers, resend an invitation or nudge the recipient, or turn on or off the public website version. When the public website is turned on, the info pane may list the URL of the public website. - In some embodiments, the image sharing tools are implemented across different user devices and/or different platforms (e.g., from different vendors). To facilitate the image and comment sharing operations, the devices (hereinafter clients) may communicate with several different servers. These servers may include storage servers (e.g., third-party storage servers) and control servers.
FIG. 66 conceptually illustrates an example system architecture in which the clients communicate with the different servers to share images and comments. - As shown in
FIG. 66 , the figure includes different clients 6620-6640, a set ofcontrol servers 6610 and a set ofstorage servers 6615. The clients are different computing devices that communicate with the control and storage servers overnetwork 6605. Any one of these devices can be used to create a photo stream that includes a set of images, and invite one or more individuals to view and/or comment on the set of images. In the example illustrated inFIG. 66 , the clients includes asmart phone 6620, a laptop 6630 (e.g., that operates on a MAC OS), a personal computer 6625 (e.g., that operate on a Windows OS), atablet 6635, and adigital media receiver 6640. However, a client can be one of any number of different types of devices, such as a Personal Data Assistant (PDA), a workstation, etc. - The set of
storage servers 6615 stores photo stream images for the different clients. The set of storages may be contracted by the cloud service provider (e.g., that manages the set of control servers 6610) to store content for the different clients. According, the set of storage servers may be a set of third-party servers. To facilitate the storage service, the set of third-party storage servers may be associated with an application program interface (API). The client devices may use this API to store and receive images stored by the third-party storage servers. The set of storage servers may store the images for a temporary period of time, in some embodiments. - The set of
control servers 6610 manages control data associated with the different clients. Examples of such control data include user data, photo stream data (e.g., a list of photo stream albums associated with a user, a list of individuals that can access a particular photos stream), etc. The control data may include references to the images that are stored by the set ofstorage servers 6615. Thus, the set of control servers may maintain information relating to different shared streams, while not storing any of the images associated with those shared streams. However, the set of control servers may store comments associated images in the photo stream. To manage control data, each control server is associated with one or more storages (e.g., data stores). In some embodiments, the control server and the one or more storages is a logical partition in which data relating a particular user resides. - In some embodiments, the control server is configured to receive notifications from a client that one or more files are to be transmitted from the client. In response to such a notification, the control server sends, to the client, storage location data that indicates where the one or more files are to be sent. The storage location data may be data associated with a storage server. The client uses the storage location data to transmit the one or more files to the storage service.
- The control server of some embodiments is a push server that pushes notifications (e.g., event triggers) to clients. For instance, when one user creates a shared photo stream that invites another person, the control server may add the other person to a list of authorized users that are able to access the shared stream. The control server may add the person once he or she accepts the invitation, in some embodiments. The control server may also send messages to all of the clients associated with the person. The clients then request for a list of albums from the control server. The content server provides the list with a new photo stream associated with an invitation. When the person accepts the invitation on one client, then all of the clients may retrieve the images in the photo stream from the set of
storage servers 6615. As mentioned above, the notifications may be presented differently in different clients. For example, thesmart phone client 6620 may display a badge (e.g., over an application icon, play a sound, and/or cause it to vibrate), while thePC client 6625 may display a notification through the OS's system tray. - In some embodiments, the set of control servers communicates with the different clients using one custom protocol. That is, each client uses the same protocol to communicate with a control server. The protocol may identify a particular type of client device (e.g., a digital media receiver, a smart phone). However, the control server may not perform any special operation or logic for that particular type of client. In some embodiments, the protocol is based on an API that includes different API calls or messages for modifying the photo stream's images (e.g., adding images, deleting images), inviting subscribers, accepting invitations, declining invitation, managing comments (e.g., creating a comment, deleting a comment), etc.
-
FIG. 67 conceptually illustrates an example of how a user's photo streams are represented at the server side (e.g., at a control server). As shown, the figure includes a hierarchical structure that represents the different hierarchical levels of the user's photo stream data. This figure includesuser 6705, a set of photo streams 6710-6720, a set of images 6725-6735, and a set of comments 6740-6750. These different boxes represent data structures associated with the user's photo streams. - In the example illustrated in
FIG. 67 , the user is at the top of the hierarchical structure. The user may be associated with a user identification (“ID”) and password. As shown, the user can be associated with any number of photo streams, including a personal photo stream and a shared stream. Here, the user is associated with three photo streams 6710-6720. - In some embodiments, each photo stream is associated with a photo stream ID that uniquely identifies the photo stream and a name that identifies a name for the photo stream. Each photo stream is associated with one or more images. For example, the images 6725-6735 are associated with the
photo stream 6710. As mentioned above, the images may be stored at one or more third party storages. Accordingly, the control server may store a reference to each image (a URL) using the photo stream data structure. - In some embodiments, the control server references the image using a first key (e.g., unique key) for identifying the image in the photo stream. The first key may be associated with a second key for accessing the image file that is stored at a storage server (e.g., a third party storage server). The second key may include or is a checksum of that one image file. In some embodiments, the image file is run through a computation algorithm that generates the checksum, which is a hash of the image's content. When a same image is inputted multiple times, the algorithm returns the same file hash (e.g., hash value). Different from the control server, the storage server may reference the image by the file hash, instead of the first key. This allows the storage server to store one image, even though that image is in multiple different photo streams. On the other hand, the control server may reference the same image in different photo streams using different unique keys. Each client may generate keys and/or checksums for its images, in some embodiments.
- As shown in
FIG. 67 , the comments are at the last level and are associated with the image. Many comments can be associated with the one image. For example, the comments 6740-6750 are associated with theimage 6725. In some embodiments, the data structure for a comment is associated with a name or user ID of the user that left the comment. The data structure may also include a comment ID for locating or accessing the comment and a timestamp for identifying the time and/or date the comment was left or posted. - The previous section described a control server that facilitates the sharing of content (e.g., images, video clips) and comments by managing control data associated with a shared content stream. Examples of such control data include user data (e.g., a list of devices associated with a user) and photo stream data (e.g., a list of photo stream associated with the user, a list of individuals that can access a particular photo stream, file location data, etc.). Several example processes of such a control server will now be described by reference to
FIGS. 68-71 . - A. Notifying Recipients of a Shared Stream Invitation
-
FIG. 68 conceptually illustrates anexample process 6800 that some embodiments perform to notify recipients of a new-shared stream invitation. Theprocess 6800, in some embodiments, is performed by the control server. Theprocess 6800 begins when it receives (at 6805) a message regarding a new shared content stream from a source device (e.g., the owner's device). Theprocess 6800 then sends (at 6810) file location data to the source device. In some embodiments, the file location data includes one or more URLs to upload content to a storage server (e.g., a third-party storage server). - At 6815, the
process 6800 identities each recipient that has been invited to join the shared stream. For example, theprocess 6800 might identify a username associated with each recipient. In some embodiment, the username is the same as the recipient's email address. Based on the identification, theprocess 6800 identifies (at 6820) one or more devices (e.g., destination devices) associated with each recipient. Theprocess 6800 sends (at 6825) a message regarding the shared stream invitation to each recipient device. Theprocess 6800 then ends. - Some embodiments perform variations on the
process 6800. The specific operations may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments. Furthermore, theprocess 6800 could be implemented using several sub-processes, or as part of a larger macro process. For instance, theprocess 6800 might identify each device associated with the owner and send a message regarding an update to a shared content stream. Theprocess 6800 might also send the file location data to one or more owner devices. The owner devices may then download the content using the file location data. - B. Adding Subscribers to a Shared Stream
- The previous example described sending a shared stream invitation to each recipient device that is associated with a shared content stream.
FIG. 69 conceptually illustrates anexample process 6900 that some embodiments perform when it receives a response from a recipient device. Theprocess 6900, in some embodiments, is performed by the control server. Theprocess 6900 begins when it receives (at 6905) receives a message that requests a list of shared streams from a recipient's device. Theprocess 6900 then sends (at 6910) the list of shared streams to the recipient device. - At 6915, the
process 6900 receives, from the recipient's device, a message regarding the shared stream invitation. Based on the message, theprocess 6900 determines (at 6920) whether the shared stream invitation has been accepted. If so, theprocess 6900 marks or specifies (at 6925) the recipient as a subscriber in an authorization list that is associated with the shared content stream. In some embodiments, the authorization list lists different individuals that can access the shared content stream. The list may also specify whether a subscriber can add content to a shared stream, remove content, add or remove subscribers, and/or make comments. - After marking the recipient as a subscriber, the
process 6900 sends (at 6930) file location data to each device associated with the recipient. Each recipient device may then download the shared content from the storage server using the file location data. Theprocess 6900 then notifies the owner of the acceptance of the shared stream invitation. Specifically, theprocess 6900 sends (at 6935) a message regarding the acceptance of to each device associated with the owner. One or more of the owner's device may then display a notification (e.g., banner notification, system tray notification) regarding the acceptance of the shared stream invitation. - If the recipient has not accepted the shared stream invitation, the
process 6900 removes (at 6940) the recipient from the authorization list. Instead of removing the recipient, theprocess 6900 might mark the recipient as a person that declined the invitation. In some embodiments, theprocess 6900 maintain two separate lists, e.g., one that lists different subscribers and another that lists different recipients that have not subscribed to the shared stream. - Some embodiments perform variations on the
process 6900. The specific operations may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments. Furthermore, theprocess 6900 could be implemented using several sub-processes, or as part of a larger macro process. - C. Commenting
- The content sharing tools of some embodiments allow different participants to share comments regarding the shared content.
FIG. 70 conceptually illustrates anexample process 7000 that some embodiments perform to notify participants of a new comment. Theprocess 7000, in some embodiments, is performed by the control server. Theprocess 7000 begins when it receives (at 7005) receives a message with the new comment. Theprocess 7000 then stores (at 7010) the comment. - At 7015, the
process 7000 identifies participants of the shared content stream. Based on the identification, theprocess 7000 sends a message regarding an update to the shared content to the devices that are associated with the participants. Theprocess 7000 then ends. -
FIG. 71 conceptually illustrates anexample process 7100 that some embodiments perform to deliver a new comment. Theprocess 7100, in some embodiments, is performed by the control server. Theprocess 7100 begins when it receives (at 7105) receives a message that requests a list of shared content streams from a recipient device. Theprocess 7100 then sends (at 7110) the list of shared streams to the recipient device. - At 6915, the
process 7100 receives, from the participant device, a message request for the new comment. Based on the message, theprocess 710 sends (at 7120) the comment to the participant's device. Some embodiments perform variations on theprocesses processes - In some embodiments, the processes described above are implemented as software running on a particular machine, such as a computer or a handheld device, or stored in a machine readable medium.
FIG. 72 conceptually illustrates the software architecture of content sharing tools 7200 of some embodiments. In some embodiments, the content sharing tools are provided as a stand-alone application or are integrated into another application, while in other embodiments the content sharing tools are implemented within an operating system. Furthermore, in some embodiments, the content sharing tools are provided as part of a server-based solution. In some such embodiments, the content sharing tools are provided via a thin client. That is, the content sharing tools runs on a server while a user interacts with the content sharing tools via a separate machine remote from the server. In other embodiments, the content sharing tools are provided via a thick client. That is, the content sharing tools are distributed from the server to the client machine and runs on the client machine. - The content sharing tools 7200 includes a user interface (UI) interaction and generation module 7210 and a shared stream manager 7220. As shown, the user interface interaction and generation module 7210 generates a number of different UI elements, including a
content display area 7212, a sharedstream menu 7214, sharedstream management tools 7216, andcomment tools 7218. The figure also illustrates stored data associated with the content sharing tools: sharedstream data 7244,content data 7244, andother data 7248. In some embodiments, the sharedstream data 7244 stores data related to a shared stream (e.g., a list of photo streams, list of individuals associated with a photo stream, references to images, comments, etc.). Thecontent data 7246 may include images and/or video. Thecontent data 7246 of some embodiments includes multiple versions of one image (e.g., at different resolution). -
FIG. 72 also illustrates anoperating system 7202 that includes input device driver(s) 7204,display module 7206 and notifications tools. In some embodiments, as illustrated, thedevice drivers 7204 anddisplay module 7206 are part of theoperating system 7202 even when the content sharing tools 7200 is part of an application that is separate from the operating system 7270. Theinput device drivers 7204 may include drivers for translating signals from a keyboard, mouse, touchpad, tablet, touchscreen, etc. A user interacts with one or more of these input devices, each of which send signals to its corresponding device driver. The device driver then translates the signals into user input data that is provided to the UI interaction and generation module 7210. - The present application describes a graphical user interface that provides users with numerous ways to perform different sets of operations and functionalities. In some embodiments, these operations and functionalities are performed based on different commands that are received from users through different input devices (e.g., keyboard, trackpad, touchpad, mouse, etc.). For example, the present application illustrates the use of touch controls in the graphical user interface to control (e.g., select, move) objects in the graphical user interface. However, in some embodiments, objects in the graphical user interface can also be controlled or manipulated through other controls, such as a cursor control. In some embodiments, the touch control is implemented through an input device that can detect the presence and location of touch on a display of the device. An example of such a device is a touch screen device. In some embodiments, with touch control, a user can directly manipulate objects by interacting with the graphical user interface that is displayed on the display of the touch screen device. For instance, a user can select a particular object in the graphical user interface by simply touching that particular object on the display of the touch screen device. As such, when touch control is utilized, a cursor may not even be provided for enabling selection of an object of a graphical user interface in some embodiments. However, when a cursor is provided in a graphical user interface, touch control can be used to control the cursor in some embodiments.
- The
display module 7206 translates the output of a user interface for a display device. That is, thedisplay module 7206 receives signals (e.g., from the UI interaction and generation module 7210) describing what should be displayed and translates these signals into pixel information that is sent to the display device. The display device may be an LCD, plasma screen, CRT monitor, touchscreen, etc. - In some embodiments, the notification tools 7208 presents notifications (e.g., at the operating system level). Examples of such notifications may include one or more of the following: an icon badge, banner notification, system tray notification, lock-screen alert, notification center message, etc. In some embodiments, the notification tools 7208 causes a computing device (e.g., smart phone, tablet) to play a sound or vibrate.
- The UI interaction and generation module 7210 of the content sharing tools 7200 interprets the user input data received from the
input device drivers 7204 and passes it to various UI components, including thecontent display area 7212, the sharedstream menu 7214, the sharedstream management tools 7216, and thecomment tools 7218. The UI interaction and generation module 7210 also manages the display of the UI, and outputs this display information to thedisplay module 7206. In some embodiments, the UI interaction and generation module 7210 generates a basic UI and populates the UI with information from the other modules and stored data (e.g., storeddata 7244, 7248). - As shown, the UI interaction and generation module 7210, in some embodiments, generates a number of different UI elements. These elements, in some embodiments, include the
content display area 7212, the sharedstream menu 7214, the sharedstream management tools 7216, and thecomment tools 7218. In many of the examples described above, thecontent display area 7212 is referred to as an image display, and the sharedstream menu 7214 is referred to a photo stream menu. In some embodiments, the sharedstream management tools 7216 include a photo stream options sheet, a comment sheet, a photo stream management sheet (e.g., to add or remove subscriber, to resend a photo stream invitation, to delete a photo stream, etc.). The comment tools of some embodiments include an add comment field, like button, delete comment button, etc. All of these UI elements are described in many different examples above. - As shown in
FIG. 72 , the shared stream manager includes several components to facilitate the content and comment sharing features. The components include (1) a data manager 7222, (2) achecksum generator 7224, (3) aweb publication module 7226, (4) alayout manager 7228, (5) animage generator 7230, (6) acomment module 7232, (7) a filename analyzer, and (8) a notification module. Different components may be provided for different platforms. For instance, the filename analyzer may be provided in one platform (e.g., a PC platform) while not provided for another platform (e.g., a smartphone or tablet platform). - In some embodiments, the data manager 7222 facilitates the uploading and downloading of content data from one or more the storage servers 7238 (e.g., third-party storage servers). The data manager 7222 may receive file location data (e.g., URL address), and upload to or download content from a storage server. This data manager 7222 of some embodiments operates automatically without any user input. For example, the shared stream manager 7220 may receive a message regarding a new batch of images in a shared image, and direct the data manager 7222 to download the batch from the storage server.
- The
checksum generator 7224 runs an image file through a computation algorithm that generates a checksum of that image file, which is a hash of the image's content. The content sharing tools and the control server may reference an image using a first key (e.g., unique key) for identifying the image in the photo stream. The first key may be associated with a second key for accessing the image file that is stored at an external data source (e.g., a storage server). The second key may include or is a checksum of that one image file. This checksum allows the storage server to store one image, even though that image is in multiple different photo streams. - The
web publication module 7230 allows images to be published as a set of webpages to a website. In some embodiments, the website is a public website that can be accessed by any browser with the correct URL address. To publish the images, theweb publication module 7230 may communicate with one or more of theweb publishing servers 7242. - In some embodiments, the
content display area 7212 presents images similar to the ones that are published to a website. To present the images, the shared stream manager 7220 may include thelayout manager 7228. This layout manager of some embodiments selects a layout based on the number of images in a batch and the orientation of those images. The images may be presented in a particular order (e.g., starting with the oldest image and ending with the newest image, or vice versa). The batches may be presented in a particular order (e.g., starting with the oldest batch to the newest batch, or vice versa). - In some embodiments, the
comment module 7232 allows the sharing of comments regarding content in a shared stream. This module of some embodiments receives a comment and generates a message regarding the comment to send to a control server. The comment module may also receive a message regarding a new comment and perform operations to display the comment (e.g., in the content display area 7212). These operations may include identifying the image associated with the comment, the timestamp of the comment, and the person that left the comment. These operations may also entail counting the number of comments and/or likes associated with that same image. - The
filename analyzer 7234 analyzes a filename of a piece of content to automatically input a comment. The filename may be analyzed using a number of different techniques. In some embodiments, the analysis entails identifying one or more words, names, or people in the filename. The analysis may entail identifying random filenames that are generated by different image capturing devices (e.g., digital cameras, smart phones, tablets). The analysis may also entail identifying different characters (e.g., underscore) and replacing them with a space. - The notification module detects notifications from a control server and facilitates their presentation. For example, the notification module may cause different photo streams to be marked with a marking (e.g., colored dot) in the shared
stream menu 7214 and/or cause images to be marked with a marking (e.g., a chat bubble, double chat bubble, a flag that identifies the number of new images, etc.) in thecontent display area 7212. In some embodiments, the notification module interoperates with the notifications tools 7208 to present notifications (e.g., icon badge, banner notification, system tray notification) at the operating system level. - While many of the features of the content sharing tools 7200 have been described as being performed by one module (e.g., the
comment module 7232, theweb publication module 7226, etc.), one of ordinary skill in the art will recognize that the components (e.g., functions, modules) described herein might be split up into multiple components. Similarly, components that are described as being performed by multiple different modules might be performed by a single module, in some embodiments. - Many of the above-described features and applications are implemented as software processes that are specified as a set of instructions recorded on a computer readable storage medium (also referred to as computer readable medium). When these instructions are executed by one or more computational or processing unit(s) (e.g., one or more processors, cores of processors, or other processing units), they cause the processing unit(s) to perform the actions indicated in the instructions. Examples of computer readable media include, but are not limited to, CD-ROMs, flash drives, random access memory (RAM) chips, hard drives, erasable programmable read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), etc. The computer readable media does not include carrier waves and electronic signals passing wirelessly or over wired connections.
- In this specification, the term “software” is meant to include firmware residing in read-only memory or applications stored in magnetic storage, which can be read into memory for processing by a processor. In addition, in some embodiments, multiple software inventions can be implemented as sub-parts of a larger program while remaining distinct software inventions. In some embodiments, multiple software inventions can also be implemented as separate programs. Finally, any combination of separate programs that together implement a software invention described here is within the scope of the invention. In some embodiments, the software programs, when installed to operate on one or more electronic systems, define one or more specific machine implementations that execute and perform the operations of the software programs.
- A. Mobile Device
- The image editing and viewing applications of some embodiments operate on mobile devices.
FIG. 73 is an example of anarchitecture 7300 of such a mobile computing device. Examples of mobile computing devices include smartphones, tablets, laptops, etc. As shown, themobile computing device 7300 includes one ormore processing units 7305, amemory interface 7310 and aperipherals interface 7315. - The peripherals interface 7315 is coupled to various sensors and subsystems, including a
camera subsystem 7320, a wireless communication subsystem(s) 7325, anaudio subsystem 7330, an I/O subsystem 7335, etc. The peripherals interface 7315 enables communication between theprocessing units 7305 and various peripherals. For example, an orientation sensor 7345 (e.g., a gyroscope) and an acceleration sensor 7350 (e.g., an accelerometer) is coupled to the peripherals interface 7315 to facilitate orientation and acceleration functions. - The
camera subsystem 7320 is coupled to one or more optical sensors 7340 (e.g., a charged coupled device (CCD) optical sensor, a complementary metal-oxide-semiconductor (CMOS) optical sensor, etc.). Thecamera subsystem 7320 coupled with theoptical sensors 7340 facilitates camera functions, such as image and/or video data capturing. Thewireless communication subsystem 7325 serves to facilitate communication functions. In some embodiments, thewireless communication subsystem 7325 includes radio frequency receivers and transmitters, and optical receivers and transmitters (not shown inFIG. 73 ). These receivers and transmitters of some embodiments are implemented to operate over one or more communication networks such as a GSM network, a Wi-Fi network, a Bluetooth network, etc. Theaudio subsystem 7330 is coupled to a speaker to output audio (e.g., to output different sound effects associated with different image operations). Additionally, theaudio subsystem 7330 is coupled to a microphone to facilitate voice-enabled functions, such as voice recognition, digital recording, etc. - The I/
O subsystem 7335 involves the transfer between input/output peripheral devices, such as a display, a touch screen, etc., and the data bus of theprocessing units 7305 through theperipherals interface 7315. The I/O subsystem 7335 includes a touch-screen controller 7355 andother input controllers 7360 to facilitate the transfer between input/output peripheral devices and the data bus of theprocessing units 7305. As shown, the touch-screen controller 7355 is coupled to atouch screen 7365. The touch-screen controller 7355 detects contact and movement on thetouch screen 7365 using any of multiple touch sensitivity technologies. Theother input controllers 7360 are coupled to other input/control devices, such as one or more buttons. Some embodiments include a near-touch sensitive screen and a corresponding controller that can detect near-touch interactions instead of or in addition to touch interactions. - The
memory interface 7310 is coupled tomemory 7370. In some embodiments, thememory 7370 includes volatile memory (e.g., high-speed random access memory), non-volatile memory (e.g., flash memory), a combination of volatile and non-volatile memory, and/or any other type of memory. As illustrated inFIG. 73 , thememory 7370 stores an operating system (OS) 7372. TheOS 7372 includes instructions for handling basic system services and for performing hardware dependent tasks. - The
memory 7370 also includescommunication instructions 7374 to facilitate communicating with one or more additional devices; graphicaluser interface instructions 7376 to facilitate graphic user interface processing;image processing instructions 7378 to facilitate image-related processing and functions;input processing instructions 7380 to facilitate input-related (e.g., touch input) processes and functions;audio processing instructions 7382 to facilitate audio-related processes and functions; andcamera instructions 7384 to facilitate camera-related processes and functions. The instructions described above are merely exemplary and thememory 7370 includes additional and/or other instructions in some embodiments. For instance, the memory for a smartphone may include phone instructions to facilitate phone-related processes and functions. The above-identified instructions need not be implemented as separate software programs or modules. Various functions of the mobile computing device can be implemented in hardware and/or in software, including in one or more signal processing and/or application specific integrated circuits. - While the components illustrated in
FIG. 73 are shown as separate components, one of ordinary skill in the art will recognize that two or more components may be integrated into one or more integrated circuits. In addition, two or more components may be coupled together by one or more communication buses or signal lines. Also, while many of the functions have been described as being performed by one component, one of ordinary skill in the art will realize that the functions described with respect toFIG. 73 may be split into two or more integrated circuits. - B. Computer System
-
FIG. 74 conceptually illustrates another example of anelectronic system 7400 with which some embodiments of the invention are implemented. Theelectronic system 7400 may be a computer (e.g., a desktop computer, personal computer, tablet computer, etc.), phone, PDA, or any other sort of electronic or computing device. Such an electronic system includes various types of computer readable media and interfaces for various other types of computer readable media.Electronic system 7400 includes abus 7405, processing unit(s) 7410, a graphics processing unit (GPU) 7415, asystem memory 7420, anetwork 7425, a read-only memory 7430, apermanent storage device 7435,input devices 7440, andoutput devices 7445. - The
bus 7405 collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of theelectronic system 7400. For instance, thebus 7405 communicatively connects the processing unit(s) 7410 with the read-only memory 7430, the GPU 7415, thesystem memory 7420, and thepermanent storage device 7435. - From these various memory units, the processing unit(s) 7410 retrieves instructions to execute and data to process in order to execute the processes of the invention. The processing unit(s) may be a single processor or a multi-core processor in different embodiments. Some instructions are passed to and executed by the GPU 7415. The GPU 7415 can offload various computations or complement the image processing provided by the processing unit(s) 7410.
- The read-only-memory (ROM) 7430 stores static data and instructions that are needed by the processing unit(s) 7410 and other modules of the electronic system. The
permanent storage device 7435, on the other hand, is a read-and-write memory device. This device is a non-volatile memory unit that stores instructions and data even when theelectronic system 7400 is off. Some embodiments of the invention use a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) as thepermanent storage device 7435. - Other embodiments use a removable storage device (such as a floppy disk, flash memory device, etc., and its corresponding drive) as the permanent storage device. Like the
permanent storage device 7435, thesystem memory 7420 is a read-and-write memory device. However, unlikestorage device 7435, thesystem memory 7420 is a volatile read-and-write memory, such a random access memory. Thesystem memory 7420 stores some of the instructions and data that the processor needs at runtime. In some embodiments, the invention's processes are stored in thesystem memory 7420, thepermanent storage device 7435, and/or the read-only memory 7430. For example, the various memory units include instructions for processing multimedia clips in accordance with some embodiments. From these various memory units, the processing unit(s) 7410 retrieves instructions to execute and data to process in order to execute the processes of some embodiments. - The
bus 7405 also connects to the input andoutput devices input devices 7440 enable the user to communicate information and select commands to the electronic system. Theinput devices 7440 include alphanumeric keyboards and pointing devices (also called “cursor control devices”), cameras (e.g., webcams), microphones or similar devices for receiving voice commands, etc. Theoutput devices 7445 display images generated by the electronic system or otherwise output data. Theoutput devices 7445 include printers and display devices, such as cathode ray tubes (CRT) or liquid crystal displays (LCD), as well as speakers or similar audio output devices. Some embodiments include devices such as a touchscreen that function as both input and output devices. - Finally, as shown in
FIG. 74 ,bus 7405 also coupleselectronic system 7400 to anetwork 7425 through a network adapter (not shown). In this manner, the computer can be a part of a network of computers (such as a local area network (“LAN”), a wide area network (“WAN”), or an Intranet, or a network of networks, such as the Internet. Any or all components ofelectronic system 7400 may be used in conjunction with the invention. - Some embodiments include electronic components, such as microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media). Some examples of such computer-readable media include RAM, ROM, read-only compact discs (CD-ROM), recordable compact discs (CD-R), rewritable compact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM), a variety of recordable/rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic and/or solid state hard drives, read-only and recordable Blu-Ray® discs, ultra density optical discs, any other optical or magnetic media, and floppy disks. The computer-readable media may store a computer program that is executable by at least one processing unit and includes sets of instructions for performing various operations. Examples of computer programs or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.
- While the above discussion primarily refers to microprocessor or multi-core processors that execute software, some embodiments are performed by one or more integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some embodiments, such integrated circuits execute instructions that are stored on the circuit itself. In addition, some embodiments execute software stored in programmable logic devices (PLDs), ROM, or RAM devices.
- As used in this specification and any claims of this application, the terms “computer”, “server”, “processor”, and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people. For the purposes of the specification, the terms display or displaying means displaying on an electronic device. As used in this specification and any claims of this application, the terms “computer readable medium,” “computer readable media,” and “machine readable medium” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral signals.
- While the invention has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the invention can be embodied in other specific forms without departing from the spirit of the invention. For instance, many of the figures illustrate various touch gestures (e.g., taps, double taps, swipe gestures, press and hold gestures, etc.). However, many of the illustrated operations could be performed via different touch gestures (e.g., a swipe instead of a tap, etc.) or by non-touch input (e.g., using a cursor controller, a keyboard, a touchpad/trackpad, a near-touch sensitive screen, etc.). In addition, a number of the figures (including
FIGS. 7 , 14, 19, 20, 36, 37, 48, and 68-71) conceptually illustrate processes. The specific operations of these processes may not be performed in the exact order shown and described. The specific operations may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments. Furthermore, the process could be implemented using several sub-processes, or as part of a larger macro process. Thus, one of ordinary skill in the art would understand that the invention is not to be limited by the foregoing illustrative details, but rather is to be defined by the appended claims. - While the invention has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the invention can be embodied in other specific forms without departing from the spirit of the invention. For example, one of ordinary skill in the art will understand that many of the UI items of in
FIGS. 1-6 , 8-13, 15-18, 21-35, 38-41, and 49-65 can also be activated and/or set by a cursor control device (e.g., a mouse or trackball), a stylus, keyboard, a finger gesture (e.g., placing, pointing, tapping one or more fingers) near a near-touch sensitive screen, or any other control system in some embodiments. Thus, one of ordinary skill in the art would understand that the invention is not to be limited by the foregoing illustrative details, but rather is to be defined by the appended claims.
Claims (21)
1. A non-transitory machine readable medium storing a program that when executed by at least one processing unit facilitates sharing of images across different devices, the program comprising sets of instructions for:
receiving, from a source device, a message regarding an invitation for a recipient to subscribe to a shared stream comprising a set of images;
identifying, based on the message, a plurality of destination devices associated with the recipient; and
to each destination device in the plurality of destination devices, sending the invitation for the recipient to subscribe to the shared stream.
2. The non-transitory machine readable medium of claim 1 , wherein the program further comprises a set of instructions for sending image file location data to the source device, wherein the source device uses the image file location data to upload the set of images to a storage server.
3. The non-transitory machine readable medium of claim 2 , wherein the storage server is a third-party storage server.
4. The non-transitory machine readable medium of claim 2 , wherein the program further comprises a set of instructions for sending the image file location data to the plurality of destination devices after receiving a message regarding an acceptance of the invitation.
5. The non-transitory machine readable medium of claim 4 , wherein the shared stream is associated with an access list, wherein the program further comprises a set of instructions for specifying, in the access list, the recipient as an authorized person to access any images in the shared stream upon receiving the message regarding the acceptance of the invitation.
6. The non-transitory machine readable medium of claim 4 , wherein the program further comprises a set of instructions for sending a notification regarding the acceptance of the invitation to the source device.
7. The non-transitory machine readable medium of claim 1 , wherein the shared stream is associated with an access list, wherein the program further comprises a set of instructions for removing the recipient from the list upon receiving a message that indicates that the invitation has been declined from one of the destination devices.
8. The non-transitory machine readable medium of claim 1 , wherein the program further comprises sets of instructions for:
receiving, from the source device, a message regarding an image that has been deleted from the shared stream; and
sending a message regarding the regarding the deleted image to the plurality of destination devices, wherein each destination devices deletes the same image from the device's storage upon receiving the message regarding the deleted image.
9. The non-transitory machine readable medium of claim 1 , wherein the program further comprises sets of instructions for:
receiving, from the source device, a message regarding an image that has been added to the shared stream; and
sending a message regarding the regarding the added image to the plurality of destination devices, wherein each destination devices obtains the same image upon receiving the message regarding the added image.
10. The non-transitory machine readable medium of claim 1 , wherein the program further comprises sets of instructions for:
receiving, from the source device, a message regarding deletion of the shared stream; and
sending a message regarding the regarding the deletion of the shared stream to the plurality of destination devices, wherein each destination devices deletes the set of images upon receiving the message regarding the deletion of the shared stream.
11. The non-transitory machine readable medium of claim 1 , wherein the different devices comprises at least two of a tablet, a smart phone, a laptop, and a personal computer.
12. The non-transitory machine readable medium of claim 11 , wherein the program uses a same protocol to communicate with the different devices.
13. A method of facilitates sharing of images across different devices, the method comprising:
receiving, from a source device, a message regarding an invitation for a recipient to subscribe to a shared stream comprising a set of images;
identifying, based on the message, a plurality of destination devices associated with the recipient; and
to each destination device in the plurality of destination devices, sending the invitation for the recipient to subscribe to the shared stream.
14. The method of claim 13 further comprising sending image file location data to the source device, wherein the source device uses the image file location data to upload the set of images to a storage server.
15. The method of claim 14 , wherein the storage server is a third-party storage server.
16. The method of claim 14 further comprising sending the image file location data to the plurality of destination devices after receiving a message regarding an acceptance of the invitation.
17. The method of claim 16 , wherein the shared stream is associated with an access list, the method further comprising specifying, in the access list, the recipient as an authorized person to access any images in the shared stream upon receiving the message regarding the acceptance of the invitation.
18. The method of claim 16 further comprising sending a notification regarding the acceptance of the invitation to the source device.
19. A system comprising:
a plurality of different devices;
a control server for (i) receiving, from a source device in the plurality of devices, a message regarding an invitation for a recipient to subscribe to a shared stream comprising a set of images, (ii) identifying, based on the message, a plurality of destination devices associated with the recipient; and (iii) sending, to each destination device in the plurality of destination devices, the invitation for the recipient to subscribe to the shared stream.
20. The system of claim 19 further comprising a storage server, wherein the control server is further for sending image file location data to the source device, wherein the source device uses the image file location data to upload the set of images to the storage server.
21. The system of claim 20 , wherein the storage server is a third-party storage server.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/631,948 US20130332526A1 (en) | 2012-06-10 | 2012-09-29 | Creating and sharing image streams |
PCT/US2013/042541 WO2013188078A2 (en) | 2012-06-10 | 2013-05-23 | Sharing images and comments across different devices |
JP2015516049A JP2015527628A (en) | 2012-06-10 | 2013-05-23 | Sharing images and comments between different devices |
CN201811447210.XA CN109375850A (en) | 2012-06-10 | 2013-05-23 | Share image and comment across different equipment |
CN201380028446.9A CN105612472B (en) | 2012-06-10 | 2013-05-23 | Share image and comment across different equipment |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261657806P | 2012-06-10 | 2012-06-10 | |
US201261657883P | 2012-06-10 | 2012-06-10 | |
US201261699815P | 2012-09-11 | 2012-09-11 | |
US13/631,948 US20130332526A1 (en) | 2012-06-10 | 2012-09-29 | Creating and sharing image streams |
Publications (1)
Publication Number | Publication Date |
---|---|
US20130332526A1 true US20130332526A1 (en) | 2013-12-12 |
Family
ID=49716158
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/631,955 Abandoned US20130332841A1 (en) | 2012-06-10 | 2012-09-29 | Integrated tools for creating and sharing image streams |
US13/631,943 Active 2033-04-29 US9116596B2 (en) | 2012-06-10 | 2012-09-29 | Sharing images and comments across different devices |
US13/631,953 Abandoned US20130332856A1 (en) | 2012-06-10 | 2012-09-29 | Digital media receiver for sharing image streams |
US13/631,940 Abandoned US20130332854A1 (en) | 2012-06-10 | 2012-09-29 | Creating image streams and sharing the image streams across different devices |
US13/631,948 Abandoned US20130332526A1 (en) | 2012-06-10 | 2012-09-29 | Creating and sharing image streams |
US13/631,954 Abandoned US20130332840A1 (en) | 2012-06-10 | 2012-09-29 | Image application for creating and sharing image streams |
US13/631,945 Abandoned US20130332512A1 (en) | 2012-06-10 | 2012-09-29 | Creating and publishing image streams |
Family Applications Before (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/631,955 Abandoned US20130332841A1 (en) | 2012-06-10 | 2012-09-29 | Integrated tools for creating and sharing image streams |
US13/631,943 Active 2033-04-29 US9116596B2 (en) | 2012-06-10 | 2012-09-29 | Sharing images and comments across different devices |
US13/631,953 Abandoned US20130332856A1 (en) | 2012-06-10 | 2012-09-29 | Digital media receiver for sharing image streams |
US13/631,940 Abandoned US20130332854A1 (en) | 2012-06-10 | 2012-09-29 | Creating image streams and sharing the image streams across different devices |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/631,954 Abandoned US20130332840A1 (en) | 2012-06-10 | 2012-09-29 | Image application for creating and sharing image streams |
US13/631,945 Abandoned US20130332512A1 (en) | 2012-06-10 | 2012-09-29 | Creating and publishing image streams |
Country Status (4)
Country | Link |
---|---|
US (7) | US20130332841A1 (en) |
JP (1) | JP2015527628A (en) |
CN (2) | CN109375850A (en) |
WO (1) | WO2013188078A2 (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9116596B2 (en) | 2012-06-10 | 2015-08-25 | Apple Inc. | Sharing images and comments across different devices |
CN104980326A (en) * | 2014-04-03 | 2015-10-14 | 联想移动通信软件(武汉)有限公司 | Method and device for sharing application content between terminal equipment |
US20170331974A1 (en) * | 2016-05-13 | 2017-11-16 | Fuji Xerox Co., Ltd. | Communication apparatus and method and non-transitory computer readable medium |
US9860289B2 (en) | 2014-05-23 | 2018-01-02 | Radeeus, Inc. | Multimedia digital content retrieval, matching, and syncing systems and methods of using the same |
US20180324124A1 (en) * | 2013-06-28 | 2018-11-08 | Tencent Technology (Shenzhen) Company Limited | Systems and methods for image sharing |
US10409858B2 (en) | 2013-08-02 | 2019-09-10 | Shoto, Inc. | Discovery and sharing of photos between devices |
US10999237B2 (en) | 2017-04-10 | 2021-05-04 | Facebook, Inc. | Systems and methods for sharing content |
CN113596806A (en) * | 2021-07-09 | 2021-11-02 | 北京达佳互联信息技术有限公司 | Terminal source determining method and device, electronic equipment and storage medium |
US11468243B2 (en) | 2012-09-24 | 2022-10-11 | Amazon Technologies, Inc. | Identity-based display of text |
US11558431B2 (en) * | 2017-01-05 | 2023-01-17 | Ricoh Company, Ltd. | Communication terminal, communication system, communication method, and display method |
Families Citing this family (284)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8819734B2 (en) | 2003-09-16 | 2014-08-26 | Tvworks, Llc | Contextual navigational control for digital television |
US7818667B2 (en) | 2005-05-03 | 2010-10-19 | Tv Works Llc | Verification of semantic constraints in multimedia data and in its announcement, signaling and interchange |
US20090055756A1 (en) * | 2007-08-24 | 2009-02-26 | International Business Machines Corporation | Doubly linked visual discussions for data visualization |
US11832024B2 (en) | 2008-11-20 | 2023-11-28 | Comcast Cable Communications, Llc | Method and apparatus for delivering video and video-related content at sub-asset level |
JP5655747B2 (en) * | 2011-09-09 | 2015-01-21 | ブラザー工業株式会社 | Information processing program, information processing apparatus, and information processing method |
GB201119108D0 (en) * | 2011-10-18 | 2011-12-21 | Power Software Solutions Ltd | Server-based image-control schemes |
KR101943987B1 (en) * | 2011-12-06 | 2019-04-17 | 삼성전자주식회사 | System and method for sharing page by device |
USD682288S1 (en) * | 2011-12-23 | 2013-05-14 | Microsoft Corporation | Display screen with graphical user interface |
US20130346849A1 (en) * | 2012-06-06 | 2013-12-26 | Minds + Machines | Automatic uploading and synchronization of media assets |
US9060152B2 (en) | 2012-08-17 | 2015-06-16 | Flextronics Ap, Llc | Remote control having hotkeys with dynamically assigned functions |
WO2014003781A1 (en) * | 2012-06-29 | 2014-01-03 | Hewlett-Packard Development Company, L.P. | Sharing of user interface objects via a shared space |
US9378393B2 (en) * | 2012-08-02 | 2016-06-28 | Facebook, Inc. | Systems and methods for multiple photo fee stories |
US9785314B2 (en) * | 2012-08-02 | 2017-10-10 | Facebook, Inc. | Systems and methods for displaying an animation to confirm designation of an image for sharing |
US9246958B2 (en) * | 2012-08-02 | 2016-01-26 | Facebook, Inc. | Systems and methods for multiple photo selection |
US9684398B1 (en) | 2012-08-06 | 2017-06-20 | Google Inc. | Executing a default action on a touchscreen device |
KR20140022148A (en) * | 2012-08-13 | 2014-02-24 | 삼성전자주식회사 | Method for displaying a contents in portable terminal connection using a cloud service |
US11368760B2 (en) | 2012-08-17 | 2022-06-21 | Flextronics Ap, Llc | Applications generating statistics for user behavior |
US8788439B2 (en) * | 2012-12-21 | 2014-07-22 | InsideSales.com, Inc. | Instance weighted learning machine learning model |
US20140067929A1 (en) * | 2012-08-28 | 2014-03-06 | Ivan Kirigin | Uploading one or more files from a shared file link |
CN103631827B (en) | 2012-08-29 | 2016-08-10 | 腾讯科技(深圳)有限公司 | A kind of method and system of Synchronization Network page information |
US9075954B2 (en) | 2012-08-29 | 2015-07-07 | Dropbox, Inc. | Requesting modification rights to a linked file set |
JP5475935B1 (en) * | 2012-09-20 | 2014-04-16 | グリー株式会社 | Server, control method thereof, and control program thereof |
US9488489B2 (en) | 2012-09-28 | 2016-11-08 | Google Inc. | Personalized mapping with photo tours |
JP6080461B2 (en) * | 2012-10-01 | 2017-02-15 | キヤノン株式会社 | Operation receiving apparatus and method, and program |
US20150142486A1 (en) * | 2012-10-04 | 2015-05-21 | Vince Broady | Systems and methods for cloud-based digital asset management |
JP2014081770A (en) * | 2012-10-16 | 2014-05-08 | Sony Corp | Terminal device, terminal control method, information processing device, information processing method and program |
US20140122451A1 (en) * | 2012-10-29 | 2014-05-01 | Dropbox, Inc. | System and method for preventing duplicate file uploads from a mobile device |
US9058100B2 (en) * | 2012-11-06 | 2015-06-16 | Fang Li | Using motion gestures to send, save, delete, and reject a message |
US9008466B2 (en) * | 2012-11-09 | 2015-04-14 | Google Inc. | Sharing or applying digital image editing operations |
WO2014085605A2 (en) * | 2012-11-28 | 2014-06-05 | Intrepid Networks, Llc | Integrated systems and methods providing situational awareness of operations in an organization |
US9088625B1 (en) | 2012-12-12 | 2015-07-21 | Google Inc. | Obtaining an image for a place of interest |
JP6346857B2 (en) * | 2012-12-13 | 2018-06-20 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | Content sharing system and content sharing method |
US9104687B2 (en) | 2012-12-20 | 2015-08-11 | Dropbox, Inc. | System and method for preventing duplicate uploads of modified photos in a synchronized content management system |
US8838681B2 (en) | 2012-12-21 | 2014-09-16 | Dropbox, Inc. | Systems and methods for adding digital content to content management service accounts |
DE202013001240U1 (en) * | 2013-02-11 | 2014-05-14 | Xyrality Gmbh | Graphical user interface, display device and digital electronic device |
JP6128883B2 (en) * | 2013-02-21 | 2017-05-17 | オリンパス株式会社 | Endoscopic image management apparatus and endoscopic image display method |
US20140258886A1 (en) * | 2013-03-07 | 2014-09-11 | Smugmug, Inc. | Method for transferring a file from a device |
USD736818S1 (en) * | 2013-03-14 | 2015-08-18 | Microsoft Corporation | Display screen with graphical user interface |
US10880609B2 (en) | 2013-03-14 | 2020-12-29 | Comcast Cable Communications, Llc | Content event messaging |
WO2014143776A2 (en) | 2013-03-15 | 2014-09-18 | Bodhi Technology Ventures Llc | Providing remote interactions with host device using a wireless device |
JP2014207110A (en) * | 2013-04-12 | 2014-10-30 | 株式会社日立ハイテクノロジーズ | Observation apparatus and observation method |
US20140317511A1 (en) * | 2013-04-18 | 2014-10-23 | Google Inc. | Systems and Methods for Generating Photographic Tours of Geographic Locations |
KR101495257B1 (en) * | 2013-04-18 | 2015-02-25 | 주식회사 팬택 | Apparatus and method for controlling terminal icon |
US9444926B2 (en) * | 2013-04-27 | 2016-09-13 | Lg Electronics Inc. | Mobile terminal and control method thereof |
US9612740B2 (en) | 2013-05-06 | 2017-04-04 | Barnes & Noble College Booksellers, Inc. | Swipe-based delete confirmation for touch sensitive devices |
US10394410B2 (en) * | 2013-05-09 | 2019-08-27 | Amazon Technologies, Inc. | Mobile device interfaces |
KR102079816B1 (en) * | 2013-05-14 | 2020-02-20 | 삼성전자주식회사 | Method and apparatus for providing contents curation service in electronic device |
US9575620B2 (en) * | 2013-05-29 | 2017-02-21 | Here Global B.V. | Method, apparatus and computer program product for graphically enhancing the user interface of a device |
USD760254S1 (en) * | 2013-06-05 | 2016-06-28 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with graphic user interface |
AU353110S (en) * | 2013-06-05 | 2013-12-24 | Samsung Electronics Co Ltd | Display screen with graphical user interface |
USD757739S1 (en) * | 2013-06-05 | 2016-05-31 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with graphic user interface |
TWD182525S (en) | 2013-06-10 | 2017-04-21 | 蘋果公司 | Graphical user interface for a display screen |
KR20150000414A (en) * | 2013-06-18 | 2015-01-02 | 삼성전자주식회사 | Method for managing media contents and apparatus for the same |
JP6213755B2 (en) * | 2013-06-29 | 2017-10-18 | 華為技術有限公司Huawei Technologies Co.,Ltd. | Content sharing method and social synchronization apparatus |
KR102157289B1 (en) * | 2013-07-12 | 2020-09-17 | 삼성전자주식회사 | Method for processing data and an electronic device thereof |
KR102189679B1 (en) * | 2013-07-12 | 2020-12-14 | 삼성전자주식회사 | Portable appratus for executing the function related to the information displyed on screen of external appratus, method and computer readable recording medium for executing the function related to the information displyed on screen of external appratus by the portable apparatus |
USD738902S1 (en) * | 2013-08-09 | 2015-09-15 | Microsoft Corporation | Display screen with graphical user interface |
USD739870S1 (en) * | 2013-08-09 | 2015-09-29 | Microsoft Corporation | Display screen with graphical user interface |
USD732065S1 (en) * | 2013-08-09 | 2015-06-16 | Microsoft Corporation | Display screen with graphical user interface |
USD732064S1 (en) * | 2013-08-09 | 2015-06-16 | Microsoft Corporation | Display screen with graphical user interface |
USD732568S1 (en) * | 2013-08-09 | 2015-06-23 | Microsoft Corporation | Display screen with graphical user interface |
USD732066S1 (en) * | 2013-08-09 | 2015-06-16 | Microsoft Corporation | Display screen with graphical user interface |
USD778310S1 (en) | 2013-08-09 | 2017-02-07 | Microsoft Corporation | Display screen with graphical user interface |
US9804760B2 (en) * | 2013-08-22 | 2017-10-31 | Apple Inc. | Scrollable in-line camera for capturing and sharing content |
US20150058757A1 (en) * | 2013-08-23 | 2015-02-26 | Facebook, Inc. | Content owner modules |
US9853934B2 (en) * | 2013-08-23 | 2017-12-26 | Facebook, Inc. | Platform show pages |
USD771111S1 (en) | 2013-08-30 | 2016-11-08 | Microsoft Corporation | Display screen with graphical user interface |
KR102332675B1 (en) * | 2013-09-02 | 2021-11-30 | 삼성전자 주식회사 | Method and apparatus to sharing contents of electronic device |
US9251124B2 (en) * | 2013-09-09 | 2016-02-02 | Andrea STEINFL | Modular responsive screen grid, authoring and displaying system |
US9405964B1 (en) * | 2013-09-09 | 2016-08-02 | Amazon Technologies, Inc. | Processes for generating content sharing recommendations based on image content analysis |
US9338242B1 (en) | 2013-09-09 | 2016-05-10 | Amazon Technologies, Inc. | Processes for generating content sharing recommendations |
US9531823B1 (en) | 2013-09-09 | 2016-12-27 | Amazon Technologies, Inc. | Processes for generating content sharing recommendations based on user feedback data |
USD751082S1 (en) * | 2013-09-13 | 2016-03-08 | Airwatch Llc | Display screen with a graphical user interface for an email application |
USD766253S1 (en) * | 2013-09-25 | 2016-09-13 | Google Inc. | Display panel or portion thereof with a graphical user interface component |
US9244940B1 (en) | 2013-09-27 | 2016-01-26 | Google Inc. | Navigation paths for panorama |
KR102148001B1 (en) * | 2013-10-17 | 2020-08-25 | 삼성전자주식회사 | Display apparatus and method for controlling of display apparatus |
US10055103B1 (en) * | 2013-10-21 | 2018-08-21 | Google Llc | Text entry based on persisting actions |
US20150160808A1 (en) * | 2013-12-06 | 2015-06-11 | Facebook, Inc. | Zoom Interactions in a User Interface |
USD827654S1 (en) * | 2013-12-20 | 2018-09-04 | Sony Corporation | Wearable player with graphical user interface |
EP3001297A4 (en) | 2013-12-20 | 2016-07-20 | Huawei Device Co Ltd | Notification bar message management method and device |
US9377929B1 (en) * | 2013-12-23 | 2016-06-28 | Symantec Corporation | Techniques for presenting information on a graphical user interface |
US10067652B2 (en) | 2013-12-24 | 2018-09-04 | Dropbox, Inc. | Providing access to a cloud based content management system on a mobile device |
US9811245B2 (en) | 2013-12-24 | 2017-11-07 | Dropbox, Inc. | Systems and methods for displaying an image capturing mode and a content viewing mode |
US9423922B2 (en) * | 2013-12-24 | 2016-08-23 | Dropbox, Inc. | Systems and methods for creating shared virtual spaces |
US9544373B2 (en) | 2013-12-24 | 2017-01-10 | Dropbox, Inc. | Systems and methods for maintaining local virtual states pending server-side storage across multiple devices and users and intermittent network connections |
US10120528B2 (en) * | 2013-12-24 | 2018-11-06 | Dropbox, Inc. | Systems and methods for forming share bars including collections of content items |
KR102146855B1 (en) * | 2013-12-30 | 2020-08-21 | 삼성전자주식회사 | Photographing apparatus and method for sharing setting values, and a sharing system |
USD756393S1 (en) * | 2014-01-06 | 2016-05-17 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with graphical user interface |
US20150195226A1 (en) * | 2014-01-06 | 2015-07-09 | Desiree Gina McDowell-White | Interactive Picture Messaging System |
JP6375705B2 (en) * | 2014-01-17 | 2018-08-22 | 株式会社リコー | Information processing system, terminal device, and program |
US10540063B2 (en) * | 2014-01-27 | 2020-01-21 | Microsoft Technology Licensing, Llc | Processing actionable notifications |
US10802681B2 (en) | 2014-01-27 | 2020-10-13 | Microsoft Technology Licensing, Llc | Actionable notifications |
CN104850296B (en) * | 2014-02-14 | 2020-11-06 | 腾讯科技(深圳)有限公司 | Method and device for displaying page content |
US10360642B2 (en) * | 2014-02-18 | 2019-07-23 | Google Llc | Global comments for a media item |
JP6415061B2 (en) * | 2014-02-19 | 2018-10-31 | キヤノン株式会社 | Display control apparatus, control method, and program |
US9462054B2 (en) | 2014-02-27 | 2016-10-04 | Dropbox, Inc. | Systems and methods for providing a user with a set of interactivity features locally on a user device |
US9787799B2 (en) | 2014-02-27 | 2017-10-10 | Dropbox, Inc. | Systems and methods for managing content items having multiple resolutions |
US9602679B2 (en) * | 2014-02-27 | 2017-03-21 | Lifeprint Llc | Distributed printing social network |
US9112936B1 (en) | 2014-02-27 | 2015-08-18 | Dropbox, Inc. | Systems and methods for ephemeral eventing |
USD766318S1 (en) | 2014-03-07 | 2016-09-13 | Apple Inc. | Display screen or portion thereof with animated graphical user interface |
US20150271114A1 (en) * | 2014-03-19 | 2015-09-24 | StorySafe Digital, LLC | System and method for communication between computing devices |
US8943140B1 (en) * | 2014-03-26 | 2015-01-27 | Ankit Dilip Kothari | Assign photographers on an event invite and automate requesting, uploading, and sharing of photos and videos for an event |
US10623351B2 (en) * | 2014-03-31 | 2020-04-14 | Htc Corporation | Messaging system and method thereof |
CN104978326B (en) * | 2014-04-03 | 2019-04-12 | 腾讯科技(深圳)有限公司 | The method and device of comment information processing |
US9189839B1 (en) | 2014-04-24 | 2015-11-17 | Google Inc. | Automatically generating panorama tours |
USD758386S1 (en) * | 2014-04-29 | 2016-06-07 | Tencent Technology (Shenzhen) Company Limited | Portion of a display screen with an animated graphical user interface |
USD769275S1 (en) * | 2014-04-30 | 2016-10-18 | Tencent Technology (Shenzhen) Company Limited | Portion of a display screen with graphical user interface |
US9733807B2 (en) * | 2014-04-30 | 2017-08-15 | Cisco Technology, Inc. | Techniques to handle multimedia questions from attendees in an online meeting |
US10565556B2 (en) * | 2014-05-14 | 2020-02-18 | Successfactors, Inc. | Manager cockpit for improving manager performance |
EP2947580A1 (en) * | 2014-05-23 | 2015-11-25 | Canon Europa N.V. | A method, an apparatus for labelling images, a program, and a computer-readable medium |
US10313506B2 (en) | 2014-05-30 | 2019-06-04 | Apple Inc. | Wellness aggregator |
US8965348B1 (en) | 2014-06-04 | 2015-02-24 | Grandios Technologies, Llc | Sharing mobile applications between callers |
US9491562B2 (en) | 2014-06-04 | 2016-11-08 | Grandios Technologies, Llc | Sharing mobile applications between callers |
US9395754B2 (en) | 2014-06-04 | 2016-07-19 | Grandios Technologies, Llc | Optimizing memory for a wearable device |
JP6636422B2 (en) * | 2014-06-13 | 2020-01-29 | 株式会社チカク | Image management system, management device, program, and image output device |
EP2961134A1 (en) * | 2014-06-26 | 2015-12-30 | Thomson Licensing | Publish/Subscribe network comprising devices including a resource sharing application for sharing of resources |
US9002647B1 (en) | 2014-06-27 | 2015-04-07 | Google Inc. | Generating turn-by-turn direction previews |
US9418472B2 (en) | 2014-07-17 | 2016-08-16 | Google Inc. | Blending between street view and earth view |
US20160019210A1 (en) * | 2014-07-21 | 2016-01-21 | Dropbox, Inc. | Sharing unmanaged content using a content management system |
KR20160013329A (en) * | 2014-07-24 | 2016-02-04 | 삼성전자주식회사 | Method for providing a content and electronic device thereof |
EP3195096B1 (en) | 2014-08-02 | 2020-08-12 | Apple Inc. | Context-specific user interfaces |
US10452253B2 (en) | 2014-08-15 | 2019-10-22 | Apple Inc. | Weather user interface |
US9699152B2 (en) * | 2014-08-27 | 2017-07-04 | Microsoft Technology Licensing, Llc | Sharing content with permission control using near field communication |
EP2990923A1 (en) | 2014-08-28 | 2016-03-02 | Samsung Electronics Co., Ltd | Image display device and method |
CN104252296B (en) * | 2014-08-28 | 2018-12-18 | 广州三星通信技术研究有限公司 | The method and apparatus of picture are applied in electric terminal |
CN104267894B (en) * | 2014-09-03 | 2018-05-08 | 努比亚技术有限公司 | Mobile terminal split screen control method and system |
US10212111B2 (en) | 2014-09-12 | 2019-02-19 | Google Llc | System and interface that facilitate selecting videos to share in a messaging application |
US9922357B2 (en) * | 2014-09-18 | 2018-03-20 | Adobe Systems Incorporated | Interactive notifications for mobile commerce applications |
WO2016044809A1 (en) * | 2014-09-19 | 2016-03-24 | DIVA Networks, Inc. | Method and system for controlling devices with a chat interface |
US11783382B2 (en) | 2014-10-22 | 2023-10-10 | Comcast Cable Communications, Llc | Systems and methods for curating content metadata |
NZ731529A (en) * | 2014-10-24 | 2022-12-23 | Beezbutt Pty Ltd | Camera application |
US10503377B2 (en) * | 2014-11-24 | 2019-12-10 | Facebook, Inc. | Dynamic status indicator |
US10929812B2 (en) * | 2014-11-26 | 2021-02-23 | Adobe Inc. | Content creation, deployment collaboration, and subsequent marketing activities |
CN104601676B (en) * | 2014-12-30 | 2019-04-05 | 深圳市中润四方信息技术有限公司 | A kind of sharing method and its management system of the data assets based on cloud computing |
EP3484134B1 (en) | 2015-02-02 | 2022-03-23 | Apple Inc. | Device, method, and graphical user interface for establishing a relationship and connection between two devices |
US20160275108A1 (en) * | 2015-02-09 | 2016-09-22 | Jonathan Mark Sidener | Producing Multi-Author Animation and Multimedia Using Metadata |
USD789392S1 (en) | 2015-02-20 | 2017-06-13 | Google Inc. | Portion of a display panel with a graphical user interface |
USD803230S1 (en) * | 2015-02-20 | 2017-11-21 | Google Inc. | Portion of a display panel with a graphical user interface |
US20160246488A1 (en) * | 2015-02-24 | 2016-08-25 | Jonathan Sassouni | Media Reveal Feature |
USD768719S1 (en) * | 2015-02-27 | 2016-10-11 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with graphical user interface |
WO2016144385A1 (en) * | 2015-03-08 | 2016-09-15 | Apple Inc. | Sharing user-configurable graphical constructs |
US9767305B2 (en) | 2015-03-13 | 2017-09-19 | Facebook, Inc. | Systems and methods for sharing media content with recognized social connections |
US10445391B2 (en) * | 2015-03-27 | 2019-10-15 | Jostens, Inc. | Yearbook publishing system |
WO2016191913A1 (en) | 2015-05-29 | 2016-12-08 | Microsoft Technology Licensing, Llc | Systems and methods for providing a comment-centered news reader |
CN106663123B (en) * | 2015-05-29 | 2020-11-24 | 微软技术许可有限责任公司 | Comment-centric news reader |
US10222933B2 (en) * | 2015-05-30 | 2019-03-05 | Genesys Telecommunications Laboratories, Inc. | System and method for managing multiple interactions |
DK179292B1 (en) * | 2015-06-07 | 2018-04-09 | Apple Inc | Devices, methods and graphical user interfaces for providing and interacting with notifications |
US10275116B2 (en) | 2015-06-07 | 2019-04-30 | Apple Inc. | Browser with docked tabs |
US9918045B1 (en) * | 2015-07-07 | 2018-03-13 | S2 Security Corporation | Networked monitor appliance |
US10489010B1 (en) * | 2015-07-11 | 2019-11-26 | Allscripts Software, Llc | Methodologies involving use of avatar for clinical documentation |
US9608950B2 (en) * | 2015-08-18 | 2017-03-28 | Blend Systems, Inc. | Systems and methods for sharing videos and images in a texting environment |
EP4327731A3 (en) | 2015-08-20 | 2024-05-15 | Apple Inc. | Exercise-based watch face |
CN107710197B (en) * | 2015-09-28 | 2021-08-17 | 谷歌有限责任公司 | Sharing images and image albums over a communication network |
JP6122477B2 (en) * | 2015-10-15 | 2017-04-26 | 株式会社オプティム | Screen sharing system and screen sharing method |
US10198355B2 (en) | 2015-10-29 | 2019-02-05 | Dropbox, Inc. | Proving a dynamic digital content cache |
CN106649345A (en) | 2015-10-30 | 2017-05-10 | 微软技术许可有限责任公司 | Automatic session creator for news |
GB201520519D0 (en) * | 2015-11-20 | 2016-01-06 | Microsoft Technology Licensing Llc | Communication system |
GB201520509D0 (en) | 2015-11-20 | 2016-01-06 | Microsoft Technology Licensing Llc | Communication system |
CN108463800B (en) * | 2015-11-26 | 2022-12-16 | 巴科股份有限公司 | Content sharing protocol |
KR102553886B1 (en) * | 2015-12-24 | 2023-07-11 | 삼성전자주식회사 | Electronic device and method for image control thereof |
CN106921377B (en) * | 2015-12-24 | 2020-06-02 | 小米科技有限责任公司 | Touch key module, key icon display method and device |
US11269890B2 (en) * | 2016-01-18 | 2022-03-08 | Disney Enterprises, Inc. | Systems and methods for providing contextual messages for media contents |
JP2017146750A (en) * | 2016-02-16 | 2017-08-24 | 富士通株式会社 | Display control method, display control program, and terminal device |
KR20170097980A (en) | 2016-02-19 | 2017-08-29 | 삼성전자주식회사 | Method for sharing content group of electronic device and electronic device thereof |
US10200428B1 (en) * | 2016-03-30 | 2019-02-05 | Amazon Technologies, Inc. | Unicast routing of a media stream to subscribers |
KR20170112491A (en) * | 2016-03-31 | 2017-10-12 | 엘지전자 주식회사 | Mobile terminal and method for controlling the same |
US20170293399A1 (en) * | 2016-04-06 | 2017-10-12 | Batch Labs, Inc. | Collective collage generation |
CN105955607B (en) * | 2016-04-22 | 2020-06-19 | 北京小米移动软件有限公司 | Content sharing method and device |
DK201770423A1 (en) | 2016-06-11 | 2018-01-15 | Apple Inc | Activity and workout updates |
US11768583B2 (en) * | 2016-06-12 | 2023-09-26 | Apple Inc. | Integration of third party application as quick actions |
US10873786B2 (en) | 2016-06-12 | 2020-12-22 | Apple Inc. | Recording and broadcasting application visual output |
EP3273644B1 (en) | 2016-07-18 | 2021-02-17 | Vestel Elektronik Sanayi ve Ticaret A.S. | Method, system and computer program product for selectively adapting and transmitting messaging data |
CN106302631B (en) * | 2016-07-21 | 2019-04-26 | 三星电子(中国)研发中心 | A kind of method and system of sharing contents |
CN106293338A (en) * | 2016-08-01 | 2017-01-04 | 乐视控股(北京)有限公司 | Multimedia file sharing method and system |
US11256768B2 (en) | 2016-08-01 | 2022-02-22 | Facebook, Inc. | Systems and methods to manage media content items |
US10788975B2 (en) * | 2016-08-11 | 2020-09-29 | The Gap, Inc. | Systems and methods for providing integrated user interface elements for navigation |
US10540059B2 (en) | 2016-08-19 | 2020-01-21 | Dropbox, Inc. | User interface for content sharing client in a desktop file system context |
CN106332310A (en) * | 2016-08-22 | 2017-01-11 | 乐视控股(北京)有限公司 | Multimedia file sharing method and device |
USD805543S1 (en) * | 2016-10-10 | 2017-12-19 | Rebel Investments, LLC | Display screen portion with graphical user interface |
US9794213B1 (en) * | 2016-10-28 | 2017-10-17 | International Business Machines Corporation | Social interaction data preservation for augmented photos |
US10417671B2 (en) * | 2016-11-01 | 2019-09-17 | Yext, Inc. | Optimizing dynamic review generation for redirecting request links |
US20180176172A1 (en) * | 2016-12-15 | 2018-06-21 | Facebook, Inc. | Systems and methods for sharing content |
USD799530S1 (en) * | 2016-12-23 | 2017-10-10 | Beijing Kingsoft Internet Security Software Co., Ltd. | Mobile terminal display screen with a graphical user interface |
USD802007S1 (en) * | 2016-12-23 | 2017-11-07 | Beijing Kingsoft Internet Security Software Co., Ltd. | Mobile terminal display screen with a graphical user interface |
USD847829S1 (en) * | 2016-12-28 | 2019-05-07 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with transitional graphical user interface |
CN108259315A (en) * | 2017-01-16 | 2018-07-06 | 广州市动景计算机科技有限公司 | Online picture sharing method, equipment, client and electronic equipment |
US11630877B1 (en) * | 2017-01-24 | 2023-04-18 | Snap Inc. | Custom visual codes for network links |
US11070501B2 (en) * | 2017-01-31 | 2021-07-20 | Verizon Media Inc. | Computerized system and method for automatically determining and providing digital content within an electronic communication system |
KR102677287B1 (en) * | 2017-02-24 | 2024-06-21 | 엘지전자 주식회사 | Terminal and method for controlling the same |
CN113329100B (en) * | 2017-04-27 | 2022-10-14 | 腾讯科技(深圳)有限公司 | Message pushing method, device and system |
DK179412B1 (en) | 2017-05-12 | 2018-06-06 | Apple Inc | Context-Specific User Interfaces |
EP3568787B1 (en) | 2017-05-17 | 2024-04-10 | Google LLC | Automatic image sharing with designated users over a communication network |
USD849770S1 (en) * | 2017-06-11 | 2019-05-28 | Facebook, Inc. | Display panel of a programmed computer system with a graphical user interface |
USD831689S1 (en) * | 2017-06-11 | 2018-10-23 | Facebook, Inc. | Display panel of a programmed computer system with a graphical user interface |
CN107273031B (en) * | 2017-06-23 | 2020-10-16 | 阿里巴巴(中国)有限公司 | Information flow page loading method and device |
US10791077B2 (en) | 2017-08-08 | 2020-09-29 | Snap Inc. | Application-independent messaging system |
CN107643859A (en) * | 2017-09-07 | 2018-01-30 | 维沃移动通信有限公司 | A kind of running status restoration methods and mobile terminal |
US10911812B2 (en) | 2017-09-18 | 2021-02-02 | S2 Security Corporation | System and method for delivery of near-term real-time recorded video |
US11247120B2 (en) * | 2017-10-11 | 2022-02-15 | Sony Interactive Entertainment LLC | Digital pin board for a gaming platform |
JP7192206B2 (en) * | 2017-11-02 | 2022-12-20 | 富士フイルムビジネスイノベーション株式会社 | Information processing device and program |
US11343304B2 (en) * | 2017-11-20 | 2022-05-24 | Parallels International Gmbh | System and method for sharing electronic data using a mobile device |
US20190166079A1 (en) * | 2017-11-29 | 2019-05-30 | Microsoft Technology Licensing, Llc | Contextual conversations on online social networking systems |
CN109889424B (en) * | 2017-12-06 | 2022-02-08 | 腾讯科技(深圳)有限公司 | Information processing method, device and storage medium |
CN107908337A (en) * | 2017-12-14 | 2018-04-13 | 广州三星通信技术研究有限公司 | Share the method and apparatus of picture material |
CN108037950B (en) * | 2017-12-27 | 2021-08-24 | 福建中金在线信息科技有限公司 | Information deleting method and device, electronic equipment and readable storage medium |
CN108228053A (en) * | 2017-12-29 | 2018-06-29 | 努比亚技术有限公司 | A kind of information sharing method, intelligent terminal and storage medium |
USD908716S1 (en) * | 2018-01-05 | 2021-01-26 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with graphical user interface |
US11372698B2 (en) | 2018-01-12 | 2022-06-28 | Meta Platforms, Inc. | Coordinated effects in experiences |
US11019305B2 (en) | 2018-01-12 | 2021-05-25 | Facebook, Inc. | Coordinated effects in videos |
US11102264B2 (en) | 2018-01-12 | 2021-08-24 | Facebook, Inc. | Methods and systems for initiating a coordinated effect |
US10826853B1 (en) * | 2018-03-09 | 2020-11-03 | Facebook, Inc. | Systems and methods for content distribution |
EP3738056A1 (en) * | 2018-04-18 | 2020-11-18 | Dropbox, Inc. | New comment navigation in a mobile document interface |
US10868784B2 (en) | 2018-04-18 | 2020-12-15 | Dropbox, Inc. | Comment thread navigation in a mobile document interface |
DK180171B1 (en) | 2018-05-07 | 2020-07-14 | Apple Inc | USER INTERFACES FOR SHARING CONTEXTUALLY RELEVANT MEDIA CONTENT |
US11327650B2 (en) | 2018-05-07 | 2022-05-10 | Apple Inc. | User interfaces having a collection of complications |
CN108762954B (en) * | 2018-05-29 | 2021-11-02 | 维沃移动通信有限公司 | Object sharing method and mobile terminal |
CN109003362B (en) * | 2018-07-03 | 2021-08-24 | 广州启盟信息科技有限公司 | Visitor invitation passing method, device, system and storage medium |
US11218435B1 (en) * | 2018-07-31 | 2022-01-04 | Snap Inc. | System and method of managing electronic media content items |
EP3813334B1 (en) * | 2018-08-13 | 2024-10-09 | Huawei Technologies Co., Ltd. | Photo sharing method and electronic device |
CN110839103A (en) * | 2018-08-17 | 2020-02-25 | 深圳富泰宏精密工业有限公司 | Electronic device and control method thereof |
US11544019B2 (en) | 2018-09-11 | 2023-01-03 | Huawei Technologies Co., Ltd. | Data sharing method, graphical user interface, electronic device, and system |
CN109068063B (en) * | 2018-09-20 | 2021-01-15 | 维沃移动通信有限公司 | Three-dimensional image data processing and displaying method and device and mobile terminal |
JP6724223B2 (en) * | 2018-09-29 | 2020-07-15 | ジェギュ イ | Data processing terminal capable of displaying various icon badges and method of using the badge and terminal |
US11736791B2 (en) * | 2018-10-24 | 2023-08-22 | Cliqa Social Ltd. | Camera system and method for efficient capture and distribution of images |
KR102601687B1 (en) * | 2018-11-09 | 2023-11-13 | 라인플러스 주식회사 | Method, system, and non-transitory computer readable recording medium for message group management |
CN109614019A (en) * | 2018-11-29 | 2019-04-12 | 阿里巴巴集团控股有限公司 | A kind of processing method of image, device and equipment |
JP7247583B2 (en) * | 2018-12-28 | 2023-03-29 | 富士フイルムビジネスイノベーション株式会社 | Control device and control program |
US11115479B2 (en) * | 2019-01-10 | 2021-09-07 | Google Llc | Enhanced online privacy |
WO2020150979A1 (en) * | 2019-01-24 | 2020-07-30 | 华为技术有限公司 | Image sharing method and mobile device |
CN111625165B (en) * | 2019-02-28 | 2022-03-18 | 北京字节跳动网络技术有限公司 | Media file processing method, device, terminal and storage medium |
US11131967B2 (en) | 2019-05-06 | 2021-09-28 | Apple Inc. | Clock faces for an electronic device |
JP6921338B2 (en) | 2019-05-06 | 2021-08-18 | アップル インコーポレイテッドApple Inc. | Limited operation of electronic devices |
US11960701B2 (en) | 2019-05-06 | 2024-04-16 | Apple Inc. | Using an illustration to show the passing of time |
US11792242B2 (en) | 2019-06-01 | 2023-10-17 | Apple Inc. | Sharing routine for suggesting applications to share content from host application |
USD961603S1 (en) | 2019-06-01 | 2022-08-23 | Apple Inc. | Electronic device with animated graphical user interface |
US11556546B2 (en) | 2019-06-01 | 2023-01-17 | Apple Inc. | People suggester using historical interactions on a device |
CN110391969B (en) * | 2019-06-06 | 2022-03-25 | 浙江口碑网络技术有限公司 | Multimedia-based chatting method and device, storage medium and electronic device |
US11134036B2 (en) * | 2019-07-05 | 2021-09-28 | Snap Inc. | Event planning in a content sharing platform |
US11675475B2 (en) * | 2019-07-09 | 2023-06-13 | Rovi Guides, Inc. | System and methods to denote unshared content to be shared |
CN110543579A (en) * | 2019-07-26 | 2019-12-06 | 华为技术有限公司 | Image display method and electronic equipment |
USD921669S1 (en) | 2019-09-09 | 2021-06-08 | Apple Inc. | Display screen or portion thereof with animated graphical user interface |
DK180684B1 (en) | 2019-09-09 | 2021-11-25 | Apple Inc | Techniques for managing display usage |
CN114217726B (en) * | 2019-10-09 | 2024-06-18 | 广州视源电子科技股份有限公司 | Operation method and device of intelligent interaction panel, terminal equipment and storage medium |
CN110752983B (en) * | 2019-10-12 | 2022-05-20 | 杭州网易云音乐科技有限公司 | Interaction method, device, interface, medium and computing equipment |
CN110851051B (en) * | 2019-10-28 | 2021-06-08 | 维沃移动通信有限公司 | Object sharing method and electronic equipment |
US11816146B1 (en) | 2019-11-26 | 2023-11-14 | ShotSpotz LLC | Systems and methods for processing media to provide notifications |
US11436290B1 (en) | 2019-11-26 | 2022-09-06 | ShotSpotz LLC | Systems and methods for processing media with geographical segmentation |
US11868395B1 (en) | 2019-11-26 | 2024-01-09 | ShotSpotz LLC | Systems and methods for linking geographic segmented areas to tokens using artwork |
EP3828795A1 (en) | 2019-11-28 | 2021-06-02 | Ricoh Company, Ltd. | Information processing system, information processing apparatus, information processing method, and recording medium |
CN111142726B (en) * | 2019-12-25 | 2021-04-30 | 维沃移动通信有限公司 | Image display method and electronic equipment |
CN113031837B (en) * | 2019-12-25 | 2022-10-11 | 北京达佳互联信息技术有限公司 | Content sharing method and device, storage medium, terminal and server |
CN111104024B (en) * | 2019-12-25 | 2021-04-27 | 维沃移动通信有限公司 | Method for sending media file and electronic equipment |
CN111240543B (en) * | 2020-01-03 | 2023-08-22 | 腾讯科技(深圳)有限公司 | Comment method, comment device, computer equipment and storage medium |
US11625364B2 (en) | 2020-01-03 | 2023-04-11 | International Business Machines Corporation | Cognitive synchronization of digital files |
CN111339049A (en) * | 2020-02-04 | 2020-06-26 | 浙江大华技术股份有限公司 | Data sharing method and terminal |
CN113449136A (en) * | 2020-03-26 | 2021-09-28 | 华为技术有限公司 | Data sharing method, electronic equipment and system |
US11411900B2 (en) | 2020-03-30 | 2022-08-09 | Snap Inc. | Off-platform messaging system |
US11700225B2 (en) | 2020-04-23 | 2023-07-11 | Snap Inc. | Event overlay invite messaging system |
CN111585868B (en) * | 2020-04-27 | 2021-04-23 | 腾讯科技(深圳)有限公司 | Information processing method and device, computer equipment and readable storage medium |
US11372659B2 (en) | 2020-05-11 | 2022-06-28 | Apple Inc. | User interfaces for managing user interface sharing |
CN115904596B (en) | 2020-05-11 | 2024-02-02 | 苹果公司 | User interface for managing user interface sharing |
DK181103B1 (en) | 2020-05-11 | 2022-12-15 | Apple Inc | User interfaces related to time |
US11507863B2 (en) | 2020-05-21 | 2022-11-22 | Apple Inc. | Feature determination for machine learning to suggest applications/recipients |
CN115756270B (en) | 2020-05-29 | 2024-03-26 | 华为技术有限公司 | Content sharing method, device and system |
US11539647B1 (en) * | 2020-06-17 | 2022-12-27 | Meta Platforms, Inc. | Message thread media gallery |
US11477397B2 (en) * | 2020-06-30 | 2022-10-18 | Snap Inc. | Media content discard notification system |
USD974371S1 (en) | 2020-07-29 | 2023-01-03 | Apple Inc. | Display screen or portion thereof with graphical user interface |
USD1036452S1 (en) * | 2020-07-31 | 2024-07-23 | Canva Pty Ltd | Display screen or portion thereof with graphical user interface |
US11863602B2 (en) | 2020-08-19 | 2024-01-02 | Salesforce, Inc. | Inter-application data interchange via a group-based communication system that triggers user intervention |
US11694590B2 (en) | 2020-12-21 | 2023-07-04 | Apple Inc. | Dynamic user interface with time indicator |
US11720239B2 (en) | 2021-01-07 | 2023-08-08 | Apple Inc. | Techniques for user interfaces related to an event |
CN112954111A (en) * | 2021-02-09 | 2021-06-11 | 维沃移动通信有限公司 | Method and device for sharing pictures, electronic equipment and storage medium |
US20220319082A1 (en) * | 2021-03-31 | 2022-10-06 | Snap Inc. | Generating modified user content that includes additional text content |
US11928167B2 (en) * | 2021-03-31 | 2024-03-12 | Snap Inc. | Determining classification recommendations for user content |
US11921992B2 (en) | 2021-05-14 | 2024-03-05 | Apple Inc. | User interfaces related to time |
JP7567076B2 (en) | 2021-05-15 | 2024-10-15 | アップル インコーポレイテッド | Shared Content Session User Interface |
US11938376B2 (en) | 2021-05-15 | 2024-03-26 | Apple Inc. | User interfaces for group workouts |
USD1012099S1 (en) * | 2021-05-25 | 2024-01-23 | Beijing Kuaimajiabian Technology Co., Ltd. | Display screen or portion thereof with a graphical user interface |
US11989404B1 (en) * | 2021-07-30 | 2024-05-21 | Apple Inc. | Time-based visualization of content anchored in time |
CN113655930B (en) * | 2021-08-30 | 2023-01-10 | 北京字跳网络技术有限公司 | Information publishing method, information display method and device, electronic equipment and medium |
US20230236547A1 (en) | 2022-01-24 | 2023-07-27 | Apple Inc. | User interfaces for indicating time |
CN114610423B (en) * | 2022-02-11 | 2024-07-23 | 维沃移动通信有限公司 | Content release method and device and electronic equipment |
WO2023160830A1 (en) * | 2022-02-28 | 2023-08-31 | Mind Switch AG | Electronic treatment device |
US11973730B2 (en) | 2022-06-02 | 2024-04-30 | Snap Inc. | External messaging function for an interaction system |
Citations (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6085229A (en) * | 1998-05-14 | 2000-07-04 | Belarc, Inc. | System and method for providing client side personalization of content of web pages and the like |
US20020126701A1 (en) * | 2000-11-08 | 2002-09-12 | Nokia Corporation | System and methods for using an application layer control protocol transporting spatial location information pertaining to devices connected to wired and wireless internet protocol networks |
US6499053B1 (en) * | 1999-06-30 | 2002-12-24 | International Business Machines Corporation | Master/slave architecture for a distributed chat application in a bandwidth constrained network |
US20030059005A1 (en) * | 2001-09-24 | 2003-03-27 | Teleware, Inc. | Multi-media communication management system with dynamic bypass routing of real time streaming media |
US20030097410A1 (en) * | 2001-10-04 | 2003-05-22 | Atkins R. Travis | Methodology for enabling multi-party collaboration across a data network |
US20040054963A1 (en) * | 2002-09-13 | 2004-03-18 | Canon Kabushiki Kaisha | Information processing apparatus for providing image to communication terminal and control method therefor |
US6718361B1 (en) * | 2000-04-07 | 2004-04-06 | Network Appliance Inc. | Method and apparatus for reliable and scalable distribution of data files in distributed networks |
US20040088347A1 (en) * | 2002-10-31 | 2004-05-06 | Yeager William J. | Mobile agents in peer-to-peer networks |
US20040177116A1 (en) * | 2003-03-05 | 2004-09-09 | Mcconn Christopher E. | Digital image sharing enabled chat application |
US20040225719A1 (en) * | 2003-05-07 | 2004-11-11 | International Business Machines Corporation | Distributed file serving architecture system with metadata storage virtualization and data access at the data server connection speed |
US20040225716A1 (en) * | 2000-05-31 | 2004-11-11 | Ilan Shamir | Methods and systems for allowing a group of users to interactively tour a computer network |
US20040236798A1 (en) * | 2001-09-11 | 2004-11-25 | Sudhir Srinivasan | Migration of control in a distributed segmented file system |
US6892230B1 (en) * | 1999-06-11 | 2005-05-10 | Microsoft Corporation | Dynamic self-configuration for ad hoc peer networking using mark-up language formated description messages |
US6910068B2 (en) * | 1999-06-11 | 2005-06-21 | Microsoft Corporation | XML-based template language for devices and services |
US6931450B2 (en) * | 2000-12-18 | 2005-08-16 | Sun Microsystems, Inc. | Direct access from client to storage device |
US20060010095A1 (en) * | 2004-07-09 | 2006-01-12 | Wolff Gregory J | Synchronizing distributed work through document logs |
US20060184997A1 (en) * | 2004-01-29 | 2006-08-17 | Yahoo! Inc. | Control for inviting an unauthenticated user to gain access to display of content that is otherwise accessible with an authentication mechanism |
US20070061509A1 (en) * | 2005-09-09 | 2007-03-15 | Vikas Ahluwalia | Power management in a distributed file system |
US20070263798A1 (en) * | 2006-04-19 | 2007-11-15 | Shane Richard Dewing | System and Methodology for Peer-To-Peer Voice Communication Employing a Pushed Interactive Multimedia Announcement |
US20080046478A1 (en) * | 2006-05-02 | 2008-02-21 | Indrek Mandre | Synchronising contacts |
US7370364B2 (en) * | 2000-07-31 | 2008-05-06 | Ellacoya Networks, Inc. | Managing content resources |
US7392296B2 (en) * | 2002-06-19 | 2008-06-24 | Eastman Kodak Company | Method and computer software program for sharing images over a communication network among a plurality of users in accordance with a criteria |
US20080155112A1 (en) * | 2006-12-22 | 2008-06-26 | Nokia Corporation | System and method for updating information feeds |
US20080168139A1 (en) * | 2007-01-06 | 2008-07-10 | Microsoft Corporation | Persistent collaborative framework for interactive web applications |
US20080209010A1 (en) * | 2007-02-26 | 2008-08-28 | Microsoft Corporation | Information sharing between images |
US20090063649A1 (en) * | 2007-08-31 | 2009-03-05 | Yasuaki Yamagishi | Request and Notification for Metadata of Content |
US7565448B1 (en) * | 2004-02-03 | 2009-07-21 | Sprint Communications Company L.P. | Network control system for a communication network |
US20090287746A1 (en) * | 2008-05-15 | 2009-11-19 | International Business Machines Corporation | Apparatus, system, and method for dynamic database driven document synchronization |
US20100174993A1 (en) * | 2008-04-01 | 2010-07-08 | Robert Sanford Havoc Pennington | Method and apparatus for managing digital media content |
US20100235762A1 (en) * | 2009-03-10 | 2010-09-16 | Nokia Corporation | Method and apparatus of providing a widget service for content sharing |
US20100319062A1 (en) * | 2009-06-16 | 2010-12-16 | Damon Danieli | Invitation service for multi-device application sessions |
US20100318554A1 (en) * | 2009-06-12 | 2010-12-16 | Microsoft Corporation | Content mesh searching |
US20100325199A1 (en) * | 2009-06-22 | 2010-12-23 | Samsung Electronics Co., Ltd. | Client, brokerage server and method for providing cloud storage |
US20110004943A1 (en) * | 2000-01-07 | 2011-01-06 | Naren Chaganti | Online personal library |
US20110113350A1 (en) * | 2005-10-13 | 2011-05-12 | International Business Machines Corporation | Method, system and program product for building collaboration applications using multiple-peer user interface libraries |
US20110265148A1 (en) * | 2004-11-04 | 2011-10-27 | Chung Ming Tam | System and method for creating a secure trusted social network |
US20110276538A1 (en) * | 2010-05-06 | 2011-11-10 | The Go Daddy Group, Inc. | Cloud storage solution for reading and writing files |
US20110289157A1 (en) * | 2010-05-20 | 2011-11-24 | Kambiz David Pirnazar | Method and Apparatus for the Implementation of a Real-Time, Sharable Browsing Experience on a Guest Device |
US20120079038A1 (en) * | 2010-09-23 | 2012-03-29 | Salesforce.Com, Inc. | Methods and Apparatus for Inviting Users to Follow Records in an On-Demand Database Service Environment |
US20120084666A1 (en) * | 2010-09-30 | 2012-04-05 | Google Inc. | Composition of customized presentations associated with a social media application |
US20120159635A1 (en) * | 2010-12-15 | 2012-06-21 | He Ray C | Comment Plug-In for Third Party System |
US20120197980A1 (en) * | 2011-01-27 | 2012-08-02 | Terleski Jonathan W | Content Access Control in Social Network |
US20120231770A1 (en) * | 2011-01-06 | 2012-09-13 | Research In Motion Limited | Delivery and management of status notifications for group messaging |
US20120278329A1 (en) * | 2011-04-29 | 2012-11-01 | Google Inc. | Tracking feeds in a social network |
US8331566B1 (en) * | 2011-11-16 | 2012-12-11 | Google Inc. | Media transmission and management |
US20120331108A1 (en) * | 2011-06-22 | 2012-12-27 | Dropbox, Inc. | File sharing via link generation |
US20130013699A1 (en) * | 2011-07-06 | 2013-01-10 | Yahoo!, Inc. | Online Photosession |
US20130066962A1 (en) * | 2011-09-09 | 2013-03-14 | Philip Scherzinger | Method and apparatus for social network |
US20130110892A1 (en) * | 2011-10-27 | 2013-05-02 | Microsoft Corporation | Techniques to determine network storage for sharing media files |
US20130124508A1 (en) * | 2009-10-02 | 2013-05-16 | Sylvain Paris | System and method for real-time image collection and sharing |
US20130282755A1 (en) * | 2012-04-23 | 2013-10-24 | Google Inc. | Associating a File Type with an Application in a Network Storage Service |
US20140006526A1 (en) * | 2008-01-18 | 2014-01-02 | Shutterfly, Inc. | Systems and methods for webpage creation and updating |
US8700708B2 (en) * | 2011-05-26 | 2014-04-15 | Facebook, Inc. | Social data recording |
US9054919B2 (en) * | 2012-04-05 | 2015-06-09 | Box, Inc. | Device pinning capability for enterprise cloud service and storage accounts |
Family Cites Families (112)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6777236B1 (en) * | 1994-12-14 | 2004-08-17 | Institut Pasteur | Process for producing a neuronal host cell in vitro comprising regulatory sequences of the β2-subunit of the neuronal nicotinic acetylcholine receptor |
US5860073A (en) * | 1995-07-17 | 1999-01-12 | Microsoft Corporation | Style sheets for publishing system |
JP2004506349A (en) * | 2000-08-04 | 2004-02-26 | コパン インコーポレイテッド | Method and system for displaying digital media |
US7426687B1 (en) | 2001-01-04 | 2008-09-16 | Omniture, Inc. | Automatic linking of documents |
JP4099961B2 (en) * | 2001-07-19 | 2008-06-11 | 日立工機株式会社 | Swing rotor for centrifuge and centrifuge |
WO2003010672A1 (en) * | 2001-07-23 | 2003-02-06 | Sony Corporation | Information processing system, information processing apparatus, and method |
JP2003091603A (en) * | 2001-09-17 | 2003-03-28 | Mainichi Comnet Co Ltd | Community supporting system |
JP3502088B2 (en) * | 2002-05-31 | 2004-03-02 | 三菱鉛筆株式会社 | Ink composition for pressure ballpoint pen |
US7970854B2 (en) * | 2003-01-15 | 2011-06-28 | Qurio Holdings, Inc. | Method and system for requesting image prints in an online photosharing system |
US20040246531A1 (en) * | 2003-06-03 | 2004-12-09 | Murata Kikai Kabushiki Kaisha | Server device having electronic bulletin board function |
JP2005039785A (en) * | 2003-06-30 | 2005-02-10 | Seiko Epson Corp | Image processing apparatus, method and program |
US7083956B2 (en) * | 2003-07-07 | 2006-08-01 | Gas Technology Institute | Method for hydrogen production from organic wastes using a two-phase bioreactor system |
US7171058B2 (en) * | 2003-07-31 | 2007-01-30 | Eastman Kodak Company | Method and computer program product for producing an image of a desired aspect ratio |
US8140980B2 (en) * | 2003-08-05 | 2012-03-20 | Verizon Business Global Llc | Method and system for providing conferencing services |
US20050055455A1 (en) | 2003-09-10 | 2005-03-10 | Oren Asher | Development platform for peer-to-peer applications |
US7734700B2 (en) * | 2003-10-10 | 2010-06-08 | Eastman Kodak Company | System and method for notification of digital images to be shared via a service provider |
US20050091595A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Group shared spaces |
US7458030B2 (en) * | 2003-12-12 | 2008-11-25 | Microsoft Corporation | System and method for realtime messaging having image sharing feature |
US7843581B2 (en) * | 2004-04-08 | 2010-11-30 | Canon Kabushiki Kaisha | Creating and sharing digital photo albums |
US7657846B2 (en) * | 2004-04-23 | 2010-02-02 | Microsoft Corporation | System and method for displaying stack icons |
WO2005116979A2 (en) | 2004-05-17 | 2005-12-08 | Visible Path Corporation | System and method for enforcing privacy in social networks |
JP4158980B2 (en) * | 2004-07-15 | 2008-10-01 | 株式会社オーバル | Multi vortex flowmeter |
US20060041632A1 (en) * | 2004-08-23 | 2006-02-23 | Microsoft Corporation | System and method to associate content types in a portable communication device |
US7656543B2 (en) | 2004-11-12 | 2010-02-02 | Hewlett-Packard Development Company, L.P. | Albuming images |
US7904570B1 (en) * | 2004-12-21 | 2011-03-08 | Adobe Systems Incorporated | Configurable file placement |
US20060170956A1 (en) * | 2005-01-31 | 2006-08-03 | Jung Edward K | Shared image devices |
US7664861B2 (en) * | 2005-02-02 | 2010-02-16 | Verizon Laboratories Inc. | Managed peer-to-peer file sharing |
EP1880316A1 (en) * | 2005-05-11 | 2008-01-23 | Nokia Corporation | User-defined changing of page representations |
US7751614B2 (en) * | 2005-05-16 | 2010-07-06 | Fujifilm Corporation | Album creating apparatus, album creating method, and album creating program |
US8041881B2 (en) * | 2006-07-31 | 2011-10-18 | Google Inc. | Memory device with emulated characteristics |
WO2007016510A2 (en) * | 2005-08-01 | 2007-02-08 | Andrew Erlichson | Transferring of digital information |
US7756945B1 (en) * | 2005-08-02 | 2010-07-13 | Ning, Inc. | Interacting with a shared data model |
US7930346B2 (en) * | 2005-08-24 | 2011-04-19 | Microsoft Corporation | Security in peer to peer synchronization applications |
US7797318B2 (en) * | 2005-08-25 | 2010-09-14 | Microsoft Corporation | Networking through electronic messaging and mail |
US20070067738A1 (en) * | 2005-09-16 | 2007-03-22 | Microsoft Corporation | Extensible, filtered lists for mobile device user interface |
US7890858B1 (en) * | 2005-10-11 | 2011-02-15 | Google Inc. | Transferring, processing and displaying multiple images using single transfer request |
US9454747B2 (en) * | 2005-10-11 | 2016-09-27 | Aol Inc. | Ordering of conversations based on monitored recipient user interaction with corresponding electronic messages |
US9367832B2 (en) * | 2006-01-04 | 2016-06-14 | Yahoo! Inc. | Synchronizing image data among applications and devices |
US8510669B2 (en) * | 2006-02-06 | 2013-08-13 | Yahoo! Inc. | Method and system for presenting photos on a website |
US7735101B2 (en) * | 2006-03-28 | 2010-06-08 | Cisco Technology, Inc. | System allowing users to embed comments at specific points in time into media presentation |
JP2007279510A (en) * | 2006-04-10 | 2007-10-25 | Sony Corp | Display control device, method, and program |
US7631252B2 (en) * | 2006-05-05 | 2009-12-08 | Google Inc. | Distributed processing when editing an image in a browser |
US7634715B2 (en) * | 2006-05-05 | 2009-12-15 | Google Inc. | Effects applied to images in a browser |
US7840650B2 (en) | 2006-05-09 | 2010-11-23 | Imageshack Corp. | Sharing of digital media on a network |
CN101072222A (en) * | 2006-05-12 | 2007-11-14 | 腾讯科技(深圳)有限公司 | Picture tracking-browsing system and method based on point-to-point technology |
US7929551B2 (en) * | 2006-06-01 | 2011-04-19 | Rovi Solutions Corporation | Methods and apparatus for transferring media across a network using a network interface device |
US8402357B1 (en) * | 2006-06-15 | 2013-03-19 | Michael R. Norwood | System and method for facilitating posting of public and private user comments at a web site |
US8280014B1 (en) * | 2006-06-27 | 2012-10-02 | VoiceCaptionIt, Inc. | System and method for associating audio clips with objects |
US7796779B1 (en) * | 2006-08-24 | 2010-09-14 | SugarSync, Inc. | Efficient synchronization of changes to images |
US8521857B2 (en) * | 2006-08-24 | 2013-08-27 | Bby Solutions, Inc. | Systems and methods for widget rendering and sharing on a personal electronic device |
US9318152B2 (en) * | 2006-10-20 | 2016-04-19 | Sony Corporation | Super share |
US7698660B2 (en) | 2006-11-13 | 2010-04-13 | Microsoft Corporation | Shared space for communicating information |
US8266527B2 (en) * | 2006-12-07 | 2012-09-11 | Canon Kabushiki Kaisha | Electronic album creating apparatus, electronic album editing apparatus, information processing system, electronic album creating method, and storage medium storing program |
US7707508B1 (en) * | 2006-12-12 | 2010-04-27 | Adobe Systems Incorporated | Methods and apparatus for efficient layout of digital content |
US8180735B2 (en) * | 2006-12-29 | 2012-05-15 | Prodea Systems, Inc. | Managed file backup and restore at remote storage locations through multi-services gateway at user premises |
US7921176B2 (en) * | 2007-01-03 | 2011-04-05 | Madnani Rajkumar R | Mechanism for generating a composite email |
US7937451B2 (en) | 2007-01-08 | 2011-05-03 | Mspot, Inc. | Method and apparatus for transferring digital content from a computer to a mobile handset |
AU2008209447B2 (en) * | 2007-01-23 | 2013-01-17 | Jostens, Inc. | Method and system for creating customized output |
KR101371413B1 (en) * | 2007-02-06 | 2014-03-10 | 삼성전자주식회사 | Photographing apparatus of performing communication and method thereof |
US9179086B2 (en) * | 2007-05-07 | 2015-11-03 | Yahoo! Inc. | System and method for providing dynamically updating applications in a television display environment |
US7778973B2 (en) * | 2007-05-18 | 2010-08-17 | Tat Kuen Choi | System, method, and program for sharing photos via the internet |
CN100487310C (en) * | 2007-07-06 | 2009-05-13 | 深圳市泓亚光电子有限公司 | Tabulate highpower light source with multiple chips |
JP5304172B2 (en) * | 2007-12-04 | 2013-10-02 | 株式会社リコー | File management apparatus, file management method, and file management program |
US20090177502A1 (en) | 2008-01-08 | 2009-07-09 | Nick Doinoff | System for matching drivers with customers seeking to hire a driver |
US20090187830A1 (en) * | 2008-01-18 | 2009-07-23 | Craig Jorasch | Systems and methods for webpage creation and updating |
KR101716401B1 (en) * | 2008-01-30 | 2017-03-14 | 구글 인코포레이티드 | Notification of mobile device events |
US8151215B2 (en) * | 2008-02-07 | 2012-04-03 | Sony Corporation | Favorite GUI for TV |
US9298815B2 (en) * | 2008-02-22 | 2016-03-29 | Accenture Global Services Limited | System for providing an interface for collaborative innovation |
US8655691B2 (en) * | 2008-03-04 | 2014-02-18 | Apple Inc. | Processing invitations and accepting configuration information on a device |
CA2659698C (en) * | 2008-03-21 | 2020-06-16 | Dressbot Inc. | System and method for collaborative shopping, business and entertainment |
US8185405B2 (en) * | 2008-05-20 | 2012-05-22 | Chuck Van Court | Method, system, and program product for information editorial controls |
JP5039637B2 (en) * | 2008-06-05 | 2012-10-03 | キヤノン株式会社 | System, information processing apparatus, processing method, and program |
WO2010028169A2 (en) * | 2008-09-05 | 2010-03-11 | Fotonauts, Inc. | Reverse tagging of images in system for managing and sharing digital images |
US8468158B2 (en) * | 2008-11-06 | 2013-06-18 | Yahoo! Inc. | Adaptive weighted crawling of user activity feeds |
JP4711152B2 (en) | 2008-12-26 | 2011-06-29 | ソニー株式会社 | Content display control device and method, program, and recording medium |
US9342814B2 (en) * | 2009-04-07 | 2016-05-17 | Clearslide, Inc. | Presentation access tracking system |
US20100262924A1 (en) * | 2009-04-08 | 2010-10-14 | Kalu Onuka Kalu | System and method for linking items to a group |
US20100318921A1 (en) * | 2009-06-16 | 2010-12-16 | Marc Trachtenberg | Digital easel collaboration system and method |
US8438495B1 (en) * | 2009-08-17 | 2013-05-07 | Adobe Systems Incorporated | Methods and systems for creating wireframes and managing containers |
CN101883127A (en) * | 2009-09-01 | 2010-11-10 | 联想(北京)有限公司 | Method for receiving, checking and forwarding network issued information and electronic equipment thereof |
US9152318B2 (en) * | 2009-11-25 | 2015-10-06 | Yahoo! Inc. | Gallery application for content viewing |
US8880623B2 (en) * | 2009-12-02 | 2014-11-04 | Redux, Inc. | Prioritization in a continuous video playback experience |
WO2011106412A1 (en) * | 2010-02-23 | 2011-09-01 | Unity Corporation, Inc. | Method and system of managing digital multimedia content |
US10692093B2 (en) * | 2010-04-16 | 2020-06-23 | Microsoft Technology Licensing, Llc | Social home page |
US8655111B2 (en) | 2010-05-13 | 2014-02-18 | Shutterfly, Inc. | System and method for creating and sharing photo stories |
US8862737B2 (en) * | 2010-06-24 | 2014-10-14 | Microsoft Corporation | Application integration of network data based on resource identifiers |
US20110257977A1 (en) * | 2010-08-03 | 2011-10-20 | Assistyx Llc | Collaborative augmentative and alternative communication system |
US20120032400A1 (en) * | 2010-08-03 | 2012-02-09 | Timothy Mumphrey | Blackjack game with side wager |
US8751575B2 (en) | 2010-09-27 | 2014-06-10 | Google Inc. | System and method for generating a ghost profile for a social network |
US8788585B2 (en) * | 2010-10-04 | 2014-07-22 | Alpha Sun & Sport—AS&S, LLC | Interactive experience sharing and evaluation system and method having highly customizable individual security level settings |
WO2012051539A2 (en) | 2010-10-14 | 2012-04-19 | Cyandia, Inc. | Methods, apparatus, and systems for presenting television programming and related information |
US9153000B2 (en) * | 2010-12-13 | 2015-10-06 | Microsoft Technology Licensing, Llc | Presenting content items shared within social networks |
WO2012083439A1 (en) * | 2010-12-23 | 2012-06-28 | Research In Motion Limited | Social media shuffle system and application |
US20120324002A1 (en) * | 2011-02-03 | 2012-12-20 | Afolio Inc. | Media Sharing |
GB2487972A (en) * | 2011-02-11 | 2012-08-15 | Nokia Corp | A method of display of comments associated with an object |
US9721033B2 (en) | 2011-02-28 | 2017-08-01 | Micro Focus Software Inc. | Social networking content management |
US8438233B2 (en) * | 2011-03-23 | 2013-05-07 | Color Labs, Inc. | Storage and distribution of content for a user device group |
US20120284638A1 (en) | 2011-05-06 | 2012-11-08 | Kibits Corp. | System and method for social interaction, sharing and collaboration |
CA2875847A1 (en) * | 2011-06-08 | 2012-12-13 | Sgrouples, Inc. | Group authorization method and software |
US8681963B2 (en) * | 2011-06-09 | 2014-03-25 | Blackberry Limited | Method for sending recorded conference call content |
US10210586B2 (en) | 2011-09-09 | 2019-02-19 | Facebook, Inc. | Composited posting interface for social networking system |
US9521175B2 (en) * | 2011-10-07 | 2016-12-13 | Henk B. Rogers | Media tagging |
US9269323B2 (en) * | 2011-10-28 | 2016-02-23 | Microsoft Technology Licensing, Llc | Image layout for a display |
US9143601B2 (en) * | 2011-11-09 | 2015-09-22 | Microsoft Technology Licensing, Llc | Event-based media grouping, playback, and sharing |
US8854397B2 (en) * | 2011-12-13 | 2014-10-07 | Facebook, Inc. | Photo selection for mobile devices |
US8963953B2 (en) * | 2012-01-11 | 2015-02-24 | Blackberry Limited | Interface for previewing image content |
US9563902B2 (en) * | 2012-04-11 | 2017-02-07 | Myriata, Inc. | System and method for transporting a virtual avatar within multiple virtual environments |
US8925106B1 (en) * | 2012-04-20 | 2014-12-30 | Google Inc. | System and method of ownership of an online collection |
US8978158B2 (en) * | 2012-04-27 | 2015-03-10 | Google Inc. | Privacy management across multiple devices |
WO2013166322A1 (en) * | 2012-05-04 | 2013-11-07 | Skybox Imaging, Inc. | Overhead image viewing systems and methods |
US20130328932A1 (en) * | 2012-06-08 | 2013-12-12 | Samsung Electronics Co., Ltd | Add social comment keeping photo context |
US20130332841A1 (en) | 2012-06-10 | 2013-12-12 | Apple Inc. | Integrated tools for creating and sharing image streams |
-
2012
- 2012-09-29 US US13/631,955 patent/US20130332841A1/en not_active Abandoned
- 2012-09-29 US US13/631,943 patent/US9116596B2/en active Active
- 2012-09-29 US US13/631,953 patent/US20130332856A1/en not_active Abandoned
- 2012-09-29 US US13/631,940 patent/US20130332854A1/en not_active Abandoned
- 2012-09-29 US US13/631,948 patent/US20130332526A1/en not_active Abandoned
- 2012-09-29 US US13/631,954 patent/US20130332840A1/en not_active Abandoned
- 2012-09-29 US US13/631,945 patent/US20130332512A1/en not_active Abandoned
-
2013
- 2013-05-23 CN CN201811447210.XA patent/CN109375850A/en active Pending
- 2013-05-23 CN CN201380028446.9A patent/CN105612472B/en active Active
- 2013-05-23 JP JP2015516049A patent/JP2015527628A/en active Pending
- 2013-05-23 WO PCT/US2013/042541 patent/WO2013188078A2/en active Application Filing
Patent Citations (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6085229A (en) * | 1998-05-14 | 2000-07-04 | Belarc, Inc. | System and method for providing client side personalization of content of web pages and the like |
US6910068B2 (en) * | 1999-06-11 | 2005-06-21 | Microsoft Corporation | XML-based template language for devices and services |
US6892230B1 (en) * | 1999-06-11 | 2005-05-10 | Microsoft Corporation | Dynamic self-configuration for ad hoc peer networking using mark-up language formated description messages |
US6499053B1 (en) * | 1999-06-30 | 2002-12-24 | International Business Machines Corporation | Master/slave architecture for a distributed chat application in a bandwidth constrained network |
US20110004943A1 (en) * | 2000-01-07 | 2011-01-06 | Naren Chaganti | Online personal library |
US6718361B1 (en) * | 2000-04-07 | 2004-04-06 | Network Appliance Inc. | Method and apparatus for reliable and scalable distribution of data files in distributed networks |
US20040225716A1 (en) * | 2000-05-31 | 2004-11-11 | Ilan Shamir | Methods and systems for allowing a group of users to interactively tour a computer network |
US7370364B2 (en) * | 2000-07-31 | 2008-05-06 | Ellacoya Networks, Inc. | Managing content resources |
US20020126701A1 (en) * | 2000-11-08 | 2002-09-12 | Nokia Corporation | System and methods for using an application layer control protocol transporting spatial location information pertaining to devices connected to wired and wireless internet protocol networks |
US6931450B2 (en) * | 2000-12-18 | 2005-08-16 | Sun Microsystems, Inc. | Direct access from client to storage device |
US20040236798A1 (en) * | 2001-09-11 | 2004-11-25 | Sudhir Srinivasan | Migration of control in a distributed segmented file system |
US20030059005A1 (en) * | 2001-09-24 | 2003-03-27 | Teleware, Inc. | Multi-media communication management system with dynamic bypass routing of real time streaming media |
US20030097410A1 (en) * | 2001-10-04 | 2003-05-22 | Atkins R. Travis | Methodology for enabling multi-party collaboration across a data network |
US7392296B2 (en) * | 2002-06-19 | 2008-06-24 | Eastman Kodak Company | Method and computer software program for sharing images over a communication network among a plurality of users in accordance with a criteria |
US20040054963A1 (en) * | 2002-09-13 | 2004-03-18 | Canon Kabushiki Kaisha | Information processing apparatus for providing image to communication terminal and control method therefor |
US20040088347A1 (en) * | 2002-10-31 | 2004-05-06 | Yeager William J. | Mobile agents in peer-to-peer networks |
US20040177116A1 (en) * | 2003-03-05 | 2004-09-09 | Mcconn Christopher E. | Digital image sharing enabled chat application |
US20040225719A1 (en) * | 2003-05-07 | 2004-11-11 | International Business Machines Corporation | Distributed file serving architecture system with metadata storage virtualization and data access at the data server connection speed |
US20060184997A1 (en) * | 2004-01-29 | 2006-08-17 | Yahoo! Inc. | Control for inviting an unauthenticated user to gain access to display of content that is otherwise accessible with an authentication mechanism |
US7565448B1 (en) * | 2004-02-03 | 2009-07-21 | Sprint Communications Company L.P. | Network control system for a communication network |
US20060010095A1 (en) * | 2004-07-09 | 2006-01-12 | Wolff Gregory J | Synchronizing distributed work through document logs |
US20110265148A1 (en) * | 2004-11-04 | 2011-10-27 | Chung Ming Tam | System and method for creating a secure trusted social network |
US20070061509A1 (en) * | 2005-09-09 | 2007-03-15 | Vikas Ahluwalia | Power management in a distributed file system |
US20110113350A1 (en) * | 2005-10-13 | 2011-05-12 | International Business Machines Corporation | Method, system and program product for building collaboration applications using multiple-peer user interface libraries |
US20070263798A1 (en) * | 2006-04-19 | 2007-11-15 | Shane Richard Dewing | System and Methodology for Peer-To-Peer Voice Communication Employing a Pushed Interactive Multimedia Announcement |
US20080046478A1 (en) * | 2006-05-02 | 2008-02-21 | Indrek Mandre | Synchronising contacts |
US20080155112A1 (en) * | 2006-12-22 | 2008-06-26 | Nokia Corporation | System and method for updating information feeds |
US20080168139A1 (en) * | 2007-01-06 | 2008-07-10 | Microsoft Corporation | Persistent collaborative framework for interactive web applications |
US20080209010A1 (en) * | 2007-02-26 | 2008-08-28 | Microsoft Corporation | Information sharing between images |
US20090063649A1 (en) * | 2007-08-31 | 2009-03-05 | Yasuaki Yamagishi | Request and Notification for Metadata of Content |
US20140006526A1 (en) * | 2008-01-18 | 2014-01-02 | Shutterfly, Inc. | Systems and methods for webpage creation and updating |
US20100174993A1 (en) * | 2008-04-01 | 2010-07-08 | Robert Sanford Havoc Pennington | Method and apparatus for managing digital media content |
US20090287746A1 (en) * | 2008-05-15 | 2009-11-19 | International Business Machines Corporation | Apparatus, system, and method for dynamic database driven document synchronization |
US20100235762A1 (en) * | 2009-03-10 | 2010-09-16 | Nokia Corporation | Method and apparatus of providing a widget service for content sharing |
US20100318554A1 (en) * | 2009-06-12 | 2010-12-16 | Microsoft Corporation | Content mesh searching |
US20100319062A1 (en) * | 2009-06-16 | 2010-12-16 | Damon Danieli | Invitation service for multi-device application sessions |
US20100325199A1 (en) * | 2009-06-22 | 2010-12-23 | Samsung Electronics Co., Ltd. | Client, brokerage server and method for providing cloud storage |
US20130124508A1 (en) * | 2009-10-02 | 2013-05-16 | Sylvain Paris | System and method for real-time image collection and sharing |
US20110276538A1 (en) * | 2010-05-06 | 2011-11-10 | The Go Daddy Group, Inc. | Cloud storage solution for reading and writing files |
US20110289157A1 (en) * | 2010-05-20 | 2011-11-24 | Kambiz David Pirnazar | Method and Apparatus for the Implementation of a Real-Time, Sharable Browsing Experience on a Guest Device |
US20120079038A1 (en) * | 2010-09-23 | 2012-03-29 | Salesforce.Com, Inc. | Methods and Apparatus for Inviting Users to Follow Records in an On-Demand Database Service Environment |
US20120084666A1 (en) * | 2010-09-30 | 2012-04-05 | Google Inc. | Composition of customized presentations associated with a social media application |
US20120159635A1 (en) * | 2010-12-15 | 2012-06-21 | He Ray C | Comment Plug-In for Third Party System |
US20120231770A1 (en) * | 2011-01-06 | 2012-09-13 | Research In Motion Limited | Delivery and management of status notifications for group messaging |
US20120197980A1 (en) * | 2011-01-27 | 2012-08-02 | Terleski Jonathan W | Content Access Control in Social Network |
US20120278329A1 (en) * | 2011-04-29 | 2012-11-01 | Google Inc. | Tracking feeds in a social network |
US8700708B2 (en) * | 2011-05-26 | 2014-04-15 | Facebook, Inc. | Social data recording |
US20120331108A1 (en) * | 2011-06-22 | 2012-12-27 | Dropbox, Inc. | File sharing via link generation |
US20130013699A1 (en) * | 2011-07-06 | 2013-01-10 | Yahoo!, Inc. | Online Photosession |
US20130066962A1 (en) * | 2011-09-09 | 2013-03-14 | Philip Scherzinger | Method and apparatus for social network |
US20130110892A1 (en) * | 2011-10-27 | 2013-05-02 | Microsoft Corporation | Techniques to determine network storage for sharing media files |
US8331566B1 (en) * | 2011-11-16 | 2012-12-11 | Google Inc. | Media transmission and management |
US9054919B2 (en) * | 2012-04-05 | 2015-06-09 | Box, Inc. | Device pinning capability for enterprise cloud service and storage accounts |
US20130282755A1 (en) * | 2012-04-23 | 2013-10-24 | Google Inc. | Associating a File Type with an Application in a Network Storage Service |
Non-Patent Citations (11)
Title |
---|
Alimi, Richard, Yang Yang, and Akbar Rahman. "A survey of in-network storage systems." (2011). * |
Fonville, Maarten. "Confidential peer-to-peer file-sharing using social-network sites." (2010). * |
Graham, Krista. "TechMatters: Dropbox: Storing and Sharing Information in the Cloud." LOEX Quarterly 37.4 (2011): 4. * |
Hamilton, Eric. "JPEG file interchange format." C-Cube Microsystems (1992). * |
Krause, Austin, "Receive Files From Anyone Straight To Your Dropbox With DropItToMe;" October 28, 2010, https://www.groovypost.com/howto/freeware/receive-files-from-anyone-dropbox-dropittome-review/ * |
Kraynak, Joe; Belicove, Mikal E. "The Complete Idiot's Guide To Facebook" July, 01, 2010 * |
NAJ. https://destinationmarketer.wordpress.com/2011/06/21/facebook-tip-2how-do-you-reject-a-friend-of-facebook/, June 21, 2011 * |
Otnes, Kevin. "Organizing and Sharing Pictures and Videos." Windows 7 Made Simple. Apress, 2011. 403-423. * |
Sorrel, Charlie. http://www.wired.com/2011/07/everything-you-need-to-know-about-google-plus-and-photos/, July 12, 2011 * |
Tolone, William, et al. "Access control in collaborative systems." ACM Computing Surveys (CSUR) 37.1 (2005): 29-41. * |
Xu, Pengzhi, et al. "Enabling cloud storage to support traditional applications." ChinaGrid Conference (ChinaGrid), 2010 Fifth Annual. IEEE, 2010. * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9116596B2 (en) | 2012-06-10 | 2015-08-25 | Apple Inc. | Sharing images and comments across different devices |
US11468243B2 (en) | 2012-09-24 | 2022-10-11 | Amazon Technologies, Inc. | Identity-based display of text |
US10834037B2 (en) * | 2013-06-28 | 2020-11-10 | Tencent Technology (Shenzhen) Company Limited | Systems and methods for image sharing |
US20180324124A1 (en) * | 2013-06-28 | 2018-11-08 | Tencent Technology (Shenzhen) Company Limited | Systems and methods for image sharing |
US10409858B2 (en) | 2013-08-02 | 2019-09-10 | Shoto, Inc. | Discovery and sharing of photos between devices |
CN104980326A (en) * | 2014-04-03 | 2015-10-14 | 联想移动通信软件(武汉)有限公司 | Method and device for sharing application content between terminal equipment |
US9860289B2 (en) | 2014-05-23 | 2018-01-02 | Radeeus, Inc. | Multimedia digital content retrieval, matching, and syncing systems and methods of using the same |
US10212305B2 (en) * | 2016-05-13 | 2019-02-19 | Fuji Xerox Co., Ltd. | Communication apparatus and method and non-transitory computer readable medium for sending processing records to multiple destinations |
CN107370901A (en) * | 2016-05-13 | 2017-11-21 | 富士施乐株式会社 | Communicator and method |
US20170331974A1 (en) * | 2016-05-13 | 2017-11-16 | Fuji Xerox Co., Ltd. | Communication apparatus and method and non-transitory computer readable medium |
US11558431B2 (en) * | 2017-01-05 | 2023-01-17 | Ricoh Company, Ltd. | Communication terminal, communication system, communication method, and display method |
US10999237B2 (en) | 2017-04-10 | 2021-05-04 | Facebook, Inc. | Systems and methods for sharing content |
US11252122B2 (en) * | 2017-04-10 | 2022-02-15 | Facebook, Inc. | Systems and methods for sharing content |
CN113596806A (en) * | 2021-07-09 | 2021-11-02 | 北京达佳互联信息技术有限公司 | Terminal source determining method and device, electronic equipment and storage medium |
Also Published As
Publication number | Publication date |
---|---|
US9116596B2 (en) | 2015-08-25 |
US20130332855A1 (en) | 2013-12-12 |
CN109375850A (en) | 2019-02-22 |
US20130332854A1 (en) | 2013-12-12 |
WO2013188078A3 (en) | 2015-06-18 |
US20130332512A1 (en) | 2013-12-12 |
US20130332856A1 (en) | 2013-12-12 |
CN105612472A (en) | 2016-05-25 |
CN105612472B (en) | 2018-12-04 |
US20130332840A1 (en) | 2013-12-12 |
JP2015527628A (en) | 2015-09-17 |
WO2013188078A2 (en) | 2013-12-19 |
US20130332841A1 (en) | 2013-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9116596B2 (en) | Sharing images and comments across different devices | |
US11029838B2 (en) | Touch screen device, method, and graphical user interface for customizing display of content category icons | |
US10095385B2 (en) | Communication user interface systems and methods | |
US10146830B2 (en) | Cross application framework for aggregating data relating to people, locations, and entities | |
US20170199644A1 (en) | Content Composer | |
KR102069020B1 (en) | Content composer for third-party applications | |
US20160291822A1 (en) | Systems and methods for message communication | |
US20150149927A1 (en) | Communication user interface systems and methods | |
KR20160070785A (en) | Positioning of components in a user interface | |
US11314402B2 (en) | Displaying assets in multiple zoom levels of a media library | |
CN104956299A (en) | User-based interactive elements | |
KR102049267B1 (en) | Interactive elements in a user interface | |
US20190288972A1 (en) | Reveal posts in a content sharing platform | |
EP3935522B1 (en) | Curated media library | |
Blecher | Microsoft Surface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: APPLE INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HURLEY, TIMOTHY S.;NEITZER, GUIDO;RITCHIE, MARK L.;AND OTHERS;SIGNING DATES FROM 20121218 TO 20130725;REEL/FRAME:031138/0460 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |