Apple today filed a lawsuit against HTC for infringing on 20 Apple patents related to the iPhones user interface, underlying architecture and hardware.
The lawsuit was filed concurrently with the U.S. International Trade Commission (ITC) and in U.S. District Court in Delaware.
We can sit by and watch competitors steal our patented inventions, or we can do something about it. Weve decided to do something about it, said Steve Jobs, Apples CEO. We think competition is healthy, but competitors should create their own original technology, not steal ours.
The products that Apple says violate its patents include, but are not limited to, the following:
HTC Nexus One, a/k/a Google Nexus One
HTC Touch Pro
HTC Touch Diamond
HTC Touch Pro2
HTC Tilt II
HTC Pure
HTC Imagio
HTC Dream, a/k/a T-Mobile G1
HTC myTouch
HTC Hero
HTC HD2
HTC Droid Eris
Apple seeks remedies for HTC's infringement of the following U.S. patents assigned to Apple [via MacDailyNews]:
7,362,331: Time-Based, Non-Constant Translation Of User Interface Objects Between States: The present invention relates to a method for moving objects within the graphical user interface (GUI) of an operating system in a manner that provides a transitional effect between window states, which is pleasing to the user. This transitional effect includes changing the shape of a window while scaling and moving the window between two different sizes and positions. In one embodiment of the present invention, the transitional effect may be employed as a window is minimized into an icon, or restored from an icon. In another embodiment of the present invention, the transitional effect is employed as a window is minimized within its title bar, or restored therefrom. The rate of movement of objects is controlled in a non-linear manner, to further enhance the pleasing effect.
7,479,949: Touch Screen Device, Method, And Graphical User Interface For Determining Commands By Applying Heuristics: A computer-implemented method for use in conjunction with a computing device with a touch screen display comprises: detecting one or more finger contacts with the touch screen display, applying one or more heuristics to the one or more finger contacts to determine a command for the device, and processing the command. The one or more heuristics comprise: a heuristic for determining that the one or more finger contacts correspond to a one-dimensional vertical screen scrolling command, a heuristic for determining that the one or more finger contacts correspond to a two-dimensional screen translation command, and a heuristic for determining that the one or more finger contacts correspond to a command to transition from displaying a respective item in a set of items to displaying a next item in the set of items.
7,657,849: Unlocking A Device By Performing Gestures On An Unlock Image: A device with a touch-sensitive display may be unlocked via gestures performed on the touch-sensitive display. The device is unlocked if contact with the display corresponds to a predefined gesture for unlocking the device. The device displays one or more unlock images with respect to which the predefined gesture is to be performed in order to unlock the device. The performance of the predefined gesture with respect to the unlock image may include moving the unlock image to a predefined location and/or moving the unlock image along a predefined path. The device may also display visual cues of the predefined gesture on the touch screen to remind a user of the gesture.
7,469,381: List Scrolling And Document Translation, Scaling, And Rotation On A Touch-Screen Display: In accordance with some embodiments, a computer-implemented method for use in conjunction with a device with a touch screen display is disclosed. In the method, a movement of an object on or near the touch screen display is detected. In response to detecting the movement, an electronic document displayed on the touch screen display is translated in a first direction. If an edge of the electronic document is reached while translating the electronic document in the first direction while the object is still detected on or near the touch screen display, an area beyond the edge of the document is displayed. After the object is no longer detected on or near the touch screen display, the document is translated in a second direction until the area beyond the edge of the document is no longer displayed.
5,920,726: System And Method For Managing Power Conditions Within A Digital Camera Device: A system and method for recovering from a power failure in a digital camera comprises a power manager for detecting and handling power failures, an interrupt handler for responsively incrementing a counter device, service routines which register to receive notification of the power failure, and a processor for evaluating the counter and providing notification of the power failure to the service routines which may then assist the digital camera to recover from the power failure.
7,633,076: Automated Response To And Sensing Of User Activity In Portable Devices: The various methods and devices described herein relate to devices which, in at least certain embodiments, may include one or more sensors for providing data relating to user activity and at least one processor for causing the device to respond based on the user activity which was determined, at least in part, through the sensors. The response by the device may include a change of state of the device, and the response may be automatically performed after the user activity is determined.
5,848,105: GMSK Signal Processors For Improved Communications Capacity And Quality: A method and apparatus for separating and removing distortion from interfering co-channel signals and suppressing adjacent-channel interfering signals of the Gaussian Minimum-Shift Keyed (GMSK) or other MSK type with filtering structures that exploit the cyclostationarity of the received GMSK or other MSK signals in order to accommodate a greater number (or the same number, but with greater quality) of transmitted signals received by one or more antennas than can be accommodated by existing filters. The parameters in these filtering structures are adapted by either of two adaptation apparatus that exploit both the known training sequence that is transmitted in most wireless communications systems, and the constant modulus property exhibited by each of the transmitted GMSK or other MSK signals.
7,383,453: Conserving Power By Reducing Voltage Supplied To An Instruction-Processing Portion Of A Processor: One embodiment of the present invention provides a system that facilitates reducing static power consumption of a processor. During operation, the system receives a signal indicating that instruction execution within the processor is to be temporarily halted. In response to this signal, the system halts an instruction-processing portion of the processor, and reduces the voltage supplied to the instruction-processing portion of the processor. Full voltage is maintained to a remaining portion of the processor, so that the remaining portion of the processor can continue to operate while the instruction-processing portion of the processor is in reduced power mode.
5,455,599: Object-Oriented Graphics System: An object-oriented graphic system is disclosed including a processor with an attached display, storage and object-oriented operating system. The graphic system builds a component object in the storage of the processor for managing graphic processing. The processor includes an object for connecting one or more graphic devices to various objects responsible for tasks such as graphic accelerators, frame buffers, page description languages and vector engines. The system is fully extensible and includes polymorphic processing built into each of the support objects.
6,424,354: Object-Oriented Event Notification System With Listener Registration Of Both Interests And Methods: An event notification system for propagating object-change information. The notification system supports change notification without queues in an object-based application or operating system and can be scaled to propagate large numbers of events among a large plurality of objects. The event notification system interconnects a plurality of event source and event receiver objects. Any object, such as a command object, may operate as either an event receiver object, an event source object or both. A notification object is created by a source object to transport, from a source to a receiver, descriptive information about a change, which includes a particular receiver object method and a pointer to the source object that sent the notification. A receiver object must register with a connection object its "interest" in receiving notification of changes; specifying both the event type and the particular source object of interest. After establishing such connections, the receiver object receives only the events of the specified type for the source objects "of interest" and no others. This delegation of event selection avoids central event queuing altogether and so limits receiver object event processing that the invention can be scaled to large systems operating large numbers of objects.
5,481,721: Method For Providing Automatic And Dynamic Translation Of Object Oriented Programming Language-Based Message Passing Into Operating System Message Passing Using Proxy Objects: The present invention provides a method and apparatus for the distribution of objects and the sending of messages between objects that are located in different processes. Initially, a "proxy" object is created in the same process as a sender object. This proxy acts as a local receiver for all objects in the local program. When the proxy receives a message, the message is encoded and transmitted between programs as a stream of bytes. In the remote process, the message is decoded and executed as if the sender was remote. The result follows the same path, encoded, transmitted, and then decoded back in the local process. The result is then provided to the sending object.
5,519,867: Object-Oriented Multitasking System: An apparatus for enabling an object-oriented application to access in an object-oriented manner a procedural operating system having a native procedural interface is disclosed. The apparatus includes a computer and a memory component in the computer. A code library is stored in the memory component. The code library includes computer program logic implementing an object-oriented class library. The object-oriented class library comprises related object-oriented classes for enabling the application to access in an object-oriented manner services provided by the operating system. The object-oriented classes include methods for accessing the operating system services using procedural function calls compatible with the native procedural interface of the operating system. The computer processes object-oriented statements contained in the application and defined by the class library by executing methods from the class library corresponding to the object-oriented statements. The object-oriented application includes support for multi-tasking.
5,566,337: Method And Apparatus For Distrubuting Evenets In An Operating System: In a computer including an operating system, an event producer for generating an event and detecting that an event has occurred in the computer and an event consumer which need to be informed when events occur in the computer, a system for distributing events including a store for storing a specific set of events of which the at least one event consumer is to be informed, an event manager control unit for receiving the event from the event producer, comparing the received event to the stored set of events, and distributing an appropriate event to an appropriate event consumer, and a distributor for receiving the event from the control unit and directing the control unit to distribute an appropriate event to an appropriate event consumer.
5,929,852: Encapsulated Network Entity Reference Of A Network Component System: A network-oriented component system efficiently accesses information from a network resource located on a computer network by creating an encapsulated network entity that contains a reference to that resource. The encapsulated entity is preferably implemented as a network component stored on a computer remotely displaced from the referenced resource. In addition, the encapsulated entity may be manifested as a visual object on a graphical user interface of a computer screen. Such visual manifestation allows a user to easily manipulate the entity in order to display the contents of the resource on the screen or to electronically forward the entity over the network.
5,946,647: System And Method For Performing An Action On A Structure In Computer-Generated Data: A system and method causes a computer to detect and perform actions on structures identified in computer data. The system provides an analyzer server, an application program interface, a user interface and an action processor. The analyzer server receives from an application running concurrently data having recognizable structures, uses a pattern analysis unit, such as a parser or fast string search function, to detect structures in the data, and links relevant actions to the detected structures. The application program interface communicates with the application running concurrently, and transmits relevant information to the user interface. Thus, the user interface can present and enable selection of the detected structures, and upon selection of a detected structure, present the linked candidate actions. Upon selection of an action, the action processor performs the action on the detected structure.
5,969,705: Message Protocol For Controlling A User Interface From An Inactive Application Program: Method and apparatus for a first process operative in a computer system controlling a user interface on a computer system display under control of a second process operative in the computer system. An event handler is installed for the second process, the event handler servicing events generated for controlling the user interface display under control of the second process. The first process may then perform a first set of functions in the computer system. The first process generates events for controlling the user interface display, the events related to the functions performed by the first process. The event handler receives the events generated by the first process and updates the user interface on the computer system display according to the events generated by the first process and received by the event handler.
6,275,983: Object-Oriented Operating System: An apparatus for enabling an object-oriented application to access in an object-oriented manner a procedural operating system having a native procedural interface is disclosed. The apparatus includes a computer and a memory component in the computer. A code library is stored in the memory component. The code library includes computer program logic implementing an object-oriented class library. The object-oriented class library comprises related object-oriented classes for enabling the application to access in an object-oriented manner services provided by the operating system. The object-oriented classes include methods for accessing the operating system services using procedural function calls compatible with the native procedural interface of the operating system. The computer processes object-oriented statements contained in the application and defined by the class library by executing methods from the class library corresponding to the object-oriented statements.
6,343,263: Real-Time Signal Processing System For Serially Transmitted Data: A data transmission system having a real-time data engine for processing isochronous streams of data includes an interface device that provides a physical and logical connection of a computer to any one or more of a variety of different types of data networks. Data received at this device is presented to a serial driver, which disassembles different streams of data for presentation to appropriate data managers. A device handler associated with the interface device sets up data flow paths, and also presents data and commands from the data managers to a real-time data processing engine. Flexibility to handle any type of data, such as voice, facsimile, video and the like, that is transmitted over any type of communication network with any type of real-time engine is made possible by abstracting the functions of each of the elements of the system from one another. This abstraction is provided through suitable interfaces that isolate the transmission medium, the data manager and the real-time engine from one another.
5,915,131: Method And Apparatus For Handling I/O Requests Utilizing Separate Programming Interfaces To Access Separate I/O Service: A computer system handling multiple applications wherein groups of I/O services are accessible through separate application programming interfaces. Each application has multiple application programming interfaces by which to access different families of I/O services, such as I/O devices.
RE39,486: Extensible, Replaceable Network Component System: An extensible and replaceable network-oriented component system provides a platform for developing networking navigation components that operate on a variety of hardware and software computer systems. These navigation components include key integrating components along with components configured to deliver conventional services directed to computer networks, such as Gopher-specific and Web-specific components. Communication among these components is achieved through novel application programming interfaces (APIs) to facilitate integration with an underlying software component architecture. Such a high-modular cooperating layered-arrangement between the network component system and the component architecture allows any existing component to be replaced, and allows new components to be added, without affecting operation of the network component system.
The lawsuit was filed concurrently with the U.S. International Trade Commission (ITC) and in U.S. District Court in Delaware.
We can sit by and watch competitors steal our patented inventions, or we can do something about it. Weve decided to do something about it, said Steve Jobs, Apples CEO. We think competition is healthy, but competitors should create their own original technology, not steal ours.
The products that Apple says violate its patents include, but are not limited to, the following:
HTC Nexus One, a/k/a Google Nexus One
HTC Touch Pro
HTC Touch Diamond
HTC Touch Pro2
HTC Tilt II
HTC Pure
HTC Imagio
HTC Dream, a/k/a T-Mobile G1
HTC myTouch
HTC Hero
HTC HD2
HTC Droid Eris
Apple seeks remedies for HTC's infringement of the following U.S. patents assigned to Apple [via MacDailyNews]:
7,362,331: Time-Based, Non-Constant Translation Of User Interface Objects Between States: The present invention relates to a method for moving objects within the graphical user interface (GUI) of an operating system in a manner that provides a transitional effect between window states, which is pleasing to the user. This transitional effect includes changing the shape of a window while scaling and moving the window between two different sizes and positions. In one embodiment of the present invention, the transitional effect may be employed as a window is minimized into an icon, or restored from an icon. In another embodiment of the present invention, the transitional effect is employed as a window is minimized within its title bar, or restored therefrom. The rate of movement of objects is controlled in a non-linear manner, to further enhance the pleasing effect.
7,479,949: Touch Screen Device, Method, And Graphical User Interface For Determining Commands By Applying Heuristics: A computer-implemented method for use in conjunction with a computing device with a touch screen display comprises: detecting one or more finger contacts with the touch screen display, applying one or more heuristics to the one or more finger contacts to determine a command for the device, and processing the command. The one or more heuristics comprise: a heuristic for determining that the one or more finger contacts correspond to a one-dimensional vertical screen scrolling command, a heuristic for determining that the one or more finger contacts correspond to a two-dimensional screen translation command, and a heuristic for determining that the one or more finger contacts correspond to a command to transition from displaying a respective item in a set of items to displaying a next item in the set of items.
7,657,849: Unlocking A Device By Performing Gestures On An Unlock Image: A device with a touch-sensitive display may be unlocked via gestures performed on the touch-sensitive display. The device is unlocked if contact with the display corresponds to a predefined gesture for unlocking the device. The device displays one or more unlock images with respect to which the predefined gesture is to be performed in order to unlock the device. The performance of the predefined gesture with respect to the unlock image may include moving the unlock image to a predefined location and/or moving the unlock image along a predefined path. The device may also display visual cues of the predefined gesture on the touch screen to remind a user of the gesture.
7,469,381: List Scrolling And Document Translation, Scaling, And Rotation On A Touch-Screen Display: In accordance with some embodiments, a computer-implemented method for use in conjunction with a device with a touch screen display is disclosed. In the method, a movement of an object on or near the touch screen display is detected. In response to detecting the movement, an electronic document displayed on the touch screen display is translated in a first direction. If an edge of the electronic document is reached while translating the electronic document in the first direction while the object is still detected on or near the touch screen display, an area beyond the edge of the document is displayed. After the object is no longer detected on or near the touch screen display, the document is translated in a second direction until the area beyond the edge of the document is no longer displayed.
5,920,726: System And Method For Managing Power Conditions Within A Digital Camera Device: A system and method for recovering from a power failure in a digital camera comprises a power manager for detecting and handling power failures, an interrupt handler for responsively incrementing a counter device, service routines which register to receive notification of the power failure, and a processor for evaluating the counter and providing notification of the power failure to the service routines which may then assist the digital camera to recover from the power failure.
7,633,076: Automated Response To And Sensing Of User Activity In Portable Devices: The various methods and devices described herein relate to devices which, in at least certain embodiments, may include one or more sensors for providing data relating to user activity and at least one processor for causing the device to respond based on the user activity which was determined, at least in part, through the sensors. The response by the device may include a change of state of the device, and the response may be automatically performed after the user activity is determined.
5,848,105: GMSK Signal Processors For Improved Communications Capacity And Quality: A method and apparatus for separating and removing distortion from interfering co-channel signals and suppressing adjacent-channel interfering signals of the Gaussian Minimum-Shift Keyed (GMSK) or other MSK type with filtering structures that exploit the cyclostationarity of the received GMSK or other MSK signals in order to accommodate a greater number (or the same number, but with greater quality) of transmitted signals received by one or more antennas than can be accommodated by existing filters. The parameters in these filtering structures are adapted by either of two adaptation apparatus that exploit both the known training sequence that is transmitted in most wireless communications systems, and the constant modulus property exhibited by each of the transmitted GMSK or other MSK signals.
7,383,453: Conserving Power By Reducing Voltage Supplied To An Instruction-Processing Portion Of A Processor: One embodiment of the present invention provides a system that facilitates reducing static power consumption of a processor. During operation, the system receives a signal indicating that instruction execution within the processor is to be temporarily halted. In response to this signal, the system halts an instruction-processing portion of the processor, and reduces the voltage supplied to the instruction-processing portion of the processor. Full voltage is maintained to a remaining portion of the processor, so that the remaining portion of the processor can continue to operate while the instruction-processing portion of the processor is in reduced power mode.
5,455,599: Object-Oriented Graphics System: An object-oriented graphic system is disclosed including a processor with an attached display, storage and object-oriented operating system. The graphic system builds a component object in the storage of the processor for managing graphic processing. The processor includes an object for connecting one or more graphic devices to various objects responsible for tasks such as graphic accelerators, frame buffers, page description languages and vector engines. The system is fully extensible and includes polymorphic processing built into each of the support objects.
6,424,354: Object-Oriented Event Notification System With Listener Registration Of Both Interests And Methods: An event notification system for propagating object-change information. The notification system supports change notification without queues in an object-based application or operating system and can be scaled to propagate large numbers of events among a large plurality of objects. The event notification system interconnects a plurality of event source and event receiver objects. Any object, such as a command object, may operate as either an event receiver object, an event source object or both. A notification object is created by a source object to transport, from a source to a receiver, descriptive information about a change, which includes a particular receiver object method and a pointer to the source object that sent the notification. A receiver object must register with a connection object its "interest" in receiving notification of changes; specifying both the event type and the particular source object of interest. After establishing such connections, the receiver object receives only the events of the specified type for the source objects "of interest" and no others. This delegation of event selection avoids central event queuing altogether and so limits receiver object event processing that the invention can be scaled to large systems operating large numbers of objects.
5,481,721: Method For Providing Automatic And Dynamic Translation Of Object Oriented Programming Language-Based Message Passing Into Operating System Message Passing Using Proxy Objects: The present invention provides a method and apparatus for the distribution of objects and the sending of messages between objects that are located in different processes. Initially, a "proxy" object is created in the same process as a sender object. This proxy acts as a local receiver for all objects in the local program. When the proxy receives a message, the message is encoded and transmitted between programs as a stream of bytes. In the remote process, the message is decoded and executed as if the sender was remote. The result follows the same path, encoded, transmitted, and then decoded back in the local process. The result is then provided to the sending object.
5,519,867: Object-Oriented Multitasking System: An apparatus for enabling an object-oriented application to access in an object-oriented manner a procedural operating system having a native procedural interface is disclosed. The apparatus includes a computer and a memory component in the computer. A code library is stored in the memory component. The code library includes computer program logic implementing an object-oriented class library. The object-oriented class library comprises related object-oriented classes for enabling the application to access in an object-oriented manner services provided by the operating system. The object-oriented classes include methods for accessing the operating system services using procedural function calls compatible with the native procedural interface of the operating system. The computer processes object-oriented statements contained in the application and defined by the class library by executing methods from the class library corresponding to the object-oriented statements. The object-oriented application includes support for multi-tasking.
5,566,337: Method And Apparatus For Distrubuting Evenets In An Operating System: In a computer including an operating system, an event producer for generating an event and detecting that an event has occurred in the computer and an event consumer which need to be informed when events occur in the computer, a system for distributing events including a store for storing a specific set of events of which the at least one event consumer is to be informed, an event manager control unit for receiving the event from the event producer, comparing the received event to the stored set of events, and distributing an appropriate event to an appropriate event consumer, and a distributor for receiving the event from the control unit and directing the control unit to distribute an appropriate event to an appropriate event consumer.
5,929,852: Encapsulated Network Entity Reference Of A Network Component System: A network-oriented component system efficiently accesses information from a network resource located on a computer network by creating an encapsulated network entity that contains a reference to that resource. The encapsulated entity is preferably implemented as a network component stored on a computer remotely displaced from the referenced resource. In addition, the encapsulated entity may be manifested as a visual object on a graphical user interface of a computer screen. Such visual manifestation allows a user to easily manipulate the entity in order to display the contents of the resource on the screen or to electronically forward the entity over the network.
5,946,647: System And Method For Performing An Action On A Structure In Computer-Generated Data: A system and method causes a computer to detect and perform actions on structures identified in computer data. The system provides an analyzer server, an application program interface, a user interface and an action processor. The analyzer server receives from an application running concurrently data having recognizable structures, uses a pattern analysis unit, such as a parser or fast string search function, to detect structures in the data, and links relevant actions to the detected structures. The application program interface communicates with the application running concurrently, and transmits relevant information to the user interface. Thus, the user interface can present and enable selection of the detected structures, and upon selection of a detected structure, present the linked candidate actions. Upon selection of an action, the action processor performs the action on the detected structure.
5,969,705: Message Protocol For Controlling A User Interface From An Inactive Application Program: Method and apparatus for a first process operative in a computer system controlling a user interface on a computer system display under control of a second process operative in the computer system. An event handler is installed for the second process, the event handler servicing events generated for controlling the user interface display under control of the second process. The first process may then perform a first set of functions in the computer system. The first process generates events for controlling the user interface display, the events related to the functions performed by the first process. The event handler receives the events generated by the first process and updates the user interface on the computer system display according to the events generated by the first process and received by the event handler.
6,275,983: Object-Oriented Operating System: An apparatus for enabling an object-oriented application to access in an object-oriented manner a procedural operating system having a native procedural interface is disclosed. The apparatus includes a computer and a memory component in the computer. A code library is stored in the memory component. The code library includes computer program logic implementing an object-oriented class library. The object-oriented class library comprises related object-oriented classes for enabling the application to access in an object-oriented manner services provided by the operating system. The object-oriented classes include methods for accessing the operating system services using procedural function calls compatible with the native procedural interface of the operating system. The computer processes object-oriented statements contained in the application and defined by the class library by executing methods from the class library corresponding to the object-oriented statements.
6,343,263: Real-Time Signal Processing System For Serially Transmitted Data: A data transmission system having a real-time data engine for processing isochronous streams of data includes an interface device that provides a physical and logical connection of a computer to any one or more of a variety of different types of data networks. Data received at this device is presented to a serial driver, which disassembles different streams of data for presentation to appropriate data managers. A device handler associated with the interface device sets up data flow paths, and also presents data and commands from the data managers to a real-time data processing engine. Flexibility to handle any type of data, such as voice, facsimile, video and the like, that is transmitted over any type of communication network with any type of real-time engine is made possible by abstracting the functions of each of the elements of the system from one another. This abstraction is provided through suitable interfaces that isolate the transmission medium, the data manager and the real-time engine from one another.
5,915,131: Method And Apparatus For Handling I/O Requests Utilizing Separate Programming Interfaces To Access Separate I/O Service: A computer system handling multiple applications wherein groups of I/O services are accessible through separate application programming interfaces. Each application has multiple application programming interfaces by which to access different families of I/O services, such as I/O devices.
RE39,486: Extensible, Replaceable Network Component System: An extensible and replaceable network-oriented component system provides a platform for developing networking navigation components that operate on a variety of hardware and software computer systems. These navigation components include key integrating components along with components configured to deliver conventional services directed to computer networks, such as Gopher-specific and Web-specific components. Communication among these components is achieved through novel application programming interfaces (APIs) to facilitate integration with an underlying software component architecture. Such a high-modular cooperating layered-arrangement between the network component system and the component architecture allows any existing component to be replaced, and allows new components to be added, without affecting operation of the network component system.