Patentable/Patents/US-20260023466-A1
US-20260023466-A1

Intelligent User Interface Rotation

PublishedJanuary 22, 2026
Assigneenot available in USPTO data we have
Technical Abstract

A computing device may activate an application that is operable to output a user interface in a second interface orientation and is not operable to output the user interface in a first interface orientation. The computing device may determine, for the application, a re-oriented user interface in the first interface orientation. The computing device may output the re-oriented user interface for display at the display device in the first interface orientation.

Patent Claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

activating, by one or more processors of a computing device, an application that is operable to output a user interface in a second interface orientation and is not operable to output the user interface in a first interface orientation; . A method comprising: outputting, by the one or more processors, the re-oriented user interface for display at a display device in the first interface orientation. determining, by the one or more processors and for the application, a re-oriented user interface in the first interface orientation; and

2

claim 1 locking, by the one or more processors of the computing device operable to perform autorotation of interfaces to be outputted by the display device, the display device to the first interface orientation of a plurality of interface orientations. . The method of, further comprising:

3

claim 1 activating, by the one or more processors, a second application that outputs a media content, wherein the second application is operable to output the media content in the second interface orientation and is not operable to output the media content in the first interface orientation; . The method of, further comprising: outputting, by the one or more processors, the transformed media content for display at the display device in the first interface orientation. transforming, by the one or more processors, the media content to generate a transformed media content for display in the first interface orientation; and

4

claim 3 performing, by the one or more processors, at least one of rotating the media content or scaling the media content to generate the transformed media content for display in the first interface orientation. . The method of, wherein transforming the media content to generate the transformed media content further comprises:

5

claim 3 . The method of, wherein the media content is a video.

6

claim 1 while the display device is locked to the first interface orientation, transitioning, by the one or more processors, the computing device to a sleep state; and in response to transitioning the computing device from the sleep state to an awake state, unlocking, by the one or more processors, the display device from the first interface orientation. . The method of, further comprising:

7

claim 2 determining, by the one or more processors, a respective interface orientation lock setting for each of a plurality of applications, the plurality of applications including the application; and in response to the application being activated as a foreground application, locking, by the one or more processors, the display device to the first interface orientation specified by the respective interface orientation lock setting for the application. . The method of, wherein locking the display device to the first interface orientation further comprises:

8

claim 1 activating, by the one or more processors as a foreground application, a third application, wherein the third application is operable to output a third user interface in the second interface orientation and is not operable to output the third user interface in the first interface orientation; while the display device is locked to the first interface orientation, outputting, by the one or more processors, the third user interface for display at the display device in the second interface orientation; based on the third user interface being outputted in the second interface orientation that is different from the first interface orientation to which the display device is locked, determining, by the one or more processors, a most recent interface orientation to be the second interface orientation; after outputting the third user interface, activating, by the one or more processors as the foreground application, a fourth application, wherein the fourth application is operable to output a fourth user interface in the first interface orientation and is also operable to output the fourth user interface in the second interface orientation; and while the display device is locked to the first interface orientation, outputting, by the one or more processors and based at least in part on the most recent interface orientation being the second interface orientation, the fourth user interface for display at the display device in the second interface orientation. . The method of, further comprising:

9

claim 1 while the display device is locked to the first interface orientation, determining, by the one or more processors, an amount of time during which one or more user interfaces are outputted in the second interface orientation; and in response to determining that the amount of time during which the one or more user interfaces are outputted in the second interface orientation exceeds a threshold amount of time, unlocking, by the one or more processors, the display device from the first interface orientation. . The method, further comprising:

10

claim 1 determining, by the one or more processors, that the second interface orientation is a primary orientation for the display device; activating, by the one or more processors as a foreground application, a fifth application, wherein the fifth application is operable to output a fifth user interface in the second interface orientation and is not operable to output the fifth user interface in the first interface orientation; while the display device is locked to the first interface orientation, outputting, by the one or more processors, the fifth user interface for display at the display device in the second interface orientation; and in response to outputting the fifth user interface in the second interface orientation and based at least in part on the second interface orientation being the primary orientation for the display device, unlocking, by the one or more processors, the display device from the first interface orientation. . The method of, further comprising:

11

claim 10 locking, by the one or more processors, the display device to the primary orientation. . The method of, wherein unlocking the display device from the first interface orientation further comprises:

12

claim 1 while the display device is locked to the first interface orientation, activating, by the one or more processors, a home screen, wherein the home screen is operable to output a home screen interface in the first interface orientation and is operable to output the home screen interface in the second interface orientation; and in response to activating the home screen, outputting, by the one or more processors, the home screen interface for display at the display device in the second interface orientation. . The method of, further comprising:

13

claim 1 the first interface orientation is a portrait orientation and the second interface orientation is a landscape orientation or the first interface orientation is the landscape orientation and the second interface orientation is the portrait orientation. . The method of, wherein one of:

14

a memory storing instructions; and one or more processors, . A computing device comprising: activate, by one or more processors of the computing device, an application that is operable to output a user interface in a second interface orientation and is not operable to output the user interface in a first interface orientation; determine, by the one or more processors and for the application, a re-oriented user interface in the first interface orientation; and output, by the one or more processors, the re-oriented user interface for display at a display device in the first interface orientation. wherein the instructions, when executed by the one or more processors, configure the one or more processors to:

15

activate, by one or more processors of the computing device, an application that is operable to output a user interface in a second interface orientation and is not operable to output the user interface in a first interface orientation; determine, by the one or more processors and for the application, a re-oriented user interface in the first interface orientation; and output, by the one or more processors, the re-oriented user interface for display at a display device in the first interface orientation. . A non-transitory computer-readable storage medium comprising instructions that, when executed, cause one or more processors of a computing device to:

16

claim 14 lock, by the one or more processors of the computing device operable to perform autorotation of interfaces to be outputted by the display device, the display device to the first interface orientation of a plurality of interface orientations. . The computing device of, wherein the instructions, when executed by the one or more processors, further configure the one or more processors to:

17

claim 14 activate, by the one or more processors, a second application that outputs a media content, wherein the second application is operable to output the media content in the second interface orientation and is not operable to output the media content in the first interface orientation; transform, by the one or more processors, the media content to generate a transformed media content for display in the first interface orientation; and output, by the one or more processors, the transformed media content for display at the display device in the first interface orientation. . The computing device of, wherein the instructions, when executed by the one or more processors, further configure the one or more processors to:

18

claim 17 perform, by the one or more processors, at least one of rotating the media content or scaling the media content to generate the transformed media content for display in the first interface orientation. . The computing device of, wherein the instructions, when executed by the one or more processors, further configure the one or more processors to:

19

claim 17 while the display device is locked to the first interface orientation, transition, by the one or more processors, the computing device to a sleep state; and in response to a transition of the computing device from the sleep state to an awake state, unlock, by the one or more processors, the display device from the first interface orientation. . The computing device of, wherein the instructions, when executed by the one or more processors, further configure the one or more processors to:

20

claim 16 determine, by the one or more processors, a respective interface orientation lock setting for each of a plurality of applications, the plurality of applications including the application; and in response to the application being activated as a foreground application, lock, by the one or more processors, the display device to the first interface orientation specified by the respective interface orientation lock setting for the application. . The computing device of, wherein the instructions, when executed by the one or more processors, further configure the one or more processors to:

Detailed Description

Complete technical specification and implementation details from the patent document.

A mobile computing device that includes a display may use sensor data generated from motion sensors to determine the orientation of the display of the mobile computing device. The mobile computing device may perform autorotation of the user interface outputted by the mobile computing device so that the mobile computing device may, in response to determining a change in the orientation of the display of the mobile computing device, change the orientation of the user interface outputted by the mobile computing device to correspond to the orientation of the display.

In general, the techniques of this disclosure are directed to determining the interface orientations of user interfaces to be outputted by a computing device for display at a display device when the display device is locked to a specific interface orientation. A computing device may lock a display device to a specific orientation. When a computing device activates, as the foreground application, an application that is not operable to output a user interface in the specific orientation to which the display device is locked, the computing device may be able to determine a re-oriented user interface for the application in the specific orientation to which the display device is locked. The computing device may therefore output the re-oriented user interface for display at the display device in the specific orientation to which the display device is locked.

In some aspects, the techniques described herein relate to a method including: activating, by one or more processors, an application that is operable to output a user interface in a second interface orientation and is not operable to output the user interface in a first interface orientation; determining, by the one or more processors and for the application, a re-oriented user interface in the first interface orientation; and outputting, by the one or more processors, the re-oriented user interface for display at a display device in the first interface orientation.

In some aspects, the techniques described herein relate to a computing device including: a memory storing instructions; and one or more processors that execute the instructions to: activate an application that is operable to output a user interface in a second interface orientation and is not operable to output the user interface in a first interface orientation; determine a re-oriented user interface for the application in the first interface orientation; and output the re-oriented user interface for display at a display device in the first interface orientation

In some aspects, the techniques described herein relate to a non-transitory computer-readable storage medium including instructions, that when executed by one or more processors, cause the one or more processors of a computing device to: activate an application that is operable to output a user interface in a second interface orientation and is not operable to output the user interface in a first interface orientation; determine, for the application, a re-oriented user interface in the first interface orientation; and output the re-oriented user interface for display at a display device in the first interface orientation.

In some aspects, the techniques described herein relate to an apparatus that includes: means for activating an application that is operable to output a user interface in a second interface orientation and is not operable to output the user interface in a first interface orientation; means for determining a re-oriented user interface for the application in the first interface orientation; and means for outputting the re-oriented user interface for display at a display device in the first interface orientation.

The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the disclosure will be apparent from the description and drawings, and from the claims.

1 1 FIGS.A-C 1 FIG.A 110 110 are conceptual diagrams illustrating a computing device that performs adaptive user interface rotation, in accordance with one or more aspects of the present disclosure. In the example of, computing devicemay represent a mobile or non-mobile computing device. Examples of computing deviceinclude a mobile phone, a tablet computer, a laptop computer, a wearable device (e.g., a computerized watch, computerized glasses, etc.), a personal digital assistant (PDA), a media player, an e-book reader, or any other type of mobile, non-mobile, wearable, and non-wearable computing device.

110 112 114 120 134 126 Computing deviceincludes user interface component (“UIC”), one or more sensor components, user interface (“UI”) module, interface rotation module, and one or more applications.

112 110 110 112 112 102 108 110 UICof computing devicemay function as an input and/or output device for computing device. UICmay be implemented using various technologies. For instance, UICmay function as an input device using a resistive touchscreen, a surface acoustic wave touchscreen, a capacitive touchscreen, a projective capacitance touchscreen, a pressure sensitive screen, an acoustic pulse recognition touchscreen, or another presence-sensitive screen technology. UICincludes displaythat may function as an output device using any one or more of a liquid crystal display (LCD), dot matrix display, light emitting diode (LED) display, microLED, organic light-emitting diode (OLED) display, e-ink, or similar monochrome or color display capable of outputting visible information to the user of computing device.

108 112 110 110 112 110 108 108 110 108 110 Displayincluded in UICof computing devicemay be a presence-sensitive screen that may receive tactile user input from a user of computing device. UICmay receive the tactile user input by detecting one or more taps and/or gestures from a user of computing device(e.g., the user touching or pointing to one or more locations of displaywith a finger or a stylus pen). Displaymay present output, such as a user interface, which may be related to functionality provided by computing device. For example, displaymay present various functions and applications executing on computing devicesuch as an electronic message application, a messaging application, a map application, etc.

126 110 126 One or more applicationsmay include functionality to perform any variety of operations on computing device. For instance, one or more applicationsmay include an email application, text messaging application, instant messaging application, weather application, video conferencing application, social networking application, weather application, stock market application, emergency alert application, sports application, office productivity application, ride sharing application, multimedia player, etc.

110 126 110 110 110 110 Although shown as operable by computing device, one or more applicationsmay, in some examples, be operable by a remote computing device that is communicatively coupled to computing device. In such examples, an application executing at a remote computing device may cause the remote computing device to send the content and intent information using any suitable form of data communication (e.g., wired or wireless network, short-range wireless communication such as Near Field Communication or Bluetooth, etc.). In some examples, a remote computing device may be a computing device that is separate from computing device. For instance, the remote computing device may be operatively coupled to computing deviceby a network. Examples of a remote computing device may include, but is not limited to a server, smartphone, tablet computing device, smart watch, and desktop computer. In some examples, a remote computing device may not be an integrated component of computing device.

120 112 108 120 112 110 110 120 110 126 120 110 110 110 UI modulemay interpret inputs detected at UIC(e.g., as a user provides one or more gestures at a location of displayat which a user interface is displayed). UI modulemay relay information about the inputs detected at UICto one or more associated platforms, operating systems, applications, and/or services executing at computing deviceto cause computing deviceto perform a function. UI modulemay also receive information and instructions from one or more associated platforms, operating systems, applications, and/or services executing at computing device(e.g., one or more applications) for generating a GUI. In addition, UI modulemay act as an intermediary between the one or more associated platforms, operating systems, applications, and/or services executing at computing deviceand various output devices of computing device(e.g., speakers, LED indicators, vibrators, etc.) to produce output (e.g., graphical, audible, tactile, etc.) with computing device.

