Device, medium and method for sharing content in a messaging application
By introducing cloud-based services and shared storage areas in the messaging application, and using URLs and hash strings to realize copy-free file sharing, the problem of low efficiency of multimedia content sharing in the prior art is solved, and efficient and convenient file sharing and access are achieved.
Patent Information
- Application Number
- CN202211272522.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-09-28
- Filing Date
- 2019-03-11
- Publication Date
- 2025-04-04
- Estimated Expiration
- 2039-03-11
AI Technical Summary
The prior art is difficult to efficiently share multimedia content such as images, videos and documents in messaging applications, especially when multiple recipients are involved.
By introducing cloud-based services into messaging applications, creating shared storage areas and leveraging unified resource locators (URLs) and hash strings, enabling copy-free sharing and access to files.
The ability to efficiently share multimedia content in messaging applications is realized, simplifies the file sharing process, reduces data redundancy, and improves the convenience of file access.
Smart Images

Figure CN115589392B_ABST
Abstract
Description
[0001] This application is a divisional application of an invention patent application with an application date of March 11, 2019, application number 201980030889.9, and titled “Device, medium, and method for sharing content in a messaging application.”
[0002] CROSS-REFERENCE TO RELATED APPLICATIONS
[0003] This application claims the benefit of U.S. Provisional Patent Application Serial No. 62 / 668,133, filed May 7, 2018, entitled “SHARING CONTENT IN A MESSAGING APPLICATION,” which is incorporated herein by reference in its entirety and constitutes a part of this U.S. utility patent application for all purposes. Technical Field
[0004] This specification relates generally to electronic messaging, including sharing collections of content, such as collections of images, videos, documents, etc., within messaging applications. Background Art
[0005] Messaging applications can provide users of electronic devices with the ability to communicate with one another. For example, messaging applications can be used to transmit text messages and other content such as images and videos. Electronic devices such as mobile phones, laptops, computers, and smart watches can be used to participate in electronic messaging. For example, a user of a first device can use a messaging application to send content to another user of a second device. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Certain features of the subject technology are set forth in the appended claims. However, for purposes of explanation, several embodiments of the subject technology are set forth in the following drawings.
[0007] Figure 1 An exemplary network environment for sharing content in a messaging application is shown in accordance with one or more implementations.
[0008] Figure 2 Example devices are shown that can implement a system for sharing content in a messaging application in accordance with one or more implementations.
[0009] Figure 3 Examples of cloud-based services of the subject system that may be implemented by a server are shown in accordance with one or more implementations.
[0010] Figure 4 An exemplary process for sharing content in a messaging application according to one or more implementations is shown.
[0011] FIG. 5A to FIG. 5B An exemplary user interface provided by a messaging application on a sending device for selecting content and a messaging platform for sharing with one or more recipients is shown in accordance with one or more implementations.
[0012] Figure 6 An exemplary user interface provided by a messaging application on a receiving device including a single messaging element representing a received set of files is shown in accordance with one or more implementations.
[0013] Figure 7 An exemplary user interface provided by a messaging application on a receiving device is shown, the exemplary user interface providing a user with different options for accessing a received set of files in accordance with one or more implementations.
[0014] Figure 8 An exemplary user interface provided by a messaging application on a receiving device for adding a received set of files to a cloud-based library is shown in accordance with one or more implementations.
[0015] Fig. 9 An exemplary user interface provided by a messaging application on a receiving device that provides for downloading a received set of files to the receiving device is shown in accordance with one or more implementations.
[0016] Fig.10 An exemplary user interface provided by a messaging application on a receiving device indicating that a set of files has been shared but is not yet accessible is shown in accordance with one or more implementations.
[0017] Fig.11 An exemplary user interface provided by a messaging application on a receiving device indicating that a set of files has been shared and is partially accessible is shown in accordance with one or more implementations.
[0018] Fig.12 An exemplary user interface provided by a messaging application for navigating between different shared storage areas associated with respective content groups is shown in accordance with one or more implementations.
[0019] Fig.13 A flow chart is shown of an exemplary process performed by a sending device for sharing content in a messaging application according to one or more implementations.
[0020] Fig.14 A flow chart illustrating another exemplary process performed by a server for sharing content in a messaging application according to one or more implementations is shown.
[0021] Fig.15 A flow chart illustrating another exemplary process performed by a receiving device for sharing content in a messaging application according to one or more implementations is shown.
[0022] Fig.16 Exemplary electronic systems are shown that can be used to implement various aspects of the subject technology in accordance with one or more implementations. DETAILED DESCRIPTION
[0023] The specific embodiments shown below are intended to be descriptions of various configurations of the subject technology and are not intended to represent the only configuration that the subject technology can be practiced. The accompanying drawings are incorporated herein and constitute a part of the specific embodiments. The specific embodiments include specific details intended to provide a thorough understanding of the subject technology. However, the subject technology is not limited to the specific details set forth herein, but can be practiced using one or more other specific implementations. In one or more specific implementations, structures and components are shown in block diagram form to avoid blurring the concept of the subject technology.
[0024] A user of a messaging application may wish to send a set of files (or collections thereof) (e.g., images, such as photos, videos, and / or documents) to one or more recipients. For example, one or more recipients may be associated with the set of image and / or video files because they all attended a particular event together and / or generally shared experiences together. The theme system facilitates sharing a set of files within a messaging application with other applications.
[0025] The subject system provides a user interface for sending a set of files to one or more recipients within a messaging application running on an electronic device. In one or more specific implementations, one or more recipients are determined to be associated with the set of files, for example automatically and / or by user selection. The electronic device receives user input requesting that selected files (e.g., images, videos, and / or documents) be sent to the recipients. The electronic device transmits the request to a server, which creates a shared storage area for the set of files. In one or more specific implementations, the electronic device also provides the selected files to the server if the selected files are not already stored on the server.
[0026] The server provides metadata and other information for accessing the group of files from the shared storage area to the electronic device. The electronic device incorporates the received information for accessing the group of files into a message such as a text message, and transmits the generated message to the corresponding device of one or more recipients. Although the message may include a thumbnail and / or other representation of the group of files, the message does not include the group of files itself. One or more recipient devices receive the message and display the message in a messaging application. The messaging application on the corresponding recipient device provides each recipient with the option of accepting access to the group of files and displaying the group of files. When accepting access to the group of files, the corresponding recipient device can access the files via the shared storage area on the server.
[0027] Figure 1 An exemplary network environment for sharing content in a messaging application according to one or more implementations is shown. However, not all of the components depicted may be used in all implementations, and one or more implementations may include additional or different components than those shown in the figures. Changes in the arrangement and type of these components may be made without departing from the spirit or scope of the claims listed herein. Additional components, different components, or fewer components may be provided.
[0028] The network environment 100 includes electronic devices 102, 103, and 104 (hereinafter referred to as 102-104), a network 106, and a server 108. The network 106 may be communicatively coupled (directly or indirectly), for example, to any two or more of the electronic devices 102-104 and / or the server 108. In one or more specific implementations, the network 106 may be an interconnected network that may include the Internet or a device communicatively coupled to the Internet. For the purpose of explanation, the network environment 100 is described in detail in detail. Figure 1 1 is illustrated as including electronic devices 102-104 and a single server 108; however, network environment 100 may include any number of electronic devices and any number of servers.
[0029] One or more of the electronic devices 102-104 may be, for example, a portable computing device such as a laptop computer, a smart phone, a peripheral device (e.g., a digital camera, a headset), a tablet device, a wearable device such as a smart watch, a band, etc., or any other suitable device including, for example, one or more wireless interfaces, such as a WLAN radio, a cellular radio, a Bluetooth radio, a Zigbee radio, a near field communication (NFC) radio, and / or other radios. Figure 1In the embodiment, by way of example, electronic device 102 is depicted as a smart phone, electronic device 103 is depicted as a smart watch, and electronic device 104 is depicted as a laptop computer. Each of electronic devices 102-104 may be and / or may include the following with respect to Figure 2 The devices discussed and / or described below with respect to Fig.16 All or a portion of the electronic system in question.
[0030] The server 108 may be and / or may include the following with respect to Figure 2 The devices discussed and / or described below with respect to Fig.16 All or part of the electronic system discussed. Server 108 may include one or more servers, such as a server cloud, that can be used to facilitate sharing content between electronic devices 102-104. For example, server 108 may receive a request to create a shared storage area from electronic device 102 for providing access to a set of files to electronic devices 103-104. The server may create a shared storage area associated with the set of files and send information for accessing the shared storage area back to electronic device 102. Electronic device 102 may generate a message with the received information and send the message to electronic device 103-104. For the purpose of explanation, a single server 108 is shown and discussed with respect to various operations such as messaging, providing cloud-based services for maintaining user content, and / or creating a shared storage area that references user content. However, these operations and other operations discussed herein may be performed by one or more servers, such as at one or more different data centers, and each different operation may be performed by the same or different servers.
[0031] Figure 2 An exemplary device 200 is shown that can implement a system for sharing content in a messaging application according to one or more implementations. For example, Figure 2 The device 200 may correspond to any of the electronic devices 102-104 or to Figure 1 108 of the server. However, not all of the depicted components may be used in all implementations, and one or more implementations may include additional or different components than those shown in the figures. Changes in the arrangement and type of these components may be made without departing from the spirit or scope of the claims set forth herein. Additional components, different components, or fewer components may be provided.
[0032] Device 200 may include a processor 202, a memory 204, and a communication interface 206. Processor 202 may include appropriate logic components, circuits, and / or code that may be capable of processing data and / or controlling the operation of device 200. In this regard, processor 202 may be enabled to provide control signals to various other components of device 200. Processor 202 may also control the transfer of data between various parts of device 200. Additionally, processor 202 may enable implementation of an operating system or otherwise execute code to manage the operation of device 200. In the subject system, processor 202 may implement a software architecture for sharing content in a messaging application, as described below with reference to Figure 3 and Figure 4 Further discussion.
[0033] The memory 204 may include suitable logic components, circuits, and / or code to enable storage of various types of information, such as received data, generated data, code, and / or configuration information. The memory 204 may include, for example, a random access memory (RAM), a read-only memory (ROM), flash memory, and / or a magnetic storage device.
[0034] In one or more specific implementations, where device 200 corresponds to one of electronic devices 102-104, memory 204 may store a messaging application for messaging with other electronic devices 102-104, and a file management application for managing and / or editing files (e.g., images such as photos, videos, and / or documents).
[0035] In one or more implementations, where device 200 corresponds to server 108, memory 204 can store a cloud-based service for storing user content. Cloud-based services can also facilitate sharing of user content.
[0036] The communication interface 206 may include suitable logic, circuitry, and / or code to enable wired or wireless communication, such as between any of the electronic devices 102-104 and the server 108 over the network 106. The communication interface 206 may include, for example, one or more of a Bluetooth communication interface, a cellular interface, an NFC interface, a Zigbee communication interface, a WLAN communication interface, a USB communication interface, or generally any communication interface.
[0037] In one or more specific implementations, one or more of the processor 202, memory 204, communication interface 206, and / or one or more portions thereof may be implemented in software (e.g., subroutines and code), in hardware (e.g., an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a programmable logic device (PLD), a controller, a state machine, a gated logic component, discrete hardware components, or any other suitable device), and / or a combination of both.
[0038] Figure 3 An example of a cloud-based service of a subject system that can be implemented by a server 108 according to one or more specific implementations is shown. For example, a cloud-based service 302 can be implemented by one or more software modules running on a processor 202 of a server 108 and / or any other device. As another example, a cloud-based service 302 can be implemented by one or more software modules implemented by custom hardware (e.g., one or more coprocessors). However, not all of the depicted components can be used in all specific implementations, and one or more specific implementations may include additional or different components than those shown in the figure. Changes in the arrangement and type of these components may be made without departing from the spirit or scope of the claims listed herein. Additional components, different components, or fewer components may be provided.
[0039] The cloud-based service 302 may include a content database 304 and a shared storage area database 306. In one or more specific implementations, the cloud-based service 302 provides a user with a means of storing, maintaining, and accessing user content such as images, videos, documents, and / or music. For example, the cloud-based service 302 may store such content (e.g., images, videos) in the content database 304. The cloud-based service 302 may provide a corresponding user account to a corresponding user (e.g., of the electronic devices 102-104) in order to store, maintain, and access their corresponding content stored on the content database 304.
[0040] The cloud-based service 302 may also include a shared storage area database 306. The shared storage area database 306 may reference content in the content database 304 for creating and maintaining shared storage areas. Each storage area may correspond to a set of files (e.g., images, videos) that have been shared by one user (e.g., the owner of the files) with other users (e.g., users determined to be relevant to the set of files). For each set of files corresponding to a shared storage area, the shared storage area database 306 may create and maintain a reference to the files stored in the content database 304.
[0041] The content database 304 may be local to the shared storage area database 306, so that the shared storage area database 306 can access the content locally. Alternatively or in addition, the content database 304 may be remote from the shared storage area database 306 (e.g., and accessible via the network 106). In one or more specific implementations, the files stored in the content database 304 may reside in a block storage area (e.g., corresponding to a separate storage provider), and the content database 304 may reference the content stored in the block storage area.
[0042] like Figure 3 As shown, cloud-based service 302 can communicate with one or more electronic devices. Figure 1 In the example of , electronic device 102 corresponds to a sending device (e.g., where an owner shares a set of files), and electronic device 104 corresponds to a receiving device (e.g., receiving access to the set of files). For example, a user of electronic device 102 may request to share a set of files with a user of electronic device 104. Cloud-based service 302, along with content database 304 and shared storage area database 306, may receive the request from electronic device 102 and facilitate creation of a shared storage area corresponding to the set of files for access by electronic device 104.
[0043] In one or more specific implementations, the cloud-based service 302, the content database 304, and the shared storage area database 306 are implemented via software instructions stored in the memory 204, which when executed by the processor 202 causes the processor 202 to perform specific functions.
[0044] In one or more implementations, one or more of cloud-based services 302, content database 304, and shared storage area database 306 may be implemented in software (e.g., subroutines and code) and / or hardware (e.g., application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), controllers, state machines, gated logic components, discrete hardware components, or any other suitable devices), and / or a combination of both. In one or more implementations, some or all of the depicted components may share hardware and / or circuitry, and / or one or more of the depicted components may utilize dedicated hardware and / or circuitry. Additional features and functionality of these modules in accordance with aspects of the subject technology are further described in this disclosure.
[0045] Figure 4 An exemplary process for sharing content in a messaging application according to one or more specific implementations is shown. For the purpose of explanation, this article mainly refers to Figure 1 The process 400 is described with reference to the electronic devices 102 and 104 and the server 108. However, the process 400 is not limited to Figure 1 The electronic devices 102 and 104 and the server 108 of the present invention. For example, the process 400 may be applied to the communication between any combination of two or more of the electronic devices 102-104 and the server 108. In addition, one or more frames (or operations) of the process 400 may be performed by one or more other components of the electronic devices 102-104 and the server 108 and / or by other suitable devices. Further for the purpose of explanation, the frames of the process 400 are described herein as occurring sequentially or linearly. However, multiple frames of the process 400 may occur in parallel. In addition, the frames of the process 400 do not have to be performed in the order shown, and / or one or more frames of the process 400 do not have to be performed and / or may be replaced by other operations.
[0046] As described above, the server 108 may implement a cloud-based service 302 for maintaining user content in a content database 304, and for maintaining a shared storage area for accessing user content in a shared storage area database 306. In one or more specific implementations, users of the electronic devices 102 and 104 may have corresponding user accounts and log in to the cloud-based service 302. Alternatively, one user (e.g., of the electronic device 102) may have a user account and log in to the cloud-based service 302, while another user (e.g., of the electronic device 104) may not have a registered user account, or may not log in to the cloud-based service. In this regard, the electronic devices 102 and 104 may be from different device manufacturers, and / or run different operating systems or different versions of operating systems.
[0047] In one or more implementations, electronic devices 102 and 104 can communicate within an active message thread that includes at least electronic devices 102 and 104. The active message thread is associated with a respective messaging application running on each of electronic devices 102 and 104.
[0048] For example, the messaging application may be one or more of an instant messaging application, an email application, a text messaging application, or another type of application that provides electronic messaging between electronic devices 102 and 104. The messaging applications (e.g., instant messaging, email, text messaging) may be the same or may be different for electronic devices 102 and 104.
[0049] The electronic device 102 provides a user interface element (402) for sending a set of files to a participant (e.g., a user of the electronic device 104) in an active message thread of a messaging application. As described above, the memory 204 of the electronic device 102 may store a file management application for managing and / or editing user files such as images, videos, documents, music, etc.
[0050] The file management application on the electronic device 102 can work in conjunction with the cloud-based service 302 to store and manage user files (e.g., images, videos, and / or documents) in, for example, a content database 304 associated with a cloud-based library. In addition, the cloud-based service 302 can automatically identify a set of files (e.g., for potential sharing with others) based on matching metadata of the user files. For example, a set of image and / or video files can be identified based on one or more of matching time, location, tag information (e.g., of the user or the user's contacts), previous user activity, etc. stored in the file metadata. In one or more specific implementations, the server 108 can store information of the identified set of files in the memory 204.
[0051] In addition, the cloud-based service 302 in conjunction with the electronic device 102 may determine that a set of files is related to a user contact (e.g., a participant in an active message thread or other contact). Based on this determination, the electronic device 102 may provide to associate the set of files with the user contact. For example, the electronic device 102 may store a profile picture associated with the user contact. The electronic device 102 in conjunction with the server 108 may associate the user contact with the set of files, for example, based on a facial recognition match of the contact in the profile picture with the contact appearing in the set of files. Based on the match, the electronic device 102 may deem the contact to be related to the set of files.
[0052] Additional techniques may be used to identify user contacts that may be associated with a set of files. For example, such users may be identified based on labeling of contacts in images or videos, other analysis techniques that determine that prior correspondence between users and contacts is relevant to the set of files, and / or where information associated with the contacts (e.g., contact preferences, hobbies, communities) meets a predefined similarity threshold (e.g., time, location, and / or category) with metadata from the files.
[0053] The user interface element for sharing a set of files within an active message thread on the electronic device 102 can be invoked in different ways. For example, the user interface element can be provided as part of an extension application interface within a messaging application. The extension application interface can be a user-selectable interface for invoking an extension application within a messaging application.
[0054] In this regard, an extension application provides for performing functionality within a messaging application without requiring the user to switch to a standalone version of the application. An exemplary extension application may provide for sharing content, and / or adding graphics / animations such as stickers to content within a messaging application (e.g., within a message bubble in an active message thread). An example of an extension application is an extension file management application. The extension file management application may be an extension of a standalone version of a file management application for performing file management (e.g., managing and / or editing photos and / or videos) within a messaging application.
[0055] An extended application interface for launching a corresponding extended application can be provided within the interface of the messaging application. Therefore, the electronic device 102 can receive user input selecting an icon representing an extended file management application from the extended application interface. In response to the user input, the messaging application can display a user interface element for selecting a group of files and sending the group of files to other people.
[0056] Alternatively or in addition, a user interface element for sending the group of files may be provided in response to a user selection of highlighted or otherwise distinguished text presented within a messaging application. For example, text within an active message thread and / or text within a message input interface (e.g., a message composition box) may be matched to a predefined category (e.g., a place, an event) associated with the group of files. In one or more specific implementations, matching of such text may be based on symbolic terms of the text satisfying a threshold similarity value relative to the predefined category. In response to a match, the messaging application may highlight or otherwise distinguish the display of matching text within the active message thread and / or the message input interface. In response to user input selecting matching text, the messaging application may present a user interface element for selecting the group of files and sending the group of files to another person.
[0057] In this regard, Figure 5A An exemplary user interface 500 for selecting a group of files to be shared with one or more recipients provided by a messaging application according to one or more specific implementations is shown. As described above, the cloud-based service 302 can identify a group of files (e.g., for potential sharing with others) based on metadata associated with the files. In the exemplary user interface 500, a group of files presents a representation of each file in the group (e.g., a thumbnail of an image, video, or document file). A user can select one or more of the presented files via a file selection element 502 (e.g., in full screen mode without exiting the messaging application). After selecting the files, the user can confirm the selection of the files to be sent via a confirmation selection element 504.
[0058] Figure 5B According to one or more specific implementations, the user interface 500 may also provide a message delivery platform for selecting one or more recipients to receive the selected file. Figure 5B In the example of , the share element 506 provides the electronic device 102 with an option to send the selected file to the participant via email, or to copy a link for accessing the file (e.g., having URL data, described further below). However, the share element 506 may provide other messaging platforms as options, such as, but not limited to, an instant messaging application (e.g., standalone or as part of a social networking application), an email application, a text messaging application, etc. The user interface 500 also includes a cancel element 508 for returning to the selection of the file, such as Figure 5A shown.
[0059] refer to Figure 4 , the electronic device 102 receives user input for sending the set of files based on the user's selection of the share element 506 (404). In response, the electronic device 102 transmits a request to the server 108 (406), and the server 108 receives the request from the electronic device 102 (408).
[0060] In response to server 108 receiving the request, cloud-based service 302 of server 108 creates a shared storage area in shared storage area database 306 (410). The shared storage area corresponds to a set of files for sharing with participants in the active message thread. In one or more specific implementations, the shared storage area is configured separately from other shared storage areas (e.g., corresponding to other corresponding shared sets of files) stored in shared storage area database 306. Cloud-based service 302 can create a shared storage area associated with a user account of a user of electronic device 102, so that the user has ownership of the shared storage area.
[0061] In one or more specific implementations, if the set of files being shared is not already stored on the server, the electronic device 102 may provide the set of files to the server 108 for storage. The server 108 may prioritize such storage of the set of files. Otherwise, if the files are already stored on the server 108, the cloud-based service 302 may store a reference to the stored set of files in the shared storage area database 306.
[0062] In this regard, when a user selects a file and initiates the creation of the set of files (e.g., the holding user), he / she may have ownership rights to not only access the shared storage area but also modify or delete files in the shared storage area. On the other hand, the recipient may access the shared set of files but may not have the right to modify or delete files in the shared storage area.
[0063] In one or more specific implementations, in the event that the owning user deletes a file (e.g., an image), the cloud-based service 302 can set a flag that marks the file as deleted, rather than deleting the file stored in the content database 304. In this way, a reference to the stored file can be maintained, but access to the file can be prohibited (e.g., by the shared storage area database 306) based on the set flag.
[0064] Based on the newly created shared storage area, cloud-based service 302 transmits information for accessing the shared storage area to electronic device 102 (412), and electronic device 102 receives the information (414). In one or more specific implementations, the information for accessing at least one file associated with the shared storage area includes a network identifier, such as a uniform resource locator (URL). Although the following description refers to the use of a URL, a different network identifier, such as a uniform resource identifier (URI), may also be used.
[0065] As described above, files stored in content database 304 may be individually referenced. Thus, a URL may reference a shared storage area, which in turn references the individual files as stored in content database 304. In this way, no copies of the files are required.
[0066] The URL may be transmitted with a hash string that may be decrypted to provide information (e.g., context information) about a group of files stored in content database 304. For each shared storage area, shared storage area database 306 may store context information, such as a primary file, title, multiple files, time range, and / or location data for the group of files. The context data may be obtained from metadata for one or more files in the group and may be stored in a corresponding shared storage area for the group of files.
[0067] In one or more implementations, the master file is a file (e.g., an image) within the set of files that is selected (e.g., by the cloud-based service 302) to represent the set of files. The selection of the master file can be based on one or more of file metadata (e.g., time, place, person, place, or thing tags) and analysis techniques for identifying people, places, or things that appear in the image and automatically selecting a representative file that matches a category (e.g., time, place, person) associated with the set of files. In one or more implementations, a thumbnail of the master file can be provided instead of the entire master file.
[0068] In addition, the context information may indicate the current availability for accessing the file. For example, the availability may indicate when all files have not yet been uploaded from the local memory 204 of the electronic device 102 to the content database 304 (eg, associated with a cloud-based library).
[0069] Therefore, after receiving the information for accessing the shared storage area (414), the electronic device 102 generates a message to access the group of files for sending to the electronic device 104 (416). In one or more specific implementations, the electronic device 102 may present a preview of the generated message for sending to the electronic device 104. For example, the preview may be represented as a single message bubble that includes the above-mentioned context information representing the group of files. In one or more specific implementations, the preview may be displayed as part of a message composition box having a user-selectable interface for sending the message. In one or more specific implementations, the message may be automatically transmitted without providing a message preview.
[0070] When the user selects the interface for sending the message, electronic device 102 transmits the message to electronic device 104 (418), and electronic device 104 receives the message (420). Electronic device 104 displays the message, such as by clicking on a message bubble, which may include an interface option for accepting access to the set of files (422).
[0071] The processing of the message by the electronic device 104 may vary depending on whether the electronic device 104 is associated with a logged-in registered user account. As described above, the URL may be transmitted with a hash string that can be decrypted to provide contextual information (e.g., a rich user interface) for the logged-in electronic device 104. In one or more specific implementations, the hash string includes a routing key and a byte array (e.g., a 16-byte array). In the case where the electronic device 104 is associated with a logged-in user account, the electronic device 104 decrypts the byte array of the hash string with the routing key to generate a protected complete token. The cloud-based service 302 decrypts the protected complete token to obtain a public shared key, which is returned to the electronic device 102. The public shared key can be used by the logged-in electronic device 104 as a key to access the corresponding shared storage area (e.g., stored in the shared storage area database 306). As described above, the shared storage area can reference file content from the content database 304. For example, the shared storage area can access the root record stored on the content database 304 and a subgroup of the root record corresponding to the group of files.
[0072] In addition, the logged in electronic device 104 can access the above-mentioned context information of the corresponding shared storage area provided by the shared storage area database 306. As mentioned above, the context information may include the master file, title, multiple files, time range and / or location data and file availability of the group of files. Therefore, the electronic device 104 can query the cloud-based service 302 using a public shared key to obtain context information from the shared storage area database 306. The electronic device 104 can display the context information in a single message element in an active message thread. In one or more specific implementations, the context information is presented in the active message thread without requiring the user of the electronic device 104 to accept access to the group of files.
[0073] Upon receiving user input accepting access to the set of files (424), the electronic device 104 accesses the set of files (426). For example, the electronic device may query the server 108 for files based on information (e.g., a URL) provided with the message received from the first electronic device 102. In one or more specific implementations, access to the set of files may be provided with a message bubble. As described above, the message bubble may correspond to an extended file management application. Thus, for the logged in electronic device 104, the message bubble may provide access to files within the messaging application (e.g., in full screen mode or partial screen mode). A sample user interface for accessing group file content is described below with respect to Figures 6 to 11 Further description.
[0074] In response to receiving a single message element representing the group of files, the logged in electronic device 104 may provide the user with a reply, selection, and sending of attached files for sharing with the participants in the active message thread. In one or more specific implementations, the extended file management application within the messaging application may provide suggestions from the corresponding cloud-based library of the recipient user of the electronic device 104. For example, the suggested files may be determined by matching metadata associated with the shared storage area with metadata of the recipient user's own files (e.g., by time, location, tags, etc.), for example, as stored in the recipient user's cloud-based library (e.g., for storing images, videos, and / or documents) associated with the content database 304. In response, the user of the electronic device 104 may continue the process of selecting and sending a group of files to others (e.g., similar to steps 404, 404, and 406 performed by the electronic device 102).
[0075] If the user of the electronic device 104 continues to select additional files and transmits corresponding requests to the server 108, the cloud-based service 302 may create a new and independent shared storage area in the shared storage area database 306 for accessing both the original set of files (e.g., from the original shared storage area) and the added files. The cloud-based service 302 may provide new information corresponding to the new shared storage area for accessing the assembled set of files. As described above, the shared storage area database 306 maintains references to individual files and / or groups of files stored in the content database 304. Therefore, the cloud-based service 302 may configure a new and independent storage area to re-reference the original files and re-reference the added files stored in the content database 304 (e.g., associated with the recipient user's cloud-based library). In this way, remote or local creation of copies of the original files may be avoided or reduced.
[0076] In one or more specific implementations, the logged-in electronic device 104 may allow the recipient user to forward a single message element representing the group of files in a separate message thread. In this regard, the electronic device receiving the forwarded message (e.g., the electronic device 103 receiving the message from the electronic device 104) may access the corresponding shared storage area. In addition, the logged-in electronic device 104 may provide the user with the option to select and send an additional file to be forwarded with the original file. In this regard, the new separate storage area may re-reference the original file, and / or re-reference the added file stored in the content database 304.
[0077] In the event that the electronic device 104 is not associated with or logged into a registered user account, the URL with the hash string is still provided to the electronic device 104 (hereinafter referred to as an “anonymous” electronic device 104 ).
[0078] In one or more specific implementations, the URL and hash string are the same for the anonymous electronic device 104 and the logged-in electronic device 104. However, the URL and hash string for the anonymous electronic device 104 and the logged-in electronic device 104 may be different.
[0079] With respect to the anonymous electronic device 104, the user of the anonymous electronic device 104 may not have access to contextual information from the shared storage area provided by the shared storage area database 306. In addition, the anonymous electronic device 104 may not have access to the set of files within the extended application of the messaging application. In addition, the anonymous electronic device 104 may not have the ability to reply and select attached files associated with the shared storage area for sharing, or the ability to provide automatic suggestions for such attached files.
[0080] In one or more specific implementations, the anonymous electronic device 104 presents a message element within the active message thread, wherein the message element includes a clickable URL for accessing the set of files. The user of the electronic device 104 can click the URL within the message thread to accept access to the set of files (424), thereby launching a browser application on the electronic device 104 to access the website specified by the URL. The set of files can be displayed within the web browser as individual thumbnails provided by the website (426).
[0081] To view the file, the website specified by the URL is configured to access a predefined web service corresponding to the cloud-based service 302. The predefined web service parses the hash string (e.g., by decrypting the byte array of the hash string with a routing key) to generate a server-encrypted block. The block contains key information for accessing data (e.g., files) in the shared storage area. Therefore, the block can be used as a token for accessing the shared storage area from the shared storage area database 306. The block also has a time to live (TTL) value.
[0082] The web server sends the chunk along with the TTL value to the cloud-based service 302. In one or more specific implementations, the cloud-based service 302 may store a tag value for allowing anonymous electronic devices to access, where the tag must be set in order to provide such access. Therefore, upon determining that the tag for anonymous access is set and the TTL value has not expired, the cloud-based service 302 facilitates the electronic device 104 to access the shared storage area based on the key information of the chunk. Therefore, the electronic device 104 can access the shared storage area without the user having to log in to the cloud-based service 302. In the event that the anonymous access tag is set but the TTL value has expired, the web browser on the electronic device 104 is required to resend the URL to the predefined web server to generate a chunk with a new TTL value again.
[0083] In one or more specific implementations, the web server and / or cloud-based service 302 may maintain a count of the number of times the shared storage area has been accessed (e.g., by counting the number of times the hash string has been resolved). In addition to maintaining the count, the cloud-based service 302 may also store timestamp information for each access.
[0084] Using the count and timestamp information, the cloud-based service 302 can regulate subsequent accesses to the corresponding shared storage areas stored in the shared storage area database 306. For example, if a threshold number of accesses is met based on the counts and timestamps within a specific time period, the cloud-based service 302 can reduce or otherwise prohibit subsequent accesses to the shared storage area database 306 until a predefined time has passed. In one or more specific implementations, the regulation can be based on additional or alternative parameters, including but not limited to: the number of previous URLs provided by a particular user (e.g., where regulation is performed based on meeting a threshold number of URLs) and / or the known popularity of a particular set of files or users associated with a set of files (e.g., where regulation is performed based on meeting a threshold number of expected or actual accesses).
[0085] As described above, the content and / or user experience of a logged-in user may differ from the content and / or user experience of an anonymous user. Figures 6 to 11 Examples of content and user interfaces related to the logged-in user's experience are shown.
[0086] Figure 6 An example of providing contextual information to a logged in user as part of an initial message bubble that provides the user with the option to access the set of files is shown. A user interface 600 of a set of files is represented as a single messaging element 602. Figure 6 In the example of FIG. 6 , a single messaging element 602 includes a time (e.g., December 13), a location (Santa Rita Elementary), a number of image files (e.g., 18), and context information representing a master file of the group of files. User interface 600 also includes a URL element 604. User selection of a single messaging element 602 or a URL element 604 can provide the user with access to a shared storage area, as described above.
[0087] Figure 7 An exemplary user interface 700 provided by a messaging application on an electronic device 104 is shown that provides a user with different options for accessing a received set of files in accordance with one or more implementations. For example, if a set of files (e.g., images, videos, and / or documents) for sharing have been uploaded to a sending user's cloud-based library, and if the receiving user wishes to add those files to his / her cloud-based library as provided by cloud-based service 302, the user may select element 702. By selecting add element 702, cloud-based service 302 may create a reference within the user's cloud-based library to each file in the set of files referenced by shared storage area database 306 and stored in content database 304. In this way, cloud-based service 302 does not have to generate additional copies of the files. Figure 8An exemplary user interface 800 for adding files to a cloud-based library is shown. The user interface 800 provides a file selection element 802 for selecting individual files from a set of files, and an element 804 for adding all files from the set of files to the recipient's cloud-based library as provided by the cloud-based service 302.
[0088] On the other hand, the user may select the download element 704 from the user interface 700 , which provides a set of files to be downloaded and stored locally on the memory 204 of the electronic device 104 . Fig. 9 An exemplary user interface 900 is shown that provides a user with local download and access to the set of files on the electronic device 104. The user interface 900 provides a file selection element 902 for selecting individual files from the set, and an element 904 for downloading all files from the set of files to the memory 204 of the electronic device 104.
[0089] Figure 10 to Figure 11 An example of contextual information related to the availability of files is shown in the case where all files have not yet been uploaded from the electronic device 102 to the content database 304. Fig.10 , exemplary user interface 1000 shows that a group of files have been shared but are not yet accessible. For example, a message element 1002 may be provided within an active message thread of a receiving electronic device 104 to indicate that the files have been shared but are not yet accessible (e.g., because they have not yet been uploaded to the sending user's cloud-based library).
[0090] also, Fig.11 An exemplary user interface 1100 indicating that a set of files has been shared and is partially accessible is shown. For example, the user interface 1100 may be provided within a messaging application (e.g., in full screen or within an active message thread) to indicate a partially accessible set of files. Files may be selected using a file selection element 1102 and a download element 1104 (e.g., for local download to the electronic device 102). Alternatively or in addition, an "add to library" option may be provided for adding the selected files to the recipient user's cloud-based library (e.g., by re-referencing the files referenced by the original shared storage area).
[0091] In one or more specific implementations, the electronic device 102 may include an interface for managing the shared storage areas of different groups of corresponding users. As described above, separate shared storage may be created relative to different active message threads and / or relative to receiving users adding files to existing shared storage areas. Fig.12An exemplary user interface 1200 for navigating between different shared storage areas associated with respective groups of files is shown. In one or more specific implementations, the user interface 1200 may be invoked within a file management application running on the electronic device 102. The user interface 1200 may include interface elements 1206 and 1208 for switching between a user's (e.g., corresponding to interface element 1206) cloud-based library and / or a user's (e.g., corresponding to interface element 1208) shared storage area. Thus, if the user selects interface element 1208, the user may (e.g., via share selection element 1202) access the shared storage area he / she created. In addition, the user may (e.g., via share selection element 1204) access the shared storage area created by others and accepted by the user. As described above, the user may modify his / her own share, but not the share of others.
[0092] Fig.13 A flowchart of an exemplary process for sharing content in a messaging application by a sending device (e.g., electronic device 102) according to one or more specific implementations is shown. Figure 1 The process 1300 is described with reference to the electronic devices 102, 104 and the server 108. However, the process 1300 is not limited to Figure 1 The electronic devices 102, 104 and the server 108 of the present invention. For example, the process 1300 may be applied to the communication between any combination of two or more of the electronic devices 102-104 via the server 108. In addition, one or more frames (or operations) of the process 1300 may be performed by one or more other components of the server 108 and / or by other suitable devices. Further for the purpose of explanation, the frames of the process 1300 are described herein as occurring sequentially or linearly. However, multiple frames of the process 1300 may occur in parallel. In addition, the frames of the process 1300 do not have to be performed in the order shown, and / or one or more frames of the process 1300 do not have to be performed and / or may be replaced by other operations.
[0093] The electronic device 102 provides a user interface element in a messaging application for sending at least one file to a participant (e.g., a user of the electronic device 104) in an active message thread of the messaging application, the at least one file being determined to be relevant to the participant (1302). For example, the at least one file can be determined to be relevant to the participant based on at least one of facial recognition, time, or location associated with the participant and the file, and / or based on a selection of the participant by the user of the electronic device 102.
[0094] The user interface element can be provided in a variety of ways. For example, the user interface element can be provided in response to a user input invoking a file management application provided by the messaging application. Alternatively or in addition, the electronic device 102 can determine that a portion of text within an active message thread of the messaging application corresponds to the at least one file and provide a differentiated display of the portion of the text. The user interface element can be provided in response to receiving a user input selecting a differentiated display of the portion of the text.
[0095] Alternatively or in addition, electronic device 102 may determine that a portion of text within a message input interface of the messaging application corresponds to the at least one file and provide a differentiated display of the portion of text. A user interface element is provided in response to receiving a user input selecting the differentiated display of the portion of text.
[0096] In response to receiving the selection of the user interface element, the electronic device 102 transmits a request to the server 108 to store at least one file associated with the shared storage area (1304). The electronic device 102 transmits a message to a participant in the active message thread (e.g., to the electronic device 104) via the messaging application, the message including information for accessing at least one file associated with the shared storage area (1306). The at least one file may include a group of files, and the group of files may be represented as a single message element within the active message thread.
[0097] The information for accessing at least one file associated with the shared storage area may be a uniform resource locator (URL). The URL may reference the shared storage area to access the at least one file. The URL may be transmitted with a hash string to access context information for accessing the at least one file from the shared storage area. The context information may be configured to be displayed in an active message thread.
[0098] Fig.14 A flowchart of another exemplary process for sharing content in a messaging application by a server (e.g., server 108) according to one or more specific implementations is shown. Figure 1 The process 1400 is described with reference to the electronic devices 102, 104 and the server 108. However, the process 1400 is not limited to Figure 1The electronic device 102, 104 and server 108 of the present invention. For example, process 1400 may be applied to any combination of two or more of the electronic devices 102-104, and the communication via server 108. In addition, one or more frames (or operations) of process 1400 may be performed by one or more other components of server 108 and / or by other suitable devices. Further for the purpose of explanation, the frames of process 1400 are described herein as occurring sequentially or linearly. However, multiple frames of process 1400 may occur in parallel. In addition, the frames of process 1400 do not have to be performed in the order shown, and / or one or more frames of process 1400 do not have to be performed and / or may be replaced by other operations.
[0099] Server 108 receives a request from electronic device 102 to create a shared storage area for sharing at least one file with electronic device 104 (1402). It is determined that the at least one file is related to a user of electronic device 104. Electronic devices 102 and 104 participate in an active message thread of a messaging application.
[0100] In response to receiving the request, the server 108 creates a shared storage area associated with the at least one file (1404). The server 108 transmits information for accessing the at least one file associated with the shared storage area to the electronic device 102 (1406).
[0101] The electronic device 102 may be configured to send a message to the electronic device 104, the message including information for accessing at least one file associated with the shared storage area. The server 108 may receive a request from the second device to access at least one file associated with the shared storage area. The server 108 may provide the at least one file associated with the shared storage area to the second device in response to receiving the request from the second device.
[0102] The information for accessing at least one file associated with the shared storage area may be a uniform resource locator (URL). The URL may reference the shared storage area to access the at least one file.
[0103] The URL may be transmitted together with the hash string for accessing context information of at least one file from the shared storage area. For example, the context information may be configured to be displayed in an active message thread on the electronic device 104.
[0104] Fig.15 A flowchart of another exemplary process for sharing content in a messaging application by a receiving device (e.g., electronic device 104) according to one or more specific implementations is shown. Figure 1 The process 1500 is described with reference to the electronic device 104 and the server 108. However, the process 1500 is not limited to Figure 1 The electronic device 104 and the server 108 of the present invention. For example, the process 1500 may be applied to any combination of two or more of the electronic devices 102-104, and the communication via the server 108. In addition, one or more blocks (or operations) of the process 1500 may be performed by one or more other components of the server 108 and / or by other suitable devices. Further for the purpose of explanation, the blocks of the process 1500 are described herein as occurring sequentially or linearly. However, multiple blocks of the process 1500 may occur in parallel. In addition, the blocks of the process 1500 do not have to be performed in the order shown, and / or one or more blocks of the process 1500 do not have to be performed and / or may be replaced by other operations.
[0105] The electronic device 104 receives (e.g., from the server 108) a message including a network identifier (e.g., a URI or URL) for accessing at least one file associated with a shared storage area (1502). The network identifier may include parameters (e.g., a hash string) for accessing context information of at least one file from the shared storage area, the at least one file having been determined to be relevant to a user of the electronic device 104.
[0106] The electronic device 104 displays a message element within an active message thread of the messaging application (1504). The message element provides an interface for the user to accept access to the at least one file. The electronic device 104 receives user input via the interface indicating that the user has accepted access to the at least one file (1506). In response to receiving the user input and based on the network identifier, the electronic device 104 obtains the at least one file associated with the shared storage area (1508).
[0107] The electronic device 104 provides the at least one file for display on the device (1510).The shared storage area may correspond to a cloud-based service having a plurality of user accounts associated therewith.
[0108] In the case where the user has a user account on the cloud-based service and logs into the user account using the device, the electronic device 104 may obtain context information of the at least one file from the shared storage area and display the context information in the message element of the active message thread. In addition, the electronic device 104 may display the at least one file in the message element of the active message thread by referencing the at least one file based on the network identifier. In the case where the user does not have a user account on the cloud-based service or is not logged into the user account using the device, the electronic device 104 may be directed to a web page corresponding to the network identifier via a web browser.
[0109] As described above, one aspect of the present technology is to collect and use data from various sources to improve the delivery of inspiring content or any other content that may be of interest to users. The present disclosure contemplates that in some instances, such collected data may include personal information data that uniquely identifies or can be used to contact or locate a specific person. Such personal information data may include demographic data, location-based data, phone numbers, email addresses, twitter IDs, home addresses, data or records related to the user's health or fitness level (e.g., vital sign measurements, medication information, exercise information), date of birth, or any other identifying information or personal information.
[0110] The present disclosure recognizes that the use of such personal information data in the present invention technology can be used to benefit users. For example, the personal information data can be used to deliver targeted content that users are more interested in. Therefore, the use of such personal information data enables users to have planned control over the content delivered. In addition, the present disclosure also anticipates other uses of personal information data that benefit users. For example, health and fitness data can be used to provide insights into the user's overall health status, or can be used as positive feedback for individuals who use technology to pursue health goals.
[0111] This disclosure envisions that entities responsible for collecting, analyzing, disclosing, transmitting, storing or otherwise using such personal information data will comply with established privacy policies and / or privacy practices. Specifically, such entities should implement and adhere to privacy policies and practices that are recognized as meeting or exceeding industry or government requirements for maintaining the privacy and security of personal information data. Such policies should be easily accessible to users and should be updated as the collection and / or use of data changes. Personal information from users should be collected for legitimate and reasonable purposes of the entity and not shared or sold outside of these legitimate uses. In addition, such collection / sharing should be performed after receiving informed consent from the user. In addition, such entities should consider taking any necessary steps to defend and secure access to such personal information data and ensure that others who have access to personal information data comply with their privacy policies and processes. In addition, such entities may subject themselves to third-party assessments to demonstrate their compliance with widely accepted privacy policies and practices. In addition, policies and practices should be adjusted to specific types of personal information data collected and / or accessed, and to applicable laws and standards including specific considerations of jurisdiction. For example, in the United States, the collection or access of certain health data may be governed by federal and / or state laws, such as the Health Insurance Portability and Accountability Act (HIPAA), while health data in other countries may be subject to other regulations and policies and should be handled accordingly. Therefore, different privacy practices should be maintained in each country for different types of personal data.
[0112] Regardless of the foregoing, the present disclosure also contemplates implementation schemes in which users selectively block the use or access of personal information data. That is, the present disclosure contemplates that hardware elements and / or software elements may be provided to prevent or block access to such personal information data. For example, with respect to an advertising delivery service, the technology of the present invention may be configured to allow a user to choose to "opt in" or "opt out" at any time during or after registration for the service to participate in the collection of personal information data. In another example, a user may choose not to provide emotion-related data for a target content delivery service. In another example, a user may choose to limit the length of time that emotion-related data is retained, or completely prohibit the development of basic emotional conditions. In addition to providing "opt-in" and "opt-out" options, the present disclosure contemplates providing notifications related to access or use of personal information. For example, a user may be notified that their personal information data will be accessed when downloading an application, and then the user may be reminded again just before the personal information data is accessed by the application.
[0113] In addition, it is an object of the present disclosure that personal information data should be managed and processed to minimize the risk of unintentional or unauthorized access or use. Risks can be minimized by limiting data collection and deleting data once it is no longer needed. In addition, and when applicable, including in certain health-related applications, data de-identification can be used to protect the privacy of users. De-identification can be facilitated by removing specific identifiers (e.g., date of birth, etc.), controlling the amount or specificity of stored data (e.g., collecting location data at the city level rather than at the address level), controlling how data is stored (e.g., aggregating data between users), and / or other methods when appropriate.
[0114] Thus, while the present disclosure broadly covers the use of personal information data to implement one or more of the various disclosed embodiments, the present disclosure also contemplates that various embodiments may also be implemented without access to such personal information data. That is, various embodiments of the present technology will not fail to function properly due to the lack of all or a portion of such personal information data. For example, content may be selected and delivered to a user by inferring preferences based on non-personal information data or an absolute minimum amount of personal information, such as content requested by a device associated with the user, other non-personal information available to a content delivery service, or publicly available information.
[0115] Fig.16 An electronic system 1600 is shown that can be utilized to implement one or more implementations of the subject technology. The electronic system 1600 may be Figure 1One or more of the electronic devices 102-104 and / or server 108 shown, and / or may be a part thereof. The electronic system 1600 may include various types of computer-readable media and interfaces for various other types of computer-readable media. The electronic system 1600 includes a bus 1608, one or more processing units 1612, a system memory 1604 (and / or cache), a ROM 1610, a permanent storage device 1602, an input device interface 1614, an output device interface 1606, and one or more network interfaces 1616, or subsets and variations thereof.
[0116] The bus 1608 generally represents all system buses, peripheral busses, and chipset buses that communicatively connect the many internal devices of the electronic system 1600. In one or more specific implementations, the bus 1608 communicatively connects the one or more processing units 1612 with the ROM 1610, the system memory 1604, and the permanent storage device 1602. The one or more processing units 1612 retrieve instructions to be executed and data to be processed from these various memory units in order to perform the processes disclosed in the present subject matter. In different specific implementations, the one or more processing units 1612 can be a single processor or a multi-core processor.
[0117] ROM 1610 stores static data and instructions required by one or more processing units 1612 and other modules of electronic system 1600. On the other hand, permanent storage device 1602 can be a read-write memory device. Permanent storage device 1602 can be a non-volatile memory unit that stores instructions and data even when electronic system 1600 is turned off. In one or more specific implementations, a mass storage device (such as a magnetic disk or optical disk and its corresponding disk drive) can be used as permanent storage device 1602.
[0118] In one or more implementations, a removable storage device (such as a floppy disk, a flash drive, and its corresponding disk drive) may be used as the permanent storage device 1602. Like the permanent storage device 1602, the system memory 1604 may be a read-write memory device. However, unlike the permanent storage device 1602, the system memory 1604 may be a volatile read-write memory, such as a random access memory. The system memory 1604 may store any of the instructions and data that one or more processing units 1612 may need at runtime. In one or more implementations, the processes disclosed in the subject matter are stored in the system memory 1604, the permanent storage device 1602, and / or the ROM 1610. The one or more processing units 1612 retrieve instructions to be executed and data to be processed from these various memory units in order to perform the processes of one or more implementations.
[0119] The bus 1608 is also connected to an input device interface 1614 and an output device interface 1606. The input device interface 1614 enables a user to transmit information and select commands to the electronic system 1600. Input devices that can be used with the input device interface 1614 may include, for example, an alphanumeric keyboard and a pointing device (also referred to as a "cursor control device"). The output device interface 1606 may, for example, enable the display of files generated by the electronic system 1600. Output devices that can be used with the output device interface 1606 may include, for example, a printer and a display device, such as a liquid crystal display (LCD), a light emitting diode (LED) display, an organic light emitting diode (OLED) display, a flexible display, a flat panel display, a solid-state display, a projector, or any other device for outputting information. One or more specific implementations may include a device that acts as both an input device and an output device, such as a touch screen. In these specific implementations, the feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including acoustic, voice, or tactile input.
[0120] Finally, if Fig.16 As shown, bus 1608 also couples electronic system 1600 to one or more networks and / or to one or more network nodes, such as Figure 1 108 shown in FIG. 10A . In this manner, electronic system 1600 can be part of a computer network, such as a LAN, a wide area network ("WAN"), or an intranet, or can be part of a network of networks, such as the Internet. Any or all components of electronic system 1600 can be used with the subject disclosure.
[0121] Implementations within the scope of the present disclosure may be implemented in part or in whole using a tangible computer-readable storage medium (or multiple tangible computer-readable storage media of one or more types) programmed with one or more instructions. Tangible computer-readable storage media may also be non-transitory in nature.
[0122] Computer-readable storage media can be any storage media that can be read, written, or otherwise accessed by a general or special computing device, including any processing electronics and / or processing circuitry capable of executing instructions. For example, without limitation, computer-readable media can include any volatile semiconductor memory, such as RAM, DRAM, SRAM, T-RAM, Z-RAM, and TTRAM. Computer-readable media can also include any non-volatile semiconductor memory, such as ROM, PROM, EPROM, EEPROM, NVRAM, flash memory, nvSRAM, FeRAM, FeTRAM, MRAM, PRAM, CBRAM, SONOS, RRAM, NRAM, racetrack memory, FJG, and Millipede memory.
[0123] In addition, the computer-readable storage medium may include any non-semiconductor memory, such as optical disk storage, magnetic disk storage, magnetic tape, other magnetic storage devices, or any other medium capable of storing one or more instructions. In one or more specific implementations, the tangible computer-readable storage medium may be directly coupled to the computing device, while in other specific implementations, the tangible computer-readable storage medium may be indirectly coupled to the computing device, for example, via one or more wired connections, one or more wireless connections, or any combination thereof.
[0124] Instructions can be directly executable, or can be used to develop executable instructions. For example, instructions can be implemented as executable or non-executable machine code, or can be implemented as high-level language instructions that can be compiled to produce executable or non-executable machine code. In addition, instructions can also be implemented as data, or can include data. Computer executable instructions can also be organized in any format, including routines, subroutines, programs, data structures, objects, modules, applications, applets, functions, etc. As recognized by those skilled in the art, the details including but not limited to the number, structure, sequence and organization of instructions can be significantly different without changing the underlying logic, function, processing and output.
[0125] Although the above discussion mainly involves microprocessors or multi-core processors that execute software, one or more implementations are performed by one or more integrated circuits such as ASICs or FPGAs. In one or more implementations, such integrated circuits execute instructions stored on the circuits themselves.
[0126] Those skilled in the art will recognize that the various illustrative frames, modules, elements, parts, methods and algorithms described herein can be implemented as electronic hardware, computer software or a combination of the two. In order to illustrate this interchangeability of hardware and software, various illustrative frames, modules, elements, parts, methods and algorithms have been generally described above according to functionality. Whether such functionality is implemented as hardware or software depends on the specific application and the design constraints imposed on the entire system. The technician can implement the described functionality in different ways for each specific application. Various parts and frames can be arranged differently (e.g., arranged in different orders, or divided in different ways) without departing from the scope of the subject technology.
[0127] It should be understood that the specific order or the hierarchical structure of the frame in the process disclosed by the present invention are the illustration of exemplary methods. Based on the design preferred requirements, it should be understood that the specific order or the hierarchical structure of the frame in the process can be rearranged or all the frames shown are executed. Any frame in these frames can be executed simultaneously. In one or more specific implementations, multitasking and parallel processing may be advantageous. In addition, the division of each system component in the above-mentioned specific implementation should not be understood as requiring such division in all specific implementations, and it should be understood that program components and systems can be generally integrated together in a single software product or encapsulated in multiple software products.
[0128] As used in this specification and any claims of this patent application, the terms "base station", "receiver", "computer", "server", "processor" and "memory" all refer to electronic devices or other technical devices. These terms exclude people or groups of people. For the purpose of this specification, the term "display" or "displaying" means displaying on an electronic device.
[0129] As used herein, the phrase "at least one of" following a list of items, any of which is separated by the terms "and" or "or", modifies the list as a whole, rather than each member (i.e., each item) of the list. The phrase "at least one of" does not require selection of at least one of each item listed; rather, the phrase allows for a meaning that includes at least one of any one item and / or at least one of any combination of items and / or at least one of each item. For example, the phrases "at least one of A, B, and C" or "at least one of A, B, or C" each refer to only A, only B, or only C; any combination of A, B, and C; and / or at least one of each of A, B, and C.
[0130] The predicate words "configured to," "operable to," and "programmed to" do not imply any particular tangible or intangible modification of a subject matter but are intended to be used interchangeably. In one or more specific implementations, a processor configured to monitor and control an operation or component may also mean that the processor is programmed to monitor and control the operation or that the processor is operable to monitor and control the operation. Likewise, a processor configured to execute code may be interpreted as a processor programmed to execute code or operable to execute code.
[0131] Phrases such as aspect, this aspect, on the other hand, some aspects, one or more aspects, a specific implementation, this specific implementation, another specific implementation, some specific implementations, one or more specific implementations, an embodiment, this embodiment, another embodiment, some embodiments, one or more embodiments, configuration, this configuration, other configurations, some configurations, one or more configurations, subject technology, disclosure, the present disclosure, other variations thereof, etc. are for convenience and do not mean that the disclosure involving such one or more phrases is essential to the subject technology, nor does it mean that such disclosure applies to all configurations of the subject technology. Disclosures involving such one or more phrases may apply to all configurations or one or more configurations. Disclosures involving such one or more phrases may provide one or more examples. Phrases such as aspect or some aspects may refer to one or more aspects and vice versa, and this applies similarly to the other aforementioned phrases.
[0132] The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any implementation described herein as "exemplary" or as an "example" is not necessarily to be construed as preferred or advantageous over other implementations. Furthermore, to the extent that the terms "including," "having," and the like are used in the specification or claims, such terms are intended to be inclusive, in a manner similar to the way the term "comprising" is interpreted when used as a transitional word in a claim.
[0133] All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later become known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be covered by the claims. In addition, nothing disclosed herein is intended to be made available to the public regardless of whether the disclosure is explicitly stated in the claims. Pursuant to 35 U.S.C. §112, paragraph 6, no claim element shall be construed unless the element is expressly stated using the phrase “means for” or, in the case of a method claim, the element is stated using the phrase “step for”.
[0134] The previous description is provided to enable those skilled in the art to practice the various aspects described herein. Various modifications of these aspects are apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects. Therefore, the claims are not intended to be limited to the aspects shown herein, but are intended to make the full scope consistent with the language claims, wherein reference to elements in singular values is not intended to mean "only one", but refers to "one or more", unless specifically noted. Unless otherwise specifically stated, the term "some" refers to one or more. Male pronouns (e.g., his) include female and neutral (e.g., her and its), and vice versa. Titles and subtitles (if any) are used only for convenience and do not limit the subject disclosure.
Claims
1. A method for electronic messaging, comprising: receiving, by a device of a user from another device, a message including a network identifier for accessing at least one file associated with a shared storage area, wherein the shared storage area was created in response to a request from the other device, the network identifier including parameters for accessing context information of the at least one file from the shared storage area, the at least one file having been determined to be relevant to the user, and the at least one file including a set of files; displaying, by the device, within an active message thread of a messaging application, the set of files represented in a single message element, the message element providing an interface for the user to accept access to the at least one file, the message element including the context information, wherein the context information includes a representation of a master file of the set of files; receiving, via the interface, user input indicating that the user has accepted access to the at least one file; obtaining the at least one file associated with the shared storage area in response to receiving the user input and based on the network identifier and based on whether the user is logged into a user account of a cloud-based service using the device; as well as The at least one file is provided for display on the device. 2 . The method of claim 1 , wherein the shared storage area corresponds to the cloud-based service, the cloud-based service having a plurality of user accounts associated therewith.
3. The method of claim 2, wherein in the case where the user has a user account on the cloud-based service and logs into the user account using the device, the method further comprises: obtaining the context information of the at least one file from the shared storage area; as well as The context information is displayed in the message element of the active message thread.
4. The method of claim 2, wherein, if the user has a user account on the cloud-based service and is logged into the user account using the device, providing the at least one file for display on the device comprises: The at least one file is displayed in the message element of the active message thread by referencing the at least one file based on the network identifier.
5. The method of claim 2, wherein in a case where the user does not have a user account on the cloud-based service or is not logged into the user account using the device, providing the at least one file for display on the device comprises: The web page corresponding to the network identifier is directed via a web browser.
6. The method of claim 1 further comprises, prior to providing the message element that provides an interface for the user to accept access to the at least one file, providing an additional message element within the active message thread of the messaging application, the additional message element indicating that a file has been shared but is not yet accessible.
7. The method of claim 1, wherein the message element that provides an interface for the user to accept access to the at least one file provides access to a portion of a set of files corresponding to the at least one file.
8. An electronic device, comprising: Memory; and One or more processors configured to: receiving a message from another electronic device, the message comprising a network identifier for accessing at least one file associated with a shared memory area, wherein the shared memory area was created in response to a request from the other electronic device, the network identifier comprising parameters for accessing context information of the at least one file from the shared memory area, the at least one file having been determined to be relevant to a user of the electronic device, and the at least one file comprising a set of files; displaying the set of files represented in a single message element within an active message thread of a messaging application, the message element providing an interface for the user to accept access to the at least one file, the message element including the context information, wherein the context information includes a representation of a primary file of the set of files; receiving, via the interface, user input indicating that the user has accepted access to the at least one file; obtaining the at least one file associated with the shared storage area in response to receiving the user input and based on the network identifier and based on whether the user is logged into a user account of a cloud-based service using the device; as well as The at least one file is provided for display on the electronic device.
9. The electronic device of claim 8, wherein the shared storage area corresponds to the cloud-based service, the cloud-based service having a plurality of user accounts associated therewith.
10. The electronic device of claim 9, wherein the user has a user account for the cloud-based service and is logged into the user account on the electronic device, and wherein the one or more processors are further configured to: obtaining the context information of the at least one file from the shared storage area; and The context information is displayed in the message element of the active message thread.
11. The electronic device of claim 9, wherein the user has a user account for the cloud-based service and is logged into the user account on the electronic device, and wherein the one or more processors are further configured to provide the at least one file for display on the electronic device by: The at least one file is displayed in the message element of the active message thread by referencing the at least one file based on the network identifier.
12. The electronic device of claim 9, wherein the user does not have a user account for the cloud-based service or is not logged into the user account using the electronic device, and wherein the one or more processors are further configured to provide the at least one file for display on the electronic device by: The web page corresponding to the network identifier is directed via a web browser.
13. An electronic device according to claim 8, wherein the one or more processors are further configured to provide an additional message element within the active message thread of the messaging application before providing the message element that provides an interface for the user to accept access to the at least one file, the additional message element indicating that files including the at least one file have been shared but are not yet accessible.
14. The electronic device of claim 8, wherein the message element that provides an interface for the user to accept access to the at least one file provides access to a portion of a set of files corresponding to the at least one file.
15. A non-transitory computer-readable medium storing instructions, which, when executed by one or more processors, cause the one or more processors to perform operations, the operations comprising: receiving, by a device of a user from another device, a message including a network identifier for accessing at least one file associated with a shared storage area, wherein the shared storage area was created in response to a request from the other device, the network identifier including parameters for accessing context information of the at least one file from the shared storage area, the at least one file having been determined to be relevant to the user, and the at least one file including a set of files; displaying, by the device, within an active message thread of a messaging application, the set of files represented in a single message element, the message element comprising an interface for the user to accept access to the at least one file, the message element comprising the context information, wherein the context information comprises a representation of a master file of the set of files; receiving, via the interface, user input indicating that the user has accepted access to the at least one file; obtaining the at least one file associated with the shared storage area in response to receiving the user input and based on the network identifier and based on whether the user is logged into a user account of a cloud-based service using the device; as well as The at least one file is provided for display on the device.
16. The non-transitory computer-readable medium of claim 15, wherein in a case where the user has a user account for the cloud-based service and logs into the user account using the device, the operations further comprise: obtaining the context information of the at least one file from the shared storage area; as well as The context information is displayed in the message element of the active message thread.
17. The non-transitory computer-readable medium of claim 16, wherein, if the user has the user account on the cloud-based service and logs into the user account using the device, providing the at least one file for display on the device comprises: The at least one file is displayed in the message element of the active message thread by referencing the at least one file based on the network identifier.
18. The non-transitory computer-readable medium of claim 16, wherein, if the user does not have a user account on the cloud-based service or is not logged into the user account using the device, providing the at least one file for display on the device comprises: The web page corresponding to the network identifier is directed via a web browser.
19. The non-transitory computer-readable medium of claim 15, the operations further comprising, prior to providing the message element comprising an interface for the user to accept access to the at least one file, providing an additional message element within the active message thread of the messaging application, the additional message element indicating that the at least one file has been shared but is not yet accessible.
20. The non-transitory computer-readable medium of claim 15, wherein the message element comprising an interface for the user to accept access to the at least one file provides access to a portion of a set of files corresponding to the at least one file.
Citation Information
Patent Citations
Methods, systems, and media for suggesting a link to media content
US20160226804A1