The specification relates generally to message attachments, and specifically to a method, system and apparatus for managing message attachments.
As the usage of mobile electronic devices, such as smart phones, continues to grow, so do the demands for increased functionality imposed on such devices. While the capabilities of these devices also increase, their computational, memory and bandwidth resources continue to be limited in comparison to mains-powered computing devices.
Embodiments are described with reference to the following figures, in which:
According to an aspect of the specification, a method of managing attachments is provided. The method comprises receiving a request for a slideshow attachment, the slideshow attachment maintained in a memory; distilling at least one content layer from the slideshow attachment; generating a slide list from the slideshow attachment; converting the slide list and at least a portion of the at least one content layer into a transmission format; and, transmitting a response to the request, the response comprising the converted slide list and the converted portion of the at least one layer.
According to another aspect of the specification, a server is provided, comprising a memory for storing a slideshow attachment; a communications interface for receiving a request for the slideshow attachment; and a processor interconnected with the memory and the communications interface, the processor configured to receive the request via the communications interface, to distill at least one content layer from the slideshow attachment; to generate a slide list from the slideshow attachment; to convert the slide list and at least a portion of the at least one content layer into a transmission format; and to transmit a response to the request via the communications interface, the response comprising the converted slide list and the converted portion of the at least one layer.
According to a further aspect of the specification, a computer readable storage medium is provided, for storing computer readable instructions for execution by a processor. The computer readable instructions implement a method comprising receiving a request for a slideshow attachment, the slideshow attachment maintained in a memory; distilling at least one content layer from the slideshow attachment; generating a slide list from the slideshow attachment; converting the slide list and at least a portion of the at least one content layer into a transmission format; and, transmitting a response to the request, the response comprising the converted slide list and the converted portion of the at least one layer.
Mobile electronic device 104 also includes a communications interface 132 interconnected with processor 108. Communications interface 132 allows mobile electronic device 104 to communicate with other computing devices via a link 136 and a network 140. Network 140 can include any suitable combination of wired and/or wireless networks, including but not limited to a Wide Area Network (“WAN”) such as the Internet, a Local Area Network (“LAN”), cell phone networks, WiFi networks, WiMax networks and the like. Link 136 is compatible with network 140. In particular, link 136 can be a wireless link based on Global System for Mobile communications (“GSM”), General Packet Radio Service (“GPRS”), Enhanced Data rates for GSM Evolution (“EDGE”), and the third-generation mobile communication system (3G), Institute of Electrical and Electronic Engineers (“IEEE”) 802.11 (WiFi) or other wireless protocols. It will be understood that link 136 also includes any base stations and backhaul links necessary to connect mobile electronic device 104 to network 140. It will be understood that communications interface 132 can therefore be selected for compatibility with link 136 as well as with network 140.
The various components of mobile electronic device 104 are interconnected, for example via a communication bus (not shown). Mobile electronic device 104 can be powered by a battery (not shown).
System 100 also includes a server 144, which can be based on any known server environment. As such, server 144 includes a processor 148 interconnected with a memory 152 which can be any suitable combination of volatile (e.g. Random Access Memory (“RAM”)) and non-volatile (e.g. read only memory (“ROM”), Electrically Erasable Programmable Read Only Memory (“EEPROM”), flash memory, magnetic computer storage device, or optical disc) memory. Server 144 also includes a communications interface 156 interconnected with processor 148. Communications interface 156 allows server 144 to communicate with other computing devices via a link 160 and network 140. Link 160 can be, for example, a wired link.
Server 144 can be managed by way of input and output devices (not shown) such as a keyboard and a display. Such input and output devices can be co-located with server 144 or can be located at a terminal (not shown) remote from server 144.
In general, mobile electronic device 104 can receive communications—such as e-mail messages, Short Message Service (SMS), or text, messages, Multimedia Message Service (MMS) messages, and the like—from other computing devices such as personal computer 164. It will be understood that a wide variety of other computing devices are also contemplated, including other mobile electronic devices (not shown). Such communications can be received, via network 140, at communications interface 132. Processor 108 can be configured, by execution of one or more messaging applications (not shown) maintained in memory 112, to render representations of the communications on display 120. As will be appreciated by those skilled in the art, some communications can include attachments. For example, e-mail messages sent by other computing devices can include attachments such as word processing documents, images, slideshows and the like. Server 144 can be an attachment server, acting as an intermediate between the other computing devices and mobile electronic device 104. In particular, e-mail messages containing attachments can be delivered to mobile electronic device 104 with an indication that an attachment is available, rather than the attachment itself. Mobile electronic device 104 can then request the attachment from server 144 in order to obtain and display the attachment.
Mobile electronic device 104 can therefore include an attachment viewer application 168 maintained in memory 112. Server 144 can also maintain an attachment handler application 172 in memory 152. Attachment viewer application 168 and attachment handler application 172 can each comprise computer readable instructions for execution by processors 108 and 148, respectively. In general, processors 108 and 148 can be configured, by execution of attachment viewer application 168 and attachment handler application 172 respectively, to perform various tasks as discussed below.
Turning to
At block 205, processor 108 can be configured via execution of attachment viewer application 168 to transmit, via communications interface 132, a request for the slideshow attachment to server 144. It will now be apparent that performance of block 205 can be initiated following receipt of input data at input device 116 indicating that the request should be transmitted.
At block 210, processor 148 of server 144 is configured, via execution of attachment handler application 172, to receive the request via communications interface 156. Referring briefly to
Returning to
In some embodiments, processor 148 can be configured, via execution of attachment handler application 172, to distill four content layers from slideshow attachment 304. Referring now to
A master layer 308 can contain data describing the background, style and layout of each slide. Master layer 308 is thus depicted in
A text layer 312 contains the text for each slide in slideshow attachment 304. In distilling text layer 312, processor 148 can traverse each slide in slideshow attachment 304 in order to detect text elements. For each slide where text elements exist, processor 148 can be configured to generate an image of the text elements based on attributes of the text elements specified within slideshow attachment 304. Generation of an image allows for more accurate reproduction of the text in slideshow attachment 304, for example when slideshow attachment 304 contains fonts, languages or other text attributes that may not be recognized by mobile electronic device 104. In
It will be understood that while only a single image of text is shown in text layer 312 for exemplary purposes, text layer 312 can contain any number of images. In some embodiments, text layer 312 contains one image for each slide within slideshow attachment 304 that contains new text elements (that is, a text element or combination or text elements that are not already represented by an image in text layer 312).
An object layer 316 contains images, charts, animation effects and the like within slideshow attachment 304. Processor 148 can thus be configured to traverse slideshow attachment 304 and to add each new object (that is, an object not already stored in object layer 316) to object layer 316.
An action layer 320 contains links, buttons and the like that, for example, jump to other slides in slideshow attachment 304. As with the previous layers, processor 148 can be configured, via execution of attachment handler application 172, to traverse slideshow attachment 304 and add each new action element (that is, any action element that is not already present in action layer 320) to action layer 320. In
Upon completion of block 215, the distilled layers of slideshow attachment 304 can be maintained in memory 152 of server 144, as shown in
Slide list 500 can comprise one or more entries 504 for each slide in slideshow attachment 304. Each entry 504 can contain an indication of an item of content from the layers distilled at block 215. For example, entries 504 of slide list 500 include a “Transition” attribute entry containing an indication of which transition effects are to be used between “Slide 1” and the next slide (such as animations, sounds and the like, if any), as well as one entry for each type of content (“type” being based on which layer the content falls into). It will now be apparent that processor 108 can be configured, via execution of attachment viewer application 168, to detect the transition identifier attribute and implement the corresponding transition effect(s). Attachment viewer application 168 can, in some embodiments, include a transition package containing the necessary data for implementing the transition effects that can be specified in slide list 500. Attachment handler application 172 can include a counterpart transition package for configuring processor 148 to recognize transition effects in slideshow attachment 304 and provide corresponding indicators in slide list 500.
The remaining ones of entries 504 include a master entry, a text entry, an object entry and an actions entry. It will be understood that additional attributes (not shown) can also be specified in slide list 500. The master entry includes an indication of which background image (“Background1”) from master layer 308 to use for the first slide of slideshow attachment 304. The text, objects and actions entries likewise contain indications of which items of content from their respective layers are to be used in rendering the first slide of slideshow attachment 304. As can be seen in
In order to generate slide list 500, processor 148 can be configured to traverse slideshow attachment 304 and, for each slide therein, to store in an entry 504 indicators corresponding to the elements constituting the slide. It will be appreciated that generation of slide list 500 at block 220 can, in some embodiments, be performed substantially simultaneously with the distilling of layers at block 215. For example, having identified new text elements in a slide, processor 148 can distill those text elements into image 314 as seen in
Once the generation of slide list 500 has been completed at block 220, slide list 500 can be maintained in memory 152 of server 144, as shown in
Referring again to
Proceeding then to block 230, processor 148 can be configured to transmit, via communications interface 156, the converted slide list and the converted content to mobile electronic device 104. At block 235, processor 108 of mobile electronic device can be configured to receive, via communications interface 132, the slide list and content transmitted from server 144 at block 230. Following receipt of slide list 500 and the converted content portion at block 235, processor 108 can be configured to store slide list 500 and the content (shown as “C” in
Referring back to
Turning to
Following completion of block 240, it will be appreciated that mobile electronic device 104 can receive, via input device 116, input data indicative of a request for additional slides. Processor 108 can be configured to determine whether the content for such additional slides (as specified by slide list 500) exists within memory 112. If such additional content does not exist within memory 112, processor 108 can be configured to transmit a “More” request to server 144. Having received the request, server 144 can then convert and transmit additional content as at blocks 225 and 230 of method 200.
In some embodiments, the request for slides from mobile electronic device 104 can include additional indicators that affect the distilling of slideshow attachment 304 into layers. Turning to
Method 800 begins at block 802, at which processor 108 of mobile electronic device can be configured, via execution of attachment viewer application 168, to receive input data indicative of a quality selection. Receipt of such a selection can follow the display, via control of display circuitry 124, of selectable options for “high” or “normal” quality. As will be appreciated, other options are also contemplated. Following receipt of a quality selection at block 802, method 800 proceeds to block 805. Block 805 is similar to block 205, described above, with the exception that the request transmitted at block 805 includes a quality indicator based on the selection received at block 802.
Server 144 can receive the request at block 810, as discussed above in relation to block 210. Processor 148 of server 144 can be configured to determine, at block 812, the distilling requirements associated with the request. In some embodiments, therefore, processor 148 can be configured to determine the required quality of distilled content. If, for example, the received quality indicator is “high,” processor 148 can distill slideshow attachment 304 at block 815 as discussed above in relation to block 215, but at a higher quality. That is, images and the like generated for layers 308, 312, 316 and 320 can be of a higher resolution, colour depth and the like. For instance, image 314 can be generated at a resolution of 1000 pixels by 700 pixels rather than a lower normal (or “default”) of 300 pixels by 200 pixels. The above resolutions, it will be understood, are purely for exemplary purposes. Any suitable resolutions and other quality parameters can be used. Following distillation of layers at block 815, the performance of blocks 820, 825, 830, 835 and 840 can continue as described above in relation to blocks 220, 225, 230, 235 and 240, respectively.
In some embodiments, the request transmitted at block 805 can contain, in addition to or instead of the quality selection, an indication of the capabilities of mobile electronic device 104. Such an indication can be, for example, a model number of device 104 or a listing of types of content compatible with mobile electronic device 104. For example, mobile electronic device may be unable to process animations. Having received a model number of mobile electronic device 104 at block 810, processor 148 of server 144 can be configured to determine, at block 812, that mobile electronic device 104 cannot process animation objects within slides. Processor 148 can then be configured, at block 815, to distill slideshow attachment 304 into layers, omitting any animations contained within slideshow attachment 304. In other embodiments, processor 148 can be configured to distill all content in slideshow attachment 304, but to omit animations when converting and transmitting content at blocks 825 and 830. It will also be understood that processor 148 can omit indicators referring to animations when generating slide list 500 at block 820.
It will now be apparent that other variations can also be made to the methods and system described herein. For example, in other embodiments, applications 168 and 172 can be maintained on computer readable storage media other than memories 112 and 152. Exemplary computer readable storage media include fixed, tangible storage media readable directly by processors 108 and 148 (e.g., removable diskette, CD-ROM, ROM, fixed disk, USB drive). Other exemplary computer readable storage media include remote storage from which computer readable instructions are transmittable to processors 108 and 148.
Those skilled in the art will appreciate that in some embodiments, the functionality of one or both of attachment viewer application 168 and attachment handler application 172 can be implemented using pre-programmed hardware or firmware elements (e.g., application specific integrated circuits (ASICs), electrically erasable programmable read-only memories (EEPROMs), etc.), or other related components.
Persons skilled in the art will appreciate that there are yet more alternative implementations and modifications possible for implementing the embodiments, and that the above implementations and examples are only illustrations of one or more embodiments. The scope, therefore, is only to be limited by the claims appended hereto.