120 120 120 110 120 110 120 UI modulemay be implemented in various ways. For example, UI modulemay be implemented as a downloadable or pre-installed application or “app.” In another example, UI modulemay be implemented as part of a hardware unit of computing device. In another example, UI modulemay be implemented as part of an operating system of computing device. In some instances, portions of the functionality of UI moduleor any other module described in this disclosure may be implemented across any combination of an application, hardware unit, and operating system.

134 126 134 134 134 134 110 134 110 134 134 120 Interface rotation modulemay re-orient user interfaces outputted by one or more applications. That is, interface rotation modulemay receive a user interface that is outputted by an application in a first interface orientation and may determine, based on the interface, a re-oriented user interface for the application in a second interface orientation different from the first interface orientation that corresponds to the user interface that is outputted by the application. Interface rotation modulemay be implemented in various ways. For example, interface rotation modulemay be implemented as a downloadable or pre-installed application or “app.” In another example, interface rotation modulemay be implemented as part of a hardware unit of computing device. In another example, interface rotation modulemay be implemented as part of an operating system of computing device. In some instances, portions of the functionality of interface rotation modulemay be implemented across any combination of an application, hardware unit, and operating system. For example, interface rotation modulemay be included as part of UI module.

110 114 110 110 114 Computing devicemay also include one or more sensor components. In some examples, a sensor component may be an input component that obtains environmental information of an environment that includes computing device. In some examples, a sensor component may be an input component that obtains information regarding the physical position, movement, and/or location information of computing device. For example, one or more sensor componentsmay include, but are not limited to: motion sensors (e.g., accelerometers, gyroscopes, etc.) heart rate sensors, temperature sensors, position sensors, pressure sensors (e.g., a barometer), proximity sensors (e.g., an infrared sensor), ambient light detectors, location sensors (e.g., global navigation satellite system sensors), or any other type of sensing component.

1 FIG.A 126 120 120 120 108 108 120 110 110 108 In the example of, one or more applicationsmay send data to UI modulethat causes UI moduleto generate one or more user interfaces and elements thereof. In response, UI modulemay output instructions and information to displaythat cause displayto display the user interfaces according to the information received from UI module. The user interfaces may represent graphical user interfaces with which a user of computing devicecan interact with applications and/or the operating system of computing deviceto provide input at display.

112 120 112 108 120 112 110 110 When handling input detected by UIC, UI modulemay receive information from UICin response to inputs detected at locations of displayat which elements of a user interface are displayed. UI moduledisseminates information about inputs detected by UICto other components of computing devicefor interpreting the inputs and for causing computing deviceto perform one or more functions in response to the inputs.

110 108 110 108 Computing devicemay be able to output user interfaces for display at displayin a plurality of interface orientations, such as a portrait orientation and a landscape orientation. When computing deviceoutputs a user interface in an interface orientation, the elements of the user interface, such as text, images, videos, controls, etc. may be oriented and/or otherwise positioned such that the elements of the user interface are designed to be properly viewed and/or interacted with while displayis in a corresponding orientation.

110 110 108 110 110 108 For example, when computing deviceoutputs a user interface in a landscape orientation, the elements of the user interface, such as text, images, videos, controls, etc. are oriented to be properly viewed by a user of computing devicewhen displayis in the landscape orientation with respect to the user. Similarly, when computing deviceoutputs a user interface in a portrait orientation, the elements of the user interface, such as text, images, videos, controls, etc. are oriented to be properly viewed by a user of computing devicewhen displayis in the portrait orientation with respect to the user.

114 110 110 110 110 110 110 110 One or more sensor components, such as one or more accelerometers, one or more gyroscopes, and/or one or more cameras, may generate sensor data that computing devicemay use to determine the orientation of computing devicewith respect to a frame of reference, such as the orientation of computing devicewith respect to the Earth. If a user or another entity physically rotates or otherwise moves computing device, computing devicemay be able to determine, based on the sensor data, whether the orientation of computing devicewith respect to the frame of reference has changed because of the physical movement of computing device.

110 108 110 108 110 108 108 108 110 110 110 In some examples, a change in the orientation of computing devicemay also cause a corresponding change in the orientation of display. For example, when the physical enclosure of computing deviceincludes display, such as in the examples where computing deviceis a smartphone or a tablet computer, a change in the orientation of displaymay cause a change in the aspect ratio of display. For example, if displayis rectangular in shape, computing devicemay, when in a portrait orientation be oriented such that the height of the display is greater than the width of the display. When computing deviceis rotated from the portrait orientation by about 90 degrees, the orientation of computing devicemay correspondingly change from the portrait orientation to a landscape orientation where the width of the display is greater than the height of the display.

108 110 110 108 110 108 114 110 108 108 In some examples, displaymay not be in the physical enclosure of computing devicebut may be a separate display device (e.g., an external display) operably coupled to computing device. In examples where displayis physically separate from computing device, displaymay include one or more sensor componentsthat generates sensor data that computing devicemay use to determine the orientation of displaywith respect to a frame of reference, such as the orientation of displaywith respect to the Earth.

110 108 114 108 110 108 108 108 108 110 108 108 110 108 Computing devicemay determine the orientation of display, such as based on sensor data generated by one or more sensor components, and may perform an autorotation function based on the determined orientation of display. Specifically, computing devicemay perform such an autorotation function to, in response to determining a specified change in the orientation of display, automatically change the orientation of the user interface that is outputted for display at displayto an orientation of the user interface that corresponds to the determined orientation of display. For example, in response to determining that displayis in a portrait orientation, computing devicemay output user interfaces for display at displayin the portrait orientation. Similarly, in response to determining that displayis in a landscape orientation, computing devicemay output user interfaces for display at displayin the landscape orientation.

1 FIG.A 108 110 126 110 110 126 126 126 108 110 110 108 126 110 118 108 As shown in, when displayis in the portrait orientation, computing devicemay activate applicationA as the foreground application of computing device. Computing devicemay activate an application, such as applicationA, as a foreground application by launching or otherwise opening the application (e.g., from a home screen or launcher), switching from another application to applicationA, or otherwise outputting the user interface of applicationA in the foreground of the graphical user interface for display at display. Because computing deviceperforms the autorotation function to orient user interfaces outputted by computing deviceto correspond to the orientation of display, applicationA may, in response to being activated as the foreground application of computing device, output user interfaceA for display at displayin the portrait orientation.

126 110 126 110 110 108 110 108 110 118 118 108 After activating applicationA as the foreground application, computing devicemay exit applicationA and may return to a home screen, also referred to as a launcher or a desktop, of computing device. Computing devicemay also determine that displayhas been rotated from being in a portrait orientation to a landscape orientation. Computing devicemay perform the autorotation function to, in response to determining a change in the orientation of displayfrom the portrait orientation to the landscape orientation, cause computing deviceto output user interfaces in the landscape orientation. Thus, when the home screen outputs user interfaceB, the home screen may output user interfaceB in the landscape orientation to correspond to displaybeing in the landscape orientation.

110 108 108 110 108 110 110 108 108 108 In some examples, even though computing devicecan perform an autorotation function to change the orientation of user interfaces outputted at displayto correspond to the determined orientation of display, computing devicemay be able to lock the displayto a specific interface orientation out of a plurality of interface orientations. When computing deviceis locked to a specific interface orientation, computing devicemay continue to output user interfaces in an interface orientation that corresponds to the specific interface orientation to which display at displayis locked even when the interface orientation to which displayis locked does not correspond to the actual (e.g., physical) orientation of display.

110 108 110 110 108 110 108 110 110 108 110 110 110 108 110 110 For example, computing devicemay lock displayto a portrait orientation to cause computing deviceto continue to output user interfaces in the portrait orientation even if computing devicedetermines that displayis in a landscape orientation. Similarly, computing devicemay lock displayto a landscape orientation to cause computing deviceto continue to output user interfaces in the landscape orientation even if computing devicedetermines that displayis in a portrait orientation. If computing deviceis operably coupled to two or more displays, computing devicemay independently lock or unlock the interface orientation of each of the two or more displays. Thus, when computing devicelocks the interface orientation of display, computing devicemay not necessarily also lock the interface orientations of other displays operably coupled to computing device.

110 108 110 110 110 110 108 110 110 In some examples, computing devicemay lock displayto an interface orientation by turning off or otherwise disabling the autorotation function of computing device. In some examples, computing devicemay include a physical control (e.g., a switch, a button, etc.) that the user may use to toggle the autorotation function of computing deviceon and off. In some examples, computing devicemay output a UI control (e.g., a button, a slider, etc.) for display at displaywith which a user of computing devicemay interact to enable and/or disable the autorotation function of computing device.

110 108 108 110 108 110 108 108 108 108 110 108 110 108 108 110 108 110 108 108 118 110 108 108 110 108 1 FIG.A In some examples, computing devicemay lock displayto display's current interface orientation. That is, when computing devicelocks displayto an interface orientation, computing devicemay determine the current interface orientation of displayand may lock displayto the current orientation of display. For example, if displayis in the portrait orientation when computing devicelocks display's interface orientation, computing devicemay lock displayto the portrait orientation. Similarly, if displayis in the landscape orientation when computing devicelocks display's orientation, computing devicemay lock displayto the landscape orientation. In the example of, displayis in the landscape orientation while outputting user interfaceB. As such, when computing devicelocks display's orientation while displayis in the landscape orientation, computing devicemay therefore lock displayto the landscape orientation.

110 108 108 110 108 110 108 110 108 110 110 108 110 108 108 108 110 108 110 114 112 110 108 108 108 In some examples, computing devicemay automatically lock displayto a particular interface orientation without user intervention and/or may output a suggestion to lock displayto a particular interface orientation. Computing devicemay implement one or more neural networks to determine, based on factors such as a history of previous orientations of display, a history of computing devicepreviously locking displayto one or more orientations, user activities that correspond to the history of computing devicepreviously locking displayto one or more interface orientations, whether camera input (e.g., images captured by one or more cameras of computing device) indicate and/or predict the presence of and/or orientation of the face of the user relative to computing device, the predicted type of foreground application (e.g., video player, web browser, etc.), content currently being displayed by display, whether the keyboard (e.g., a virtual keyboard) of computing deviceis currently displayed by displayand/or in use, and the like, whether to automatically lock displayto a particular interface orientation and/or whether to output a suggestion to lock displayto a particular interface orientation. For example, computing devicemay use the one or more neural networks and the factors described above to determine that the user, when going to bed at night, has a history of locking displayto a landscape orientation. As such, computing devicemay determine, by inputting into the one or more neural network information such as the time of the day, user activity sensed by one or more sensor components, user inputs at UIC, and the like to determine whether the user is going to bed at night. Computing devicemay, in response to determining that the user is going to bed at night, automatically lock displayto the landscape orientation, or may, in response to determining that the user is going to bed at night, output a suggestion at displayto lock displayto the landscape orientation.

110 108 108 110 108 110 108 108 In some examples, computing devicemay determine, based on the confidence of the neural network prediction, whether to automatically lock displayto a particular interface orientation or whether to output a suggestion to lock displayto a particular interface orientation. For example, if the confidence of the neural network prediction is higher than a first specified threshold, computing devicemay automatically lock displayto a particular interface orientation. If the confidence of the neural network prediction is lower than the first specified threshold but higher than a second specified threshold, computing devicemay not automatically lock displayto a particular interface orientation, but may instead output a suggestion to lock displayto a particular interface orientation.

110 110 108 110 108 108 In the example where computing devicedetermines, using the one or more neural networks, whether the user is going to bed, the one or more neural networks may output a prediction of whether the user is going to bed that is associated with a confidence score. If the confidence of the neural network prediction that the user is going to bed is higher than a first specified threshold, computing devicemay automatically lock displayto a particular interface orientation. If the confidence of the neural network prediction that the user is going to bed is lower than the first specified threshold but higher than a second specified threshold, computing devicemay not automatically lock displayto a particular interface orientation, but may instead output a suggestion to lock displayto a particular interface

110 114 112 108 In general, one or more neural networks implemented by computing devicemay include multiple interconnected nodes, and each node may apply one or more functions to a set of input values that correspond to one or more features and provide one or more corresponding output values. The one or more features may be the sensor data generated by one or more sensor components, user inputs at UIC, and the like, and the one or more corresponding output values of one or more neural networks may be an indication of whether to lock displayto a particular orientation.

110 108 110 108 110 110 108 In some examples, the one or more neural networks may be trained on-device by computing deviceto more accurately determine whether to lock displayto a particular orientation. For instance, one or more neural networks may include one or more learnable parameters or “weights” that are applied to the features. Computing devicemay adjust these learnable parameters during the training to improve the accuracy with which one or more neural networks determine whether to lock displayto a particular orientation and/or for any other suitable purpose. In some examples, the one or more neural networks may be trained off-device and then downloaded to or installed at computing device. In some examples, the one or more neural networks may execute at a remote server system (e.g., a cloud-based server system), and computing devicemay communicate with the remote server system to determine whether to lock displayto a particular orientation.

