This disclosure relates generally to portable computing systems, and in particular to improved input devices and methods for portable computing systems.
While there have been major improvements made to portable computing devices, the size of the physical or virtual keyboard remains an issue. For example, virtual keyboards displayed on touch-screens of portable computing devices are small and difficult to interact with. Moreover, the size of physical keyboards for portable computing devices, like laptops, are limited by the size of the portable computing devices themselves. For example, a laptop computer keyboard cannot be any larger than the laptop computer's housing, which is oftentimes small. Also, some users of touch-screen portable computing devices use protective cases that include a physical keyboard that is the same or smaller than the size of the case. Due to the space constraints described above, these smaller keyboards typically include fewer keys. As such, it is desirable to provide an I/O device and input method, for portable computing devices that addresses the shortcomings of conventional keyboards and their associated input methods.
Accordingly, there is a need for an improved keyboard and input method for portable computing devices that introduces new multi-functional keys to replace less frequently used keys found on conventional full-size keyboards. In some embodiments, the improved keyboard is a physical keyboard that includes sensors, such as touch sensors, contact intensity sensors, and/or microphones. Such methods and systems optionally complement or replace conventional methods and systems for receiving key inputs. The methods and systems in accordance with embodiments described herein not only require fewer keys, but also reduce the cognitive burden on a user and produce a more efficient human-machine interface. For battery-operated devices, a more efficient input mechanism also requires less computing resources, thereby increasing the battery life of the device.
The above deficiencies and other problems associated with user inputs for portable multifunction devices with touch-sensitive surfaces are reduced or eliminated by the disclosed devices. In some embodiments, the portable multifunction device is, e.g., a notebook computer, tablet computer, or handheld device. In some embodiments, the portable multifunction device is a personal electronic device (e.g., a wearable electronic device, such as a watch). In some embodiments, the device has a touchpad. In some embodiments, the device has a touch-sensitive display (also known as a “touch screen” or “touch-screen display”). In some embodiments, the device has one or more processors, memory and one or more modules, programs or sets of instructions stored in the memory for performing multiple functions including generating one or more graphical user interfaces (GUIs). In some embodiments, the user interacts with the GUI primarily through stylus and/or finger contacts and gestures on the touch-sensitive surface. In some embodiments, the functions optionally include image editing, drawing, presenting, word processing, spreadsheet making, game playing, telephoning, video conferencing, e-mailing, instant messaging, workout support, digital photographing, digital videoing, web browsing, digital music playing, note taking, and/or digital video playing. Executable instructions for performing these functions are, optionally, included in a non-transitory computer readable storage medium or other computer program product configured for execution by one or more processors.
In accordance with some embodiments, a method of punctuation character entry is performed at a portable multifunction device comprising one or more processors, memory, and a touch-sensitive display. The method includes: providing a key on which is depicted at least one pair of open and close punctuation characters; displaying editable content on the display; detecting a first input selecting the key; and in response to detecting the first input selecting the key, determining whether to insert an open or a close punctuation character. In accordance with a determination to insert an open punctuation character, the method includes displaying in the editable content the open punctuation character of the at least one pair of open and close punctuation characters, displaying an insertion marker after the open punctuation character, and displaying a close punctuation character adjacent the insertion marker opposite to the open punctuation character. In accordance with a determination to insert the close punctuation character, the method includes displaying the close punctuation character in the editable content on the display.
In accordance with some embodiments, a portable multifunction device is provided that includes a touch-sensitive display unit configured to display editable content and to detect contacts; and a processing unit coupled with the touch-sensitive display unit. The processing unit is configured to: provide a key on which is depicted at least one pair of open and close punctuation characters; display editable content on the touch-sensitive display unit; detect a first input selecting the key; and in response to detecting the first input selecting the key, determine whether to insert an open or a close punctuation character. The processing unit is further configured to, in accordance with a determination to insert an open punctuation character, display in the editable content the open punctuation character of the at least one pair of open and close punctuation characters, display an insertion marker after the open punctuation character, and display a close punctuation character adjacent the insertion marker opposite to the open punctuation character. The processing unit is further configured to, in accordance with a determination to insert the close punctuation character, display the close punctuation character in the editable content on the display.
In accordance with some embodiments, a method of character entry is performed at a portable multifunction device comprising one or more processors, memory, a touch screen display, and a physical keyboard removably coupled to the portable multifunction device. The method includes: detecting an input on a key of the physical keyboard; determining if the input is of a first type or a second type distinct from the first type; upon determining that the input is of the first type, displaying a first set of characters associated with the key for selection; and upon determining that the input is of the second type, displaying a second set of characters associated with the key for selection.
In accordance with some embodiments, a portable multifunction device is provided that includes a touch screen display unit configured to receive touch inputs and display user interfaces; a physical keyboard unit removably coupled to the portable multifunction device; and a processing unit coupled with the touch screen display and the physical keyboard unit. The processing unit is configured to: detect an input on a key of the physical keyboard unit; determine if the input is of a first type or a second type distinct from the first type; upon determining that the input is of the first type, enable display of a first set of characters associated with the key for selection; and upon determining that the input is of the second type, enable display of a second set of characters associated with the key for selection.
In accordance with some embodiments, a method for processing a currency entry is performed at a portable multifunction device comprising one or more processors, memory, a display, and a physical keyboard removably coupled to the portable multifunction device. The physical keyboard contains at least one sensor for detecting contact intensities of inputs on keys of the physical keyboard. The method includes: detecting an input on a dedicated currency key of the physical keyboard; in response to receiving the input, determining if the input is of a first type or a different second type; upon determining that the input is of the first type, inserting a currency symbol based on a location of the portable multifunction device; and upon determining that the input is of the second type, displaying a set of different currency characters on the display for selection, wherein upon a selection of a currency character in the set of different currency characters, a numerical value associated with a first currency displayed on the display is converted from the first currency to a second currency corresponding to the selected currency character.
In accordance with some embodiments, a portable multifunction device for processing a currency entry is provided that includes a display unit configured to display user interfaces; a physical keyboard unit removably coupled to the portable multifunction device, where the physical keyboard unit contains at least one sensor unit for detecting contact intensities of inputs on keys of the physical keyboard unit; and a processing unit coupled with the display unit, and the physical keyboard unit. The processing unit is configured to: detect an input on a dedicated currency key of the physical keyboard unit; in response to receiving the input, determine if the input is of a first type or a different second type; upon determining that the input is of the first type, insert a currency symbol based on a location of the portable multifunction device; and upon determining that the input is of the second type, enable display of a set of different currency characters on the display for selection, where upon a selection of a currency character in the set of different currency characters, a numerical value associated with a first currency displayed on the display is converted from the first currency to a second currency corresponding to the selected currency character.
In accordance with some embodiments, a method for processing contact details entry is performed at a portable multifunction device comprising one or more processors, memory, a display, and a physical keyboard removably coupled to the portable multifunction device. The method includes: displaying at least a portion of text on the display; detecting an input on a dedicated contacts key of the physical keyboard; in response to detecting the input, automatically suggesting one or more contact details based on the portion of text; receiving a selection of a contact detail of the one or more contact details; and displaying the contact detail on the display.
In accordance with some embodiments, a portable multifunction device for processing contact details entry is provided that includes a display unit configured to display user interfaces; a physical keyboard unit removably coupled to the portable multifunction device; and a processing unit coupled with the display unit, and the physical keyboard unit. The processing unit is configured to: enable display of at least a portion of text on the display unit; detect an input on a dedicated contacts key of the physical keyboard unit; in response to detecting the input, automatically suggest one or more contact details based on the portion of text; receive a selection of a contact detail of the one or more contact details; and enable display of the contact detail on the display unit.
In accordance with some embodiments, a method for switching between active windows is performed at a portable multifunction device comprising one or more processors, memory, a display, and a physical keyboard removably coupled to the portable multifunction device. The physical keyboard contains at least one sensor for detecting contact intensities of inputs on keys of the physical keyboard. The method includes: displaying a user interface for an open application on the display; detecting an input on a dedicated home key of the physical keyboard; in response to detecting the input, determining whether the input is of a first type or a second type; in accordance with a determination that the input is the first type, displaying a home screen on the display; and in accordance with a determination that the input is the second type, displaying a navigable list of concurrently open applications including the open application on the portable multifunction device.
In accordance with some embodiments, a portable multifunction device for processing contact details entry is provided that includes a display unit configured to display user interfaces; a physical keyboard unit removably coupled to the portable multifunction device; and a processing unit coupled with the display unit, and the physical keyboard unit. The processing unit is configured to: enable display of at least a portion of text on the display unit; detect an input on a dedicated contacts key of the physical keyboard unit; in response to detecting the input, automatically suggest one or more contact details based on the portion of text; receive a selection of a contact detail of the one or more contact details; and enable display of the contact detail on the display unit.
In accordance with some embodiments, a method for selecting content is performed at a portable multifunction device comprising one or more processors, memory, a display, and a physical keyboard removably coupled to the portable multifunction device. The method includes: displaying content of an electronic document on the display; displaying a cursor within the electronic document; detecting an input on a dedicated select key of the physical keyboard; and in response to detecting the input: selecting a portion of the content in the document closest to the cursor; and displaying the portion of the content as selected content on the display.
In accordance with some embodiments, a portable multifunction device for selecting content is provided that includes a display unit configured to display user interfaces; a physical keyboard unit removably coupled to the portable multifunction device; and a processing unit coupled with the display unit and the physical keyboard unit. The processing unit is configured to: enable display of content of an electronic document on the display unit; enable display of a cursor within the electronic document; detect an input on a dedicated select key of the physical keyboard unit; and in response to detecting the input: select a portion of the content in the document closest to the cursor; and enable display of the portion of the content as selected content on the display unit.
In accordance with some embodiments, a method of tabbing is performed at a portable multifunction device comprising one or more processors, memory, a display, and a physical keyboard removably coupled to the portable multifunction device. The method includes: detecting an input on a dedicated tab key of the physical keyboard; in response to detecting the input, determining whether the portable multifunction device is in an editing mode to edit content; in accordance with a determination that the portable multifunction device is not in an editing mode: identifying an active window of the portable multifunction device and an active pane in the active window; and switching to a pane of the active window different from the active pane; and in accordance with a determination that the portable multifunction device is in an editing mode, displaying a list of suggested words for selection to be inserted into the content.
In accordance with some embodiments, a portable multifunction device for tabbing is provided that includes a display unit configured to display user interfaces; a physical keyboard unit removably coupled to the portable multifunction device; and a processing unit coupled with the display unit and the physical keyboard unit. The processing unit is configured to: detect an input on a dedicated tab key of the physical keyboard unit; in response to detecting the input, determine whether the portable multifunction device is in an editing mode to edit content; in accordance with a determination that the portable multifunction device is not in an editing mode: identify an active window of the portable multifunction device and an active pane in the active window; and switch to a pane of the active window different from the active pane; and in accordance with a determination that the portable multifunction device is in an editing mode, enable display of a list of suggested words for selection to be inserted into the content.
In accordance with some embodiments, a method for inserting or sharing content is performed at a portable multifunction device comprising one or more processors, memory, a display, and a physical keyboard removably coupled to the portable multifunction device. The method includes: displaying content on the display; detecting an input on a dedicated share key of the physical keyboard; in response to detecting the input, determining whether the content is editable; in accordance with a determination that the content is editable, displaying an insert menu through which a user can insert content into the content; and in accordance with a determination that the content is not editable, displaying a share menu through which a user can share a portion of the content.
In accordance with some embodiments, a portable multifunction device for inserting or sharing content is provided that includes a display unit configured to display user interfaces; a physical keyboard unit removably coupled to the portable multifunction device; and a processing unit coupled with the display unit and the physical keyboard unit. The processing unit is configured to: enable display of content on the display unit; detect an input on a dedicated share key of the physical keyboard unit; in response to detecting the input, determine whether the content is editable; in accordance with a determination that the content is editable, enable display of an insert menu through which a user can insert content into the content; and in accordance with a determination that the content is not editable, enable display of a share menu through which a user can share a portion of the content.
In accordance with some embodiments, a method for providing a notification to a user is performed at a portable multifunction device comprising one or more processors, memory, a display, and a physical keyboard removably coupled to the portable multifunction device. The physical keyboard contains at least one sensor for detecting contact intensities of inputs on keys of the physical keyboard. The method includes: detecting an input on a dedicated notification key of the physical keyboard; determining if the input is of a first type or a different second type; upon determining that the input is of the first type: determining whether a new notification is available; upon determining that the new notification is available, activating an application associated with the new notification to view the notification; upon determining that no new notification is available, displaying a notification center; and upon determining that the input is of the second type: displaying the notification center on the display; and ceasing to display the notification center upon a release of the notification key.
In accordance with some embodiments, a portable multifunction device for providing a notification to a user is provided that includes a display unit configured to display user interfaces; a physical keyboard unit removably coupled to the portable multifunction device, wherein the physical keyboard unit contains at least one sensor for detecting contact intensities of inputs on keys of the physical keyboard unit; and a processing unit coupled with the display unit and the physical keyboard unit. The processing unit is configured to: detect an input on a dedicated notification key of the physical keyboard unit; determine if the input is of a first type or a different second type; upon determining that the input is of the first type: determine whether a new notification is available; upon determining that the new notification is available, activate an application associated with the new notification to view the new notification; upon determining that no new notification is available, enable display of a notification center; and upon determining that the input is of the second type: enable display of the notification center on the display unit; and cease to display the notification center upon a release of the notification key.
In accordance with some embodiments, a detachable keyboard with one or more touch-sensitive input strips, comprising: a housing having top, bottom, left, and right sides; a plurality of physical keys arranged in a key area at least partially within the housing; at least one connector disposed at the top side of the housing to connect the detachable keyboard to a touch screen device; and at least one elongate touch-sensitive strip disposed at the bottom, left, or right side of the housing, where a length of the touch-sensitive strip extends across a majority of its respective side of the housing.
In accordance with some embodiments, a detachable keyboard with one or more touch sensitive strips is provided that includes a housing unit having top, bottom, left, and right sides; a plurality of physical keys arranged in a key area unit at least partially within the housing unit; at least one connector unit disposed at the top side of the housing to connect the detachable keyboard to a touch screen device; and at least one elongate touch sensitive strip unit disposed at the bottom, left, or right side of the housing, where a length of the touch sensitive strip unit extends across a majority of its respective side of the housing unit.
In accordance with some embodiments, a method for scrolling through content is performed at a portable multifunction device comprising one or more processors, memory, a touch screen display, and a physical keyboard removably coupled to the portable multifunction device. The method includes: displaying content on the touch screen display; detecting an input of an arrow key located on the physical keyboard, wherein one or more contact intensity sensors are coupled to the arrow key for detecting contact intensities of inputs on the arrow key; in response to detecting the input, determining whether the input is of a first type or a second type different from the first type; upon determining that the input is of the first type: scrolling the content on the display at a first speed faster than a normal scrolling speed; detecting a continued contact with the arrow key; and in response to detecting the continued contact with the arrow key, maintaining the first speed of the scrolling faster than the normal scrolling speed; and upon determining that the input is of the second type: determining a contact intensity of the input; and scrolling the content on the display at a second speed determined based on the contact intensity of the input.
In accordance with some embodiments, a portable multifunction device for scrolling through content is provided that includes a touch screen display unit configured to display user interfaces and to detect touch inputs; a physical keyboard unit removably coupled to the portable multifunction device; and a processing unit coupled with the touch screen display unit and the physical keyboard unit. The processing unit is configured to: enable display of content on the touch screen display unit; detect an input of an arrow key located on the physical keyboard unit, wherein one or more contact intensity sensors are coupled to the arrow key for detecting contact intensities of inputs on the arrow key; in response to detecting the input, determine whether the input is of a first type or a second type different from the first type; upon determining that the input is of the first type: scroll the content on the touch screen display unit at a first speed faster than a normal scrolling speed; detect a continued contact with the arrow key; and in response to detecting the continued contact with the arrow key, maintain the first speed of the scrolling faster than the normal scrolling speed; and upon determining that the input is of the second type: determine a contact intensity of the input; and scroll the content on the touch screen display unit at a second speed determined based on the contact intensity of the input.
In accordance with some embodiments, a method of inchworm scrolling is performed at a portable multifunction device comprising one or more processors, memory, a display, and a physical keyboard removably coupled to the portable multifunction device. The method includes: displaying content of an electronic document on the display, the content includes a first portion displayed at a first location and a second portion displayed at a second location adjacent to the first location; detecting an input on an arrow key located on the keyboard; in response to detecting the input: moving the first portion to a third location in a direction associated with the arrow key, while maintaining the second portion stationary at the second location; and subsequent to moving the first portion, moving the second portion to a fourth location in a direction associated with the arrow key, while maintaining the first portion stationary at the third location.
In accordance with some embodiments, a portable multifunction device for inchworm scrolling is provided that includes a display unit configured to display user interfaces; a physical keyboard unit removably coupled to the portable multifunction device; and a processing unit coupled with the display unit and the physical keyboard unit. The processing unit is configured to: enable display of content of an electronic document on the display unit, the content includes a first portion displayed at a first location and a second portion displayed at a second location adjacent to the first location; detect an input on an arrow key located on the keyboard; in response to detecting the input: move the first portion to a third location in a direction associated with the arrow key, while maintaining the second portion stationary at the second location; and subsequent to moving the first portion, move the second portion to a fourth location in a direction associated with the arrow key, while maintaining the first portion stationary at the third location.
In accordance with some embodiments, a method for switching between virtual keyboards is performed at an electronic device including one or more processors, memory, and a touch-sensitive display. The method includes: displaying a first virtual keyboard of a first size on the display; in response to detecting a pre-defined gesture on the display, concurrently displaying multiple keyboards, including the first keyboard reduced to a second size smaller than the first size; detecting a selection of one of the multiple keyboards; ceasing to display the multiple keyboards; and displaying the selected one of the multiple keyboards on the display at the first size.
In accordance with some embodiments, an electronic device is provided that includes a touch-sensitive display unit configured to receive user inputs and display user interfaces and a processing unit coupled to the touch-sensitive display unit. The processing unit is configured to: enable display of a first virtual keyboard of a first size on the display unit; in response to detecting a pre-defined gesture on the display unit, concurrently enable display of multiple keyboards, including the first keyboard reduced to a second size smaller than the first size; detect a selection of one of the multiple keyboards; cease to display the multiple keyboards; and enable display of the selected one of the multiple keyboards on the display unit at the first size.
In accordance with some embodiments, a method for switching between lower and upper case characters is performed at an electronic device including one or more processors, memory, and a touch-sensitive display. The method includes: displaying on the display a virtual keyboard without a shift key, wherein keys on the keyboard have a first appearance; detecting a contact at a location on the virtual keyboard followed by a movement of the contact in a direction; and in response to detecting the contact at the location on the virtual keyboard followed by the movement of the contact in the direction, changing the appearance of the keys on the keyboard to a second appearance different from the first appearance.
In accordance with some embodiments, an electronic device is provided that includes a touch-sensitive display unit configured to receive user inputs and display user interfaces and a processing unit coupled to the touch-sensitive display unit. The processing unit is configured to: enable display of on the display unit a virtual keyboard without a shift key, wherein keys on the keyboard have a first appearance; detect a contact at a location on the virtual keyboard followed by a movement of the contact in a direction; and in response to detecting the contact at the location on the virtual keyboard followed by the movement of the contact in the direction, change the appearance of the keys on the keyboard to a second appearance different from the first appearance.
In accordance with some embodiments, a method for communicating between users is performed at an electronic device including one or more processors, memory, and a touch-sensitive display. The method includes: displaying a user interface of an instant messenger application on the display; analyzing an instant message displayed in the user interface of the instant messenger application to identify a user's intention to perform an action associated with an application different from the instant messenger application; upon determining an intention to perform the action, displaying an affordance to perform the action in the user interface of the instant messenger application; while displaying the affordance in the user interface of the instant messenger application, detecting a user input on the affordance in the user interface of the instant messenger application; and in response to detecting the user input, facilitating the action.
In accordance with some embodiments, an electronic device is provided that includes a touch-sensitive display unit configured to receive user inputs and display user interfaces and a processing unit coupled to the touch-sensitive display unit. The processing unit is configured to: enable display of a user interface of an instant messenger application on the display unit; analyze an instant message displayed in the user interface of the instant messenger application to identify a user's intention to perform an action associated with an application different from the instant messenger application; upon determining an intention to perform the action, enable display of an affordance to perform the action in the user interface of the instant messenger application; while enabling display of the affordance in the user interface of the instant messenger application, detect a user input on the affordance in the user interface of the instant messenger application; and in response to detecting the user input, facilitate the action.
In accordance with some embodiments, a method for mirrored control between devices is performed at a first electronic device including one or more processors, memory, and a touch-sensitive display. The method includes: sending an item from a first instant messenger application running on the first electronic device to a second instant messenger application running on a second electronic device; displaying the item in the first instant messenger application, wherein the item is concurrently displayed in the second instant messenger application; receiving information corresponding to an interaction with the item; and in response to receiving information corresponding to the interaction, updating the item on the first electronic device, wherein the update to the item is mirrored on the second electronic device.
In accordance with some embodiments, a first electronic device is provided that includes a touch-sensitive display unit configured to receive user inputs and display user interfaces and a processing unit coupled to the touch-sensitive display unit. The processing unit is configured to: send an item from a first instant messenger application running on the first electronic device to a second instant messenger application running on a second electronic device; enable display of the item in the first instant messenger application, wherein the item is concurrently displayed in the second instant messenger application; receive information corresponding to an interaction with the item; and in response to receiving information corresponding to the interaction, update the item on the first electronic device, wherein the update to the item is mirrored on the second electronic device.
In accordance with some embodiments, an electronic device includes a touch-sensitive display, optionally one or more sensors to detect intensities of contacts with the touch-sensitive display, one or more processors, memory, and one or more programs; the one or more programs are stored in the memory and configured to be executed by the one or more processors and the one or more programs include instructions for performing or causing performance of the operations of any of the methods described herein. In accordance with some embodiments, a computer readable storage medium has stored therein instructions which when executed by an electronic device with a touch-sensitive display, and optionally one or more sensors to detect intensities of contacts with the touch-sensitive display, cause the device to perform or cause performance of the operations of any of the methods described herein. In accordance with some embodiments, a graphical user interface on an electronic device with a touch-sensitive display, optionally one or more sensors to detect intensities of contacts with the touch-sensitive display, a memory, and one or more processors to execute one or more programs stored in the memory includes one or more of the elements displayed in any of the methods described herein, which are updated in response to inputs, as described in any of the methods described herein. In accordance with some embodiments, an electronic device includes: a touch-sensitive display, and optionally one or more sensors to detect intensities of contacts with the touch-sensitive display; and means for performing or causing performance of the operations of any of the methods described herein. In accordance with some embodiments, an information processing apparatus, for use in an electronic device with a touch-sensitive display, and optionally one or more sensors to detect intensities of contacts with the touch-sensitive display, includes means for performing or causing performance of the operations of any of the methods described herein.
Thus, portable multifunction devices with touch-sensitive displays are provided with faster, more efficient input devices, methods and interfaces, thereby increasing the effectiveness, efficiency, and user satisfaction with such devices. Such methods and interfaces may complement or replace conventional input methods and systems.
For a better understanding of the various described embodiments, reference should be made to the Description of Embodiments below, in conjunction with the following drawings in which like reference numerals refer to corresponding parts throughout the figures.
The following describes systems and methods that allow a user to more efficiently use smaller keyboards typically used with portable computing devices. For example, some embodiments describe how users can efficiently enter punctuation characters in an electronic document using a keyboard with fewer keys than is typical on a full-sized keyboard. While the systems and methods described herein provide fewer keys on either a virtual or a physical keyboard, the fewer keys still allow a user to enter characters or perform actions traditionally available only when using full-size keyboards. Further, some of the keys have multiple functions, where in some embodiments, the system or keyboard automatically and without human intervention determines the function of the key based on the context. The improved keyboard also reduces the number of steps that a user must perform to locate and enter a character, thereby increasing efficiency and ease of use.
Reference will now be made in detail to embodiments, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one of ordinary skill in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.
It will also be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first contact could be termed a second contact, and, similarly, a second contact could be termed a first contact, without departing from the scope of the present invention. The first contact and the second contact are both contacts, but they are not the same contact.
The terminology used in the description of the invention herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used in the description of the invention and the appended claims, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
As used herein, the term “if” may be construed to mean “when” or “upon” or “in response to determining” or “in response to detecting,” depending on the context. Similarly, the phrase “if it is determined” or “if [a stated condition or event] is detected” may be construed to mean “upon determining” or “in response to determining” or “upon detecting [the stated condition or event]” or “in response to detecting [the stated condition or event],” depending on the context.
Embodiments of computing devices, user interfaces for such devices, and associated processes for using such devices are described. In some embodiments, the computing device is a portable communications device such as a mobile telephone that also contains other functions, such as PDA and/or music player functions. Exemplary embodiments of portable multifunction devices include, without limitation, the IPHONE, IPAD, and IPOD TOUCH devices from Apple Computer, Inc. of Cupertino, Calif.
In the discussion that follows, a computing device that includes a touch-sensitive display is described. It should be understood, however, that the computing device may include one or more other physical user-interface devices, such as a separate display, physical keyboard, a mouse, and/or a joystick.
The device supports a variety of applications, such as one or more of the following: a drawing application, a presentation application, a word processing application, a website creation application, a disk authoring application, a spreadsheet application, a gaming application, a telephone application, a video-conferencing application, an e-mail application, an instant messaging application, a fitness application, a photo management application, a digital camera application, a digital video camera application, a web browsing application, a digital music player application, a digital video player application, and/or a home automation application.
The various applications that may be executed on the device may use at least one common physical user-interface device, such as the touch-sensitive surface. One or more functions of the touch-sensitive surface as well as corresponding information displayed on the device may be adjusted and/or varied from one application to the next and/or within a respective application. In this way, a common physical architecture (such as the touch-sensitive surface) of the device may support the variety of applications with user interfaces that are intuitive and transparent.
The user interfaces may include one or more soft keyboard embodiments. The soft keyboard embodiments may include standard (QWERTY) and/or non-standard configurations of symbols on the displayed icons of the keyboard, such as those described in U.S. patent application Ser. No. 11/459,606, “Keyboards For Portable Electronic Devices,” filed Jul. 24, 2006, and Ser. No. 11/459,615, “Touch Screen Keyboards For Portable Electronic Devices,” filed Jul. 24, 2006, the contents of which are hereby incorporated by reference in their entirety. The keyboard embodiments may include a reduced number of icons (or soft keys) relative to the number of keys in existing physical keyboards, such as that for a typewriter. This may make it easier for users to select one or more icons in the keyboard, and thus, one or more corresponding symbols. The keyboard embodiments may be adaptive. For example, displayed icons may be modified in accordance with user actions, such as selecting one or more icons and/or one or more corresponding symbols. One or more applications on the device may utilize common and/or different keyboard embodiments. Thus, the keyboard embodiment used may be tailored to at least some of the applications. In some embodiments, one or more keyboard embodiments may be tailored to a respective user. For example, one or more keyboard embodiments may be tailored to a respective user based on a word usage history (lexicography, slang, individual usage) of the respective user. Some of the keyboard embodiments may be adjusted to reduce a probability of a user error when selecting one or more icons, and thus one or more symbols, when using the soft keyboard embodiments.
Attention is now directed toward embodiments of portable devices with touch-sensitive displays.
As used in the specification and claims, the term “tactile output” refers to physical displacement of a device relative to a previous position of the device, physical displacement of a component (e.g., a touch-sensitive surface) of a device relative to another component (e.g., housing) of the device, or displacement of the component relative to a center of mass of the device that will be detected by a user with the user's sense of touch. For example, in situations where the device or the component of the device is in contact with a surface of a user that is sensitive to touch (e.g., a finger, palm, or other part of a user's hand), the tactile output generated by the physical displacement will be interpreted by the user as a tactile sensation corresponding to a perceived change in physical characteristics of the device or the component of the device. For example, movement of a touch-sensitive surface (e.g., a touch-sensitive display or trackpad) is, optionally, interpreted by the user as a “down click” or “up click” of a physical actuator button. In some cases, a user will feel a tactile sensation such as an “down click” or “up click” even when there is no movement of a physical actuator button associated with the touch-sensitive surface that is physically pressed (e.g., displaced) by the user's movements. As another example, movement of the touch-sensitive surface is, optionally, interpreted or sensed by the user as “roughness” of the touch-sensitive surface, even when there is no change in smoothness of the touch-sensitive surface. While such interpretations of touch by a user will be subject to the individualized sensory perceptions of the user, there are many sensory perceptions of touch that are common to a large majority of users. Thus, when a tactile output is described as corresponding to a particular sensory perception of a user (e.g., an “up click,” a “down click,” “roughness”), unless otherwise stated, the generated tactile output corresponds to physical displacement of the device or a component thereof that will generate the described sensory perception for a typical (or average) user.
It should be appreciated that device 100 is only one example of a portable multifunction device, and that device 100 optionally has more or fewer components than shown, optionally combines two or more components, or optionally has a different configuration or arrangement of the components. The various components shown in
Memory 102 optionally includes high-speed random access memory and optionally also includes non-volatile memory, such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state memory devices. Access to memory 102 by other components of device 100, such as CPU(s) 120 and the peripherals interface 118, is, optionally, controlled by memory controller 122.
Peripherals interface 118 can be used to couple input and output peripherals of the device to CPU(s) 120 and memory 102. The one or more processors 120 run or execute various software programs and/or sets of instructions stored in memory 102 to perform various functions for device 100 and to process data.
In some embodiments, peripherals interface 118, CPU(s) 120, and memory controller 122 are, optionally, implemented on a single chip, such as chip 104. In some other embodiments, they are, optionally, implemented on separate chips.
RF (radio frequency) circuitry 108 receives and sends RF signals, also called electromagnetic signals. RF circuitry 108 converts electrical signals to/from electromagnetic signals and communicates with communications networks and other communications devices via the electromagnetic signals. RF circuitry 108 optionally includes well-known circuitry for performing these functions, including but not limited to an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, a subscriber identity module (SIM) card, memory, and so forth. RF circuitry 108 optionally communicates with networks, such as the Internet, also referred to as the World Wide Web (WWW), an intranet and/or a wireless network, such as a cellular telephone network, a wireless local area network (LAN) and/or a metropolitan area network (MAN), and other devices by wireless communication. The wireless communication optionally uses any of a plurality of communications standards, protocols and technologies, including but not limited to Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), high-speed downlink packet access (HSDPA), high-speed uplink packet access (HSUPA), Evolution, Data-Only (EV-DO), HSPA, HSPA+, Dual-Cell HSPA (DC-HSPDA), long term evolution (LTE), near field communication (NFC), wideband code division multiple access (W-CDMA), code division multiple access (CDMA), time division multiple access (TDMA), Bluetooth, Wireless Fidelity (Wi-Fi) (e.g., IEEE 802.11a, IEEE 802.11ac, IEEE 802.11ax, IEEE 802.11b, IEEE 802.11g and/or IEEE 802.1 in), voice over Internet Protocol (VoIP), Wi-MAX, a protocol for e-mail (e.g., Internet message access protocol (IMAP) and/or post office protocol (POP)), instant messaging (e.g., extensible messaging and presence protocol (XMPP), Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions (SIMPLE), Instant Messaging and Presence Service (IMPS)), and/or Short Message Service (SMS), or any other suitable communication protocol, including communication protocols not yet developed as of the filing date of this document.
Audio circuitry 110, speaker 111, and microphone 113 provide an audio interface between a user and device 100. Audio circuitry 110 receives audio data from peripherals interface 118, converts the audio data to an electrical signal, and transmits the electrical signal to speaker 111. Speaker 111 converts the electrical signal to human-audible sound waves. Audio circuitry 110 also receives electrical signals converted by microphone 113 from sound waves. Audio circuitry 110 converts the electrical signal to audio data and transmits the audio data to peripherals interface 118 for processing. Audio data is, optionally, retrieved from and/or transmitted to memory 102 and/or RF circuitry 108 by peripherals interface 118. In some embodiments, audio circuitry 110 also includes a headset jack (e.g., 212,
I/O subsystem 106 couples input/output peripherals on device 100, such as touch-sensitive display system 112 and other input or control devices 116, with peripherals interface 118. I/O subsystem 106 optionally includes display controller 156, optical sensor controller 158, intensity sensor controller 159, haptic feedback controller 161, and one or more input controllers 160 for other input or control devices. The one or more input controllers 160 receive/send electrical signals from/to other input or control devices 116. The other input or control devices 116 optionally include physical buttons (e.g., push buttons, rocker buttons, etc.), dials, slider switches, joysticks, click wheels, and so forth. In some alternate embodiments, input controller(s) 160 are, optionally, coupled with any (or none) of the following: a keyboard, infrared port, USB port, stylus, and/or a pointer device such as a mouse. The one or more buttons (e.g., 208,
Touch-sensitive display system 112 provides an input interface and an output interface between the device and a user. Display controller 156 receives and/or sends electrical signals from/to touch-sensitive display system 112. Touch-sensitive display system 112 displays visual output to the user. The visual output optionally includes graphics, text, icons, video, and any combination thereof (collectively termed “graphics”). In some embodiments, some or all of the visual output corresponds to user-interface objects.
Touch-sensitive display system 112 has a touch-sensitive surface, sensor or set of sensors that accepts input from the user based on haptic and/or tactile contact. Touch-sensitive display system 112 and display controller 156 (along with any associated modules and/or sets of instructions in memory 102) detect contact (and any movement or breaking of the contact) on touch-sensitive display system 112 and converts the detected contact into interaction with user-interface objects (e.g., one or more soft keys, icons, web pages or images) that are displayed on touch-sensitive display system 112. In an exemplary embodiment, a point of contact between touch-sensitive display system 112 and the user corresponds to a finger of the user or a stylus.
Touch-sensitive display system 112 optionally uses LCD (liquid crystal display) technology, LPD (light emitting polymer display) technology, or LED (light emitting diode) technology, although other display technologies are used in other embodiments. Touch-sensitive display system 112 and display controller 156 optionally detect contact and any movement or breaking thereof using any of a plurality of touch sensing technologies now known or later developed, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with touch-sensitive display system 112. In an exemplary embodiment, projected mutual capacitance sensing technology is used, such as that found in the iPhone®, iPod Touch®, and iPad® from Apple Inc. of Cupertino, Calif.
Touch-sensitive display system 112 optionally has a video resolution in excess of 100 dpi. In some embodiments, the touch screen video resolution is in excess of 400 dpi (e.g., 500 dpi, 800 dpi, or greater). The user optionally makes contact with touch-sensitive display system 112 using any suitable object or appendage, such as a stylus, a finger, and so forth. In some embodiments, the user interface is designed to work with finger-based contacts and gestures, which can be less precise than stylus-based input due to the larger area of contact of a finger on the touch screen. In some embodiments, the device translates the rough finger-based input into a precise pointer/cursor position or command for performing the actions desired by the user.
In some embodiments, in addition to the touch screen, device 100 optionally includes a touchpad (not shown) for activating or deactivating particular functions. In some embodiments, the touchpad is a touch-sensitive area of the device that, unlike the touch screen, does not display visual output. The touchpad is, optionally, a touch-sensitive surface that is separate from touch-sensitive display system 112 or an extension of the touch-sensitive surface formed by the touch screen.
Device 100 also includes power system 162 for powering the various components. Power system 162 optionally includes a power management system, one or more power sources (e.g., battery, alternating current (AC)), a recharging system, a power failure detection circuit, a power converter or inverter, a power status indicator (e.g., a light-emitting diode (LED)) and any other components associated with the generation, management and distribution of power in portable devices.
Device 100 optionally also includes one or more optical sensors 164.
Device 100 optionally also includes one or more contact intensity sensors 165.
Device 100 optionally also includes one or more proximity sensors 166.
Device 100 optionally also includes one or more tactile output generators 167.
Device 100 optionally also includes one or more accelerometers 168.
In some embodiments, the software components stored in memory 102 include operating system 126, communication module (or set of instructions) 128, contact/motion module (or set of instructions) 130, graphics module (or set of instructions) 132, haptic feedback module (or set of instructions) 133, text input module (or set of instructions) 134, Global Positioning System (GPS) module (or set of instructions) 135, and applications (or sets of instructions) 136. Furthermore, in some embodiments, memory 102 stores device/global internal state 157, as shown in
Operating system 126 (e.g., iOS, Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks) includes various software components and/or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.) and facilitates communication between various hardware and software components.
Communication module 128 facilitates communication with other devices over one or more external ports 124 and also includes various software components for handling data received by RF circuitry 108 and/or external port 124. External port 124 (e.g., Universal Serial Bus (USB), FIREWIRE, etc.) is adapted for coupling directly to other devices or indirectly over a network (e.g., the Internet, wireless LAN, etc.). In some embodiments, the external port is a multi-pin (e.g., 30-pin) connector that is the same as, or similar to and/or compatible with the 30-pin connector used in some iPhone®, iPod Touch®, and iPad® devices from Apple Inc. of Cupertino, Calif. In some embodiments, the external port is a Lightning connector that is the same as, or similar to and/or compatible with the Lightning connector used in some iPhone®, iPod Touch®, and iPad® devices from Apple Inc. of Cupertino, Calif.
Contact/motion module 130 optionally detects contact with touch-sensitive display system 112 (in conjunction with display controller 156) and other touch-sensitive devices (e.g., a touchpad or physical click wheel). Contact/motion module 130 includes various software components for performing various operations related to detection of contact (e.g., by a finger or by a stylus), such as determining if contact has occurred (e.g., detecting a finger-down event), determining an intensity of the contact (e.g., the force or pressure of the contact or a substitute for the force or pressure of the contact), determining if there is movement of the contact and tracking the movement across the touch-sensitive surface (e.g., detecting one or more finger-dragging events), and determining if the contact has ceased (e.g., detecting a finger-up event or a break in contact). Contact/motion module 130 receives contact data from the touch-sensitive surface. Determining movement of the point of contact, which is represented by a series of contact data, optionally includes determining speed (magnitude), velocity (magnitude and direction), and/or an acceleration (a change in magnitude and/or direction) of the point of contact. These operations are, optionally, applied to single contacts (e.g., one finger contacts or stylus contacts) or to multiple simultaneous contacts (e.g., “multitouch”/multiple finger contacts). In some embodiments, contact/motion module 130 and display controller 156 detect contact on a touchpad.
Contact/motion module 130 optionally detects a gesture input by a user. Different gestures on the touch-sensitive surface have different contact patterns (e.g., different motions, timings, and/or intensities of detected contacts). Thus, a gesture is, optionally, detected by detecting a particular contact pattern. For example, detecting a finger tap gesture includes detecting a finger-down event followed by detecting a finger-up (lift off) event at the same position (or substantially the same position) as the finger-down event (e.g., at the position of an icon). As another example, detecting a finger swipe gesture on the touch-sensitive surface includes detecting a finger-down event followed by detecting one or more finger-dragging events, and subsequently followed by detecting a finger-up (lift off) event. Similarly, tap, swipe, drag, and other gestures are optionally detected for a stylus by detecting a particular contact pattern for the stylus.
Graphics module 132 includes various known software components for rendering and displaying graphics on touch-sensitive display system 112 or other display, including components for changing the visual impact (e.g., brightness, transparency, saturation, contrast or other visual property) of graphics that are displayed. As used herein, the term “graphics” includes any object that can be displayed to a user, including without limitation text, web pages, icons (such as user-interface objects including soft keys), digital images, videos, animations and the like.
In some embodiments, graphics module 132 stores data representing graphics to be used. Each graphic is, optionally, assigned a corresponding code. Graphics module 132 receives, from applications etc., one or more codes specifying graphics to be displayed along with, if necessary, coordinate data and other graphic property data, and then generates screen image data to output to display controller 156.
Haptic feedback module 133 includes various software components for generating instructions used by tactile output generator(s) 167 to produce tactile outputs at one or more locations on device 100 in response to user interactions with device 100.
Text input module 134, which is, optionally, a component of graphics module 132, provides soft keyboards for entering text in various applications (e.g., contacts 137, e-mail 140, IM 141, browser 147, and any other application that needs text input).
GPS module 135 determines the location of the device and provides this information for use in various applications (e.g., to telephone 138 for use in location-based dialing, to camera 143 as picture/video metadata, and to applications that provide location-based services such as weather widgets, local yellow page widgets, and map/navigation widgets).
Applications 136 optionally include the following modules (or sets of instructions), or a subset or superset thereof:
Examples of other applications 136 that are, optionally, stored in memory 102 include other word processing applications, other image editing applications, drawing applications, presentation applications, JAVA-enabled applications, encryption, digital rights management, voice recognition, and voice replication.
In conjunction with touch-sensitive display system 112, display controller 156, contact module 130, graphics module 132, and text input module 134, contacts module 137 includes executable instructions to manage an address book or contact list (e.g., stored in application internal state 192 of contacts module 137 in memory 102), including: adding name(s) to the address book; deleting name(s) from the address book; associating telephone number(s), e-mail address(es), physical address(es) or other information with a name; associating an image with a name; categorizing and sorting names; providing telephone numbers and/or e-mail addresses to initiate and/or facilitate communications by telephone 138, video conference 139, e-mail 140, or IM 141; and so forth.
In conjunction with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touch-sensitive display system 112, display controller 156, contact module 130, graphics module 132, and text input module 134, telephone module 138 includes executable instructions to enter a sequence of characters corresponding to a telephone number, access one or more telephone numbers in address book 137, modify a telephone number that has been entered, dial a respective telephone number, conduct a conversation and disconnect or hang up when the conversation is completed. As noted above, the wireless communication optionally uses any of a plurality of communications standards, protocols and technologies.
In conjunction with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touch-sensitive display system 112, display controller 156, optical sensor(s) 164, optical sensor controller 158, contact module 130, graphics module 132, text input module 134, contact list 137, and telephone module 138, videoconferencing module 139 includes executable instructions to initiate, conduct, and terminate a video conference between a user and one or more other participants in accordance with user instructions.
In conjunction with RF circuitry 108, touch-sensitive display system 112, display controller 156, contact module 130, graphics module 132, and text input module 134, e-mail client module 140 includes executable instructions to create, send, receive, and manage e-mail in response to user instructions. In conjunction with image management module 144, e-mail client module 140 makes it very easy to create and send e-mails with still or video images taken with camera module 143.
In conjunction with RF circuitry 108, touch-sensitive display system 112, display controller 156, contact module 130, graphics module 132, and text input module 134, the instant messaging module 141 includes executable instructions to enter a sequence of characters corresponding to an instant message, to modify previously entered characters, to transmit a respective instant message (for example, using a Short Message Service (SMS) or Multimedia Message Service (MMS) protocol for telephony-based instant messages or using XMPP, SIMPLE, Apple Push Notification Service (APNs) or IMPS for Internet-based instant messages), to receive instant messages and to view received instant messages. In some embodiments, transmitted and/or received instant messages optionally include graphics, photos, audio files, video files and/or other attachments as are supported in a MMS and/or an Enhanced Messaging Service (EMS). As used herein, “instant messaging” refers to both telephony-based messages (e.g., messages sent using SMS or MMS) and Internet-based messages (e.g., messages sent using XMPP, SIMPLE, APNs, or IMPS).
In conjunction with RF circuitry 108, touch-sensitive display system 112, display controller 156, contact module 130, graphics module 132, text input module 134, GPS module 135, map module 154, and music player module 146, workout support module 142 includes executable instructions to create workouts (e.g., with time, distance, and/or calorie burning goals); communicate with workout sensors (in sports devices and smart watches); receive workout sensor data; calibrate sensors used to monitor a workout; select and play music for a workout; and display, store and transmit workout data.
In conjunction with touch-sensitive display system 112, display controller 156, optical sensor(s) 164, optical sensor controller 158, contact module 130, graphics module 132, and image management module 144, camera module 143 includes executable instructions to capture still images or video (including a video stream) and store them into memory 102, modify characteristics of a still image or video, and/or delete a still image or video from memory 102.
In conjunction with touch-sensitive display system 112, display controller 156, contact module 130, graphics module 132, text input module 134, and camera module 143, image management module 144 includes executable instructions to arrange, modify (e.g., edit), or otherwise manipulate, label, delete, present (e.g., in a digital slide show or album), and store still and/or video images.
In conjunction with RF circuitry 108, touch-sensitive display system 112, display system controller 156, contact module 130, graphics module 132, and text input module 134, browser module 147 includes executable instructions to browse the Internet in accordance with user instructions, including searching, linking to, receiving, and displaying web pages or portions thereof, as well as attachments and other files linked to web pages.
In conjunction with RF circuitry 108, touch-sensitive display system 112, display system controller 156, contact module 130, graphics module 132, text input module 134, e-mail client module 140, and browser module 147, calendar module 148 includes executable instructions to create, display, modify, and store calendars and data associated with calendars (e.g., calendar entries, to do lists, etc.) in accordance with user instructions.
In conjunction with RF circuitry 108, touch-sensitive display system 112, display system controller 156, contact module 130, graphics module 132, text input module 134, and browser module 147, widget modules 149 are mini-applications that are, optionally, downloaded and used by a user (e.g., weather widget 149-1, stocks widget 149-2, calculator widget 149-3, alarm clock widget 149-4, and dictionary widget 149-5) or created by the user (e.g., user-created widget 149-6). In some embodiments, a widget includes an HTML (Hypertext Markup Language) file, a CSS (Cascading Style Sheets) file, and a JavaScript file. In some embodiments, a widget includes an XML (Extensible Markup Language) file and a JavaScript file (e.g., Yahoo! Widgets).
In conjunction with RF circuitry 108, touch-sensitive display system 112, display system controller 156, contact module 130, graphics module 132, text input module 134, and browser module 147, the widget creator module 150 includes executable instructions to create widgets (e.g., turning a user-specified portion of a web page into a widget).
In conjunction with touch-sensitive display system 112, display system controller 156, contact module 130, graphics module 132, and text input module 134, search module 151 includes executable instructions to search for text, music, sound, image, video, and/or other files in memory 102 that match one or more search criteria (e.g., one or more user-specified search terms) in accordance with user instructions.
In conjunction with touch-sensitive display system 112, display system controller 156, contact module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, and browser module 147, video and music player module 152 includes executable instructions that allow the user to download and play back recorded music and other sound files stored in one or more file formats, such as MP3 or AAC files, and executable instructions to display, present or otherwise play back videos (e.g., on touch-sensitive display system 112, or on an external display connected wirelessly or via external port 124). In some embodiments, device 100 optionally includes the functionality of an MP3 player, such as an iPod (trademark of Apple Inc.).
In conjunction with touch-sensitive display system 112, display controller 156, contact module 130, graphics module 132, and text input module 134, notes module 153 includes executable instructions to create and manage notes, to do lists, and the like in accordance with user instructions.
In conjunction with RF circuitry 108, touch-sensitive display system 112, display system controller 156, contact module 130, graphics module 132, text input module 134, GPS module 135, and browser module 147, map module 154 includes executable instructions to receive, display, modify, and store maps and data associated with maps (e.g., driving directions; data on stores and other points of interest at or near a particular location; and other location-based data) in accordance with user instructions.
In conjunction with touch-sensitive display system 112, display system controller 156, contact module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, text input module 134, e-mail client module 140, and browser module 147, online video module 155 includes executable instructions that allow the user to access, browse, receive (e.g., by streaming and/or download), play back (e.g., on the touch screen 112, or on an external display connected wirelessly or via external port 124), send an e-mail with a link to a particular online video, and otherwise manage online videos in one or more file formats, such as H.264. In some embodiments, instant messaging module 141, rather than e-mail client module 140, is used to send a link to a particular online video.
Each of the above identified modules and applications correspond to a set of executable instructions for performing one or more functions described above and the methods described in this application (e.g., the computer-implemented methods and other information processing methods described herein). These modules (i.e., sets of instructions) need not be implemented as separate software programs, procedures or modules, and thus various subsets of these modules are, optionally, combined or otherwise re-arranged in various embodiments. In some embodiments, memory 102 optionally stores a subset of the modules and data structures identified above. Furthermore, memory 102 optionally stores additional modules and data structures not described above.
In some embodiments, device 100 is a device where operation of a predefined set of functions on the device is performed exclusively through a touch screen and/or a touchpad. By using a touch screen and/or a touchpad as the primary input control device for operation of device 100, the number of physical input control devices (such as push buttons, dials, and the like) on device 100 is, optionally, reduced.
The predefined set of functions that are performed exclusively through a touch screen and/or a touchpad optionally include navigation between user interfaces. In some embodiments, the touchpad, when touched by the user, navigates device 100 to a main, home, or root menu from any user interface that is displayed on device 100. In such embodiments, a “menu button” is implemented using a touchpad. In some other embodiments, the menu button is a physical push button or other physical input control device instead of a touchpad.
Event sorter 170 receives event information and determines the application 136-1 and application view 191 of application 136-1 to which to deliver the event information. Event sorter 170 includes event monitor 171 and event dispatcher module 174. In some embodiments, application 136-1 includes application internal state 192, which indicates the current application view(s) displayed on touch-sensitive display 112 when the application is active or executing. In some embodiments, device/global internal state stored in the memory 102 is used by event sorter 170 to determine which application(s) is (are) currently active, and application internal state 192 is used by event sorter 170 to determine application views 191 to which to deliver event information.
In some embodiments, application internal state 192 includes additional information, such as one or more of: resume information to be used when application 136-1 resumes execution, user interface state information that indicates information being displayed or that is ready for display by application 136-1, a state queue for enabling the user to go back to a prior state or view of application 136-1, and a redo/undo queue of previous actions taken by the user.
Event monitor 171 receives event information from peripherals interface 118. Event information includes information about a sub-event (e.g., a user touch on touch-sensitive display 112, as part of a multi-touch gesture). Peripherals interface 118 transmits information it receives from I/O subsystem 106 or a sensor, such as proximity sensor 166, accelerometer(s) 168, and/or microphone 113 (through audio circuitry 110). Information that peripherals interface 118 receives from I/O subsystem 106 includes information from touch-sensitive display 112 or a touch-sensitive surface.
In some embodiments, event monitor 171 sends requests to the peripherals interface 118 at predetermined intervals. In response, peripherals interface 118 transmits event information. In other embodiments, peripheral interface 118 transmits event information only when there is a significant event (e.g., receiving an input above a predetermined noise threshold and/or for more than a predetermined duration).
In some embodiments, event sorter 170 also includes a hit view determination module 172 and/or an active event recognizer determination module 173.
Hit view determination module 172 provides software procedures for determining where a sub-event has taken place within one or more views, when touch-sensitive display 112 displays more than one view. Views are made up of controls and other elements that a user can see on the display.
Another aspect of the user interface associated with an application is a set of views, sometimes herein called application views or user interface windows, in which information is displayed and touch-based gestures occur. The application views (of a respective application) in which a touch is detected may correspond to programmatic levels within a programmatic or view hierarchy of the application. For example, the lowest level view in which a touch is detected may be called the hit view, and the set of events that are recognized as proper inputs may be determined based, at least in part, on the hit view of the initial touch that begins a touch-based gesture.
Hit view determination module 172 receives information related to sub-events of a touch-based gesture. When an application has multiple views organized in a hierarchy, hit view determination module 172 identifies a hit view as the lowest view in the hierarchy which should handle the sub-event. In most circumstances, the hit view is the lowest level view in which an initiating sub-event occurs (e.g., the first sub-event in the sequence of sub-events that form an event or potential event). Once the hit view is identified by the hit view determination module, the hit view typically receives all sub-events related to the same touch or input source for which it was identified as the hit view.
Active event recognizer determination module 173 determines which view or views within a view hierarchy should receive a particular sequence of sub-events. In some embodiments, active event recognizer determination module 173 determines that only the hit view should receive a particular sequence of sub-events. In other embodiments, active event recognizer determination module 173 determines that all views that include the physical location of a sub-event are actively involved views, and therefore determines that all actively involved views should receive a particular sequence of sub-events. In other embodiments, even if touch sub-events were entirely confined to the area associated with one particular view, views higher in the hierarchy would still remain as actively involved views.
Event dispatcher module 174 dispatches the event information to an event recognizer (e.g., event recognizer 180). In embodiments including active event recognizer determination module 173, event dispatcher module 174 delivers the event information to an event recognizer determined by active event recognizer determination module 173. In some embodiments, event dispatcher module 174 stores in an event queue the event information, which is retrieved by a respective event receiver module 182.
In some embodiments, operating system 126 includes event sorter 170. Alternatively, application 136-1 includes event sorter 170. In yet other embodiments, event sorter 170 is a stand-alone module, or a part of another module stored in memory 102, such as contact/motion module 130.
In some embodiments, application 136-1 includes a plurality of event handlers 190 and one or more application views 191, each of which includes instructions for handling touch events that occur within a respective view of the application's user interface. Each application view 191 of the application 136-1 includes one or more event recognizers 180. Typically, a respective application view 191 includes a plurality of event recognizers 180. In other embodiments, one or more of event recognizers 180 are part of a separate module, such as a user interface kit (not shown) or a higher level object from which application 136-1 inherits methods and other properties. In some embodiments, a respective event handler 190 includes one or more of: data updater 176, object updater 177, GUI updater 178, and/or event data 179 received from event sorter 170. Event handler 190 may utilize or call data updater 176, object updater 177 or GUI updater 178 to update the application internal state 192. Alternatively, one or more of the application views 191 includes one or more respective event handlers 190. Also, in some embodiments, one or more of data updater 176, object updater 177, and GUI updater 178 are included in a respective application view 191.
A respective event recognizer 180 receives event information (e.g., event data 179) from event sorter 170, and identifies an event from the event information. Event recognizer 180 includes event receiver 182 and event comparator 184. In some embodiments, event recognizer 180 also includes at least a subset of: metadata 183, and event delivery instructions 188 (which may include sub-event delivery instructions).
Event receiver 182 receives event information from event sorter 170. The event information includes information about a sub-event, for example, a touch or a touch movement. Depending on the sub-event, the event information also includes additional information, such as location of the sub-event. When the sub-event concerns motion of a touch the event information may also include speed and direction of the sub-event. In some embodiments, events include rotation of the device from one orientation to another (e.g., from a portrait orientation to a landscape orientation, or vice versa), and the event information includes corresponding information about the current orientation (also called device attitude) of the device.
Event comparator 184 compares the event information to predefined event or sub-event definitions and, based on the comparison, determines an event or sub-event, or determines or updates the state of an event or sub-event. In some embodiments, event comparator 184 includes event definitions 186. Event definitions 186 contain definitions of events (e.g., predefined sequences of sub-events), for example, event 1 (187-1), event 2 (187-2), and others. In some embodiments, sub-events in an event 187 include, for example, touch begin, touch end, touch movement, touch cancellation, and multiple touching. In one example, the definition for event 1 (187-1) is a double-tap on a displayed object. The double-tap, for example, comprises a first touch (touch begin) on the displayed object for a predetermined phase, a first lift-off (touch end) for a predetermined phase, a second touch (touch begin) on the displayed object for a predetermined phase, and a second lift-off (touch end) for a predetermined phase. In another example, the definition for event 2 (187-2) is a dragging on a displayed object. The dragging, for example, comprises a touch (or contact) on the displayed object for a predetermined phase, a movement of the touch across touch-sensitive display 112, and lift-off of the touch (touch end). In some embodiments, the event also includes information for one or more associated event handlers 190.
In some embodiments, event definition 187 includes a definition of an event for a respective user-interface object. In some embodiments, event comparator 184 performs a hit test to determine which user-interface object is associated with a sub-event. For example, in an application view in which three user-interface objects are displayed on touch-sensitive display 112, when a touch is detected on touch-sensitive display 112, event comparator 184 performs a hit test to determine which of the three user-interface objects is associated with the touch (sub-event). If each displayed object is associated with a respective event handler 190, the event comparator uses the result of the hit test to determine which event handler 190 should be activated. For example, event comparator 184 selects an event handler associated with the sub-event and the object triggering the hit test.
In some embodiments, the definition for a respective event 187 also includes delayed actions that delay delivery of the event information until after it has been determined whether the sequence of sub-events does or does not correspond to the event recognizer's event type.
When a respective event recognizer 180 determines that the series of sub-events do not match any of the events in event definitions 186, the respective event recognizer 180 enters an event impossible, event failed, or event ended state, after which it disregards subsequent sub-events of the touch-based gesture. In this situation, other event recognizers, if any, that remain active for the hit view continue to track and process sub-events of an ongoing touch-based gesture.
In some embodiments, a respective event recognizer 180 includes metadata 183 with configurable properties, flags, and/or lists that indicate how the event delivery system should perform sub-event delivery to actively involved event recognizers. In some embodiments, metadata 183 includes configurable properties, flags, and/or lists that indicate how event recognizers may interact with one another. In some embodiments, metadata 183 includes configurable properties, flags, and/or lists that indicate whether sub-events are delivered to varying levels in the view or programmatic hierarchy.
In some embodiments, a respective event recognizer 180 activates event handler 190 associated with an event when one or more particular sub-events of an event are recognized. In some embodiments, a respective event recognizer 180 delivers event information associated with the event to event handler 190. Activating an event handler 190 is distinct from sending (and deferred sending) sub-events to a respective hit view. In some embodiments, event recognizer 180 throws a flag associated with the recognized event, and event handler 190 associated with the flag catches the flag and performs a predefined process.
In some embodiments, event delivery instructions 188 include sub-event delivery instructions that deliver event information about a sub-event without activating an event handler. Instead, the sub-event delivery instructions deliver event information to event handlers associated with the series of sub-events or to actively involved views. Event handlers associated with the series of sub-events or with actively involved views receive the event information and perform a predetermined process.
In some embodiments, data updater 176 creates and updates data used in application 136-1. For example, data updater 176 updates the telephone number used in contacts module 137, or stores a video file used in video and music player module 145. In some embodiments, object updater 177 creates and updates objects used in application 136-1. For example, object updater 176 creates a new user-interface object or updates the position of a user-interface object. GUI updater 178 updates the GUI. For example, GUI updater 178 prepares display information and sends it to graphics module 132 for display on a touch-sensitive display.
In some embodiments, event handler(s) 190 includes or has access to data updater 176, object updater 177, and GUI updater 178. In some embodiments, data updater 176, object updater 177, and GUI updater 178 are included in a single module of a respective application 136-1 or application view 191. In other embodiments, they are included in two or more software modules.
It shall be understood that the foregoing discussion regarding event handling of user touches on touch-sensitive displays also applies to other forms of user inputs to operate multifunction devices 100 with input-devices, not all of which are initiated on touch screens, e.g., coordinating mouse movement and mouse button presses with or without single or multiple keyboard presses or holds, user movements taps, drags, scrolls, etc., on touch-pads, pen stylus inputs, movement of the device, oral instructions, detected eye movements, biometric inputs, and/or any combination thereof, which may be utilized as inputs corresponding to sub-events which define an event to be recognized.
Device 100 optionally also includes one or more physical buttons, such as “home” or menu button 204. As described previously, menu button 204 is, optionally, used to navigate to any application 136 in a set of applications that are, optionally executed on device 100. Alternatively, in some embodiments, the menu button is implemented as a soft key in a GUI displayed on the touch-screen display.
In some embodiments, device 100 includes the touch-screen display, menu button 204, push button 206 for powering the device on/off and locking the device, volume adjustment button(s) 208, Subscriber Identity Module (SIM) card slot 210, head set jack 212, and docking/charging external port 124. Push button 206 is, optionally, used to turn the power on/off on the device by depressing the button and holding the button in the depressed state for a predefined time interval; to lock the device by depressing the button and releasing the button before the predefined time interval has elapsed; and/or to unlock the device or initiate an unlock process. In some embodiments, device 100 also accepts verbal input for activation or deactivation of some functions through microphone 113. Device 100 also, optionally, includes one or more contact intensity sensors 165 for detecting intensity of contacts on touch-sensitive display system 112 and/or one or more tactile output generators 167 for generating tactile outputs for a user of device 100.
Although many of the examples that follow will be given with reference to inputs on touch screen display 112 (where the touch-sensitive surface and the display are combined), in some embodiments, the device detects inputs on a touch-sensitive surface that is separate from the display, as shown in
Additionally, while the following examples are given primarily with reference to finger inputs (e.g., finger contacts, finger tap gestures, finger swipe gestures, etc.), it should be understood that, in some embodiments, one or more of the finger inputs are replaced with input from another input device (e.g., a mouse based input or a stylus input). For example, a swipe gesture is, optionally, replaced with a mouse click (e.g., instead of a contact) followed by movement of the cursor along the path of the swipe (e.g., instead of movement of the contact). As another example, a tap gesture is, optionally, replaced with a mouse click while the cursor is located over the location of the tap gesture (e.g., instead of detection of the contact followed by ceasing to detect the contact). Similarly, when multiple user inputs are simultaneously detected, it should be understood that multiple computer mice are, optionally, used simultaneously, or a mouse and finger contacts are, optionally, used simultaneously.
As used herein, the term “focus selector” refers to an input element that indicates a current part of a user interface with which a user is interacting. In some implementations that include a cursor or other location marker, the cursor acts as a “focus selector,” so that when an input (e.g., a press input) is detected on a touch-sensitive surface (e.g., touchpad or touch-sensitive surface 251 in
As used in the specification and claims, the term “intensity” of a contact on a touch-sensitive surface refers to the force or pressure (force per unit area) of a contact (e.g., a finger contact or a stylus contact) on the touch-sensitive surface, or to a substitute (proxy) for the force or pressure of a contact on the touch-sensitive surface. The intensity of a contact has a range of values that includes at least four distinct values and more typically includes hundreds of distinct values (e.g., at least 256). Intensity of a contact is, optionally, determined (or measured) using various approaches and various sensors or combinations of sensors. For example, one or more force sensors underneath or adjacent to the touch-sensitive surface are, optionally, used to measure force at various points on the touch-sensitive surface. In some implementations, force measurements from multiple force sensors are combined (e.g., a weighted average or a sum) to determine an estimated force of a contact. Similarly, a pressure-sensitive tip of a stylus is, optionally, used to determine a pressure of the stylus on the touch-sensitive surface. Alternatively, the size of the contact area detected on the touch-sensitive surface and/or changes thereto, the capacitance of the touch-sensitive surface proximate to the contact and/or changes thereto, and/or the resistance of the touch-sensitive surface proximate to the contact and/or changes thereto are, optionally, used as a substitute for the force or pressure of the contact on the touch-sensitive surface. In some implementations, the substitute measurements for contact force or pressure are used directly to determine whether an intensity threshold has been exceeded (e.g., the intensity threshold is described in units corresponding to the substitute measurements). In some implementations, the substitute measurements for contact force or pressure are converted to an estimated force or pressure and the estimated force or pressure is used to determine whether an intensity threshold has been exceeded (e.g., the intensity threshold is a pressure threshold measured in units of pressure). Using the intensity of a contact as an attribute of a user input allows for user access to additional device functionality that may otherwise not be readily accessible by the user on a reduced-size device with limited real estate for displaying affordances (e.g., on a touch-sensitive display) and/or receiving user input (e.g., via a touch-sensitive display, a touch-sensitive surface, or a physical/mechanical control such as a knob or a button).
In some embodiments, contact/motion module 130 uses a set of one or more intensity thresholds to determine whether an operation has been performed by a user (e.g., to determine whether a user has “clicked” on an icon). In some embodiments, at least a subset of the intensity thresholds are determined in accordance with software parameters (e.g., the intensity thresholds are not determined by the activation thresholds of particular physical actuators and can be adjusted without changing the physical hardware of device 100). For example, a mouse “click” threshold of a trackpad or touch-screen display can be set to any of a large range of predefined thresholds values without changing the trackpad or touch-screen display hardware. Additionally, in some implementations a user of the device is provided with software settings for adjusting one or more of the set of intensity thresholds (e.g., by adjusting individual intensity thresholds and/or by adjusting a plurality of intensity thresholds at once with a system-level click “intensity” parameter).
As used in the specification and claims, the term “characteristic intensity” of a contact refers to a characteristic of the contact based on one or more intensities of the contact. In some embodiments, the characteristic intensity is based on multiple intensity samples. The characteristic intensity is, optionally, based on a predefined number of intensity samples, or a set of intensity samples collected during a predetermined time period (e.g., 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10 seconds) relative to a predefined event (e.g., after detecting the contact, prior to detecting liftoff of the contact, before or after detecting a start of movement of the contact, prior to detecting an end of the contact, before or after detecting an increase in intensity of the contact, and/or before or after detecting a decrease in intensity of the contact). A characteristic intensity of a contact is, optionally based on one or more of: a maximum value of the intensities of the contact, a mean value of the intensities of the contact, an average value of the intensities of the contact, a top 10 percentile value of the intensities of the contact, a value at the half maximum of the intensities of the contact, a value at the 90 percent maximum of the intensities of the contact, or the like. In some embodiments, the duration of the contact is used in determining the characteristic intensity (e.g., when the characteristic intensity is an average of the intensity of the contact over time). In some embodiments, the characteristic intensity is compared to a set of one or more intensity thresholds to determine whether an operation has been performed by a user. For example, the set of one or more intensity thresholds may include a first intensity threshold and a second intensity threshold. In this example, a contact with a characteristic intensity that does not exceed the first threshold results in a first operation, a contact with a characteristic intensity that exceeds the first intensity threshold and does not exceed the second intensity threshold results in a second operation, and a contact with a characteristic intensity that exceeds the second intensity threshold results in a third operation. In some embodiments, a comparison between the characteristic intensity and one or more intensity thresholds is used to determine whether or not to perform one or more operations (e.g., whether to perform a respective option or forgo performing the respective operation) rather than being used to determine whether to perform a first operation or a second operation.
In some embodiments, a portion of a gesture is identified for purposes of determining a characteristic intensity. For example, a touch-sensitive surface may receive a continuous swipe contact transitioning from a start location and reaching an end location (e.g., a drag gesture), at which point the intensity of the contact increases. In this example, the characteristic intensity of the contact at the end location may be based on only a portion of the continuous swipe contact, and not the entire swipe contact (e.g., only the portion of the swipe contact at the end location). In some embodiments, a smoothing algorithm may be applied to the intensities of the swipe contact prior to determining the characteristic intensity of the contact. For example, the smoothing algorithm optionally includes one or more of: an unweighted sliding-average smoothing algorithm, a triangular smoothing algorithm, a median filter smoothing algorithm, and/or an exponential smoothing algorithm. In some circumstances, these smoothing algorithms eliminate narrow spikes or dips in the intensities of the swipe contact for purposes of determining a characteristic intensity.
The user interface figures (e.g.,
In some embodiments, the response of the device to inputs detected by the device depends on criteria based on the contact intensity during the input. For example, for some “light press” inputs, the intensity of a contact exceeding a first intensity threshold during the input triggers a first response. In some embodiments, the response of the device to inputs detected by the device depends on criteria that include both the contact intensity during the input and time-based criteria. For example, for some “deep press” inputs, the intensity of a contact exceeding a second intensity threshold during the input, greater than the first intensity threshold for a light press, triggers a second response only if a delay time has elapsed between meeting the first intensity threshold and meeting the second intensity threshold. This delay time is typically less than 200 ms in duration (e.g., 40, 100, or 120 ms, depending on the magnitude of the second intensity threshold, with the delay time increasing as the second intensity threshold increases). This delay time helps to avoid accidental deep press inputs. As another example, for some “deep press” inputs, there is a reduced-sensitivity time period that occurs after the time at which the first intensity threshold is met. During the reduced-sensitivity time period, the second intensity threshold is increased. This temporary increase in the second intensity threshold also helps to avoid accidental deep press inputs. For other deep press inputs, the response to detection of a deep press input does not depend on time-based criteria.
In some embodiments, one or more of the input intensity thresholds and/or the corresponding outputs vary based on one or more factors, such as user settings, contact motion, input timing, application running, rate at which the intensity is applied, number of concurrent inputs, user history, environmental factors (e.g., ambient noise), focus selector position, and the like. Exemplary factors are described in U.S. patent application Ser. Nos. 14/399,606 and 14/624,296, which are incorporated by reference herein in their entireties.
An increase of characteristic intensity of the contact from an intensity below the light press intensity threshold ITL to an intensity between the light press intensity threshold ITL and the deep press intensity threshold ITD is sometimes referred to as a “light press” input. An increase of characteristic intensity of the contact from an intensity below the deep press intensity threshold ITD to an intensity above the deep press intensity threshold ITD is sometimes referred to as a “deep press” input. An increase of characteristic intensity of the contact from an intensity below the contact-detection intensity threshold IT0 to an intensity between the contact-detection intensity threshold IT0 and the light press intensity threshold ITL is sometimes referred to as detecting the contact on the touch-surface. A decrease of characteristic intensity of the contact from an intensity above the contact-detection intensity threshold IT0 to an intensity below the contact-detection intensity threshold IT0 is sometimes referred to as detecting liftoff of the contact from the touch-surface. In some embodiments IT0 is zero. In some embodiments, IT0 is greater than zero. In some illustrations a shaded circle or oval is used to represent intensity of a contact on the touch-sensitive surface. In some illustrations, a circle or oval without shading is used represent a respective contact on the touch-sensitive surface without specifying the intensity of the respective contact.
In some embodiments, described herein, one or more operations are performed in response to detecting a gesture that includes a respective press input or in response to detecting the respective press input performed with a respective contact (or a plurality of contacts), where the respective press input is detected based at least in part on detecting an increase in intensity of the contact (or plurality of contacts) above a press-input intensity threshold. In some embodiments, the respective operation is performed in response to detecting the increase in intensity of the respective contact above the press-input intensity threshold (e.g., the respective operation is performed on a “down stroke” of the respective press input). In some embodiments, the press input includes an increase in intensity of the respective contact above the press-input intensity threshold and a subsequent decrease in intensity of the contact below the press-input intensity threshold, and the respective operation is performed in response to detecting the subsequent decrease in intensity of the respective contact below the press-input threshold (e.g., the respective operation is performed on an “up stroke” of the respective press input).
In some embodiments, the device employs intensity hysteresis to avoid accidental inputs sometimes termed “jitter,” where the device defines or selects a hysteresis intensity threshold with a predefined relationship to the press-input intensity threshold (e.g., the hysteresis intensity threshold is X intensity units lower than the press-input intensity threshold or the hysteresis intensity threshold is 75%, 90%, or some reasonable proportion of the press-input intensity threshold). Thus, in some embodiments, the press input includes an increase in intensity of the respective contact above the press-input intensity threshold and a subsequent decrease in intensity of the contact below the hysteresis intensity threshold that corresponds to the press-input intensity threshold, and the respective operation is performed in response to detecting the subsequent decrease in intensity of the respective contact below the hysteresis intensity threshold (e.g., the respective operation is performed on an “up stroke” of the respective press input). Similarly, in some embodiments, the press input is detected only when the device detects an increase in intensity of the contact from an intensity at or below the hysteresis intensity threshold to an intensity at or above the press-input intensity threshold and, optionally, a subsequent decrease in intensity of the contact to an intensity at or below the hysteresis intensity, and the respective operation is performed in response to detecting the press input (e.g., the increase in intensity of the contact or the decrease in intensity of the contact, depending on the circumstances).
For ease of explanation, the description of operations performed in response to a press input associated with a press-input intensity threshold or in response to a gesture including the press input are, optionally, triggered in response to detecting: an increase in intensity of a contact above the press-input intensity threshold, an increase in intensity of a contact from an intensity below the hysteresis intensity threshold to an intensity above the press-input intensity threshold, a decrease in intensity of the contact below the press-input intensity threshold, or a decrease in intensity of the contact below the hysteresis intensity threshold corresponding to the press-input intensity threshold. Additionally, in examples where an operation is described as being performed in response to detecting a decrease in intensity of a contact below the press-input intensity threshold, the operation is, optionally, performed in response to detecting a decrease in intensity of the contact below a hysteresis intensity threshold corresponding to, and lower than, the press-input intensity threshold. As described above, in some embodiments, the triggering of these responses also depends on time-based criteria being met (e.g., a delay time has elapsed between a first intensity threshold being met and a second intensity threshold being met).
In some embodiments, the physical keyboard 370 is communicatively coupled to the portable multifunction device 100 via a contact or array of contacts (e.g., Smart Connect from Apple Computer, Inc. of Cupertino, Calif.), via a wired connection (e.g., USB, PS/2), or via a wireless communication link (e.g., optical, Bluetooth, Wi-Fi, or the like). In some embodiments, a connector 368 of the portable multifunction device 100 couples to and communicates with the physical keyboard 370. For example, a case may be attached to the portable multifunction device 100 through the connector 368, and the case is also attached to or communicatively coupled to the rear surface of the keyboard 370 to establish communication channels.
As can be seen in
Relative to conventional keyboards, the keyboard 270 conserves space by removing conventional keys that are not used often and frees up keyboard space to make room for new multi-functional keys, i.e., reducing the overall number of keys. For example, conventional full-size keyboards often have a pair of open and close punctuation characters shown on separate keys (e.g., keys “9” and “0”). Instead of separate keys for separate characters, the keyboard 370, in accordance with some embodiments, has a physical key 378 that is associated with more than one pair of punctuation characters, e.g., both { } and [ ] as indicated by the characters shown on the key 378. When a user actuates the key 378 by pressing on the key, the system may respond by entering {,}, [, or], as described in greater detail below with reference to
In addition to character keys, and depending on the embodiment, the keyboard 370 includes one or more of the following multifunction keys: a command key, such as a home key (e.g., indicated by a square and located next to numeral 1), an emoji key, a select key, a tab key, an option key, a cmd key, a share key, a shift key, a notification key (e.g., shown next to +/= and delete keys), arrows and so on. In some embodiments, selection of a combination of a command key and a character key allows a specific character of a plurality of characters associated with one key to be entered. For example, the selection of a combination of the command key “option” and the punctuation character key 378 allows an input of] to be entered. In other embodiments, command keys may be used to execute commands that are not necessarily associated with any characters. For example, pressing a particular command key or combination of command keys may cause the system to execute certain functions, such as switching between applications or the like. The functions of these command keys are described in greater detail below.
Attention is now directed towards embodiments of processes and associated user interfaces (“UI”) that may be implemented on an electronic device with a display and/or a touch-sensitive display, such as the portable multifunction device 100.
Parenthesis Helper
As described below, the method 400 provides an efficient mechanism for entering punctuation characters at a portable multifunction device. This method is faster and easier to perform than conventional punctuation character entry methods and systems, e.g., conventional punctuation character entry through a conventional keyboard with more than one key associated with one pair of open and close punctuation characters. The method is also intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
The device 100 provides (402) a key on which is depicted at least one pair of open and close punctuation characters. In some embodiments, the key is a physical key (404) on a physical keyboard coupled to the portable multifunction device. Also in some embodiments. The physical keyboard contains at least one sensor (e.g., the sensors 374,
Having one physical key for multiple pairs of open and close punctuation characters allows a user to use the physical keyboard for punctuation entries without reaching up from the keyboard. Further, replacing multiple punctuation character keys on conventional keyboard with one dedicated punctuation character key saves space, thus making the improved keyboard suitable for portable multifunction devices.
In some embodiments (e.g., as depicted in
Having one virtual key for multiple pairs of open and close punctuation characters saves space and makes the improved keyboard more suitable for portable multifunction devices. Further, the methods and systems in accordance with embodiments described herein not only require fewer keys, but also reduce the cognitive burden on a user, e.g., the user only needs to remember one punctuation key for all punctuation entries and the user can locate an intended punctuation character through fewer inputs, thus producing a more efficient human-machine interface. For battery-operated devices, a more efficient input mechanism also requires less computing resources, thereby increasing the battery life of the device.
Having provided the punctuation character key, the device displays (410) editable content on the display and detects (412) a first input selecting the key. In response to detecting the first input selecting the key, the device determines (414) whether to insert an open or a close punctuation character. In accordance with a determination that an open punctuation character is to be inserted, the device displays (416) in the editable content the open punctuation character of the at least one pair of open and close punctuation characters, displays an insertion marker after the open punctuation character, and displays a close punctuation character adjacent the insertion marker opposite to the open punctuation character. In accordance with a determination to insert the close punctuation character, the device displays (418) the close punctuation character in the editable content on the display.
For example, in
In some embodiments, the close punctuation character displayed adjacent the insertion marker 522 and opposite to the open bracket is a ghost image of the close punctuation character to indicate a proposed placement of the close punctuation character into the editable content and to indicate that the close punctuation character has not been entered into the editable content yet. For example, in
Referring back to method 400, in
For example, in
Automatically determining whether to insert an open or close punctuation character in accordance with embodiments described herein reduces the cognitive burden on a user, thus producing a more efficient human-machine interface. For battery-operated devices, a more efficient input mechanism also requires less computing resources, thereby increasing the battery life of the device.
Referring back to method 400, in
For example, in
Although
Providing a list of punctuation characters for selection in response to a deep press on a dedicated punctuation key allows a single key to be used for a range of character entries. Thus, providing the dedicated punctuation key saves space and reduces the cognitive burden on a user, producing a more efficient human-machine interface and making the improved keyboards and methods described herein suitable for portable multifunction devices. For battery-operated devices, a more efficient input mechanism also requires less computing resources, thereby increasing the battery life of the device.
In some embodiments, as shown in
Referring back to the method 400, in
For example, after detecting a deep press 524-3 as a first input on the punctuation character key 378 (e.g., the contact intensity on the key 378 detected by the sensor(s) 374 exceeds a deep press threshold, ITD), the device displays multiple affordances 540-544, each associated with a pair of open and close punctuation characters as shown in
Splitting one affordance into two affordances for punctuation character entry in response to a deep press allows a single punctuation key to be used for a range of character entries. Thus, providing the dedicated punctuation key saves space and reduces the cognitive burden on a user, thus producing a more efficient human-machine interface and making the improved keyboards and methods described herein suitable for portable multifunction devices. For battery-operated devices, a more efficient input mechanism also requires less computing resources, thereby increasing the battery life of the device.
Referring back to method 400, in
For example, in the example shown in
Combining the automated punctuation character entry and manual entry, the methods and systems described herein reduce the cognitive burden on a user, thus producing a more efficient human-machine interface and making the improved keyboards and methods described herein suitable for portable multifunction devices. For battery-operated devices, a more efficient input mechanism also requires less computing resources, thereby increasing the battery life of the device.
It should be understood that the particular order in which the operations in
In accordance with some embodiments,
As shown in
The processing unit 608 is configured to provide a key on which is depicted at least one pair of punctuation characters (e.g., open and close characters), facilitate the display of editable content on display unit 602, and detect (e.g., using detecting unit 610) a first input selecting the key. In some embodiments, processing unit 608 is configured to, in response to detecting (e.g., using detecting unit 610) the first input selecting the key, determine (e.g., using determining unit 614) which first punctuation character to insert (e.g., open or close character). The processing unit 608 is further configured to, in accordance with a determination of which first punctuation character to insert, cause the display (e.g., using displaying unit 612) to display the first punctuation character in the editable content, and, in some embodiments, an insertion marker after the first punctuation character. In some embodiments, the processing unit 608 is also configured to cause the display (e.g., using displaying unit 612) to display a second punctuation character adjacent the insertion marker and opposite to the first punctuation character. The second punctuation character can be displayed in ghost form, e.g., lighter or in outline as compared to the first punctuation character. The processing unit 608 is further configured to, in accordance with a determination to insert the first and/or second punctuation characters, cause the display (e.g., using displaying unit 612) of the second punctuation character in the editable content on display unit 602.
In some embodiments, the processing unit 608 enables display (e.g., using displaying unit 612) of both { } and [ ] on the key. In some embodiments, the key is a virtual key displayed on display unit 602. In some other embodiments, the key is a physical key on a physical keyboard coupled to the electronic device.
In some embodiments, determining (e.g., using determining unit 614) whether to insert the first or second (or open or close) punctuation character includes processing unit 608 automatically determining (e.g., using determining unit 614) whether to insert the first or second (or open or close) punctuation character based on context. In some embodiments, the context includes a count of first and/or second (or open and/or close) punctuation characters in the editable content. In some embodiments, the context includes a last entered punctuation character of a same type in the editable content. In some embodiments, the context includes a second input detected substantially simultaneously with the first input.
In some embodiments, determining (e.g., using determining unit 614) whether to insert the first or second (or open or close) punctuation character comprises: processing unit 608, in response to detecting a first deep press as the first input of the key, enabling display (e.g., using displaying unit 612) on display unit 602 of multiple affordances each associated with a pair of first or second (or open or close) punctuation character; detecting (e.g., using detecting unit 610) a second input selecting an affordance from the multiple affordances; and in response to detecting the second input, automatically determining (e.g., using determining unit 614) whether to insert the first or second (or open or close) punctuation character based on context.
In some embodiments, determining (e.g., using determining unit 614) whether to insert the first or second (or open or close) punctuation character comprises: processing unit 608, in response to detecting a first deep press as the first input of the key, enabling display (e.g., using displaying unit 612) on display unit 602 of multiple affordances each associated with a pair of first and second (or open and close) punctuation characters, detecting (e.g., using detecting unit 610) a second input selecting an affordance from the multiple affordances, in response to detecting the second input, enabling display (e.g., using displaying unit 612) of a first affordance associated with a first (or open) punctuation character and a second affordance associated with a second (or close) punctuation character, detecting (e.g., using detecting unit 610) a third input selecting one of the first affordance or the second affordance, and enabling display (e.g., using displaying unit 612) in the editable content of the first or second (or open or close) punctuation character based on the third input.
In some embodiments, the multiple affordances are scrollable.
In some embodiments, the processing unit 608 is configured to, in response to detecting one or more additional inputs, enable display of the first or second (or open or close) punctuation character.
The operations in the information processing methods described above are, optionally implemented by running one or more functional modules in information processing apparatus such as general purpose processors (e.g., as described above with respect to
The operations described above with reference to
Emoji Key
As described below, the method 700 provides an efficient mechanism for entering emoji and punctuation characters at a portable multifunction device. This method is faster and easier to perform than conventional emoji and punctuation character entry methods and systems, e.g., conventional character entry through a conventional keyboard with multiple keys and key entries for entering desired emoji and/or punctuation characters. The method is also intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
The device 100 detects (702) an input on a key of the physical keyboard and determines (704) if the input is of a first type or a second type distinct from the first type. In some embodiments, the first and second types are (706) a tap, press-and-hold, or a deep press on the key of the physical keyboard. For example, in
Upon determining that the input is of the first type, the device displays (708) a first set of characters associated with the key for selection, and upon determining that the input is of the second type, the device displays (710) a second set of characters associated with the key for selection.
For example, in
Referring back to
Though
In some embodiments, the key of the physical keyboard is multi-functional (714) so that a user can enter a full range of characters. An arrow key of the physical keyboard allows the device to switch from one function of the multi-functional key to a different function, and the content displayed in the first or second set of characters is determined based on a function of the multi-functional key. In some embodiments, the first and second set of characters are (716) emoji characters when the selection of the key is associated with a first function, and the first and second set of characters are punctuation characters when the selection of the key is associated with a second function. For example, the emoji key 802 in
Having a multi-functional key for both emoji and punctuation characters entry saves space and reduces the size of the physical keyboard. Further, switching from one function of the key to another function of key using an arrow key (e.g., an up arrow key) provides an efficient way of selecting the desired function for character entry. Methods and systems described herein thus provide faster and easier emoji and punctuation character entry than conventional methods and systems, e.g., conventional emoji and punctuation character entry through a conventional keyboard with multi keys and key entries for entering desired emoji or punctuation characters. Further, allowing the user to toggle different functions of the multifunction key using the arrow key is intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
Referring back to
In some embodiments, the device further receives (720) a second input on the key to cease the display of the first or the second set of characters. For example, in
It should be understood that the particular order in which the operations in
In accordance with some embodiments,
As shown in
The processing unit 908 is configured to detect (e.g., with the detecting unit 910) an input on a key of the physical keyboard unit 906. The processing unit 908 is configured to determine (e.g., with the determining unit 912) if the input is of a first type or a second type distinct from the first type. Upon determining that the input is of the first type, the processing unit 908 is configured to display (e.g., with the displaying unit 914) a first set of characters associated with the key for selection. Upon determining that the input is of the second type, the processing unit 908 is configured to display (e.g., with the displaying unit 914) a second set of characters associated with the key for selection.
In some embodiments, the first or the second type is a tap, press-and-hold, or deep press (e.g., detected with the one or more sensor units 907) on the key of the physical keyboard unit 906.
The processing unit 908 is further configured to receive (e.g., with the receiving unit 916) a second input on the key to cease the display of the first or the second set of characters.
In some embodiments, the first or the second set of characters is scrollable using an arrow key on the physical keyboard unit 906.
In some embodiments, the key of the physical keyboard unit 906 is multi-functional; an arrow key of the physical keyboard unit 906 switches from a function of the multi-functional key to a different function of the multi-functional key; and content of the first set or the second set of characters is determined based on a function of the multi-functional key.
In some embodiments, the first and second set of characters are emoji characters when the key is associated with a first function, and the first and second set of characters are punctuation characters when the key is associated with a second function.
In some embodiments, the physical keyboard unit 906 is decoupled from the portable multifunction device and connected to an electronic device.
The operations in the information processing methods described above are, optionally implemented by running one or more functional modules in information processing apparatus such as general purpose processors (e.g., as described above with respect to
The operations described above with reference to
Currency Key
As described below, the method 1000 provides an efficient mechanism for currency functionality, such as automatic currency conversion and automatically selecting a local currency symbol, at a portable multifunction device. This method is faster and easier to perform than conventional currency entry methods and systems, e.g., conventional character entry through a conventional keyboard with multiple entries required to locate a local currency symbol and/or convert currency including a manual lookup of the appropriate currency conversion rate. The method is also intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
The device 100 detects (1006) an input on the dedicated or shared currency key of the physical keyboard. For example, in
In response to receiving the input, the device determines (1008) if the input is of a first type or a different second type. In some embodiments, the first or the second type is (1010) a tap, press-and-hold (e.g., by measuring the duration of the press and comparing with a predetermined duration threshold), or deep press (e.g., by measuring the contact intensities of the press using the at least one contact intensity sensor contained in the physical keyboard 370 and comparing with a predetermined threshold, ITD) on the key of the physical keyboard. An example is shown in
Determining whether an input is, for example, a simple tap or a press-and-hold and accordingly providing different currency character entry is an efficient way of entering currency symbols and performing automated currency conversion. Methods and systems described herein are faster and easier to use than conventional currency entry methods and systems, e.g., conventional character entry through a conventional keyboard with multiple entries for entering currency appropriate for the context and manual lookup of a currency conversion rate. Further, providing a list of alternative currency symbols for selection reduces the cognitive burden on the user, and creates a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
Upon determining that the input is of the first type, the device inserts (1012) a currency symbol based on a location of the portable multifunction device. In some embodiments, the currency symbol represents (1014) a local currency used at the location. For example, in
In some embodiments, the device determines the location of the portable multifunction device using data retrieved from GPS module 136, or the location associated with the global/public IP address assigned to the device. In some embodiments, the device determines the location of the portable multifunction device using keywords in the editable text, e.g., based on the text “Mount Fuji” in the editable content. The device further determines, e.g., based on information stored locally on the device or retrieved from a remote source that Yen is used as a local currency. In another embodiment, the device determines the type of currency to be converted into based on the context. For example, the device determines that surrounding text mentions Mount Fuji, which is in Japan, and as such it is likely that the conversion should be into Yen.
Upon determining that the input is of the second type, the device displays (1016) a set of different currency characters on the display for selection, wherein upon a selection of a currency character in the set of different currency characters, a numerical value associated with a first currency displayed on the display is converted from the first currency to a second currency corresponding to the selected currency character. In some embodiments, the set of different currency characters includes (1018) a currency character used in a home location and commonly used currencies. In some embodiments, the set of different currency characters is displayed (1020) as a scrollable list navigable using an arrow key on the physical keyboard. In some embodiments, the numerical value associated with the first currency displayed on the display is converted (1022) from the first currency to the second currency corresponding to the selected currency character using a conversion rate obtained from a remote and/or local source.
For example, in
Referring back to method 1000, in
For example, in
Automated currency conversion based on a location or context of the device provides an efficient way of entering appropriate currency symbols. Methods and systems described herein are faster and easier to use than conventional currency entry methods and systems, e.g., conventional character entry through a conventional keyboard with multiple entries for entering currency appropriate for the context and manual lookup of the currency conversion rate. Thus, such methods and systems reduce the cognitive burden on the user, and create a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
It should be understood that the particular order in which the operations in
In accordance with some embodiments,
As shown in
The processing unit 1208 is configured to detect (e.g., with the detecting unit 1212) an input on a dedicated currency key of the physical keyboard unit. The processing unit 1208 is further configured to determine (e.g., with the determining unit 1214) if the input is of a first type or a different second type. Upon determining that the input is of the first type, the processing unit 1208 is configured to insert (e.g., with the displaying unit 1210) a currency symbol based on a location of the portable multifunction device. On the other hand, upon determining that the input is of the second type, the processing unit 1208 is configured to display (e.g., with the displaying unit 1210) a set of different currency characters on the display unit 1202 for selection, where upon a selection of a currency character in the set of different currency characters, a numerical value associated with a first currency displayed on the display is converted from the first currency to a second currency corresponding to the selected currency character.
In some embodiments, the physical keyboard unit is decoupled from the portable multifunction device and connected to an electronic device.
In some embodiments, the first or the second type is a tap, press-and-hold, or deep press on the dedicated currency key of the physical keyboard unit.
In some embodiments, the currency symbol represents a local currency used at the location.
In some embodiments, the set of different currency characters includes a currency character used in a home location and commonly used currencies.
In some embodiments, the set of different currency characters is displayed as a scrollable list navigable using an arrow key on the physical keyboard unit.
In some embodiments, the numerical value associated with the first currency displayed on the display is converted from the first currency to the second currency corresponding to the selected currency character using a conversion rate obtained from a remote and/or local source.
In some embodiments, the processing unit 1208 is further configured to, prior to detecting the input, receive a selection of a second numerical value displayed on the display unit, the second numerical value is not associated with any currency. Upon determining that the input is of the first type, the processing unit 1208 is configured to reformat (e.g., with the reformatting unit 1218) the second numerical value based on the location of the portable multifunction device; and upon determining that the input is of the second type, the processing unit 1208 is configured to reformat (e.g., with the reformatting unit 1218) the second numerical value using the selected currency character.
The operations in the information processing methods described above are, optionally implemented by running one or more functional modules in information processing apparatus such as general purpose processors (e.g., as described above with respect to
The operations described above with reference to
Contact Details Key
As described below, the method 1300 provides an efficient mechanism for entering contact details, such as addresses, at a portable multifunction device. This method is faster and easier to perform than conventional address entry methods and systems, e.g., conventional address entry through a conventional keyboard with multiple entries for entering contact details appropriate for the context. The method is also intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
The device 100 displays (1306) at least a portion of text on the display, and subsequently detects (1308) an input on a dedicated or shared address key of the physical keyboard. In response to detecting the input, the device automatically suggests (1310) one or more contact details based on the portion of text. In some embodiments, the one or more contact details include (1312) any details for a contact in a user's contact book, including a phone number, a physical address (1312), an email address (1314), or an IM address (1316), etc.
For example, in
Having a list of contact details based on a partial text entry that includes not only electronic addresses but also physical addresses expands the contact detail entry capacity of the physical keyboard. Conventional physical keyboards often do not provide a contacts key or suggest entering contacts associated with the contacts key. Thus, the method described herein provides an efficient mechanism for entering contact details at a portable multifunction device. By providing a list of suggestions, the method is also intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
Referring back to
For example, in
Automatic contact details correction provides an efficient mechanism for entering contact details, such as addresses, and assures that contact details are correctly entered. The method is also intuitive for users, as by pressing the contacts key, the user relies on the electronic device to look up entries in the contact book and suggest the best match, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
In some embodiments, the list 1410 is scrollable, e.g., using the arrow keys on the keyboard 370 to scroll through and then select an entry in the list using a return key of the keyboard 370. Referring back to
It should be understood that the particular order in which the operations in
In accordance with some embodiments,
As shown in
The processing unit 1508 is configured to display (e.g., with the displaying unit 1510) at least a portion of text on the display. The processing unit 1508 is further configured to detect (e.g., with the detecting unit 1512) an input on a dedicated contacts key of the physical keyboard unit 1506. In response to detecting the input, the processing unit 1508 is configured to automatically suggest (e.g., with the suggesting unit 1514) one or more contact details based on the portion of text. The processing unit 1508 is further configured to receive (e.g., with the receiving unit 1516) a selection of a contact detail of the one or more contact details; and display (e.g., with the displaying unit 1510) the contact detail on the display unit 1502.
In some embodiments, the physical keyboard unit 1506 is decoupled from the portable multifunction device and connected to an electronic device. In some embodiments, the one or more contact details include a physical address. In some embodiments, the one or more contact details include an email address. In some embodiments, the one or more contact details include an IM address. In some embodiments, automatically suggesting the one or more contact details based on the portion of text includes automatically correcting (e.g., with the correcting unit 1518) the portion of text.
In some embodiments, automatically correcting the portion of text includes (a) obtaining (e.g., with the obtaining unit 1520) a subset of characters from the portion of text by removing (e.g., the removing unit 1528) one or more characters from the portion of text; (b) matching (e.g., with the matching unit 1522) the subset of characters with first contact details in a contact book stored on the portable electronic device; (c) replacing (e.g., with the replacing unit 1524) the display of the portion of text with the subset of characters on the display unit 1502; and (d) highlighting (e.g., with the highlighting unit 1528) the first contact details among the one or more suggested contact details displayed on the display unit 1502.
The operations in the information processing methods described above are, optionally implemented by running one or more functional modules in information processing apparatus such as general purpose processors (e.g., as described above with respect to
The operations described above with reference to
Dedicated Home Key
As described below, the method 1600 provides an efficient mechanism for displaying a home screen at a portable multifunction device. This method is faster and easier to perform than conventional methods and systems, e.g., conventional home screen displays and methods of switching applications through a conventional keyboard with multiple keys and multiple key entries. The method is also intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
The device 100 displays (1606) on a display a user interface for an application that is open, and subsequently detects (1608) an input on a dedicated home key of the physical keyboard. The device then determines (1610) if the input is of a first type or a different second type. In some embodiments, the first type of the input is (1612) a tap on the dedicated home key of the physical keyboard, and the second type of the input is a double tap (or a harder or longer press) on the dedicated home key of the physical keyboard. For example, in
In accordance with a determination that the input is the first type, the device displays (1614) a home screen on the display. In some embodiments, the user interface, which is displayed before a selection of the home key, corresponds to the open application and is not an interface for the home screen (1616). In accordance with the determination that the input is of the first type, the home screen is displayed on the display and the prior user interface is no longer displayed, i.e., only the home screen is displayed on the display.
For example, in
Although some portable multifunction devices have a home button for displaying the home screen, conventional keyboards often do not have a dedicated home button. Having a home button on the keyboard, which provides the function of displaying the home screen responsive to a tap, obviates the need for the user to reach up from the keyboard. Thus, the method described herein provides an efficient mechanism for displaying a home screen at a portable multifunction device. This method is faster and easier to perform than conventional methods and systems, e.g., navigating to the home screen using the interface on the portable multifunction device 100. The method is also intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
Referring back to the method 1600, in
For example, in
In some embodiments, this transition includes first producing a reduced-scale image and then transitioning the home screen into the reduced-scale image, e.g., a live thumbnail image of the home screen. The reduced-scale image is at a second size that is smaller than the first size, e.g., icon sized or an image that is smaller than a full screen size. The device further obtains a series of reduced-scale images that represent user interfaces of other concurrently open applications. For example, in
Having a multifunction home button saves space on the physical keyboard. Further, the method described herein is faster and easier to perform than conventional methods and systems, e.g., navigating to the home screen using the interface on the portable multifunction device 100. In addition, having a home button that provides both the function of displaying the home screen and the function of displaying the multitasking screen is intuitive, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
Referring back to the method 1600, in accordance with some embodiments, in
In some embodiments, an active window in the navigable list of concurrently open applications on the portable multifunction device is selected (1624) in response to receiving an input on a return or space key on the physical keyboard. For example, in
In some embodiments, the first image in the scrollable list of images corresponds to the open application that was in focus the input 1724 was detected on the home key 1702. For example, in
Using the arrow, return, and/or space keys on the keyboard for navigating between the snapshots of the open applications obviates the need for reaching up from the keyboard to navigate and select an application. Thus, the method described herein provides an efficient mechanism for navigating a multitasking screen at a portable multifunction device. This method is both faster and easier to perform than conventional methods and systems. The method is also intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
It should be understood that the particular order in which the operations in
In accordance with some embodiments,
As shown in
The processing unit 1808 is configured to detect (e.g., with the detecting unit 1812) an input on a dedicated home key of the physical keyboard unit 1806. In response to detecting the input, the processing unit 1808 is configured to determine (e.g., with the determining unit 1814) whether the input is of a first type or a second type. In accordance with a determination that the input is the first type, the processing unit 1808 is configured to display (e.g., with the displaying unit 1810) a home screen on the display unit 1802. On the other hand, in accordance with a determination that the input is the second type, the processing unit 1808 is configured to display (e.g., with the displaying unit 1810) a navigable list of concurrently open applications including the open application on the portable multifunction device.
In some embodiments, the physical keyboard unit 1806 is decoupled from the portable multifunction device and connected to an electronic device.
In some embodiments, the first type of the input is a tap on the dedicated home key of the physical keyboard unit 1806, and the second type of the input is a double tap on the dedicated home key of the physical keyboard unit 1806.
In some embodiments, the user interface corresponds to the open application is not an interface for the home screen; and in accordance with the determination that the input is the first type, displaying the home screen on the display unit 1802 includes ceasing to display (e.g., with the displaying unit 1810) the user interface and displaying only the home screen on the display unit 1802.
In some embodiments, in accordance with the determination that the input is the second type, displaying the navigable list of concurrently open applications on the portable multifunction device includes reducing (e.g., with the reducing unit 1816) the user interface to a smaller size; displaying (e.g., with the displaying unit 1810) the smaller sized user interface in a predefined area of a series of predefined areas, where the predefined area is in the first place of the series of predefined areas; and displaying snapshots of at least some of the concurrently open applications in remaining predefined areas of the series of predefined areas on the display unit 1802.
In some embodiments, the navigable list of concurrently open applications is scrolled in response to receiving an input on an arrow key on the physical keyboard unit 1806.
In some embodiments, an active window in the navigable list of concurrently open applications on the portable multifunction device is selected in response to receiving (e.g., with the receiving unit 1818) an input on a return or space key on the physical keyboard unit 1806.
The operations in the information processing methods described above are, optionally implemented by running one or more functional modules in information processing apparatus such as general purpose processors (e.g., as described above with respect to
The operations described above with reference to
Dedicated Select Key
As described below, the method 1900 provides an efficient mechanism for content selection at a portable multifunction device. This method is faster and easier to perform than conventional content selection methods and systems, e.g., conventional content selection through a conventional keyboard with multiple key inputs for selecting content. The method is also intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
The device 100 displays (1906) content of an electronic document on the display, and displays (1908) a cursor within the electronic document. The device then detects (1910) an input on a dedicated select key of the physical keyboard. In response to detecting the input, the device selects (1912) a portion of the content in the document closest to the cursor, and displays the portion of the content as selected content on the display.
In some embodiments, the content comprises (1914) editable text, and the portion of the content is a word located closest to the cursor. For example, in
In some embodiments, the device further detects (1916) an additional input on an arrow key of the physical keyboard. In response to detecting the additional input, the device expands the selected content in accordance with a direction associated with the arrow key. For example, in
Selecting a word closest to the cursor and providing the ability to adjust (e.g., expand or shrink) the selection using arrow keys is faster and easier to perform than conventional content selection methods and systems. Conventional keyboards often do not have a select button and a user cannot select content without using other input methods. Using the arrow keys for selection adjustment is also intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
It should be understood that the particular order in which the operations in
In accordance with some embodiments,
As shown in
The processing unit 2108 is configured to display (e.g., with the displaying unit 2110) content of an electronic document on the display unit 2102. The processing unit 2108 is further configured to display (e.g., with the displaying unit 2110) a cursor within the electronic document; detect (e.g., with the detecting unit 2112) an input on a dedicated select key of the physical keyboard unit 2106. In response to detecting the input, the processing unit 2108 is configured to select (e.g., with the selecting unit 2114) a portion of the content in the document closest to the cursor; and display (e.g., with the displaying unit 2110) the portion of the content as selected content on the display unit 2102.
In some embodiments, the physical keyboard unit 2106 is decoupled from the portable multifunction device and connected to an electronic device.
In some embodiments, the content comprises editable text, and the portion of the content is a word located closest to the cursor.
In some embodiments, the processing unit 2108 is further configured to detect (e.g., with the detecting unit 2112) an additional input on an arrow key of the physical keyboard unit; and in response to detect the additional input, expand (e.g., with the expanding unit 2116) the selected content in accordance with a direction associated with the arrow key.
The operations in the information processing methods described above are, optionally implemented by running one or more functional modules in information processing apparatus such as general purpose processors (e.g., as described above with respect to
The operations described above with reference to
Multifunction Tab Key
As described below, the method 2200 provides a multifunction tab key that can be used for pane switching in an active window and/or providing auto suggestion at a portable multifunction device. This method is faster and easier to perform than conventional pane switching and auto suggestion methods and systems, e.g., conventional pane switching and auto suggestion through a conventional keyboard with multiple key entries for pane switching and auto suggestion. The method is also intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
The device 100 detects (2206) an input on a dedicated tab key of the physical keyboard. In response to detecting the input, the device determines (2208) whether the portable multifunction device is in an editing mode to edit content. In accordance with a determination that the portable multifunction device is not in an editing mode, the device identifies (2210) an active window of the portable multifunction device and an active pane in the active window, and switches to a pane of the active window different from the active pane. In some embodiments, the active window comprises (2212) multiple panes with the active pane highlighted allowing navigation within the active pane.
For example, in
In some embodiments, using the dedicated tab key to switch to a different pane from the active pane includes (2214) ceasing to highlight the previously active pane, and highlighting the newly active pane. For example, initially the left pane 2304 containing a list of emails is highlighted as indicated by the shade in
The above examples relate to the active pane switching function associated with the tab key when the portable multifunction device is not in an editing mode. Referring back to
For example, in
It should be understood that the particular order in which the operations in
In accordance with some embodiments,
As shown in
The processing unit 2408 is configured to detect (e.g., with the detecting unit 2410) an input on a dedicated tab key of the physical keyboard unit 2406. In response to detecting the input, the processing unit 2408 is configured to determine (e.g., with the determining unit 2412) whether the portable multifunction device is in an editing mode to edit content. In accordance with a determination that the portable multifunction device is not in an editing mode, the processing unit 2408 is configured to identify (e.g., with the identifying unit 2414) an active window of the portable multifunction device and an active pane in the active window; and switch (e.g., with the switching unit 2416) to a pane of the active window different from the active pane. On the other hand, in accordance with a determination that the portable multifunction device is in an editing mode, the processing unit 2408 is configured to display (e.g., with the displaying unit 2418) a list of suggested words for selection to be inserted into the content.
In some embodiments, the physical keyboard unit 2406 is decoupled from the portable multifunction device and connected to an electronic device.
In some embodiments, the active window comprises multiple panes with the active pane highlighted allowing navigation within the active pane.
In some embodiments, switching to the pane of the active window different from the active pane includes ceasing to highlight (e.g., with the highlighting unit 2420) the active pane; and indicating the pane as the active pane by highlighting (e.g., with the highlighting unit 2420) the pane.
In some embodiments, the list of suggested words is generated based on a word closest to a cursor.
The operations in the information processing methods described above are, optionally implemented by running one or more functional modules in information processing apparatus such as general purpose processors (e.g., as described above with respect to
The operations described above with reference to
Dedicated Share Key
As described below, the method 2500 provides an efficient mechanism for sharing content among applications at a portable multifunction device or across devices. This method is faster and easier to perform than conventional content sharing methods and systems, e.g., conventional content sharing through a conventional keyboard with multiple keys for content sharing and multiple key entries for content sharing. The method is also intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
The device displays (2506) content on the display and detects (2508) an input on a dedicated share key of the physical keyboard. In response to detecting the input or selection of the dedicated share key, the device determines (2510) whether the content is editable. In accordance with a determination that the content is editable, the device displays (2512) an insert menu through which a user can insert content into the content. In some embodiments, the insert menu includes (2514) options corresponding to inserting photos, videos, music, calendar, web page, map and/or contacts into the content.
For example, in
Through the share menu, content from other applications on the device can be shared with the email application and quickly inserted into the editable content. This method is faster and easier to perform than conventional content sharing methods and systems, e.g., conventional insertion methods of first switching to a different application using one or more key entries, then selecting the content to be inserted using more key entries, and finally switching back to the editor for insertion of the selected content using yet more key entries. The method is also intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
Referring back to
For example, in
Having a multifunction share key for sharing non-editable content with other applications and for sharing content from other application with editable content is faster and easier to perform than conventional content sharing methods and systems. The method is also intuitive for users, as both sharing to and sharing from functions are implemented with one dedicated share key, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
It should be understood that the particular order in which the operations in
In accordance with some embodiments,
As shown in
The processing unit 2708 is configured to display (e.g., with the displaying unit 2710) content on the display unit 2702. The processing unit 2708 is further configured to detect (e.g., with the detecting unit 2712) an input on a dedicated share key of the physical keyboard unit 2706. In response to detecting the input, the processing unit 2708 is configured to determine (e.g., with the determining unit 2714) whether the content is editable. In accordance with a determination that the content is editable, the processing unit 2708 is configured to display (e.g., with the displaying unit 2710) an insert menu through which a user can insert content into the content; and in accordance with a determination that the content is not editable, the processing unit 2708 is configured to display (e.g., with the displaying unit 2710) a share menu through which a user can share a portion of the content.
In some embodiments, the physical keyboard unit 2706 is decoupled from the portable multifunction device and connected to an electronic device.
In some embodiments, the insert menu includes options corresponding to inserting photos, videos, music, calendar, web page, map, and/or contacts into the content.
In some embodiments, the portion of the content is selected prior to detecting the input on the dedicated share key.
In some embodiments, the share menu includes options corresponding to sharing the portion of the content with a user, device, and/or application through screen sharing, instant message, email, social media, and/or copy.
The operations in the information processing methods described above are, optionally implemented by running one or more functional modules in information processing apparatus such as general purpose processors (e.g., as described above with respect to
The operations described above with reference to
Dedicated Notification Key
As described below, the method 2800 provides an efficient mechanism for displaying notifications at a portable multifunction device. This method is faster and easier to perform than conventional notification displaying methods and systems, e.g., using a conventional keyboard with multiple key entries for displaying notifications. The method is also intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
The device detects (2806) an input on a dedicated notification key of the physical keyboard. The device then determines (2808) if the input is of a first type or a different second type. In some embodiments, the first type of the input is a tap on the dedicated notification key of the physical keyboard, and the second type of the input is a press-and-hold (or deep press or double tap) on the dedicated notification key of the physical keyboard.
Upon determining that the input is of the first type (2812): the device determines (2814) whether a new notification is available. In some embodiments, the new notification includes (2816) one or more new communications, one or more status changes, and/or one or more new posts. For example, in
For example, in
Having a dedicated notification key and displaying content of the notification in response to a tap on the notification key provides an efficient mechanism for displaying notifications at a portable multifunction device. Conventional keyboards do not have a dedicated notification key, and instead, the user must rely on shortcut keys or other input methods to view notifications. Thus the method described herein is faster and easier to perform than conventional notification display methods and systems. The method is also intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
Referring back to
Providing a preview of the notification center in response to a press-and-hold and/or deep press on the dedicated notification key is an efficient mechanism for displaying notifications at a portable multifunction device. Conventional keyboards do not have a dedicated notification key or a mechanism for previewing notifications. Thus the method described herein is faster and easier to perform than conventional notification display methods and systems. The method is also intuitive for users, e.g., while holding on to the notification key, the notification center is displayed and, upon release of the notification key, the notification ceases to display, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
It should be understood that the particular order in which the operations in
In accordance with some embodiments,
As shown in
The processing unit 3008 is configured to detect (e.g., with the detecting unit 3010) an input on a dedicated notification key of the physical keyboard unit 3006. The processing unit 3008 is further configured to determine (e.g., with the determining unit 3012) if the input is of a first type or a different second type. Upon determining that the input is of the first type, the processing unit 3008 is configured to determine (e.g., with the determining unit 3012) whether a notification is available. Upon determining that the notification is available, the processing unit 3008 is configured to activate (e.g., with the activating unit 3014) an application associated with the notification, and upon determining that no notification is available, processing unit 3008 is configured to display (e.g., with the displaying unit 3016) a notification center. On the other hand, upon determining that the input is of the second type, the processing unit 3008 is configured to display (e.g., with the displaying unit 3016) the notification center on the display unit 3002; and cease to display (e.g., with the displaying unit 3016) the notification center upon a release of the notification key.
In some embodiments, the physical keyboard unit 3006 is decoupled from the portable multifunction device and connected to an electronic device.
In some embodiments, the first type of the input is a tap on the dedicated notification key of the physical keyboard unit 3006, and the second type of the input is a press-and-hold or deep press on the dedicated notification key of the physical keyboard unit 3006.
In some embodiments, the notification includes one or more received communications, one or more status changes, and/or one or more new posts.
In some embodiments, upon determining that no notification is available, displaying a notification center includes sliding (e.g., with the sliding unit 3018) the notification center from one edge of the display unit 3002 into the display unit 3002 until the entire notification center is on the display unit 3002.
The processing unit 3008 is further configured to receive (e.g., with the receiving unit 3020) a second input on the dedicated notification key to dismiss the display of the notification center.
The operations in the information processing methods described above are, optionally implemented by running one or more functional modules in information processing apparatus such as general purpose processors (e.g., as described above with respect to
The operations described above with reference to
Touch-Strip
In
In addition to the physical keys, in
The keyboard 370 further comprises at least one elongate touch-sensitive strip 3108-1 disposed at the left side of the housing 3102, and at least one elongate touch-sensitive strip 3108-2 disposed at the right side of the housing 3102. Though not shown in
In some embodiments, a length of the touch-sensitive strip extends across a majority of each respective side of the housing. As shown in
In some embodiments, the keyboard 370 further comprises sensors, e.g. contact intensity sensors 3111, configured to acquire contact intensity information (e.g., pressure information or a proxy for pressure information) from user inputs. For example, in
In some embodiments, the contact intensity sensors can be used to sense a force on the arrow keys, and depending on the force, the velocity of scrolling can be adjusted. Similarly, the velocity of scrolling can be adjusted based on a speed of a swipe on the touch-sensitive strips.
For example, in
In some embodiments, the speed of the scrolling is proportional to the speed of the swipe. For example, in
Thus, swiping on the touch-sensitive strips towards/away from the screen scrolls the content on the display up/down. Further, the content scrolling is performed in accordance with the contact movement on the touch-sensitive strips, e.g., a swipe on the touch-sensitive strips causes slow scrolling and a flick on the strips causes faster scrolling with an inertia effect, e.g., the scrolling slows down near the end of the movement. Using these touch strips, the keyboard 370 provides hardware optimized for scrolling without the need for a full trackpad and prevents unnecessary reaching up from the keyboard to the touch screen display of the portable multifunction device.
Turning to
In response to detecting the contact 3124-3 within the top region of the touch-sensitive strip and the subsequent movement of the contact 3124-3 in a direction away from the top side of the housing and/or the at least one connector, the device 100 gradually slides the notification center interface onto the touch screen 112 as an overlay from the one edge of the touch screen 112, as shown in
In some implementations, in response to detecting a downward swipe starting from a top portion of the touch strip, the notification center is pulled down. Similarly, a upward swipe pulls-up/closes the notification center.
In some embodiments, the memory of the touch screen device 100 further contains instructions for: detecting via the at least one elongate touch-sensitive strip, while the notification center is displayed on the display of the touch screen device, a second contact on the at least one elongate touch-sensitive strip, followed by a movement of the second contact in a direction to the top side of the detachable keyboard and toward the at least one connector; and in response to detecting the second contact followed by the movement of the second contact, ceasing to display the notification on the display of the touch screen device.
For example, in
In some embodiments, the touch screen device comprises a processor and memory containing instructions for: displaying a first pane in an active window on a display of the touch screen device; detecting, via the at least one elongate touch-sensitive strip, a contact followed by a movement of the contact in a direction parallel to the top side of the detachable keyboard; and in response to detecting the contact followed by the movement of the first, sliding a second pane into the display of the touch screen device in accordance with the direction and movement of the first contact until the second pane replaces the first pane in the application interface on the display, wherein the first pane and the second pane are in a navigational hierarchy specified for the active window.
For example,
Thus, swiping side-to-side on the touch-sensitive strip reveals different navigational levels of the user interface hierarchy. Again, using the touch strips of the keyboard 370 reduces the need to reach up from the keyboard to the touch screen display of the portable multifunction device.
Though
It should be understood that the particular order in which the operations in
In accordance with some embodiments,
As shown in
In some embodiments, the detachable keyboard 3306 further includes contact intensity sensor units 3307 for detecting contact intensities on the plurality of physical keys.
In some embodiments, the detachable keyboard 3306 further includes microphones for detecting swipes on a surface.
In some embodiments, the at least one connector unit 3324 is an electrical contact.
In some embodiments, the at least one connector unit 3324 is an optical connector.
In some embodiments, the touch screen device 3300 (e.g., the portable multifunction device 100) includes a display unit 3302 configured to display user interfaces (editable content on the display unit) and configured to detect touch inputs (contacts), and a processing unit 3308 coupled with the display unit 3302. In some embodiments, the touch screen device 3300 includes one or more sensor units 3304 and the processing unit 3308 is coupled with the display unit 3302 and the one or more sensor units 3304. In some embodiments, processing unit 3308 further includes one or more of the following sub-units: detecting unit 3310, scrolling unit 3312, sliding unit 3314, and displaying unit 3316.
In some embodiments, the memory of the touch screen device 3300 includes instructions for detecting (e.g., with the detecting unit 3310), via the at least one elongate touch sensitive strip unit 3322, a swipe along the length of the at least one elongate touch sensitive strip unit 3322; and in response to detecting the swipe, scrolling (e.g., with the scrolling unit 3312) content displayed on the touch screen device 3300 in a direction associated with the swipe. In such embodiments, a velocity of the scrolling is proportional to a speed of the swipe detected along the length of the at least one elongate touch sensitive strip unit 3322.
In some embodiments, the touch screen device 3300 comprises a processor (e.g., the processing unit 3308) and memory containing instructions for: detecting (e.g., with the detecting unit 3310), via the at least one elongate touch sensitive strip unit 3322, a first contact in a predefined region of the at least one elongate touch sensitive strip unit 3322, followed by a movement of the first contact in a direction perpendicular to the top side of the detachable keyboard 3306 and away from the at least one connector unit 3324; and in response to detecting the first contact followed by the movement of the first contact, sliding (e.g., with the sliding unit 3314) a notification center as an overlay into a display unit (e.g., the display unit 3302) of the touch screen device 3300 in accordance with the movement of the first contact until the entire notification center is on the display unit 3302. In such embodiments, the memory further includes instructions for detecting (e.g., with the detecting unit 3310) a lift-off of the first contact; and after detecting the lift-off of the first contact and in accordance with a determination that the notification center is not entirely on the display unit of the touch screen device, continuing to slide (e.g., with the sliding unit 3314) the notification center. Also in such embodiments, the memory further includes instructions for, while the notification center is displayed on the display 3302 of the touch screen device 3300, detecting (e.g., with the detecting unit 3310), via the at least one elongate touch sensitive strip unit 3322, a second contact on the at least one elongate touch sensitive strip unit 3322, followed by a movement of the second contact in a direction to the top side of the detachable keyboard and toward the at least one connector unit 3324; and in response to detecting the second contact followed by the movement of the second contact, ceasing to display (e.g., with the displaying unit 3310) the notification on the display unit 3302 of the touch screen device 3300.
In some embodiments, the touch screen device comprises a processor unit (e.g., the processing unit 3308) and memory containing instructions for displaying (e.g., with the displaying unit 3310) a first pane in an application interface on a display unit (e.g., the display unit 3302) of the touch screen device 3300; detecting (e.g., with the detecting unit 3310), via the at least one elongate touch sensitive strip unit 3322, a contact followed by a movement of the contact in a direction parallel to the top side of the detachable keyboard 3306; and in response to detecting the contact followed by the movement of the first, sliding (e.g., with the sliding unit 3314) a second pane into the display unit 3302 of the touch screen device 3300 in accordance with the direction and movement of the first contact until the second pane replaces the first pane in the application interface on the display unit 3302, wherein the first pane and the second pane are in a navigational hierarchy specified for the application interface.
The operations in the information processing methods described above are, optionally implemented by running one or more functional modules in information processing apparatus such as general purpose processors (e.g., as described above with respect to
The operations described above with reference to
Keyboard Arrow Scrolling
As described below, the method 3400 provides an efficient mechanism for arrow key scrolling using a physical keyboard coupled with a portable multifunction device. This method is faster and easier to perform than conventional methods and systems, e.g., conventional arrow key scrolling using a conventional keyboard. The method is also intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
The device 100 displays (3406) content on the touch screen display. In some embodiments, the content is (3408) editable (e.g., the content includes editable text, such as an email in an email composition window) or non-editable (e.g., web content in a browser or a note/email in a non-editable document-display mode). The device then detects (3410) an input of an arrow key located on the physical keyboard, where one or more contact intensity sensors are coupled to the arrow key for detecting contact intensities of inputs on the arrow key (e.g., the sensors 374 in
For example, in
It should be noted that in the example shown in
This method for adjusting the scrolling speed in response to different types of input on the arrow key is intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. Conventional methods of content scrolling often move content at a fixed speed and by a fixed distance responsive to each arrow key stroke. In contrast, the methods disclosed herein take into consideration the user's intent and scroll the content at various speeds responsive to different types of inputs. The repetitive pressing of an arrow key, e.g., double, triple, or quadruple tap etc., may indicate that the user wants faster scrolling. Thus, increasing the speed responsive to the multi-tap creates a more efficient human-machine. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
Returning to the method 3400, in
Adjusting the scrolling speed in accordance with the force detected by the sensors is intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. For example, when a user wants faster scrolling, the user may press harder on the key. Thus, the more efficient scrolling mechanism requires less computing resources, thereby increasing battery life of the device.
Returning to the method 3400, in
Providing scrolling with this inertia effect is intuitive for users, e.g., like a user taking their foot of an accelerator pedal of a vehicle and the car rolling slowly to rest. This reduces the cognitive burden on the user and creates a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
Referring back to the method 3400, in
In some embodiments, the expanding is implemented by increasing the line spacing between the lines until the threshold pressure is reached, and thereafter the entire text scrolls as normal. Based on a direction associated with the arrow key, one or more lines are moved in the direction associated with the arrow key to make room for the increased line spacing. The combination of line movement and the increase in line spacing creates the visual effect of stretching the content. For example, in
Stretching the content before scrolling provides a natural scrolling experience, and provides feedback to the user that scrolling will occur. This method is intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
Referring back to the method 3400, in
Adjusting the scrolling speed proportionate to the force detected by the sensors is intuitive for users, thereby reducing the cognitive burden on the user, and creating a more efficient human-machine interface. For example, when a user wants twice the speed of scrolling, the user may press twice as hard on the key. Thus, the more efficient scrolling mechanism requires less computing resources, thereby increasing battery life of the device.
It should be understood that the particular order in which the operations in
In accordance with some embodiments,
As shown in
The processing unit 3608 is configured to detect (e.g., with the detecting unit 3612) an input of an arrow key located on the physical keyboard unit 3606, where one or more contact intensity sensor units 3607 are coupled to the arrow key for detecting contact intensities of inputs on the arrow key. In response to detecting the input, the processing unit 3608 is configured to determine (e.g., with the determining unit 3614) whether the input is of a first type or a second type different from the first type. Upon determining that the input is of the first type, the processing unit 3608 is configured to scroll (e.g., with the scrolling unit 3616) the content on the touch screen display unit 3602 at a first speed faster than a normal scrolling speed. When the input is of the first type, the processing unit 3608 is further configured to detect (e.g., with the detecting unit 3612) a continued contact with the arrow key, and in response to detecting the continued contact with the arrow key, maintain (e.g., with the scrolling unit 3616) the first speed of the scrolling faster than the normal scrolling speed. On the other hand, upon determining that the input is of the second type, the processing unit 3608 is configured to determine (e.g., with the determining unit 3614) a contact intensity of the input and scroll (e.g., with the scrolling unit 3616) the content on the display at a second speed determined based on the contact intensity of the input.
In some embodiments, the physical keyboard unit 3606 is decoupled from the portable multifunction device and connected to an electronic device.
In some embodiments, the content is editable or non-editable.
In some embodiments, the first type is a multi-tap on the arrow key.
In some embodiments, the second type is a press-and-hold on the arrow key.
In some embodiments, the processing unit 3608 is further configured to detect (e.g., with the detecting unit 3612) a lift-off of the input. In response to detecting the lift-off, the processing unit 3608 is further configured to continue to scroll (e.g., with the scrolling unit 3616) the content on the touch screen display unit 3602 with gradual decreasing speed after detecting (e.g., with the detecting unit 3612) the lift-off of the input.
In some embodiments, the processing unit 3608 is further configured to expand (e.g., with the expanding unit 3618) the content before scrolling (e.g., with the scrolling unit 3616) the content on the touch screen display unit 3602.
In some embodiments, the processing unit 3608 is further configured to detect (e.g., with the detecting unit 3612) an increase of contact intensity of the input. In response to detecting the increase of the contact intensity of the input, the processing unit 3608 is configured to increase (e.g., with the scrolling unit 3616) the first or second speed proportional to the increase of the contact intensity.
The operations in the information processing methods described above are, optionally implemented by running one or more functional modules in information processing apparatus such as general purpose processors (e.g., as described above with respect to
The operations described above with reference to
Inchworm Movement
As described below, the method 3700 provides an efficient and intuitive mechanism for scrolling content using an arrow key on a physical keyboard coupled with a portable multifunction device. The method changes how scrolling behaves by moving portions of chunks of content together. The visual effect is an inchworm-like motion, where the content appears to double-up on itself at intervals, then stretch itself straight again when advancing. The scrolling behavior of keeping chunks together reduces the cognitive burden on the user, and creates a more efficient human-machine interface. A more efficient input mechanism also requires less computing resources, thereby increasing battery life of the device.
The device 100 displays (3706) content of an electronic document on the display, the content includes a first portion displayed at a first location and a second portion displayed at a second location adjacent to the first location. The content is (3708) editable (e.g., the content includes editable text, such as an email in an email composition window) or non-editable (e.g., the content is web content in a browser). In some embodiments, the first portion and the second portion are (3710) paragraphs, lines, or images.
For example,
Referring back to
For example, in
In some embodiments, one or more contact intensity sensors are coupled to (3716) the arrow key for detecting contact intensities of inputs on the arrow key, and the device further detects an increase of a contact intensity of the input. In response to detecting the increase of the contact intensity of the input, the speed of moving the first and/or second portions is increased at a rate proportionate to the increase of the contact intensity.
It should be understood that the particular order in which the operations in
In accordance with some embodiments,
As shown in
The processing unit 3908 is configured to detect (e.g., with the detecting unit 3912) an input on an arrow key located on the keyboard. In response to detecting the input: the processing unit 3908 is configured to move (e.g., with the moving unit 3914) the first portion to a third location in a direction associated with the arrow key, while maintaining the second portion stationary at the second location. Subsequent to moving the first portion, the processing unit 3908 is configured to move (e.g., with the moving unit 3914) the second portion to a fourth location in a direction associated with the arrow key, while maintaining (e.g., with the maintaining unit 3916) the first portion stationary at the third location.
In some embodiments, the physical keyboard unit 3906 is decoupled from the portable multifunction device and connected to an electronic device.
In some embodiments, the content is editable or non-editable.
In some embodiments, the first portion and the second portion are paragraphs, lines, or images.
In some embodiments, one or more contact intensity sensor units (e.g., the sensor units 3907) are coupled to the arrow key for detecting contact intensities of inputs on the arrow key, and the processing unit 3908 is further configured to detect (e.g., with the detecting unit 3912) an increase of a contact intensity of the input; and in response to detecting the increase of the contact intensity of the input, the processing unit 3908 is configured to increase (e.g., with the moving unit 3914) a speed of moving the first or second portion proportionate to the increase of the contact intensity.
The operations in the information processing methods described above are, optionally implemented by running one or more functional modules in information processing apparatus such as general purpose processors (e.g., as described above with respect to
The operations described above with reference to
Switching Between Virtual Keyboards
The device 100 displays (4002) a first virtual keyboard of a first size on the display. In some embodiments, the first virtual keyboard is (4004) a QWERTY keyboard, a foreign language keyboard, an emoji keyboard, a drawing pad, or a photo album. For example, in
In response to detecting a pre-defined gesture on the display, the device 100 concurrently displays (4006) multiple keyboards, including the first keyboard reduced to a second size smaller than the first size. In some embodiments, each of the multiple keyboards is (4008) a QWERTY keyboard, a foreign language keyboard, an emoji keyboard, a drawing pad, or a photo album. For example,
In some embodiments, the pre-defined gesture is (4014) a pinch or a deep press. For example, in
In some embodiments, the pre-defined gesture is (4016) a swipe from an edge of the first keyboard. For example, in
Referring back to
For example, in
Referring back to
It should be understood that the particular order in which the operations in
In accordance with some embodiments,
As shown in
In some embodiments, the processing unit 4208 is configured to display a first virtual keyboard of a first size on the display unit 4202 (e.g., with the display enabling unit 4210). In response to detecting a pre-defined gesture on the display unit 4202 (e.g., with the detecting unit 4212), the processing unit 4208 is configured to concurrently display multiple keyboards, including the first keyboard reduced to a second size smaller than the first size (e.g., with the display enabling unit 4210). The processing unit 4208 is further configured to detect a selection of one of the multiple keyboards (e.g., with the detecting unit 4212), cease to display the multiple keyboards (e.g., with the display enabling unit 4210), and display the selected one of the multiple keyboards on the display unit 4202 at the first size (e.g., with the display enabling unit 4210).
In some embodiments, the first virtual keyboard is a QWERTY keyboard, a foreign language keyboard, an emoji keyboard, a drawing pad, or a photo album.
In some embodiments, the each of the multiple keyboards is a QWERTY keyboard, a foreign language keyboard, an emoji keyboard, a drawing pad, or a photo album. In some embodiments, the multiple keyboards are displayed in a grid. In some embodiments, the multiple keyboards are displayed in a scrollable list. In some embodiments, the pre-defined gesture is a pinch or a deep press. In some embodiments, the pre-defined gesture is a swipe from an edge of the first keyboard.
In some embodiments, currently enabling display of the multiple keyboards, including the first keyboard reduced to a second size smaller than the first size includes moving the first keyboard out of the display unit 4202 in a direction associated with the pre-defined gesture; and moving a second keyboard of the multiple keyboards in the direction into the display unit 4202.
In some embodiments, the pre-defined gesture is an initial contact within a predefined region on the display unit 4202 followed by a movement of the contact on the display unit 4202 in a pre-defined direction.
The operations in the information processing methods described above are, optionally implemented by running one or more functional modules in information processing apparatus such as general purpose processors (e.g., as described above with respect to
The operations described above with reference to
Virtual Keyboard Without Shift Key
The device 100 displays (4302) on a display a virtual keyboard (e.g., QWERTY keyboard 4402 in
The device 100 detects (4304) a contact at a location on the virtual keyboard followed by a change in the input, e.g., a movement of the contact in a direction. In some embodiments, the contact is a swipe gesture, or a deep press gesture. For example, as shown in
For example,
In some embodiments, the change of the display is animated. For example, starting with the lower case “a” key, the device 100 begins to “flip” the lower case “a” key to reveal an upper case “A” key (similar to flipping over a playing card). The device 100 then begins to sequentially “flip” the other lower case keys on the QWERTY keyboard 4402 to reveal the corresponding upper case keys underneath, in an order based on each key's distance from the upward swipe gesture 4404. This animation gives the appearance of a “ripple effect” over the keys of the QWERTY keyboard 4402. At the completion of the animation, as shown in
In some embodiments, the second appearance may be lower case characters (e.g., as shown in
Referring back to
In some embodiments, flipping other keys on the virtual keyboard includes (4310): sequentially flipping the other keys on the virtual keyboard based on a distance between each of the other keys and the key closest to the gesture. In other words, the timing of each key flip may be different depending on the distance from the key where the contact is detected. For example, in
In some embodiments, the direction is (4312) upward; the first appearance is lower case; and the second appearance is upper case. For example, as shown in
In some embodiments, the direction is (4314) downward; the first appearance is upper case; and the second appearance is lower case. For example, as shown in
It should be understood that the particular order in which the operations in
In accordance with some embodiments,
As shown in
In some embodiments, the processing unit 4508 is configured to display on the display unit 4502 a virtual keyboard without a shift key, where keys on the keyboard have a first appearance (e.g., with the display enabling unit 4510). The processing unit 4508 is further configured to detect a contact at a location on the virtual keyboard followed by a movement of the contact in a direction (e.g., with the detecting unit 4512). In response to detecting the contact at the location on the virtual keyboard followed by the movement of the contact in the direction, the processing unit 4508 is configured to change the appearance of the keys on the keyboard to a second appearance different from the first appearance (e.g., with the changing unit 4514).
In some embodiments, changing the appearance of the keys on the keyboard to the second appearance different from the first appearance includes animating a key closest to the location by flipping a respective second appearance of the key in the direction to reveal the first appearance of the key; and flipping other keys on the virtual keyboard by flipping a respective second appearance of the other keys in the direction to reveal the first appearance of the other keys.
In some embodiments, flipping other keys on the virtual keyboard includes sequentially flipping the other keys on the virtual keyboard based on a distance between each of the other key and the key. In some embodiments, the direction is upward; the first appearance is lower case; and the second appearance is upper case. In some embodiments, the direction is downward; the first appearance is upper case; and the second appearance is lower case.
The operations in the information processing methods described above are, optionally implemented by running one or more functional modules in information processing apparatus such as general purpose processors (e.g., as described above with respect to
The operations described above with reference to
Switching Between Text and Video Communications
Referring now to
Referring back to
In some embodiments, the application is (4606) a video conferencing application (e.g., as shown in
In some embodiments, the user's intention to (4608) perform the action associated with another application different from the instant messenger application is identified by: analyzing terms contained in the instant message (e.g., analyzing the text entered by the user of the device 100 or the user of the other device); and determining the existence of a term associated with the new application from the term. For example, as shown in
Referring back to
In some embodiments, the affordance is (4612) displayed in a quick reply area of the user interface of the instant messenger application. For example, as shown in
Referring back to
Referring back to
Turning now to
Referring back to
Referring back to
In some embodiments, after the device fades-in the instant messenger application interface, a visual history of the video conferencing session including key frames captured during the conferencing session can be inserted into the messenger application interface. For example, in
Referring back to
Turning now to
Referring back to
In some embodiments, prior to determining the user's intention to perform the action, the device invokes (4632) the application in the background such that in response to detecting the user input on the affordance, the application user interface can be displayed within the instant messenger application user interface almost instantaneously, e.g., applications such as FaceTime® can be connected ahead of time in the background and the video can be displayed almost instantaneously within the instant messenger application user interface.
It should be understood that the particular order in which the operations in
In accordance with some embodiments,
As shown in
In some embodiments, the processing unit 4808 is configured to display a user interface of an instant messenger application on the display unit 4802 (e.g., with the display enabling unit 4810). The processing unit 4808 is further configured to analyze an instant message displayed in the user interface of the instant messenger application to identify a user's intention to perform an action associated with an application different from the instant messenger application (e.g., with the analyzing unit 4812). Upon determining an intention to perform the action, the processing unit 4808 is configured to display an affordance to perform the action in the user interface of the instant messenger application (e.g., with the display enabling unit 4810). While displaying the affordance in the user interface of the instant messenger application, the processing unit 4808 is configured to detect a user input on the affordance in the user interface of the instant messenger application (e.g., with the detecting unit 4814); and in response to detecting the user input, the processing unit 4808 is configured to facilitate the action (e.g., with the facilitating unit 4816).
In some embodiments, the application is a video conferencing application, a peer-to-peer payment application, email application, or display sharing application. In some embodiments, the user's intention to perform the action associated with the application different from the instant messenger application is identified by analyzing terms contained in the instant message; and determining existence of a term associated with the application in the terms. In some embodiments, the affordance is displayed in a quick reply area of the user interface of the instant messenger application. In some embodiments, the user input is a tap on the affordance. In some embodiments, the affordance is displayed within an input area of the user interface; and facilitating the action includes ceasing to display the input area; fading out the user interface of the instant messenger application, the user interface including a plurality of instant messages including the instant message; and fading in a user interface of the application different from the instant messenger. In some embodiments, facilitating the action includes activating and executing the application within the instant messenger application.
In some embodiments, the application is a video conferencing application; the action is to execute the video conferencing application to record frames of a video conferencing and provide a video conferencing user interface to display the frames; and facilitating the action further comprises, upon completion of executing the video conferencing application: (a) fading out the video conferencing user interface; (b) fading in the user interface of the instant messenger application; and (c) inserting a visual history of the video conferencing into the user interface including key frames from the frames.
In some embodiments, the completion of executing the video conferencing application is determined in response to detecting a second user input on the video conferencing user interface displayed within the user interface of the instant messenger application.
In some embodiments, the user interface of the instant messenger application includes an input area containing the affordance and a virtual keyboard, and an output area displaying the instant messages; the user input is a swipe with an initial contact inside the output area followed a movement in a direction across the touch-sensitive display unit 4802; and facilitating the action includes: (a) fading in an application user interface of the application into the touch-sensitive display unit 4802 in accordance with the direction of the movement; and (b) sliding the user interface out of the touch-sensitive display unit 4802 in accordance with the direction of the movement until the affordance and the virtual keyboard are shifted out of the touch-sensitive display unit 4802, wherein the input area and the output area of the user interface are superimposed on the application user interface, and the instant messages are displayed semitransparent over the application user interface.
In some embodiments, the processing unit 4808 is configured to receive a second user input over the application user interface in a region not on the instant messages (e.g., with the receiving unit 4818); and in response to detecting the second user input, the processing unit 4808 is configured to cease to display the user interface of the instant messenger application and maintain the display of the application user interface of the application (e.g., with the display enabling unit 4810).
In some embodiments, the processing unit 4808 is configured to, prior to upon determining the user's intention to perform the action, invoke the application in the background (e.g., with the invoking unit 4820).
The operations in the information processing methods described above are, optionally implemented by running one or more functional modules in information processing apparatus such as general purpose processors (e.g., as described above with respect to
The operations described above with reference to
Mirrored Control in Instant Messages
Referring now to
The device 100 displays (4908) the item in the first instant messenger application, wherein the item is concurrently displayed in the second instant messenger application. For example, in
Referring back to the method 4900, in
Referring back to the method 4900, in
For example,
Referring back to the method 4900, in
For example,
Referring back to method 4900, in
In some embodiments, prior to receiving information corresponding to the interaction: the device receives (4932) information corresponding to a contact on the item displayed in the first instant messenger application or the second instant messenger application for a duration longer than a predetermined threshold (e.g., before the leftward swipe 5008 in
It should be understood that the particular order in which the operations in
In accordance with some embodiments,
As shown in
In some embodiments, the processing unit 5108 is configured to send an item from a first instant messenger application running on the first electronic device to a second instant messenger application running on a second electronic device (e.g., with the sending unit 5110). The processing unit 5108 is further configured to display the item in the first instant messenger application (e.g., with the display enabling unit 5112), where the item is concurrently displayed in the second instant messenger application. The processing unit 5108 is further configured to receive information corresponding to an interaction with the item (e.g., with the receiving unit 5114), and in response to receiving information corresponding to the interaction, update the item on the first electronic device (e.g., with the updating unit 5116), where the update to the item is mirrored on the second electronic device.
In some embodiments, the item is an image. In some embodiments, the item is a gift message. In some embodiments, the interaction is a swipe in a first direction on the item, and updating the item includes scrolling the item in the first direction. In some embodiments, the interaction is a contact on the item displayed in the second instant messenger application for a duration longer than a predetermined threshold; and updating the item includes unwrapping the item. In some embodiments, prior to the unwrapping, the item includes obscured content, and unwrapping the item includes enabling the display of an animation of the unwrapping and fading in the obscured content. In some embodiments, the unwrapping is mirrored on the first device and the second device, and the mirroring on the first device includes concurrently enabling display of the unwrapping in the first instant messenger application and enabling display of the unwrapping in an input area of the first instant messenger application.
In some embodiments, the processing unit 5108 is configured to receive a second item from the second instant messenger application to the first instant messenger application (e.g., with the receiving unit 5114). The processing unit 5108 is configured to display the second item in the first instant messenger application (e.g., with the display enabling unit 5112). The second item is concurrently displayed in the second instant messenger application. Information corresponding to a second interaction with the second item (e.g., with the receiving unit 5114) is then received, and while updating the item on the first electronic device and in response to receiving information corresponding to the interaction with the item, where the update to the item is mirrored on the second electronic device, in response to receiving information corresponding to the second interaction with the second item, the processing unit 5108 is configured to concurrently update the second item on the first electronic device (e.g., with the updating unit 5116), where the update to the second item is mirrored on the second electronic device.
In some embodiments, the second interaction is a second swipe on the second item in a second direction, different from the first direction; and updating the second item includes scrolling the second item in the second direction. In some embodiments, the interaction is a tap on an affordance representing the item in an input area of the first instant messenger application; and the item is sent immediately in response to detecting the interaction. In some embodiments, the interaction is a press-and-hold or a deep press on an affordance representing the item displayed in an input area of the first instant messenger application; and the item is sent after a predetermined amount of time in response to detecting the interaction. In some embodiments, the predetermined amount of time is selectable by a user.
In some embodiments, the processing unit 5108 is configured to, prior to receiving information corresponding to the interaction, receive information corresponding to a contact on the item displayed in the first instant messenger application or the second instant messenger application for a duration longer than a predetermined threshold (e.g., with the receiving unit 5114). In response to detecting the contact for the duration longer than the predetermined threshold, the processing unit is configured to activate a mirrored control mode (e.g., with the activating unit 5118).
The operations in the information processing methods described above are, optionally implemented by running one or more functional modules in information processing apparatus such as general purpose processors (e.g., as described above with respect to
The operations described above with reference to
The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best use the invention and various described embodiments with various modifications as are suited to the particular use contemplated.
This application claims priority to U.S. Provisional Application Ser. No. 62/505,778, filed May 12, 2017, entitled “Portable Computing Input Devices and Methods,” which is incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
62505778 | May 2017 | US |