Abstract:
Objects shown on a display interface can be collected for a running application. Identifications (IDs) representing the objects can also be collected. A determination can be made concerning whether there are object identifications of objects with help contents associated. A transparent layer can be displayed on the display interface. All the objects associated with help contents of the layer can be visually indicated in the transparent layer. The visual indicators can indicate that help is available for a corresponding object. When no help is available, no visual indicator is shown in the transparent layer proximate to corresponding object.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims priority of Taiwan Patent Application Serial No. 99114016 entitled “Method, Device and Computer Program Product for Providing a Context-Aware Help Content”, filed on Apr. 30, 2010. 
       BACKGROUND 
       [0002]    The disclosure relates generally to mobile devices, software, and more particularly to context-aware help content. 
         [0003]    Mobile devices, such as mobile phones, PDAs, computing tablets, GPS systems, and any pervasive device, have continuously increased in popularity and power. This increased power has led to an increase in functionality and a corresponding increase in complexity. This increase in complexity has resulted in a significant learning curve, which poses as a barrier for taking advantage of features of the mobile devices. 
         [0004]    For example, in addition to traditional voice communication, many mobile devices provide a variety of applications to users which enable Internet use. Conventionally implemented help features and techniques are geared towards personal computers. These personal computers have significantly larger screen size, a variety of interface peripherals, and the like, which are not available to a mobile device. Thus, attempts to port existing techniques have largely failed, to one extent or another—primarily due to these techniques being cumbersome to use from a user experience perspective and being resource hungry in the mobile device context. 
       BRIEF SUMMARY 
       [0005]    One embodiment discloses a method, a computer program product, and/or a data processing system for providing a context-aware help content. The method comprises the following steps: collecting objects (e.g. components) shown on a display interface for a running application and identifications (IDs) representing the objects; determining whether there are object identifications of objects with help contents associated; and displaying a transparent layer over the display interface and highlighting all the objects with help contents associated on the layer to prompt a user to select a desired object. The present invention also discloses that when an object is selected by a user, the content of the object will be displayed directly on the layer, beside the object and over the display interface. 
         [0006]    Another embodiment discloses a method, a computer program product, and/or a data processing system for presenting a set of graphical objects on a touch-sensitive screen. A graphical overlay can be presented on the touch-sensitive screen. The graphical overlay can have a level of transparency that permits the graphical objects to be seen through the graphical overlay. The graphical overlay can present a help indictor proximate to the graphical objects for which help content is available. No help indicator is presented on the graphical overlay proximate to graphical objects to which help content is not available. A touch input can be received on the touch-sensitive screen for one of the help indicators and a corresponding one of the graphical objects is still visible through the graphical overlay. Responsive to the touch input, help content can be determined for the one of the graphical objects. The help content can be presented on the touch-sensitive screen in responsive to receiving the touch input. 
     
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
         [0007]      FIG. 1  is an exemplary diagram of a mobile device having a touch-sensitive screen according to one embodiment of the present invention. 
           [0008]      FIG. 2A ,  FIG. 2B , and  FIG. 2C  show different exemplary screen displays of a display interface on a mobile device in accordance with one embodiment of the disclosure. 
           [0009]      FIG. 3  is a flowchart of a program module of performing the help mode in accordance with one embodiment of the disclosure. 
       
    
    
     DETAILED DESCRIPTION 
       [0010]    Several techniques exist to provide the help features for applications running on a mobile device. All of these known techniques have significant shortcomings. For example, one technique is to provide a reference document to a user, where the reference document provides help content. The reference document can be provided within a locally running application or through an external Website. In a mobile device (e.g., a handheld device) context, however, use of a reference document requires a user to switch contexts and to traverse the document to find a specific help document that the user desires. This is troublesome from a handheld device, which has a very limited display region. This technique can also consume substantial resources, resulting in poor performance and weak response time from the mobile device. 
         [0011]    Another conventional approach is to put an embedded assistance proximate to content elements that might require further explanation. For example, a question mark icon can be provided beside a component for which explanations are available. This technique can consume screen space of a limited GUI, can result in a cluttered layout, and can increase a number of user-selectable targets thereby increasing user input mistakes. Generally, this technique when applied to a mobile device often results in a reduction in a user&#39;s satisfaction with the user interface. 
         [0012]    Still another technique is to associate an embedded help feature without any icons or indicators appearing on the display. This permits users to click/touch the component in a characteristic manner, which results in a help message being responsively presented. With this technique, however, users often are not aware of what elements have help associated with them and what elements don&#39;t. Worse, user interface elements and selection mechanisms are often functionally overloaded, so a user attempting to activate help for an element often inadvertently triggers other device functions or simply does nothing. Both situations are highly frustrating to end-users. These problems were evaluated, analyzed, and investigated during the course of developing the solutions of the disclosure. 
         [0013]    An embodiment of the disclosure provides a help mode for displaying a transparent layer over an existing display interface. The help mode can be triggered in a system/user defined way. After a mobile device enters the help mode by a user, a transparent layer can cover the display interface. The components shown on the display interface having associated help contents can be highlighted on the layer in a dynamic fashion for prompting the user to select a desired component (i.e. target component). Use of other visual indicia (in substitution or in addition to highlighting) is also contemplated. The location of each UI component can depend on the layout design of the display interface of a running and displayed application, and thus does not need a predetermined location. Basically, the display interface of each application will have a different layout of components, also called a different context. 
         [0014]    Once a component is selected by the user, the help contents will be displayed directly on the transparent layer, beside the target component, and over the original UI. After the user exits from the help mode, the transparent layer withdraws and the user is back to the original UI. As disclosed in the present invention to dynamically highlight the components with help contents associated according to the context of an application, it provides a context-aware help feature on a mobile device. 
         [0015]    Thus, the present disclosure provides a help mode. As the help contents are directly shown beside the component selected by a user, the user needs not to leave the current application/tab and traverse through help document to find specific topics. No context switch is needed for the help contents. Thus, an intuitive and efficient mechanism is accomplished for help features according to the present invention. Next, the help mode according to the present invention does not take up any space on the original UI. A developer has no effort of designing where and how to put the help icons and help content on the layout, as these are placed on the transparent layer by default. Accordingly, the help features according to the disclosure may maintain a concise UI. Finally, as the components having help contents are highlighted on a transparent layer in a dynamic fashion, users don&#39;t have to use advanced operations such as touch, hold or hover etc. Thus, the solution according to the present invention provides an ease-of-use mechanism for help features. 
         [0016]    As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon. 
         [0017]    Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. 
         [0018]    A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. 
         [0019]    Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing. Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user&#39;s computer, partly on the user&#39;s computer, as a stand-alone software package, partly on the user&#39;s computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user&#39;s computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). 
         [0020]    Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. 
         [0021]    These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. 
         [0022]    These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks. 
         [0023]    The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. 
         [0024]      FIG. 1  is an exemplary diagram of a mobile device having a touch-sensitive screen according to one embodiment of the disclosure. In this exemplary embodiment, mobile device  100  is a portable electronic product, such as mobile phone, PDA (personal digital assistant), GPS (global position system) device, media player, etc., capable of executing application programs for providing at least one of the following services: Internet, multimedia, document editing or other applications. 
         [0025]    In  FIG. 1 , a mobile device  100  is illustrated for exemplary purpose rather than limitation so that those skilled in the art may understand an embodiment of the present invention. Mobile device  100  has a processor  110 , storage device  120 , display device  130 , communication and input/output device  140 , peripheral device  150 , miscellaneous device  160 , and the like. Derivate and variations of device  100  are also contemplated and to be considered within scope of the disclosure. 
         [0026]    In one embodiment, the processor  110  may be a general purpose processing unit or a special purpose processing unit for handling analog/digital signal or executing program codes for providing specific function, such as microprocessor  112 , digital signal handler  114 , and other chips  116 . 
         [0027]    The storage device  120  may includes random access memory (RAM)  122  and read-only memory (ROM)  124  for storing program codes or other data to be accessible to the handheld device  100 . The storage device  120  may have other storage unit  126  for accessing and/or storing additional data, such as card reader, memory card, external disk arrays. 
         [0028]    The display device  130  may have LCD monitor  132  for displaying to the user the interface or other information of the operating system or the result of the executed application program. The display device  130  may have an auxiliary display unit  134  for providing other indication or information to the user, such as an LED light or the likes. 
         [0029]    The communication and input/output device  140  may include a keyboard  142 , a wireless communication unit  144  and adaptor  146 . The keyboard  142  may be used as an input device for inputting instructions and/or data by the user, such as a digit pad, a QWERTY keypad, or other keyboard. In addition, the keyboard  142  may have other additional component, such as function keys, arrow keys, switches, radio buttons, knobs, joysticks, buttons or other elements for inputting data. The wireless communication unit  144  may be used to wirelessly transfer data, such as digital data transmission or voice data transmission to the base station by means of any kind of protocols, such as GSM, CDMA, SMS, MMS, WIFI, Bluetooth, IrDa (Infrared Data Association), etc. The adaptor  146  may provide a connection to external devices for transmitting data, such as IEEE 1394, USB or other adaptors 
         [0030]    The peripheral device  150  may have extra an expansion slot  152  for providing addition functions; a photography device  154  for picture or video capturing; and other auxiliary component  156 , such as a barcode scanner, RFID unit, etc. 
         [0031]    The miscellaneous device  160  may include other components, such as battery  162 , vibrating element  164 , amplifier  166 , microphone  168 , etc. 
         [0032]      FIGS. 2A to 2C  show different exemplary screen displays of a display interface on a mobile communication device in accordance with one embodiment of the present invention.  FIG. 2A  shows a layout on an original display interface of a ABC application  210  which is running on the mobile device  200  includes a plurality of components (i.e. UI components), such as a plurality of “is greater than” symbols (“&gt;”)  220  and a plurality of buttons  230 . 
         [0033]    When the user of the mobile device  200  is using the ABC application  210  and is wondering what the component “Favorites” button (the one with a star sign shown in a lower position of  FIG. 2A ) is for? The user can trigger the context-aware help feature on the mobile device and enter a help mode by using voice-over commands or any other mechanisms (e.g. clicking a specific key). After entering the help mode, a transparent layer  240  will be displayed over the display interface. 
         [0034]    As shown  FIG. 2B , the UI components with help contents associated (e.g. the plurality of rectangle boxes including question marks  250 ,  260  shown in  FIG. 2B ) will be dynamically highlighted on the transparent layer  240  to prompt the user to select a target component for usage explanation or further description. The location of each UI component depends on the layout design of the display interface of an application, and thus does not need a predetermined location. Basically, the display interface of each application will have a different layout of components, also called a different context. As the components with help contents associated are dynamically highlighted according to a layout design on a display interface of an application, the present invention provides a context-aware help feature on a mobile device. 
         [0035]    Referring now to  FIG. 2C , when the user selects a component such as the button  280  with a star sign shown in a lower position of  FIG. 2C , the help content  270  in associated with the component will be directly displayed on the transparent layer  240 , beside the target component, and over the original UI. The help content  270  on the transparent layer  240  may be implemented in a scrollable fashion in case the help contents extend more than one page. After the user exits from the help mode, the transparent layer withdraws and the user is back to the original UI. The program module of performing the help mode to provide a help feature will be described in detail with reference to  FIG. 3 . 
         [0036]    As mentioned above, the storage device  120  in the mobile device  100  may store the program codes to be executed by the processor  110  for providing the functions of the mobile device  100 . Thus, the program codes included in the program module of performing the help mode according to the preferred embodiment of the present invention will be stored in the storage device  120  to be executed by the mobile device  100 . 
         [0037]      FIG. 3  is a flowchart of a program module of performing the help mode in accordance with one embodiment of the disclosure. The flowchart  300  begins in step  310 , where a user determines whether to trigger a help mode. In step  320 , when the help mode is triggered, the program module collects components currently shown on an original display interface (or called original UI) of a running application and identifications (IDs) representing the components. For example, this step can be performed by using APIs provided by a window manager of UNIX to collect the components currently shown on a display interface of a running application and identifications (IDs) representing the components. In next step  330 , the program module checks a lookup table which is stored in advance to determine whether there are identifications (IDs) of components with help contents associated. The lookup table is stored into the storage device  120  in advance, and basically comprises identifications of components and the messages of whether there are help contents associated to the components. The associated help contents are also stored into the storage device  120 . In other embodiments, the associated help contents may be stored in external websites, and retrieve them from the website depending on requirement. 
         [0038]    In an embodiment according to the present invention, the component herein means an element shown in the layout on the display interface or user interface (UI). The component is also called a “Widget” in the field of programming of graphic user interface (GUI). In fact, the present invention can be applied to any objects with a unique identification, for example, any words, terms, sentences or paragraphs shown in a webpage, which require further explanations. 
         [0039]    Next, a transparent layer will be displayed over the original display interface, and all the UI components with help contents associated will be dynamically highlighted on the transparent layer  240  to prompt the user to select a target component for usage explanation or further description (step  340 ). The technique of displaying (or creating) a transparent layer or a Widget is widely supported on various platforms. In general, it&#39;s done by setting the value of the component&#39;s transparency (more exactly, “alpha” value). For example, the setting of:
       innerPaint.setARGB (225, 75, 75, 75) for Android with an alpha value (225 is the alpha value), or [topHoverView setAlpha:0.2]
 
for iPhone with an alpha value. The detailed descriptions can be obtained from the following URL addresses:
       
 
         [0041]    1. http://blog.pocketjourney.com/2008/03/15/tutorial-1-transparent-panel-linear-layout-on-mapview-google-map/ 2. http://stackoverflow.com/questions/1409285/iphone-sdk-non-transparent-subviews-in-transparent-view 
         [0042]    Besides, for web-pages design, JavaScript™ library also provides a feature of setting the value of the component&#39;s transparency, such as:
       filter:alpha(opacity=80).       
 
         [0044]    Once a component is selected by the user, the help contents will be displayed directly on the transparent layer, beside the target component, and over the original UI (step  360 ). As mentioned above, the program module of performing the help mode may trigger the context-aware help feature on the mobile device and enter a help mode by using voice-over commands or any other mechanisms (e.g. clicking a specific key). Similarly, the program module may exit from the help mode by using voice-over commands or any other mechanisms (e.g. clicking another specific key, or re-clicking the specific key, even double-clicking the specific etc.) 
         [0045]    The flowchart and block diagrams in the  FIGS. 1-3  illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.