126 108 126 110 108 108 One or more applicationsmay be able to determine the particular interface orientation to which displayis locked and may output user interfaces in the particular interface orientation. For example, one or more applicationsmay use an orientation listener application programming interface (API) provided by the operating system of computing deviceto determine the particular interface orientation to which displayis locked, and may, in response, output user interfaces in the particular interface orientation to which displayis locked.

108 In some examples, an application may be operable to output a user interface in a plurality of different interface orientations. For example, an application may be operable to output a user interface in a portrait orientation and may also be operable to output a user interface in a landscape orientation. The application may determine the particular interface orientation to which displayis locked and may output a user interface in the particular interface orientation.

108 108 However, some applications may not be operable to output a user interface in the particular interface orientation to which displayis locked. For example, an application may only be operable to output a user interface in a portrait orientation and may not be operable to output a user interface in a landscape. As such, even when displayis locked to a landscape orientation, the application may not be operable to output a user interface in the landscape orientation.

108 108 108 108 In some examples, while displayis locked to a particular interface orientation, an application that is not operable to output the user interface in the particular interface orientation to which displayis locked may continue to output a user interface in an interface orientation that is different from the particular interface orientation to which displayis locked. For example, if the application is operable to output a user interface in a portrait orientation, the application may continue to output a user interface in the portrait orientation when displayis locked to a landscape orientation.

108 110 110 108 However, outputting a user interface in an orientation that is different from the particular interface orientation to which displayis locked may provide a poor user experience to the user of computing device. A user of computing devicemay have locked displayto a particular interface orientation because the user may be physically positioned in a way that makes content being displayed in the particular interface orientation more comfortable to view for the user compared to other interface orientations.

110 108 108 108 110 108 A user of computing devicemay therefore find it uncomfortable or otherwise difficult to view and/or interact with content being displayed at displayin an interface orientation that is different from the particular interface orientation to which displayis locked. Thus, an application that outputs a user interface in an interface orientation that is different from the particular interface orientation to which displayis locked may cause the user to reposition their body and/or computing deviceto more comfortably view the user interface in the interface orientation that is different from in the particular interface orientation to which displayis locked.

108 110 108 108 108 108 The user may not be focused on viewing the displaywhile the user is repositioning their body and/or computing deviceeven though the application may continue to output the user interface for display at display. As such, outputting a user interface in an interface orientation that causes the user to reposition their body and/or computing device may increase the amount of time the application's user interface may be required to be outputted for display at displayin order for the user to focus on viewing the application's interface. Increasing the amount of time the application's user interface is required to be outputted for display at displaymay increase the amount of battery power consumed by displayto display the user interface that is outputted by the application.

108 110 108 110 108 108 108 108 108 108 Aspects of this disclosure may overcome the technical problems described above by outputting user interfaces for display at displayin ways that reduce the number of times the user may reposition their body and/or computing deviceto more comfortably view the user interfaces displayed at display. Reducing the amount of times the user may reposition their body and/or computing deviceto more comfortably view the user interfaces displayed at displaymay increase the amount of time the user is focused on viewing display. Increasing the amount of time the user is focused on viewing displaymay reduce the amount of time an application's user interface may be required to be outputted for display at displayfor the user to focus on viewing display, thereby reducing the amount of battery power consumed by displayto display the user interface that is outputted by the application.

110 108 108 110 108 In accordance with aspects of the present disclosure, computing devicemay activate, as a foreground application, an application that is operable to output a user interface in an interface orientation different from the interface orientation to which displayis locked but is not operable to output the user interface in the interface orientation to which displayis locked. Computing devicemay activate an application as a foreground application by launching or otherwise opening the application (e.g., from a home screen or launcher), switching from another application to the application, or otherwise outputting the user interface of the application in the foreground of the graphical user interface for display at display.

1 FIG.A 118 110 118 122 122 122 126 122 In the example of, a user may interact with user interfaceB of the home screen to, for example, launch applications at computing device. User interfaceB includes application iconsA-D (“application icons”), each of which may correspond to an application of one or more applications, and the user may provide user input that corresponds to the selection of an application icon (e.g., out of application icons) to launch the application that corresponds to the selected application icon.

122 126 122 110 122 126 122 110 For example, the user may provide user input that corresponds to the selection of application iconD, which corresponds to applicationA, such as by providing touch input to tap application iconD. Computing devicemay, in response to receiving the user input that corresponds to the selection of application iconD, activate applicationA that corresponds to the selected application iconD as the foreground application of computing device.

126 118 126 108 108 110 108 While applicationA is operable to output a user interface in the portrait orientation, such as user interfaceA outputted in the portrait orientation, applicationA is not operable to output a user interface in the landscape orientation to which displayis locked. For example, the application may be operable to output a user interface in the portrait orientation regardless of the determined orientation of displayand/or computing device, and regardless of the interface orientation to which displayis locked.

110 108 108 108 110 108 108 110 108 108 Computing devicemay, based on displaybeing locked to an interface orientation and further based on the application not being operable to output a user interface in the interface orientation to which displayis locked, generate a re-oriented user interface for the application in the interface orientation to which displayis locked. Computing devicemay therefore output the re-oriented user interface for display at displayin the interface orientation to which displayis locked. That is, computing devicemay be able to output a user interface of the application in the interface orientation to which displayis locked, even if the application does not support outputting a user interface in the interface orientation to which displayis locked.

108 110 134 108 134 108 In some examples, because the application is not operable to output a user interface in the interface orientation to which displayis locked, computing devicemay send, to interface rotation module, data for outputting a user interface in an interface orientation different from the interface orientation to which displayis locked. Interface rotation modulemay, in response to receiving, from the application, the data for outputting the user interface, generate a re-oriented user interface for the application in the interface orientation to which displayis locked.

134 108 134 108 The data for outputting a user interface sent by the application may include information such as indications of the UI elements (e.g., interface such as UI controls, text, images, videos, etc.) in the user interface of the application, indications of the positioning and/or layout of the UI elements such as constraints, distances of the UI elements from each other and/or from the edges of the user interface, functions of the application associated with the UI controls, and the like. Interface rotation modulemay use such data sent by the application to generate a re-oriented user interface in the interface orientation to which displayis locked that corresponds to the user interface associated with the data sent by the application. For example, interface rotation modulemay generate a re-oriented user interface that includes the UI elements indicated by the data for outputting a user interface sent by the application, where the UI elements in the re-oriented user interface are oriented to be properly viewed (e.g., oriented to be right side up) in the interface orientation to which displayis locked.

1 FIG.A 110 108 126 126 118 126 134 134 126 118 126 126 134 120 118 126 108 In the example of, computing devicethat has locked displayto the landscape orientation may, in response to activating applicationA as the foreground application, wherein applicationA may be operable to output a user interface only in a portrait orientation, generate a re-oriented user interfaceC in the landscape orientation. ApplicationA may, in response to being activated as the foreground application, send data for outputting the user interface in the portrait orientation to interface rotation module. Interface rotation modulemay, in response to receiving the data from applicationA, generate, based on the data for outputting the user interface in the portrait orientation, a re-oriented user interfaceC for applicationA that corresponds to the user interface in the portrait orientation outputted by applicationA. Interface rotation modulemay therefore output (e.g., via UI module) re-oriented user interfaceC of applicationA for display at displayin the landscape orientation.

110 108 110 126 110 126 110 118 108 1 FIG.B In some examples, to re-orient a user interface from a first orientation to a second orientation, computing devicemay resize and re-orient the user interface in the first orientation to generate the re-oriented user interface in the second orientation. As shown in, when displayis in the portrait orientation, computing devicemay activate applicationA as the foreground application of computing device, and applicationA may, in response to being activated as the foreground application of computing device, output user interfaceA for display at displayin the portrait orientation.

126 110 126 110 108 118 110 118 108 After activating applicationA as the foreground application, computing devicemay exit applicationA and may return to a home screen application. Computing devicemay also determine that displayhas been rotated from being in a portrait orientation to a landscape orientation. Thus, when the home screen outputs user interfaceB, computing devicemay perform autorotation to output user interfaceB for the home screen in the landscape orientation to correspond to displaybeing in the landscape orientation.

122 118 126 122 110 122 126 122 110 The user may provide user input that corresponds to the selection of application iconD in user interfaceB, which corresponds to applicationA, such as by providing touch input to tap application iconD. Computing devicemay, in response to receiving the user input that corresponds to the selection of application iconD, activate applicationA that corresponds to the selected application iconD as the foreground application of computing device.

126 118 126 108 110 108 108 108 110 108 108 While applicationA is operable to output a user interface in the portrait orientation, such as user interfaceA outputted in the portrait orientation, applicationA is not operable to output a user interface in the landscape orientation to which displayis locked. As such, computing devicemay, based on displaybeing locked to an interface orientation and further based on the application not being operable to output a user interface in the interface orientation to which displayis locked, generate a re-oriented user interface for the application in the interface orientation to which displayis locked. Computing devicemay therefore output the re-oriented user interface for display at displayin the interface orientation to which displayis locked.

108 110 134 108 134 108 In some examples, because the application is not operable to output a user interface in the interface orientation to which displayis locked, computing devicemay send, to interface rotation module, data for outputting a user interface in an interface orientation different from the interface orientation to which displayis locked. Interface rotation modulemay, in response to receiving, from the application, the data for outputting the user interface, generate a re-oriented user interface for the application in the interface orientation to which displayis locked.

134 134 108 108 In some examples, interface rotation modulemay generate a re-oriented user interface for the application by rotating and resizing (e.g., scaling) the user interface that the application is operable to output. That is, interface rotation modulemay rotate the user interface to the interface orientation to which displayis locked and may resize the rotated user interface to fit within display.

1 FIG.B 110 108 126 126 118 126 134 134 126 118 126 118 126 In the example of, computing devicehaving displaylocked to the landscape orientation may, in response to activating applicationA as the foreground application, wherein applicationA may be operable to output a user interface only in a portrait orientation, generate a re-oriented user interfaceD in the landscape orientation. ApplicationA may, in response to being activated as the foreground application, output a user interface in the portrait orientation and may send data for outputting the user interface in the portrait orientation to interface rotation module. Interface rotation modulemay, in response to receiving the data from applicationA, generate, based on the data, a re-oriented user interfaceD for applicationA in the landscape orientation that corresponds to the user interfaceA in the portrait orientation outputted by applicationA.

118 126 118 126 134 118 118 118 108 134 118 126 120 108 To generate the re-oriented user interfaceD for applicationA in the landscape orientation that corresponds to the user interfaceA in the portrait orientation outputted by applicationA, interface rotation modulemay rotate user interfaceA by 90 degrees and may resize the rotated user interfaceA so that the height of the rotated user interfaceA corresponds to (e.g., is the same as) the height of displayin the landscape orientation. Interface rotation modulemay therefore output re-oriented user interfaceD of applicationA (e.g., via UI module) for display at displayin the landscape orientation.

110 In some examples, computing devicemay generate a re-oriented user interface for an application based at least in part on changing the result of APIs called by the application. When the application determines to output a user interface, the application may call an API provided by the operating system to query the type of user interface to be outputted by the application. For example, the application may use the APIs to query the operating system regarding whether the application is to render a user interface for a tablet device (e.g., a user interface in a landscape orientation). If the application receives a response to the query indicating that the application is to render a user interface for a smart phone (e.g., in a portrait orientation), then the application may render the user interface for the smart phone.

1 FIG.B 1 FIG.B 126 126 126 108 110 126 118 126 126 118 118 134 108 In the example of, when applicationA is activated, applicationA may query, via the APIs the type of user interface to be outputted by applicationA. Even though display, in the example of, is locked to a portrait orientation, computing devicemay return a response to the query indicating that applicationA is to render user interfaceD in a portrait orientation. ApplicationA may therefore, in response to receiving the response to the query indicating that applicationA is to render user interfaceD in a portrait orientation, output user interfaceD in a portrait orientation, which interface rotation modulemay resize and rotate to be outputted in a landscape orientation for display at display.

110 108 110 126 110 126 126 110 130 108 108 1 FIG.C In some examples, computing devicemay be able to re-orient media content, such as images, videos, and multimedia content from a first orientation to a second orientation to output the media content in the second orientation. As shown in, when displayis in the landscape orientation, computing devicemay activate applicationB as the foreground application of computing device. In some examples, applicationB may be a media player (e.g., a video player) for outputting media content such as images, videos, and the like. As such, applicationB may, when executing as the foreground application of computing device, output media contentA, which may be a video, for display at displayin the landscape orientation, which corresponds to the orientation of display.

126 110 126 110 108 118 110 118 108 After activating applicationB as the foreground application, computing devicemay exit applicationB and may return to a home screen. Computing devicemay also determine that displayhas been rotated from being in a landscape orientation to a portrait orientation. Thus, when the home screen outputs user interfaceD, computing devicemay perform auto-rotation to output user interfaceD in the portrait orientation to correspond to displaybeing in the portrait orientation.

