Abstract:
In the field of mobile devices, it is desirable to allow parties extraneous to a mobile device&#39;s manufacturer the ability to theme the mobile device. It is also desirable to allow changes to the theme of the mobile device in order to reflect changes in the corporate identity or services offered by a vendor or carrier associated with the mobile device. Herein provided are methods for the just in time theming of a mobile device. The methods allow for a mobile device to transmit identification information upon activation, receive user interface customization information in response to the transmitted identification information and to subsequently set the mobile device&#39;s user interface to correspond with the received user interface customization information. Also provided are methods for a server to receive identification information, provide the appropriate user interface customization information based on the received identification information and supply the user interface customization information by transmitting the information.

Description:
FIELD OF THE APPLICATION 
       [0001]    The present application relates to the field of mobile communications and particularly to a system and method for adaptive theming of a mobile device. 
       BACKGROUND 
       [0002]    Mobile devices, such as personal digital assistants (PDAs), cellular telephones and smartphones, for example, provide a man machine interface (MMI) through which a user interfaces with/or controls the operation of the mobile device. A mobile device&#39;s MMI typically consists of a hardware portion and a software portion. The hardware portion consists of buttons, thumb-wheels, displays, microphones, speakers and the like, whereas the software portion typically consists of visual or audio elements which a user may interact with through the use of one or more hardware portion. A common example of a software portion of a man machine interface includes an icon. The icon is displayed on a display and is actuated by a user through the use of a button. The software portion of the MMI may also include non-interactive elements, such as logos, ring tones, menu hierarchies or screen layouts known generally as a theme. 
         [0003]    Theme refers to attributes of the visual components or elements of the user interface that affect the look, but not the underlying meaning or semantic content, of the visual components such as colors, fonts, icon look and size, background images, and logos, among other things. Theme-able attributes are those attributes of visual elements of the user interface that can be changed or customized based on information provided to a mobile device. 
         [0004]    Mobile device manufacturers frequently enter into arrangements with telecommunications providers (carriers) whereby the carrier sells a manufacturer&#39;s mobile devices to consumers. Carriers will typically order a volume of a given mobile device from the manufacturer for sale. A carrier may desire to have a distinct MMI to represent its corporate identity or image and to serve to differentiate mobile devices and services sold by them from those sold by other carriers. The carrier configurable MMI is typically the software portion and is commonly known as a theme. A theme includes both interactive (or functional) elements and visual (or aesthetic) elements. 
         [0005]    The volume of mobile devices ordered by a carrier could be significant (to take advantage of volume discounts for example). As such, the carrier may not sell all of the ordered mobile devices until a lengthy period of time has past. During this time, the carrier may have changed marketing material, may have been acquired by another carrier or may have merged with another carrier. Any mobile devices which remain unsold may not comply with novel requirements resulting from the marketing change, acquisition or merger. 
         [0006]    Solutions exist wherein a mobile device&#39;s theme may be altered. 
         [0007]    U.S. Pat. No. 6,509,913 to Bruce K. Martin Jr et al. is entitled “Configurable Man-Machine Interface” (the &#39;913 patent) and discloses methods which allow a network operator to configure a wireless device&#39;s man-machine interface remotely, over the air. The wireless device&#39;s man-machine interface disclosed in the &#39;913 patent exists in relation to a browser application executing at the wireless device. The browser application requests from a network operator a configuration file which is then delivered to the wireless device and provided to the browser application. The browser application uses the configuration file to determine how to divide the wireless device&#39;s display into portions and further associate each portion of the screen with a universal resource indicator. The browser application will typically request (and possibly re-request) each of the resources indicated by the universal resource indicator and display the resource in the assigned portion of the screen. 
         [0008]    U.S. Patent Application Number US2005/0050474 to Bells et al. is entitled “Method and Data Structure for User Interface Customization” and is assigned to a common applicant, Research in Motion Ltd (the &#39;474 application). In the &#39;474 application is disclosed a data structure useable to theme a mobile device. The data structure is generally referred to as a UI theme file. The &#39;474 application also discloses a UI theme manager operable at a mobile device to manage themes at the mobile device. Also disclosed in the &#39;474 is a UI data provider system which is operable to provide UI theme files to the UI theme manager on a mobile device. 
         [0009]    There is a need for improved system and methods whereby a mobile device&#39;s theme can be conveniently altered. 
     
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0010]    The accompanying drawings illustrate embodiments by way of example only. In the drawings: 
           [0011]      FIG. 1  is a block diagram of a mobile device and a communications system to which embodiments may be applied; 
           [0012]      FIG. 2  is a flow diagram illustrating an embodiment of a method executable at the mobile device of  FIG. 1  for theming the mobile device; and 
           [0013]      FIG. 3  is a flow diagram illustrating an embodiment of a method executable by a UI data provider system from  FIG. 1  for theming a mobile device. 
       
    
    
       [0014]    Similar numerals may have been used throughout the figures to represent similar components. 
       DETAILED DESCRIPTION 
       [0015]    Embodiments provide for a system and methods wherein the user interface (‘UI’) of a mobile device may be themed at the latest possible moment in order to avoid costly losses arising from outdated theming or customization information contained on mobile devices which may have been held as inventory by a third party vendor. 
         [0016]    In one aspect there is provided a method for customizing the UI of a mobile device comprising the steps of detecting an activation of the mobile device, transmitting identification information from the mobile device subsequent to the detecting, receiving UI customization information at the mobile device in response to the transmitted identification information and customizing the UI of the mobile device based on the received UI customization information. 
         [0017]    In another aspect there is disclosed a method for supplying UI customization information comprising the steps of receiving identification information, providing UI customization information based on the received identification information and transmitting the retrieved UI customization information as a response to receiving the identification information. 
         [0018]    In yet another aspect there is disclosed a mobile computing device, comprising a display for rendering a user interface, the user interface having visual elements displayed in accordance with a UI customization, a communication subsystem for effectuating communications, a memory storing identification information and a UI customization manager for detecting activation of the mobile computing device, transmitting the identification information, receiving UI customization information in response to the transmitted identification information, and customizing the UI of the mobile device based upon the received theme information. 
         [0019]    In even yet another embodiment there is disclosed a user interface data provider system for customizing a user interface of a mobile device, comprising a server adapted to receive identification information from the mobile device, provide UI customization information based on the received identification information, and transmit the provided UI customization information to the mobile device in response to receiving the identification information. 
         [0020]    Referring to  FIG. 1 , there is provided a block diagram of a communication system  100  and mobile device  10  in which example embodiments may be applied. The communication system  100  includes mobile devices  10  (only one of which is shown in  FIG. 1 ), a wireless network  110  for communicating with the mobile device  10 , a wireless network gateway  115  for interfacing the wireless network  110  with a Wide Area Network (WAN)  120 , the WAN  120  connecting the wireless network gateway  115  with a User Interface (UI) data provider system  125 , 
         [0021]    The wireless network gateway  115  provides an interface between the wireless network  110  in which mobile device  10  operates, and the WAN  120  in which the UI data provider system  125  is configured to operate. The WAN  120  includes the Internet, a direct connection, a local area network (LAN), a wireless communication link, and any combinations thereof. In some embodiments, data available to UI data provider system  125  may be provided to devices  10  through a direct link or through a data transfer means other than through WAN  120 , gateway  115  and wireless network  110 . 
         [0022]    UI data provider system  125  is a typical server which provides theming data (e.g. UI customization information) to mobile device  10 , typically in the form of a UI customization file, shown in  FIG. 1  as UI theme file  130 . More particularly, the UI data provider system provides UI customization information to mobile device  10  that can be used by such mobile device to customize or change the theme of the user interface that is presented by mobile device  10  to a user. The theme may include a “skin” which is layout information specifying the placement of user interface fields (for example, button fields and text fields) and images. A skin may create or hide UI fields and can change semantic content. In some embodiments, the functionality that a skin invokes must generally already be present on mobile device  10  and simply be invoked by a name, however, in some embodiments, a skin description that supports advanced scripting may be used. In some embodiments, SVG is used to implement skins. In some embodiments, a theme may delegate to a skin the layout of specific user interface fields. 
         [0023]    UI data provider system  125  is shown as a single entity in  FIG. 1 , but it is to be understood that multiple UI data provider systems  125  may exist. 
         [0024]    In one embodiment, a single UI data provider system  125  exists. The single UI data provider system  125  serves UI customization data to various ones of mobile device  10  which may be on different ones of wireless network  110 , implying that the various ones of mobile device  10  are associated with different vendors. In this embodiment, the single UI data provider system  125  stores various vendors&#39; theme data, is operable to generate various vendors&#39; theme data, or is operable to access various vendors&#39; remote hosts to enable retrieval or generation of theme data. 
         [0025]    In another embodiment, multiple UI data provider systems  125  exist. Each one of mobile device  10  is operable to access a specific one of UI data provider systems  125  to gain theme data. In this embodiment, a vendor may choose to point all of their ones of mobile device  10  to a particular one of UI data provider systems  125 . 
         [0026]    In the embodiment of  FIG. 1 , mobile device  10  is a hand-held two-way mobile communication device  10  having at least data and possibly also voice communication capabilities. In an example embodiment, the device has the capability to communicate with other computer systems on the Internet. In various embodiments, mobile device  10  includes data communication devices, multiple-mode communication devices configured for both data and voice communication, mobile telephones, mobile communication devices, PDAs enabled for wireless communications, 1-way or 2-way pagers, wireless modems operating in conjunction with computer systems, and any type of mobile wireless communication devices. In the presently described embodiment, each one of mobile device  10  is configured to operate within the wireless network  110 . It should be appreciated however that the present application is in no way limited to these example types of devices and may be implemented in other devices with displays. 
         [0027]    Mobile device  10  includes a communication subsystem  11 , including a receiver  12 , a transmitter  14 , and associated components such as one or more, preferably embedded or internal, antenna elements  16  and  18 , and a processing module such as a digital signal processor (DSP)  20 . In some embodiments, the communication subsystem includes local oscillator(s) (LO)  13 , and in some embodiments the communication subsystem and microprocessor  38  share an oscillator. As will be apparent to those skilled in the field of communications, the particular design of the communication subsystem  11  will be dependent upon the communication network in which the device is intended to operate. Communication subsystem  11  is capable of effectuating communications with external entities as is well known in the art. 
         [0028]    Signals received by the antenna  16  through a wireless communication network  110  are input to the receiver  12 , which may perform such common receiver functions as signal amplification, frequency down conversion, filtering, channel selection and the like, and in some embodiments, analog to digital conversion. In a similar manner, signals to be transmitted are processed, including modulation and encoding for example, by the DSP  20  and input to the transmitter  14  for digital to analog conversion, frequency up conversion, filtering, amplification and transmission over the communications network  110  via the antenna  18 . 
         [0029]    Mobile device  10  includes a microprocessor  38  that controls the overall operation of the device The microprocessor  38  interacts with communications subsystem  11  and also interacts with further device subsystems such as the display  22 , flash memory  24 , random access memory (RAM)  26 , auxiliary input/output (I/O) subsystems  28  (which may include a thumb-wheel or trackball, for example), serial port  30 , keyboard or keypad  32 , speaker  34 , microphone  36 , a short-range communications subsystem  40 , and any other device subsystems generally designated as  42 . 
         [0030]    Some of the subsystems shown in  FIG. 1  perform communication-related functions, whereas other subsystems may provide “resident” or on-device functions. Notably, some subsystems, such as keyboard  32  and display  22  for example, may be used for both communication-related functions, such as entering a text message for transmission over a communication network, and device-resident functions such as a calculator or task list. 
         [0031]    Operating system software  54  and various software applications  58  used by the microprocessor  38  are, in one example embodiment, stored in a persistent store such as flash memory  24  or similar storage element. Those skilled in the art will appreciate that the operating system  54 , specific device applications  58 , or parts thereof, may be temporarily loaded into a volatile store such as RAM  26 . It is contemplated that received communication signals may also be stored to RAM  26 . 
         [0032]    The microprocessor  38 , in addition to its operating system functions, preferably enables execution of software applications  58  on the device. A predetermined set of applications  58  which control basic device operations, including at least data and voice communication applications for example, will normally be installed on mobile device  10  during manufacture. Further applications may also be loaded onto mobile device  10  through the network  110 , an auxiliary I/O subsystem  28 , serial port  30 , short-range communications subsystem  40  or any other suitable subsystem  42 , and installed by a user in the RAM  26  or a non-volatile store for execution by the microprocessor  38 . Such flexibility in application installation increases the functionality of the device and may provide enhanced on-device functions, communication-related functions, or both. For example, secure communication applications may enable electronic commerce functions and other such financial transactions to be performed using mobile device  10 . 
         [0033]    In a data communication mode, a received signal such as a text message or web page download will be processed by the communication subsystem  11  and input to the microprocessor  38 , which will preferably further process the received signal for output to the display  22 , or alternatively to an auxiliary I/O device  28 . A user of device  10  may also compose data items such as email messages for example, using the keyboard  32  in conjunction with the display  22  and possibly an auxiliary I/O device  28 . Such composed items may then be transmitted over a communication network through the communication subsystem  11 . 
         [0034]    The serial port  30  in  FIG. 1  would normally be implemented in a personal digital assistant (PDA)-type communication device for which synchronization with a user&#39;s desktop computer (not shown) may be desirable, but is an optional device component. Such a port  30  would enable a user to set preferences through an external device or software application and would extend the capabilities of the device by providing for information or software downloads, including user interface information, to mobile device  10  other than through a wireless communication network. Such a configuration allows mobile device  10  to communicate with UI data provider system  125  without use of a wireless communication network, but through communication via the external device. 
         [0035]    A short-range communications subsystem  40  is a further component which may provide for communication between mobile device  10  and different systems or devices, which need not necessarily be similar devices. For example, the subsystem  40  may include an infrared device and associated circuits and components or a Bluetooth™ communication module to provide for communication with similarly enabled systems and devices. 
         [0036]    Wireless mobile network  110  is, in an example embodiment, a wireless packet data network, (e.g. Mobitex™, DataTAC™, GPRS, CDMA, EDGE or UMTS for example), which provides radio coverage to mobile device  10 , although it could be any other type of wireless network. 
         [0037]    Mobile device  10  includes UI customization manager software for implementing a UI customization manager, illustrated in  FIG. 1  as UI theme manager  72 . In one embodiment UI theme manager  72  is implemented on a JAVA runtime layer of mobile device  10 . Various functions of UI theme manager  72  could, in various embodiments, be performed by operating system  54  and/or other software applications  58 . The mobile device  10  also includes data store  74  for storing graphics and other files. 
         [0038]      FIG. 2  discloses a flow diagram illustrating an embodiment of a method executable at mobile device  10  of  FIG. 1  for just in time theming of mobile device  10 . The flow diagram contains 4 steps which operate to configure the theming of mobile device  10 . 
         [0039]    In operation, the flow diagram of  FIG. 2  commences theming mobile device  10  at step  300  where activation of mobile device  10  is detected. Activation comprises initial activation of mobile device  10  as well as subsequent activations of mobile device  10 . An initial activation of mobile device  10  is the first time mobile device  10  is turned on and becomes capable of effectuating data communications with a wireless network and the internet. The initial activation will likely occur once a consumer has purchased mobile device  10 , inserted a network identity card (such as a Subscriber Identity Module (SIM) card) if required and powered up mobile device  10  for the first time. However, initial activation could also occur through activation by a reseller or an IT administrator for example. A subsequent activation of mobile device  10  is similar to an initial activation, but it occurs after an initial activation. Activation may also require mobile device  10  to register with wireless network  110  so that mobile device  10  may effectuate data communications with other nodes, such as the internet as is well known in the art. In one embodiment, activation of the mobile device  10  may be detected by the UI theme manager  72  ( FIG. 1 ) via a notification from Wireless Network Gateway  115  ( FIG. 1 ). 
         [0040]    After successful activation, mobile device  10  is capable of effectuating communications with UI data provider system  125  of  FIG. 1 . At step  305 , mobile device  10  transmits identification information to UI data provider system  125 . Identification information includes information capable of identifying mobile device  10  to UI data provider system  125 . Such information could include a vendor identifier, a device identifier, subscriber identity information or class of service information. 
         [0041]    The identification information may be stored in memory on the mobile device  10 . For example, the identification information may be stored in RAM  26 , flash memory  24 , or in other volatile or non-volatile memory elements within the mobile device  10 , such as a SIM card. In some embodiments, the identification information may be stored on the mobile device  10  during manufacturing or initial loading of the basic device software  10 . Transmission of the identification information, as illustrated in step  305 , may include retrieval of the identification information from memory. Transmission of the identification information may be initiated by the UI theme manager  72  in cooperation with the communication subsystem  11  ( FIG. 1 ). 
         [0042]    A vendor identifier is information which enables another entity to determine which vendor mobile device  10  is associated with. The vendor identifier could include a string or a number which identifies a specific vendor (such as a carrier) and is inserted onto mobile device  10 , typically at the time of manufacture, typically into flash  24  or another memory system of mobile device  10 . The vendor identifier allows UI data provider system  125  to know which vendor maintains rights in mobile device  10 . The vendor identifier is typically inserted onto mobile device  10  to ensure customer loyalty to a vendor&#39;s network. Customer loyalty serves to offset subsidies given to a consumer at the time of purchase of mobile device  10  through periodic billing for services as is well known in the art. 
         [0043]    A device identifier is information which enables another entity to determine which type of device mobile device  10  is. The device identifier could include a string or a number which identifies a specific model of device and is inserted onto mobile device  10 , typically at the time of manufacture, typically into flash  24  or another memory system of mobile device  10 . The device identifier allows UI data provider system  125  to know which type of device mobile device  10  is, allowing UI data provider system  125  to ascertain associated properties with mobile device  10 , such as screen size and resolution, associated input devices, memory sizes and the like. 
         [0044]    Subscriber identity information is information which enables another entity to determine who the user of mobile device  10  is. The subscriber identity information could include a string or a number which identifies a specific user, and can be contained on a removable card (such as a SIM card for example) or within the flash  24  of mobile device  10 . Subscriber identity information allows a user to switch between multiple ones of mobile device  10  while maintaining such personal customization as a phone number. 
         [0045]    Class of service information is information which enables another entity to determine which class of service mobile device  10  is currently subscribed to. The class of service information could be a string or a number and is configurable. The class of service information could include such details as which services a user of mobile device  10  is subscribed to or which configuration mobile device  10  is set to operate in. The class of service information for mobile device  10  is configurable in that it could change if the user of mobile device  10  chose to subscribe to different services. The class of service information for mobile device  10  could also change as a result of switching the mode of operation of mobile device  10 . 
         [0046]    Subsequent to transmitting identification information to UI data provider system  125  in step  305 , theme information (e.g. UI customization information) is received at mobile device  10  from UI data provider system  125  at step  310 . Theme information includes information capable of configuring mobile device  10  to use given theme information and is in the form of UI theme file  130  for example. 
         [0047]    UI theme file  130  is a file which includes information to specify custom attributes used in various user interface elements as well as information for generating customized user elements. A UI theme file  130  contains information which enables mobile device  10  to generate a specific theme as described in U.S. Patent Application US2005/0050474. 
         [0048]    Once received at mobile device  10 , UI theme file  130  is used to establish a current theme at mobile device  10 . At step  315 , UI theme manager  72  processes the UI theme file  130  received at step  310  to establish the current theme of mobile device  10 . In order to establish the current theme, UI theme manager  72  uses the instructions and information contained in UI theme file  130  to maintain in memory an icon/graphic image collection as well as current visual user interface attributes, possibly including a skin. Elements that are displayed on display  22  of mobile device  10  have the visual attributes specified by the current theme applied to them. Icons and other graphic images that are displayed are selected from the theme icon/graphic image collection. UI theme file  130  may also include instructions to enable or disable specific applications, altering the functionality available to a user of mobile device  10 . 
         [0049]      FIG. 3  discloses a flow diagram illustrating an embodiment of a method executable at UI data provider system  125  of  FIG. 1  for just in time theming of mobile device  10 . The flow diagram contains 3 steps which operate to enable the theming of mobile device  10  through customization of the UI of the mobile device  10 . 
         [0050]    In operation, the flow diagram of  FIG. 3  commences at step  400  where UI data provider system  125  receives identification information. Received identification information is from mobile device  10 , as transmitted in step  305  of  FIG. 2 . 
         [0051]    The received identification information provides UI data provider system  125  with the requisite information to identify the vendor and/or device type and/or user and/or service class of mobile device  10 . Using this information, UI data provider system  125  is capable of providing the appropriate theme information for mobile device  10  at step  405 . Providing may involve retrieving theme information from a data store local to UI data provider system  125 , generating theme information at UI data provider system  125  or requesting and receiving at UI data provider system  125  theme information from a remote host for example. Using the received identification information as an index to identify and/or locate the appropriate theme information associated with mobile device  10 , UI data provider system  125  is operable to provide the appropriate theme information. UI data provider system  125  may compile the theme information into UI theme file  130  for example, which has the proper theme information associated with the identification information received from mobile device  10  at step  400 . 
         [0052]    It is to be understood that at step  405  UI data provider system  125  is responsible for either generating or retrieving the theme information to be transmitted at step  410 . In either event, UI data provider system  125  uses the identification information received at step  400  to determine the correct theme information. 
         [0053]    As an example, UI data provider system  125  receives at step  400  identification information containing vendor information, device information, subscriber identity information and class of service information. Using the received identification information, UI data provider system  125  selects elements for inclusion in theme information. For example, the following elements are selected; a specific vendor logo and skin based on the vendor information, a specific colour depth and colour scheme based on the device information, a specific set of user preferences based on the subscriber identity information and enables a specific set of applications based on the class of service information. UI data provider system  125  amalgamates the selected elements into theme information and possibly compiles the theme information into UI theme file  130 . 
         [0054]    As another example, UI data provider system  125  selects pre-configured theme information (or UI theme file  130 ) from a data store based on the identification information received at step  400 . 
         [0055]    At step  410 , UI data provider system  125  transmits the theme information retrieved at step  405  to mobile device  10 . The theme information transmitted to mobile device  10  enables the theming of mobile device  10 . 
         [0056]    As another example, UI data provider system  125  stores the identification information received at step  400 . In this example, UI data provider system  125  is operable to execute multiple iterations of steps  405  and  410  based on one or more sets of identification information received in one or more iteration of step  400 . Based on the identification information received in an iteration of step  400 , UI data provider  125  will check for updated theme information on a regular basis. Should updated theme information exist for mobile device  10 , UI data provider system  125  retrieves the appropriate theme information, as in step  405 , and transmits the theme information to mobile device  10 , as in step  410 . In this regard, UI data provider system  125  will push updated theme information to mobile device  10  without the need for mobile device  10  to resubmit its identification information. 
         [0057]    The present application includes description of a number of embodiments. These are not intended to be limiting examples. It will be obvious to one skilled in the art that variations and modifications may be made without departing from the scope of the appended claims.