122 118 126 122 110 122 126 122 110 The user may provide user input that corresponds to the selection of application iconC in user interfaceD, which corresponds to applicationB, such as by providing touch input to tap application iconC. Computing devicemay, in response to receiving the user input that corresponds to the selection of application iconC, activate applicationB that corresponds to the selected application iconC as the foreground application of computing device.

126 130 126 108 110 108 108 108 110 108 108 While applicationB is operable to output media content in the landscape orientation, such as media contentA outputted in the landscape orientation, applicationB is not operable to output media content in the portrait orientation to which displayis locked. As such, computing devicemay, based on displaybeing locked to an interface orientation and further based on the application not being operable to output media content in the interface orientation to which displayis locked, transform media content to the interface orientation to which displayis locked. Computing devicemay therefore output the transformed media content for display at displayin the interface orientation to which displayis locked.

1 FIG.C 110 108 126 126 126 126 134 134 126 130 126 130 126 In the example of, computing devicehaving displaylocked to the portrait orientation may, in response to activating applicationB as the foreground application, wherein applicationB may be operable to output media content only in a landscape orientation, transform media content outputted by applicationB from the landscape orientation to a transformed media content in the portrait orientation by rotating and/or scaling media content to generate the transformed media content. For example, applicationB may send data for outputting the media content in the landscape orientation to interface rotation module. Interface rotation modulemay, in response to receiving the data from applicationB, generate, based on the data, transformed media contentB for applicationB in the portrait orientation that corresponds to media contentA in the landscape orientation outputted by applicationB.

130 126 130 126 134 130 130 130 108 134 130 126 108 To generate transformed media contentB for applicationB in the portrait orientation that corresponds to media contentA in the landscape orientation outputted by applicationB, interface rotation modulemay rotate media contentB by 90 degrees and may resize (e.g., scale) the rotated media contentA so that the width of the rotated media contentA corresponds to (e.g., is the same as) the width of displayin the portrait orientation. Interface rotation modulemay therefore output transformed media contentB of applicationB for display at displayin the portrait orientation.

110 108 108 110 108 108 108 110 108 In some examples, computing devicemay implement one or more neural networks to determine whether to transform a media content in an interface orientation different from the interface orientation to which displayis locked to a transformed media content in the interface orientation to which displayis locked. Computing devicemay make such a determination based on factors such as a history of computing device previously transforming media content in an interface orientation different from the interface orientation to which displayis locked to a transformed media content in the interface orientation to which displayis locked, a history of whether the user has correspondingly provided input to disable the locking of displayin response to computing devicetransforming the media content to the transformed media content, the history of landscape orientations to which displayis locked that corresponds to the previous transformations of media content, information associated with the transformed media content (e.g., aspect ratios, media type, file size, etc.), and the like.

110 108 110 108 110 110 108 108 For example, computing devicemay use the one or more neural networks and the factors described above to determine that the user is likely to refrain from unlocking the interface orientation of displayin response to computing devicetransforming media content in a landscape orientation to a portrait orientation, but is likely to unlock the interface orientation of displayfrom a landscape orientation in response to computing devicetransforming media content in a portrait orientation to a landscape orientation. As such, in this example, computing devicemay determine, using the one or more neural networks and factors such as the current interface orientation to which displayis locked, whether to transform media content in a portrait orientation to a landscape orientation when displayis locked to the landscape orientation.

110 108 108 110 16 9 108 110 110 108 In another example, computing devicemay use the one or more neural networks and the factors described above to determine that, when displayis locked to a portrait orientation, the user is likely to refrain from unlocking the interface orientation of displayfrom the portrait orientation in response to computing devicetransforming media content in a:or smaller aspect ratio from a landscape orientation to a portrait orientation, but is likely to unlock the interface of displayfrom the portrait orientation in response to computing devicetransforming media content in a 1.77:1 or greater aspect ratio from the landscape orientation to the portrait orientation. As such, in this example, computing devicemay determine, using the one or more neural networks and factors such as the aspect ratio of the media content, whether to transform media content in a landscape orientation to a portrait orientation when displayis locked to the portrait orientation.

2 FIG. 2 FIG. 1 1 FIGS.A-C 210 110 is a block diagram illustrating further details of an example computing device, in accordance with one or more aspects of the present disclosure. Computing deviceofis described below as an example of computing deviceas illustrated in.

210 210 210 210 2 FIG. 2 FIG. 2 FIG. Computing deviceofmay be an example of a mobile phone, a tablet computer, a laptop computer, a desktop computer, a server, a mainframe, a set-top box, a television, a wearable device, a home automation device or system, a PDA, a gaming system, a media player, an e-book reader, a mobile television platform, an automobile navigation or infotainment system, or any other type of mobile, non-mobile, wearable, and non-wearable computing device configured to receive, and output an indication of notification data.illustrates only one particular example of computing device, and many other examples of computing devicemay be used in other instances and may include a subset of the components included in example computing deviceor may include additional components not shown in.

2 FIG. 210 212 214 240 242 244 246 248 212 208 248 210 220 226 230 234 232 As shown in the example of, computing deviceincludes user interface component (UIC), one or more sensor components, one or more processors, one or more input components, one or more communication units, one or more output components, and one or more storage components. UICincludes display. One or more storage componentsof computing devicealso include UI module, one or more applications, operating system, interface rotation module, and one or more neural networks.

250 240 212 214 244 246 242 248 250 Communication channelsmay interconnect each of the components,,,,,, andfor inter-component communications (physically, communicatively, and/or operatively). In some examples, communication channelsmay include a system bus, a network connection, an inter-process communication data structure, or any other method for communicating data.

214 114 210 210 214 215 210 210 210 1 1 FIGS.A-C One or more sensor componentsare examples of one or more sensor componentsshown inand may be any component configured to obtain environmental information about the circumstances surrounding computing deviceand/or the physical position, movement, and/or location information of computing device. Examples of one or more sensor componentsmay include location sensors (e.g., global navigation satellite system components), temperature sensors, motion sensors (e.g., multi-axial accelerometers, gyroscopes, gravity sensors, etc.), pressure sensors, ambient light sensors, and the like. One or more sensor componentsare configured to generate sensor data that computing devicemay use to determine the orientation of computing devicewith respect to a frame of reference, such as the orientation of computing devicewith respect to the Earth.

242 210 242 210 One or more input componentsof computing devicemay receive input. Examples of input are tactile, audio, and video input. One or more input componentsof computing device, in one example, includes a presence-sensitive display, touch-sensitive screen, mouse, keyboard, voice responsive system, video camera, microphone or any other type of device for detecting input from a human or machine.

246 210 246 210 One or more output componentsof computing devicemay generate output. Examples of output are tactile, audio, and video output. One or more output componentsof computing device, in one example, includes a presence-sensitive display, sound card, video graphics adapter card, speaker, liquid crystal display (LCD), organic light-emitting diode (OLED) display, a light field display, one or more haptic motors, one or more linear actuating devices, or any other type of device for generating output to a human or machine.

244 210 244 244 One or more communication unitsof computing devicemay communicate with external devices via one or more wired and/or wireless networks by transmitting and/or receiving network signals on the one or more networks. Examples of one or more communication unitsinclude a network interface card (e.g., an Ethernet card), an optical transceiver, a radio frequency transceiver, a global navigation satellite system receiver (e.g., a Global Positioning System receiver), or any other type of device that can send and/or receive information. Other examples of one or more communication unitsmay include short wave radios, cellular data radios, wireless network radios, as well as universal serial bus (USB) controllers.

212 200 112 210 212 208 108 208 1 1 FIGS.A-C 1 1 FIGS.A-C UICof computing devicemay be an example of UICshown inand may be hardware that functions as an input and/or output device for computing device. For example, UICmay include display, which may be an example of displayshown in, and which may be a screen at which information is displayed. Displaymay in some examples be a presence-sensitive display.

240 210 240 210 248 220 226 230 240 210 248 240 240 220 226 230 234 232 220 226 230 234 232 240 210 One or more processorsmay implement functionality and/or execute instructions within computing device. For example, one or more processorson computing devicemay receive and execute instructions stored by one or more storage componentsthat execute the functionality of UI module, one or more applications, and operating system. The instructions executed by one or more processorsmay cause computing deviceto store information within one or more storage componentsduring program execution. Examples of one or more processorsinclude application processors, display controllers, sensor hubs, and any other hardware configured to function as a processing unit. One or more processorsmay execute instructions of UI module, one or more applications, operating system, interface rotation moduleand one or more neural networksto perform actions or functions. That is, UI module, one or more applications, operating system, interface rotation moduleand one or more neural networksmay be operable by one or more processorsto perform various actions or functions of computing device.

248 210 210 210 220 226 230 234 232 210 248 248 248 210 One or more storage componentswithin computing devicemay store information for processing during operation of computing device. That is, computing devicemay store data accessed by UI module, one or more applications, operating system, interface rotation moduleand one or more neural networksduring execution at computing device. In some examples, one or more storage componentis a temporary memory, meaning that a primary purpose of one or more storage componentis not long-term storage. One or more storage componentson computing devicemay be configured for short-term storage of information as volatile memory and therefore not retain stored contents if powered off. Examples of volatile memories include random access memories (RAM), dynamic random access memories (DRAM), static random access memories (SRAM), and other forms of volatile memories known in the art.

248 248 248 248 220 226 230 234 232 220 226 234 232 240 120 126 134 1 1 FIGS.A-C One or more storage components, in some examples, also include one or more computer-readable storage media. One or more storage componentsmay be configured to store larger amounts of information than volatile memory. One or more storage componentsmay further be configured for long-term storage of information as non-volatile memory space and retain information after power on/off cycles. Examples of non-volatile memories include magnetic hard discs, optical discs, floppy discs, flash memories, or forms of electrically programmable memories (EPROM) or electrically erasable and programmable (EEPROM) memories. One or more storage componentsmay store program instructions and/or information (e.g., data) associated with UI module, one or more applications, operating system, interface rotation moduleand one or more neural networks. UI module, one or more applications, interface rotation moduleand one or more neural networksmay execute at one or more processorsto perform functions similar to that of UI module, one or more applications, and interface rotation module, respectively, shown in.

232 210 232 232 One or more neural networksmay implemented by computing deviceas software, hardware, or a combination thereof. One or more neural networksmay include multiple interconnected nodes, and each node may apply one or more functions to a set of input values that correspond to one or more features, and provide one or more corresponding output values. One or more neural networksmay be an example of and may perform functions similar to that of the neural networks described throughout this disclosure.

232 210 232 210 232 232 210 In some examples, one or more neural networksmay be trained on-device by computing device. For instance, one or more neural networksmay include one or more learnable parameters or “weights” that are applied to the features. Computing devicemay adjust these learnable parameters during the training to improve the accuracy of one or more neural networks. In some examples, one or more neural networksmay be trained off-device and then downloaded to or installed at computing device.

230 240 210 210 240 240 Operating systemmay execute at one or more processorsto cause computing deviceto perform various functions to manage hardware resources of computing device, to manage the processes executing at one or more processors, and/or to provide various common services for other software applications and processes that execute at one or more processors.

230 240 214 210 210 210 230 210 210 Operating systemmay execute at one or more processorsto determine, based on sensor data generated by one or more sensor components, the orientation of computing devicewith respect to a frame of reference, such as the orientation of computing devicewith respect to the Earth. If a user or another entity physically rotates or otherwise moves computing device, operating systemmay be able to determine, based on the sensor data, whether the orientation of computing devicehas changed because of the physical movement of computing device.

210 210 208 210 208 210 208 210 230 214 208 208 Physical movement of computing devicethat causes a change in the orientation of computing devicemay also cause a corresponding change in the orientation of display. For example, if computing deviceincludes display, such as when computing deviceis a smartphone or a tablet computer, the orientation of displaymay correspond to the orientation of computing device. As such, operating systemmay be configured to determine, based on sensor data generated by one or more sensor components, the orientation of displayas well as changes in the orientation of display.

230 240 208 214 208 230 208 208 208 Operating systemmay execute at one or more processorsto determine the orientation of display, such as based on sensor data generated by one or more sensor components, and may perform an autorotation function based on the determined orientation of display. Specifically, operating systemmay perform such an autorotation function to, in response to determining a specified change in the orientation of display, automatically change the orientation of the user interface that is outputted for display at displayto an orientation of the user interface that corresponds to the determined orientation of display.

230 208 230 226 208 208 226 208 226 208 To provide an autorotation function, operating systemmay determine the orientation of display, and operating systemmay provide an API that one or more applicationsmay use to determine the orientation of displayto output interfaces in an interface orientation that corresponds to the orientation of display. For example, one or more applicationmay use the API to determine that displayis in a portrait orientation and may correspondingly output user interfaces in the portrait orientation. Similarly, one or more applicationmay use the API to determine that displayis in a landscape orientation and may correspondingly output user interfaces in the landscape orientation.

230 240 208 230 208 230 210 210 230 208 210 210 In some examples, operating systemmay execute at one or more processorsto lock the displayto a specific interface orientation out of a plurality of orientations. Operating systemmay lock displayto an orientation by turning off or otherwise disabling the autorotation function of operating system. In some examples, computing devicemay include a physical control (e.g., a switch, a button, etc.) that the user may use to toggle the autorotation function of computing device. In some examples, operating systemmay output a UI control (e.g., a button, a slider, etc.) for display at displaywith which a user of computing devicemay interact to enable and/or disable the autorotation function of computing device.

230 232 208 210 210 230 232 232 208 230 232 208 In some examples, operating systemmay use one or more neural networksto automatically (i.e., without user intervention) lock displayto an interface orientation based on factors as historical patterns of usage of computing device, current usage of computing device, environmental factors (e.g., the current time of the day, the current date, etc.) and/or any other suitable factors. For example, operating systemmay input data indicative of such factors to one or more neural networks, and one or more neural networkmay, in response, output an indication of whether to lock displayto an interface orientation. Operating systemmay therefore determine, based on the output of one or more neural networks, whether to lock displayto an interface orientation.

230 208 208 230 208 230 208 208 208 230 242 208 230 208 In some examples, operating systemmay lock display's interface orientation to display's current orientation. That is, when operating systemlocks displayto an orientation, operating systemmay determine the current orientation of displayand may lock displayto the current orientation of display. In some examples, operating systemmay receive user input (e.g., at one or more input components) that indicates the orientation to which displayis locked, operating systemmay lock display's orientation to the orientation indicated by the user input.

226 208 208 In some examples, while the interface orientation is locked to a particular interface orientation, an application of one or more applicationmay not be operable to output the user interface in the particular interface orientation to which displayis locked may continue to output a user interface in an interface orientation that is different from the particular interface orientation to which the interface orientation is locked. For example, while displayis locked to a landscape orientation an application may only be able to output a user interface in a portrait orientation and may not be able to output a user interface in a landscape orientation

208 230 240 208 208 230 208 While displayis locked to an interface orientation, operating systemmay execute at one or more processorsto activate, as a foreground application, an application that is operable to output a user interface in an interface orientation different from the interface orientation to which displayis locked but is not operable to output the user interface in the interface orientation to which displayis locked. Operating systemmay activate an application as a foreground application by launching or otherwise opening the application (e.g., from a home screen or launcher), switching from another application to the application, or otherwise outputting the user interface of the application in the foreground of the graphical user interface for display at display.

234 240 208 208 208 234 208 208 Interface rotation modulemay execute at one or more processorsto, based on displaybeing locked to an interface orientation and further based on the application not being operable to output a user interface in the interface orientation to which displayis locked, generate a re-oriented user interface for the application in the interface orientation to which displayis locked. Interface rotation modulemay therefore output the re-oriented user interface for display at displayin the interface orientation to which displayis locked.

234 208 234 208 208 208 The application may send, to interface rotation module, data for outputting a user interface in an interface orientation different from the interface orientation to which displayis locked. Interface rotation modulemay, in response to receiving, from the application, the data for outputting the user interface, generate a re-oriented user interface for the application in the interface orientation to which displayis locked, and may output, for display at display, the re-oriented user interface in the interface orientation to which displayis locked.

234 234 208 The data for outputting a user interface sent by the application to interface rotation modulemay include information such as indications of the UI elements (e.g., interface such as UI controls, text, images, videos, etc.) in the user interface, indications of the positioning and/or layout of the UI elements such as constraints, distances of the UI elements from each other and/or from the edges of the user interface, functions of the application associated with the UI controls, and the like. Interface rotation modulemay use such data sent by the application to generate a re-oriented user interface in the interface orientation to which displayis locked that corresponds to the user interface associated with the data sent by the application.

234 208 234 234 208 208 208 In some examples, interface rotation modulemay generate a re-oriented user interface that includes the UI elements indicated by the data for outputting a user interface sent by the application, where the UI elements in the re-oriented user interface are oriented to be properly viewed (e.g., oriented to be right side up) in the interface orientation to which displayis locked. In some examples, interface rotation modulemay generate a re-oriented user interface for the application by rotating and resizing the user interface that the application is operable to output. That is, interface rotation modulemay rotate the user interface to the interface orientation to which displayis locked and may resize the rotated user interface to fit within displayin the interface orientation to which displayis locked.

234 240 208 234 208 234 208 208 208 208 In some examples, interface rotation modulemay execute at one or more processorsto re-orient media content, such as images, videos, and multimedia content, to the interface orientation to which displayis locked. from a first orientation to a second orientation to output the media content in the second orientation. For example, an application may send, to interface rotation module, data for outputting the media content in an interface orientation different from the interface orientation to which displayis locked. Interface rotation modulemay, in response to receiving the data, generate, based on the data, transformed media content in the interface orientation to which displayis locked, such as by rotating the media content to the interface orientation to which displayis locked and may resize the rotated media content to fit within displayin the interface orientation to which displayis locked.

208 230 240 210 208 208 208 208 208 230 210 208 208 207 208 In some examples, when displayis locked to a particular interface orientation, operating systemmay execute at one or more processorsto output the home screen and/or the lock screen of computing devicein an interface orientation different from the particular interface orientation to which displayis locked. For example, displaymay be associated with a primary orientation, which may be a pre-set default orientation for display. When displayis locked to a particular interface orientation different from the primary orientation associated with display, operating systemmay, when transitioning to the home screen or lock screen of computing device, output the home screen and/or lock screen for display at displayin the primary orientation associated with display, even if the primary orientation associated with displayis different from the particular interface orientation to which displayis locked.

208 230 240 208 232 208 208 208 In some examples, when displayis locked to a particular interface orientation, operating systemmay execute at one or more processorsto output a user interface of an application in an interface orientation different from the particular interface orientation to which displayis locked. For example, one or more neural networksmay determine, based on factors such as a history of previous orientations of user interfaces of the application outputted for display at display, a history of whether the user provided input to cause the user interfaces of the application to be outputted in a different orientation than the orientation of the user interfaces outputted for display at display, and the like, to determine whether to output the user interface of an application in an interface orientation different from the interface orientation to which displayis locked.

208 208 230 226 208 210 208 208 208 208 208 208 In some examples, when displayoutputs a user interface of an application in an interface orientation different from the particular interface orientation to which displayis locked, operating systemmay enable one or more applicationsto output user interfaces in the interface orientation different from the particular interface orientation to which displayis locked. That is, computing devicemay determine the interface orientation in which displaydisplays a user interface of as the most recent orientation of display, and may output a subsequent user interface of another application for display at displayin the most recent orientation of display, even if the most recent orientation of displayis different from the particular interface orientation to which displayis locked.

230 208 208 230 210 208 208 In some examples, operating systemmay be able to adaptively change the interface orientation to which displayis locked. When displayis locked to a first interface orientation, operating systemmay, based on computing deviceoutputting one or more user interfaces in a second interface orientation different from the first interface orientation to which displayis locked, adaptively unlock displayfrom the first interface orientation.

230 208 210 208 210 208 230 208 In some examples, operating systemmay adaptively change the interface orientation to which displayis locked based on the amount of time during which computing deviceoutputs one or more user interfaces in a second interface orientation different from the first interface orientation to which displayis locked. If the amount of time during which computing deviceoutputs one or more user interfaces in a second interface orientation different from the first interface orientation to which displayis locked exceeds a threshold amount of time, such as five minutes, ten minutes, and the like, operating systemmay adaptively unlock displayfrom the first interface orientation.

230 232 208 210 210 208 230 232 232 208 230 232 208 In some examples, operating systemmay use one or more neural networksto adaptively change the orientation to which displayis locked based on factors as historical patterns of usage of computing device, current usage of computing device, environmental factors (e.g., the current time of the day, the current date, etc.), the type of user interface and/or media content currently being displayed at display, and/or any other suitable factors. For example, operating systemmay input data indicative of such factors to one or more neural networks, and one or more neural networkmay, in response, output an indication of whether to adaptively change the interface orientation to which displayis locked. Operating systemmay therefore determine, based on the output of one or more neural networks, whether to adaptively change the interface orientation to which displayis locked.

210 In some examples, each of a plurality of applications at computing devicemay be associated with a respective interface orientation lock setting, so that different applications may, when activated as the foreground application, lock the display to an interface orientation specified by the interface orientation lock setting associated with the application. For example, an application that is associated with a portrait orientation may, in response to being activated as a foreground application, lock the display to the portrait orientation even when the display is already locked to a landscape orientation. Similarly, an application that is associated with a landscape orientation may, in response to being activated as a foreground application, lock the display to the landscape orientation even when the display is already locked to a portrait orientation.

3 FIG. 3 FIG. 1 1 FIGS.A-C 2 FIG. 310 110 210 is a conceptual diagram illustrating another example of a computing device that performs adaptive user interface rotation, in accordance with one or more aspects of the present disclosure. Computing deviceofis described below as an example of computing deviceas illustrated inand computing deviceas illustrated in.

3 FIG. 1 1 FIGS.A-C 308 310 318 326 308 326 334 134 326 318 318 326 308 In the example of, displaymay be locked to a landscape orientation and computing devicemay output user interfaceA of applicationfor display at displayin the landscape orientation. If applicationis not operable to output a user interface in the landscape orientation, interface rotation module, which is an example of interface rotation moduleof, may determine, based on the user interface of applicationin the portrait orientation, a re-oriented user interfaceA in the landscape orientation, according to the techniques described throughout this disclosure, and may output user interfaceA of applicationfor display at displayin the landscape orientation.

310 308 310 310 308 310 308 318 308 310 310 310 310 310 310 310 310 308 Computing devicemay unlock displayfrom an interface orientation (i.e., re-enable the autorotation feature of computing device) when computing deviceexits a sleep state. For example, while displayis locked in the landscape orientation, computing devicemay transition from an awake state, which may be a state in which displayis turned on and displaying user interfaces (e.g., user interfaceA), to a sleep state, which may be a state in which displayis turned off. Computing devicemay transition to the sleep state in response to receiving user input that directs computing deviceto enter the sleep state, such as by the user pressing the power button of the computing device, which is also sometimes referred to as a sleep/wake button or a side button. Computing devicemay also enter the sleep state in response to user inactivity. For example, if computing devicedoes not detect any user input at computing devicefor a specified period of time, such as 30 seconds, one minute, two minutes, five minutes, and the like, computing devicemay enter the sleep state. Computing devicemay, as part of entering the sleep state, turn off display.

310 310 310 310 310 308 When computing deviceis in the sleep state, computing devicemay transition from the sleep state to an awake state, such as in response to receiving user input that directs computing deviceto transition out of the sleep state to the awake state. Such user input may include the user pressing the power button of the computing devicewhile computing deviceis in the sleep state, touch input at display, and the like.

310 310 308 308 310 310 310 308 310 When the computing devicetransitions from the sleep state to the awake state, computing devicemay turn on display, and displaymay display a lock screen, also referred to as a login screen, which may be a user interface with which a user may interact to authenticate the user as an authorized user of computing device. When the computing devicetransitions from the sleep state to the awake state, computing devicemay, in some examples, also unlock displayfrom the landscape orientation, and may re-enable the autorotation function of computing device.

308 310 310 310 308 310 310 308 310 318 3 FIG. As such, even though displaywas locked to a landscape orientation prior to computing devicetransitioning from the awake state to the sleep state, computing devicemay, in response to computing devicetransitioning from the sleep state to the awake state, unlock displayfrom the landscape orientation, thereby enabling computing deviceto output a user interface for the lock screen in either the portrait orientation or the landscape orientation. In the example of, computing devicemay determine that display, after computing devicetransitioning from the sleep state to the awake state, is in the portrait orientation, and may therefore perform autorotation to output user interfaceB of the lock screen in the portrait orientation.

310 310 308 308 308 308 In some examples, when the computing devicetransitions from the sleep state to the awake state, computing devicemay refrain from unlocking displayfrom the orientation (e.g., landscape orientation) to which displaywas locked prior to entering the sleep state. That is, if displaywas locked to an orientation prior to transitioning to the sleep state, displaymay remain locked to the same orientation after transitioning out of the sleep state to the awake state.

308 310 318 308 310 308 310 318 308 Even though displaymay remain locked to an interface orientation after transitioning to the awake state, computing devicemay output user interfaceB of the lock screen in an interface orientation different from the interface orientation to which displayis locked. For example, if computing devicedetermines that displayis oriented in a primary orientation, computing devicemay output user interfaceB of the lock screen in the primary orientation even if the primary orientation is different from the interface orientation to which displayis locked.

308 310 310 308 310 310 308 310 308 308 310 308 A primary orientation of displaymay be a default orientation that is pre-set in computing device, such as by the manufacturer of computing device. In some examples, a primary orientation may be the orientation of displaywhen computing deviceis being naturally held by the user of computing device. For example, because a mobile phone may typically be naturally held by users in such a way that displayis in a portrait orientation, if computing deviceis a mobile phone, then the primary orientation of displayis the portrait orientation. In some examples, some tablet computers may typically be naturally held in such a way that displayis in a landscape orientation. As such, if computing deviceis a tablet computer, the primary orientation of displayis the landscape orientation.

310 308 308 310 308 308 310 318 As such, computing devicemay, in response to transitioning from the sleep state to the awake state, determine whether the displayis in the primary orientation that is different from the interface orientation to which displayis locked. If computing devicedetermines that the displayis in the primary orientation that is different from the interface orientation to which displayis locked, computing devicemay output the user interfaceB of the lock screen in the primary orientation.

3 FIG. 308 310 308 310 318 In the example of, the primary orientation of displaymay be the portrait orientation. Thus, if computing devicedetermines that displayis in the portrait orientation after transitioning from the sleep state to the awake state, computing devicemay output user interfaceB of the lock screen in the portrait orientation.

310 310 308 308 308 308 308 310 310 308 310 310 In some examples, when the computing deviceexits an application and returns to a home screen, computing devicemay output the home screen in the primary orientation of displayeven when displayis locked to an interface orientation that is different from the interface orientation to which displayis locked. For example, if displayis locked to a landscape orientation and if the primary orientation of displayis a portrait orientation, computing devicemay output the home screen of computing devicefor display at displayin the portrait orientation, even if computing devicemay be operable to output the home screen of computing devicein either the landscape orientation or the portrait orientation.

4 FIG. 4 FIG. 1 1 FIGS.A-C 2 FIG. 410 110 210 is a conceptual diagram illustrating another example of a computing device that performs adaptive user interface rotation, in accordance with one or more aspects of the present disclosure. Computing deviceofis described below as an example of computing deviceas illustrated inand computing deviceas illustrated in.

In some examples, while the display of a computing device is locked to a particular interface orientation, the computing device may still be able to output user interfaces in interface orientations different from the particular interface orientation to which the display is locked. If the computing device outputs a user interface in interface orientations different from the particular interface orientation to which the display is locked, the computing device may continue to outputting user interfaces in interface orientations different from the particular interface orientation to which the display is locked until the computing device activates, as a foreground application, an application that may only be operable to output a user interface in the particular interface orientation to which the display is locked.

4 FIG. 408 410 410 408 408 408 410 408 410 As shown in, when displayof computing deviceis locked to an interface orientation, computing devicemay, in some examples, still output a user interface for display at displayin an interface orientation different from the interface orientation to which displayis locked. That is, if displayis locked to a portrait orientation, computing devicemay, in some instances, output a user interface in a landscape orientation. Similarly, if displayis locked to a landscape orientation, computing devicemay, in some instances, output a user interface in a portrait orientation.

408 408 410 408 408 410 426 418 418 426 434 134 426 418 426 410 418 426 408 4 FIG. 1 1 FIGS.A-C For example, if an application is not operable to output a user interface in an interface orientation to which displayis locked but is operable to output a user interface in another interface orientation different from the interface orientation to which displayis locked, computing devicemay output the user interface of the application in an interface orientation different from the interface orientation to which displayis locked. In the example of, where displayis locked to a landscape orientation, computing devicemay, in response to activating applicationA that is able to output user interfaceA in the portrait orientation but is unable to output a user interface in the landscape orientation, output user interfaceA of applicationA in the portrait orientation. As such, instead of using interface rotation module, which is an example of interface rotation moduleofto determine a re-oriented user interface of applicationA in the landscape orientation based on user interfaceA of applicationA in the portrait orientation, computing devicemay instead output user interfaceA of applicationA for display at displayin the portrait orientation.

410 408 408 410 408 408 408 In some examples, computing devicemay output the user interface of an application in an interface orientation different from the interface orientation to which displayis locked even if the application is operable to output a user interface in the interface orientation to which displayis locked. For example, computing devicemay implement one or more neural networks to determine, based on factors such as a history of previous orientations of user interfaces of the application outputted for display at display, a history of whether the user provided input to cause the user interfaces of the application to be outputted in a different orientation than the orientation of the user interfaces outputted for display at display, and the like, to determine whether to output the user interface of an application in an interface orientation different from the interface orientation to which displayis locked.

410 410 426 408 410 426 410 408 418 426 408 For example, computing devicemay use the one or more neural networks and the factors described above to determine that when computing deviceoutputs user interfaces of applicationA in a landscape orientation, the user is likely to provide input, such as input to unlock displayfrom the landscape orientation, that causes computing deviceto output user interfaces of applicationA in the portrait orientation. As such, computing devicemay use the one or more neural networks and the factors described above to, in response to determining that displayis locked in the landscape orientation, output user interfaceA of applicationA for display at displayin the portrait orientation.

410 418 408 410 408 408 418 408 In response to computing deviceoutputting user interfaceA in the portrait orientation for display at display, computing devicemay determine the most recent orientation of displayto be the portrait orientation. That is, because displayis displaying user interfaceA in the portrait orientation, then the most recent orientation of displayis the portrait orientation.

408 408 410 408 408 408 410 408 In some examples, if the most recent orientation of displayis different from the interface orientation to which displayis locked, computing devicemay continue to output user interfaces of applications in the most recent orientation of displayif those applications are also operable to output user interfaces in the most recent orientation of display. However, if an application is not operable to output a user interface in the most recent orientation of display, computing devicemay revert to outputting the user interface of the application in the interface orientation to which displayis locked.

4 FIG. 418 426 408 410 426 426 410 426 418 426 410 418 408 410 408 In the example of, after outputting user interfaceA for applicationA in the portrait orientation while displayis locked to the landscape orientation, computing devicemay activate applicationB as the foreground application. If applicationB is operable to output a user interface in the most recent orientation (e.g., the portrait orientation), computing devicemay, in response to activating applicationB as the foreground application, output user interfaceB for applicationB in the portrait orientation. In response to computing deviceoutputting user interfaceB in the portrait orientation for display at display, computing devicemay determine the most recent orientation of displayto still be the portrait orientation.

4 FIG. 418 426 408 410 426 426 418 410 426 418 426 408 410 418 408 410 408 In the example of, after outputting user interfaceB of applicationB in the portrait orientation while displayis locked to the landscape orientation, computing devicemay activate applicationC as the foreground application. If applicationC is not operable to output a user interface in the most recent orientation (e.g., the portrait orientation) but is operable to output user interfaceC in the landscape orientation, computing devicemay, in response to activating applicationC as the foreground application, output user interfaceC for applicationC in the landscape orientation to which displayis locked. In response to computing deviceoutputting user interfaceC in the landscape orientation for display at display, computing devicemay determine the most recent orientation of displayto be the landscape orientation.

5 FIG. 5 FIG. 1 1 FIGS.A-C 2 FIG. 510 110 210 is a conceptual diagram illustrating another example of a computing device that performs adaptive user interface rotation, in accordance with one or more aspects of the present disclosure. Computing deviceofis described below as an example of computing deviceas illustrated inand computing deviceas illustrated in.

510 508 508 510 510 508 508 510 508 In some examples, computing devicemay be able to adaptively change the interface orientation to which displayis locked. When displayis locked to a first interface orientation, computing devicemay, based on computing deviceoutputting one or more user interfaces in a second interface orientation different from the first interface orientation to which displayis locked, adaptively unlock displayfrom the first interface orientation. Computing devicemay, in some examples, adaptively lock displayto the second interface orientation.

510 508 510 508 510 508 510 508 510 508 110 In some examples, computing devicemay adaptively change the interface orientation to which displayis locked based on the amount of time during which computing deviceoutputs one or more user interfaces in a second interface orientation different from the first interface orientation to which displayis locked. If the amount of time during which computing deviceoutputs one or more user interfaces in a second interface orientation different from the first interface orientation to which displayis locked exceeds a threshold amount of time, such as five minutes, ten minutes, and the like, computing devicemay adaptively unlock displayfrom the first interface orientation. In some examples, computing devicemay also adaptively lock displayto the second interface orientation, or may re-enable the autorotation function of computing device.

510 508 508 510 510 508 508 510 510 508 30 508 510 In some examples, the amount of time during which computing deviceoutputs one or more user interfaces in a second interface orientation different from the first interface orientation to which displayis locked may be the cumulative amount of time, since displaywas locked to the first interface orientation, during which computing deviceoutputs one or more user interfaces in a second interface orientation. In some examples, the amount of time during which computing deviceoutputs one or more user interfaces in a second interface orientation different from the first interface orientation to which displayis locked may be a consecutive amount of time, since displaywas locked to the first interface orientation, during which computing deviceoutputs one or more user interfaces in a second interface orientation. In some examples, the amount of time during which computing deviceoutputs one or more user interfaces in a second interface orientation different from the first interface orientation to which displayis locked may be the cumulative amount of time in a given time period (e.g.,minutes, one hour, etc.), since displaywas locked to the first interface orientation, during which computing deviceoutputs one or more user interfaces in a second interface orientation.

510 508 508 508 508 508 508 510 508 508 508 510 508 508 In some examples, computing devicemay determine whether to adaptively change the orientation to which displayis locked based at least in part on the type of and/or the provider of content being displayed at displaywhen such content is displayed at displayin an interface orientation different from the interface orientation to which displayis locked. For example, if displayis displaying media content, such as images, videos, and the like in an interface orientation different from the interface orientation to which displayis locked, computing devicemay refrain from changing the orientation to which displayis locked. In another example, if displayis displaying textual content, such as web pages, text documents, and the like in an interface orientation different from the interface orientation to which displayis locked, computing devicemay adaptively change the orientation to which displayis locked to the orientation in which the textual content is displayed at display.

510 508 510 510 508 510 508 510 508 In some examples, computing devicemay use one or more neural networks to adaptively change the orientation to which displayis locked based on factors as historical patterns of usage of computing device, current usage of computing device, environmental factors (e.g., the current time of the day, the current date, etc.), the type of user interface and/or media content currently being displayed at display, and/or any other suitable factors. For example, computing devicemay input data indicative of such factors to one or more neural networks, and the one or more neural network may, in response, output an indication of whether to adaptively change the interface orientation to which displayis locked. Computing devicemay therefore determine, based on the output of the one or more neural networks, whether to adaptively change the interface orientation to which displayis locked.

5 FIG. 508 508 510 518 508 510 510 510 510 510 508 510 508 510 In the example of, displaymay be locked in a portrait orientation. While displayis locked in the portrait orientation, computing devicemay output user interfaceA of a first application in a landscape orientation, which is different from the portrait orientation to which displayis locked. Computing devicemay determine the amount of time during which computing deviceoutputs one or more user interfaces in the portrait orientation and may determine whether that amount of time exceeds a threshold amount of time. If computing devicedetermines that the amount of time during which computing deviceoutputs one or more user interfaces in the portrait orientation exceeds the threshold time period, computing devicemay unlock displayfrom the portrait orientation. In some examples, computing devicemay also lock displayto the landscape orientation, or may re-enable the autorotation function of computing device.

510 508 510 508 508 510 508 508 510 508 510 508 510 In some examples, computing devicemay adaptively change the interface orientation to which displayis locked based on computing deviceoutputting a user interface in a primary orientation of display. That is, when displayis locked to a first interface orientation, computing devicemay output a user interface in a second interface orientation that is different from the first interface orientation to which displayis locked. If the second orientation is the primary orientation of display, computing devicemay adaptively unlock displayfrom the first interface orientation. In some examples, computing devicemay also lock displayto the landscape orientation (i.e., the primary orientation), or may re-enable the autorotation function of computing device.

5 FIG. 508 508 508 510 518 526 518 526 510 526 518 526 508 510 510 518 508 510 510 518 508 508 510 508 510 In the example of, the primary orientation of displaymay be the landscape orientation, and displaymay be locked in a portrait orientation. While displayis locked in the portrait orientation, computing devicemay output user interfaceA of applicationA in a portrait orientation. Subsequent to outputting user interfaceA of applicationA, computing devicemay activate applicationA as the foreground application, and may output user interfaceB of applicationB in a landscape orientation, which is different from the portrait orientation to which displayis locked. Computing devicemay therefore determine that computing deviceis outputting user interfaceB in the primary orientation of display. Computing devicemay, in response to determining that computing deviceis outputting user interfaceB in the primary orientation of display, unlock displayfrom the portrait orientation. In some examples, computing devicemay also lock displayto the landscape orientation (i.e., the primary orientation), or may re-enable the autorotation function of computing device.

510 508 508 510 518 510 526 518 526 508 If computing deviceunlocks displayfrom the portrait orientation and locks displayto the landscape orientation, computing devicemay subsequently output additional user interfaces in the landscape orientation. For example, subsequent to outputting user interfaceB, computing devicemay activate applicationC as the foreground application, and may output user interfaceC for applicationC in the landscape orientation to which displayis locked.

508 526 534 134 526 518 526 508 534 518 508 1 1 FIGS.A-C In some examples, if displayis locked to the landscape orientation and if applicationC is not operable to output a user interface in the landscape orientation, interface rotation module, which is an example of interface rotation moduleof, may determine, based on the user interface that is outputted by applicationC in a portrait orientation, user interfaceC for applicationC in the landscape orientation to which displayis locked, according to the techniques described throughout this disclosure. Interface rotation modulemay therefore output user interfaceC for display at displayin the landscape orientation.

6 FIG. 6 FIG. 1 1 FIGS.A-C 2 FIG. 610 110 210 is a conceptual diagram illustrating another example of a computing device that performs adaptive user interface rotation, in accordance with one or more aspects of the present disclosure. Computing deviceofis described below as an example of computing deviceas illustrated inand computing deviceas illustrated in.

In some examples, each of a plurality of applications at the computing device may be associated with a respective interface orientation lock setting, so that different applications may, when activated as the foreground application, lock the display to an interface orientation specified by the interface orientation lock setting associated with the application. For example, an application that is associated with a portrait orientation may, upon being activated as a foreground application, lock the display to the portrait orientation even when the display is already locked to a landscape orientation. Similarly, an application that is associated with a landscape orientation may, upon being activated as a foreground application, lock the display to the landscape orientation even when the display is already locked to a portrait orientation.

6 FIG. 626 608 626 610 626 610 610 608 626 608 608 626 618 As shown in, applicationmay be associated with an interface orientation lock setting that specifies displayis to be locked to a landscape orientation when applicationis activated as the foreground application for computing device. When applicationis activated as the foreground application for computing device, computing devicemay lock displayto the landscape orientation specified by the interface orientation lock setting associated with application, regardless of whether displayis already locked to another interface orientation. As such, because displayis locked to the landscape orientation, applicationmay output user interfaceA in the landscape orientation.

608 608 626 626 608 626 634 134 626 618 626 618 608 1 1 FIGS.A-C In some examples, an application may be associated with an interface orientation lock setting that specifies displayis to be locked to a particular interface orientation even if the application is not operable to output a user interface in the particular interface orientation to which displayis locked. For example, even if applicationis not operable to output a user interface in the landscape orientation, applicationmay still be associated with an interface orientation lock setting that specifies displayis to be locked to the landscape orientation. When applicationoutputs a user interface in the portrait orientation, interface rotation module, which is an example of interface rotation moduleof, may determine, based on the user interface for applicationin the portrait orientation, a re-oriented user interfaceA for applicationin the landscape orientation, and may output user interfaceA for display by displayin the landscape orientation.

608 610 626 610 626 608 626 In some examples, an application associated with an interface orientation lock setting may lock displayto the interface orientation specified by the interface orientation lock setting each time the application is activated as the foreground application. For example, if computing deviceswitches to another application as the foreground application and then subsequently re-activates applicationas the foreground application, computing devicemay, when applicationis re-activated as the foreground application, lock displayto the portrait orientation specified by the interface orientation lock setting associated with application.

610 610 610 610 608 610 610 In some examples, when computing devicecloses an application having an associated interface orientation lock setting, computing devicemay clear the interface orientation lock setting associated with the application. By clearing the interface orientation lock setting associated with the application, the application may no longer be associated with an interface orientation lock setting. Thus, if the application is subsequently re-activated as the foreground application of computing device, the re-activation of the application may not cause computing deviceto lock displayto a particular interface orientation. Instead, computing devicemay, in some examples, re-enable the autorotation function of computing device.

610 610 610 Computing devicemay close an application by fully quitting all of the processes of computing device, including any of the application's background processes. This may be in contrast to switching the foreground application of the computing device away from the application to another application, in which case the application's background processes may continue to execute at computing device.

6 FIG. 626 610 618 610 610 610 618 630 618 630 610 626 632 630 626 610 632 626 In the example of, after applicationis activated as the foreground application of computing deviceand outputs user interfaceA, the user of computing devicemay provide user input that causes computing deviceto switch to the home screen of computing deviceand to output user interfaceB of the home screen. While in the home screen, the user may provide user input to bring up a list of recent applications, such as recent applications listin user interfaceB. The user may interact with recent applications listto cause computing deviceto close application, such as by selecting the close buttonin recent applications listthat is associated with application. Computing devicemay, in response to receiving the user input that corresponds to the selection of close button, close application.

610 626 626 610 626 610 626 626 608 626 Computing devicemay, by closing application, quit all of the processes of applicationexecuting at computing device, including any background processes of application. Computing devicemay also, in response to closing application, clear the interface orientation lock setting associated with the application, such that applicationis no longer associated with the interface orientation lock setting that specifies displayis to be locked to the landscape orientation when applicationis activated as the foreground application.

626 610 626 608 626 626 618 608 When applicationis subsequently re-activated as the foreground application of computing device, applicationis no longer associated with the interface orientation lock setting that specifies displayis to be locked to the landscape orientation when applicationis activated as the foreground application. As such, applicationmay be able to output user interfaceC in a portrait orientation at display.

In some examples, a computing device may output user interfaces and/or user interface elements in an interface orientation different from the particular interface orientation to which a display is locked when the user interfaces and/or user interface elements are used by users of the computing device to provide user input. The computing device may determine the interface orientation in which to output user interfaces and/or user interface elements used by users to provide user input in order to improve user comfort while providing user input via the user interfaces and/or user interface elements and/or to otherwise improve the user experience providing user input via the user interfaces and/or user interface elements.

For example, due to factors such as the form factor of the computing device, the size of the display of the computing device, and the like, it may be more comfortable for the user of a computing device to input text using a virtual keyboard that is outputted in a portrait orientation instead of a virtual keyboard that is outputted in a landscape orientation. As such, in some examples, while the display of a computing device is locked to the landscape orientation, the computing device may still output a virtual keyboard in the portrait orientation.

7 FIG. 7 FIG. 1 1 FIGS.A-C 2 FIG. 710 110 210 is a conceptual diagram illustrating another example of a computing device that performs adaptive user interface rotation, in accordance with one or more aspects of the present disclosure. Computing deviceofis described below as an example of computing deviceas illustrated inand computing deviceas illustrated in.

7 FIG. 708 726 710 718 718 726 742 As shown in, displaymay be locked to the landscape orientation, and applicationexecuting at computing devicemay correspondingly output user interfaceA in the landscape orientation. User interfaceA outputted by applicationmay include text field, which may be a user interface element that may accept text input.

742 742 742 710 742 708 742 The user may provide user input that corresponds to the selection of text field, such as by providing touch input to tap text field, in order to provide text input in text field. Computing devicemay, in response to receiving the user input that corresponds to the selection of text fieldoutput, at display, a virtual keyboard with which the user may interact to provide text input at text field.

708 710 710 742 718 726 718 718 750 750 742 718 Even though displayis locked to the landscape orientation, computing devicemay output a virtual keyboard in the portrait orientation. As such, in response to computing devicereceiving the user input that corresponds to the selection of text fieldin user interfaceA, applicationmay output user interfaceB in the portrait orientation, where user interfaceB includes virtual keyboardthat is also in the portrait orientation. The user may therefore type using virtual keyboardto provide text input to text fieldin user interfaceB.

8 FIG. 7 FIG. 2 FIG. 210 is a flowchart illustrating example operations performed by an example computing device, in accordance with one or more aspects of the present disclosure.is described below in the context of computing deviceof.

8 FIG. 240 210 802 240 804 240 208 806 As shown in, one or more processorsof computing devicemay activate an application that is operable to output a user interface in a second interface orientation and is not operable to output the user interface in a first interface orientation (). One or more processorsmay determine, for the application, a re-oriented user interface in the first interface orientation (). One or more processorsmay output the re-oriented user interface for display at a display devicein the first interface orientation ().

240 240 240 208 In some examples, one or more processorsmay activate, as the foreground application, a second application that outputs a media content, where the second application is operable to output the media content in the second interface orientation and is not operable to output the media content in the first interface orientation. One or more processorsmay, based on the display device being locked to the first interface orientation, transform the media content to generate a transformed media content for display in the first interface orientation. One or more processorsmay output the transformed media content for display at the display devicein the first interface orientation.

240 In some examples, to transform the media content to generate the transformed media content, one or more processorsmay perform at least one of rotating the media content or scaling the media content to generate the transformed media content for display in the first interface orientation. In some examples, the media content is a video.

240 208 210 240 210 208 In some examples, one or more processorsmay, while the display deviceis locked to the first interface orientation, transition the computing deviceto a sleep state. One or more processorsmay, in response to transitioning the computing devicefrom the sleep state to an awake state, unlock the display devicefrom the first interface orientation.

208 240 240 210 In some examples, to lock the display deviceto the first interface orientation of the plurality of interfaces, one or more processorsmay determine a respective interface orientation lock setting for each of a plurality of applications, the plurality of applications including the application. One or more processorsmay, in response to the application being activated as the foreground application, lock the display deviceto the first interface orientation specified by the respective interface orientation lock setting for the application.

240 240 208 208 240 208 240 240 208 208 In some examples, one or more processorsmay activate, as the foreground application, a third application, wherein the third application is operable to output a third user interface in the second interface orientation and is not operable to output the third user interface in the first interface orientation. One or more processorsmay, while the display deviceis locked to the first interface orientation, output the third user interface for display at the display devicein the second interface orientation. One or more processorsmay, based on the third user interface being outputted in the second interface orientation that is different from the first interface orientation to which the display deviceis locked, determine a most recent interface orientation to be the second interface orientation. One or more processorsmay, after outputting the third user interface, activate, as the foreground application, a fourth application, wherein the fourth application is operable to output a fourth user interface in the first interface orientation and is also operable to output the fourth user interface in the second interface orientation. One or more processorsmay, while the display deviceis locked to the first interface orientation, output, based at least in part on the most recent interface orientation being the second interface orientation, the fourth user interface for display at the display devicein the second interface orientation.

240 240 208 In some examples, one or more processorsmay, while the display device is locked to the first interface orientation, determine an amount of time during which one or more user interfaces are outputted in the second interface orientation. One or more processorsmay, in response to determining that the amount of time during which the one or more user interfaces are outputted in the second interface orientation exceeds a threshold amount of time, unlock the display devicefrom the first interface orientation.

240 208 240 240 208 208 240 208 208 In some examples, one or more processorsmay determine that the second interface orientation is a primary orientation for the display device. One or more processorsmay activate, as the foreground application, a fifth application, where the fifth application is operable to output a fifth user interface in the second interface orientation and is not operable to output the fifth user interface in the first interface orientation. One or more processorsmay, while the display deviceis locked to the first interface orientation, output the fifth user interface for display at the display devicein the second interface orientation. One or more processorsmay, in response to outputting the fifth user interface in the second interface orientation and based at least in part on the second interface orientation being the primary orientation for the display device, unlock the display devicefrom the first interface orientation.

208 240 In some examples, to unlock the display devicefrom the first interface orientation, one or more processorsmay lock the display device to the primary orientation.

240 208 240 208 In some examples, one or more processorsmay, while the display deviceis locked to the first interface orientation, activate a home screen, wherein the home screen is operable to output a home screen interface in the first interface orientation and is operable to output the home screen interface in the second interface orientation. One or more processorsmay, in response to activating the home screen, output the home screen interface for display at the display devicein the second interface orientation.

In some examples, the first interface orientation is a portrait orientation and the second interface orientation is a landscape orientation, or the first interface orientation is the landscape orientation and the second interface orientation is the portrait orientation.

Example 1: A method includes activating, by one or more processors, an application that is operable to output a user interface in a second interface orientation and is not operable to output the user interface in a first interface orientation; determining, by the one or more processors and for the application, a re-oriented user interface in the first interface orientation; and outputting, by the one or more processors, the re-oriented user interface for display at a display device in the first interface orientation. Example 2: The method of example 1, further includes locking, by the one or more processors of the computing device operable to perform autorotation of interfaces to be outputted by the display device, the display device to the first interface orientation of a plurality of interface orientations; Example 3: The method of any of examples 1 and 2, further includes activating, by the one or more processors as a foreground application, a second application that outputs a media content, wherein the second application is operable to output the media content in the second interface orientation and is not operable to output the media content in the first interface orientation; based on the display device being locked to the first interface orientation, transforming, by the one or more processors, the media content to generate a transformed media content for display in the first interface orientation; and outputting, by the one or more processors, the transformed media content for display at the display device in the first interface orientation. Example 4: The method of example 3, wherein transforming the media content to generate the transformed media content further comprises: performing, by the one or more processors, at least one of rotating the media content or scaling the media content to generate the transformed media content for display in the first interface orientation. Example 5: The method of any of examples 3 and 4, wherein the media content is a video. Example 6: The method of any of examples 1-5, further includes while the display device is locked to the first interface orientation, transitioning, by the one or more processors, the computing device to a sleep state; and in response to transitioning the computing device from the sleep state to an awake state, unlocking, by the one or more processors, the display device from the first interface orientation. Example 7: The method of any of examples 1-6, wherein locking the display device to the first interface orientation of the plurality of interface orientations further comprises: determining, by the one or more processors, a respective interface orientation lock setting for each of a plurality of applications, the plurality of applications including the application; and in response to the application being activated as the foreground application, locking, by the one or more processors, the display device to the first interface orientation specified by the respective interface orientation lock setting for the application. Example 8: The method of any of examples 1-7, further includes activating, by the one or more processors as the foreground application, a third application, wherein the third application is operable to output a third user interface in the second interface orientation and is not operable to output the third user interface in the first interface orientation; while the display device is locked to the first interface orientation, outputting, by the one or more processors, the third user interface for display at the display device in the second interface orientation; based on the third user interface being outputted in the second interface orientation that is different from the first interface orientation to which the display device is locked, determining, by the one or more processors, a most recent interface orientation to be the second interface orientation; after outputting the third user interface, activating, by the one or more processors as the foreground application, a fourth application, wherein the fourth application is operable to output a fourth user interface in the first interface orientation and is also operable to output the fourth user interface in the second interface orientation; and while the display device is locked to the first interface orientation, outputting, by the one or more processors and based at least in part on the most recent interface orientation being the second interface orientation, the fourth user interface for display at the display device in the second interface orientation. Example 9: The method of any of examples 1-8, further includes while the display device is locked to the first interface orientation, determining, by the one or more processors, an amount of time during which one or more user interfaces are outputted in the second interface orientation; and in response to determining that the amount of time during which the one or more user interfaces are outputted in the second interface orientation exceeds a threshold amount of time, unlocking, by the one or more processors, the display device from the first interface orientation. Example 10: The method of any of examples 1-9, further includes determining, by the one or more processors, that the second interface orientation is a primary orientation for the display device; activating, by the one or more processors as the foreground application, a fifth application, wherein the fifth application is operable to output a fifth user interface in the second interface orientation and is not operable to output the fifth user interface in the first interface orientation; while the display device is locked to the first interface orientation, outputting, by the one or more processors, the fifth user interface for display at the display device in the second interface orientation; and in response to outputting the fifth user interface in the second interface orientation and based at least in part on the second interface orientation being the primary orientation for the display device, unlocking, by the one or more processors, the display device from the first interface orientation. Example 11: The method of example 10, wherein unlocking the display device from the first interface orientation further comprises: locking, by the one or more processors, the display device to the primary orientation. Example 12: The method of any of examples 1-11, further includes while the display device is locked to the first interface orientation, activating, by the one or more processors, a home screen, wherein the home screen is operable to output a home screen interface in the first interface orientation and is operable to output the home screen interface in the second interface orientation; and in response to activating the home screen, outputting, by the one or more processors, the home screen interface for display at the display device in the second interface orientation. Example 13: The method of any of examples 1-12, wherein one of: the first interface orientation is a portrait orientation and the second interface orientation is a landscape orientation or the first interface orientation is the landscape orientation and the second interface orientation is the portrait orientation. Example 14: A computing device includes a memory storing instructions; and one or more processors that execute the instructions to: activate an application that is operable to output a user interface in a second interface orientation and is not operable to output the user interface in a first interface orientation; determine, for the application, a re-oriented user interface in the first interface orientation; and output the re-oriented user interface for display at a display device in the first interface orientation. Example 15: The computing device of example 14, wherein the one or more processors are operable to perform autorotation of interfaces to be outputted by the display device, and wherein the one or more processors further execute the instructions to lock the display device to the first interface orientation of a plurality of interface orientations. Example 16: The computing device of examples 14 and 15, wherein the one or more processors further execute the instructions to: activate, as the foreground application, a second application that outputs a media content, wherein the second application is operable to output the media content in the second interface orientation and is not operable to output the media content in the first interface orientation; based on the display device being locked to the first interface orientation, transform the media content to generate a transformed media content for display in the first interface orientation; and output the transformed media content for display at the display device in the first interface orientation. Example 17: The computing device of example 16, wherein the one or more processors that execute the instructions to transform the media content to generate the transformed media content further execute the instructions to: perform at least one of rotating the media content or scaling the media content to generate the transformed media content for display in the first interface orientation. Example 18: The computing device of any of examples 16 and 17, wherein the media content is a video. Example 19: The computing device of any of examples 14-18, wherein the one or more processors further execute the instructions to: while the display device is locked to the first interface orientation, transition the computing device to a sleep state; and in response to transitioning the computing device from the sleep state to an awake state, unlock the display device from the first interface orientation. Example 20: The computing device of any of examples 14-19, wherein the one or more processors that execute the instructions to lock the display device to the first interface orientation of the plurality of interface orientations further execute the instructions to: determine a respective interface orientation lock setting for each of a plurality of applications, the plurality of applications including the application; and in response to the application being activated as the foreground application, lock the display device to the first interface orientation specified by the respective interface orientation lock setting for the application. Example 21: The computing device of any of examples 14-20, wherein the one or more processors further execute the instructions to: activate, as the foreground application, a third application, wherein the third application is operable to output a third user interface in the second interface orientation and is not operable to output the third user interface in the first interface orientation; while the display device is locked to the first interface orientation, output the third user interface for display at the display device in the second interface orientation; based on the third user interface being outputted in the second interface orientation that is different from the first interface orientation to which the display device is locked, determine a most recent interface orientation to be the second interface orientation; after outputting the third user interface, activate, as the foreground application, a fourth application, wherein the fourth application is operable to output a fourth user interface in the first interface orientation and is also operable to output the fourth user interface in the second interface orientation; and while the display device is locked to the first interface orientation, output, based at least in part on the most recent interface orientation being the second interface orientation, the fourth user interface for display at the display device in the second interface orientation. Example 22: The computing device of any of examples 14-21, wherein the one or more processors further execute the instructions to: while the display device is locked to the first interface orientation, determine an amount of time during which one or more user interfaces are outputted in the second interface orientation; and in response to determining that the amount of time during which the one or more user interfaces are outputted in the second interface orientation exceeds a threshold amount of time, unlock the display device from the first interface orientation. Example 23: The computing device of any of examples 14-22, wherein the one or more processors further execute the instructions to: determine that the second interface orientation is a primary orientation for the display device; activate, as the foreground application, a fifth application, wherein the fifth application is operable to output a fifth user interface in the second interface orientation and is not operable to output the fifth user interface in the first interface orientation; while the display device is locked to the first interface orientation, output the fifth user interface for display at the display device in the second interface orientation; and in response to outputting the fifth user interface in the second interface orientation and based at least in part on the second interface orientation being the primary orientation for the display device, unlock the display device from the first interface orientation. Example 24: The computing device of example 23, wherein the one or more processors that execute the instructions to unlock the display device from the first interface orientation further execute the instructions to: lock the display device to the primary Example 25: The computing device of any of examples 14-24, wherein the one or more processors further execute the instructions to: while the display device is locked to the first interface orientation, activate a home screen, wherein the home screen is operable to output a home screen interface in the first interface orientation and is operable to output the home screen interface in the second interface orientation; and in response to activating the home screen, output the home screen interface for display at the display device in the second interface orientation. Example 26: The computing device of any of examples 14-25, wherein one of: the first interface orientation is a portrait orientation and the second interface orientation is a landscape orientation or the first interface orientation is the landscape orientation and the second interface orientation is the portrait orientation. Example 27: A non-transitory computer-readable storage medium including instructions, that when executed, cause one or more processors to: activate an application that is operable to output a user interface in a second interface orientation and is not operable to output the user interface in a first interface orientation; determine a re-oriented user interface for the application in the first interface orientation; and output the re-oriented user interface for display at a display device in the first interface orientation. Example 28: The non-transitory computer-readable storage medium of example 27, wherein the instructions, when executed, further cause the one or more processors to: lock the display device to a first interface orientation of a plurality of interface orientations. Example 29: The non-transitory computer-readable storage medium of any of examples 27 and 28, wherein the instructions, when executed, further cause the one or more processors to: activate, as the foreground application, a second application that outputs a media content, wherein the second application is operable to output the media content in the second interface orientation and is not operable to output the media content in the first interface orientation; based on the display device being locked to the first interface orientation, transform the media content to generate a transformed media content for display in the first interface orientation; and output the transformed media content for display at the display device in the first interface orientation. Example 30: The non-transitory computer-readable storage medium of example 29, wherein instructions that, when executed, cause the one or more processors to transform the media content to generate the transformed media content further cause the one or more processors to: perform at least one of rotating the media content or scaling the media content to generate the transformed media content for display in the first interface orientation. Example 31: The non-transitory computer-readable storage medium of any of examples 29 and 30, wherein the media content is a video. Example 32: The computing device of any of examples 27-31, wherein the instructions, when executed, further cause the one or more processors to: while the display device is locked to the first interface orientation, transition the computing device to a sleep state; and in response to transitioning the computing device from the sleep state to an awake state, unlock the display device from the first interface orientation. Example 33: The non-transitory computer-readable storage medium of any of examples 27-32, wherein the instructions that, when executed, cause the one or more processors to lock the display device to the first interface orientation of the plurality of interface orientations further cause the one or more processors to: determine a respective interface orientation lock setting for each of a plurality of applications, the plurality of applications including the application; and in response to the application being activated as the foreground application, lock the display device to the first interface orientation specified by the respective interface orientation lock setting for the application. Example 34: The non-transitory computer-readable storage medium of any of examples 27-33, wherein the instructions, when executed, further cause the one or more processors to: activate, as the foreground application, a third application, wherein the third application is operable to output a third user interface in the second interface orientation and is not operable to output the third user interface in the first interface orientation; while the display device is locked to the first interface orientation, output the third user interface for display at the display device in the second interface orientation; based on the third user interface being outputted in the second interface orientation that is different from the first interface orientation to which the display device is locked, determine a most recent interface orientation to be the second interface orientation; after outputting the third user interface, activate, as the foreground application, a fourth application, wherein the fourth application is operable to output a fourth user interface in the first interface orientation and is also operable to output the fourth user interface in the second interface orientation; and while the display device is locked to the first interface orientation, output, based at least in part on the most recent interface orientation being the second interface orientation, the fourth user interface for display at the display device in the second interface orientation. Example 35: The non-transitory computer-readable storage medium of any of examples 27-34, wherein the instructions, when executed, further cause the one or more processors to: while the display device is locked to the first interface orientation, determine an amount of time during which one or more user interfaces are outputted in the second interface orientation; and in response to determining that the amount of time during which the one or more user interfaces are outputted in the second interface orientation exceeds a threshold amount of time, unlock the display device from the first interface orientation. Example 36: The non-transitory computer-readable storage medium of any of examples 27-35, wherein the instructions, when executed, further cause the one or more processors to: determine that the second interface orientation is a primary orientation for the display device; activate, as the foreground application, a fifth application, wherein the fifth application is operable to output a fifth user interface in the second interface orientation and is not operable to output the fifth user interface in the first interface orientation; while the display device is locked to the first interface orientation, output the fifth user interface for display at the display device in the second interface orientation; and in response to outputting the fifth user interface in the second interface orientation and based at least in part on the second interface orientation being the primary orientation for the display device, unlock the display device from the first interface orientation. Example 37: The non-transitory computer-readable storage medium of example 36, wherein the instructions that, when executed, cause the one or more processors to unlock the display device from the first interface orientation further cause the one or more processors to: lock the display device to the primary orientation. Example 38: The non-transitory computer-readable storage medium of any of examples 27-37, wherein the instructions, when executed, further cause the one or more processors to while the display device is locked to the first interface orientation, activate a home screen, wherein the home screen is operable to output a home screen interface in the first interface orientation and is operable to output the home screen interface in the second interface orientation; and in response to activating the home screen, output the home screen interface for display at the display device in the second interface orientation. Example 39: The non-transitory computer-readable storage medium of any of examples 27-38, wherein one of: the first interface orientation is a portrait orientation and the second interface orientation is a landscape orientation or the first interface orientation is the landscape orientation and the second interface orientation is the portrait orientation. Aspects of this disclosure include the following examples.

By way of example, and not limitation, such computer-readable storage media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage, or other magnetic storage devices, flash memory, or any other storage medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. It should be understood, however, that computer-readable storage mediums and media and data storage media do not include connections, carrier waves, signals, or other transient media, but are instead directed to non-transient, tangible storage media. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc, where disks usually reproduce data magnetically, while discs reproduce data optically with lasers.

Combinations of the above should also be included within the scope of a computer-readable medium.

Instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Accordingly, the term “processor,” as used herein may refer to any of the foregoing structures or any other structures suitable for implementation of the techniques described herein. In addition, in some aspects, the functionality described herein may be provided within dedicated hardware and/or software modules. Also, the techniques could be fully implemented in one or more circuits or logic elements.

The techniques of this disclosure may be implemented in a wide variety of devices or apparatuses, including a wireless handset, an integrated circuit (IC) or a set of ICs (e.g., a chip set). Various components, modules, or units are described in this disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require realization by different hardware units. Rather, as described above, various units may be combined in a hardware unit or provided by a collection of inter-operative hardware units, including one or more processors as described above, in conjunction with suitable software and/or firmware.

Various embodiments have been described. These and other embodiments are within the scope of the following claims.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

June 6, 2022

Publication Date

January 22, 2026

Inventors

Michael Alexander Digman

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “INTELLIGENT USER INTERFACE ROTATION” (US-20260023466-A1). https://patentable.app/patents/US-20260023466-A1

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.

INTELLIGENT USER INTERFACE ROTATION — Michael Alexander Digman | Patentable