SMART USER INTERFACE ROTATION

DE112022007338T5Pending Publication Date: 2025-03-27GOOGLE LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE112022007338
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Filing Date
2022-06-06
Publication Date
2025-03-27

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A computing device can activate an application that is capable of outputting a user interface in a second interface orientation, but not capable of outputting the user interface in a first interface orientation. The computing device can determine a newly aligned user interface in the first interface orientation for the application. The computing device can output the newly aligned user interface for display on the display device in the first interface orientation.
Need to check novelty before this filing date? Find Prior Art

Description

GENERAL STATE OF THE ART

[0001] A mobile computing device that includes a display can use sensor data generated by motion sensors to determine the orientation of the display. The mobile computing device can then automatically rotate its user interface, so that in response to a change in the display's orientation, it can adjust the orientation of the user interface to match the display's orientation. SUMMARY

[0002] In general, the techniques of this disclosure are directed toward determining the interface orientations of user interfaces to be output by a computing device for display on a display device when the display device is locked in a specific interface orientation. A computing device can lock a display device in a specific orientation. If a computing device, as the foreground application, activates an application that is not operable to output a user interface in the specific orientation in which the display device is locked, the computing device may be able to determine a reoriented user interface for the application in the specific orientation in which the display device is locked.The computing device can therefore output the newly aligned user interface for display on the display device in the specific orientation in which the display device is locked.

[0003] In some aspects, the techniques described in this document relate to a procedure comprising: turning on, 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 newly oriented user interface in the first interface orientation; and outputting, by the one or more processors, the newly oriented user interface for display on a display device in the first interface orientation.

[0004] In some aspects, the techniques described in this document concern a computing device comprising: a memory that stores instructions; and one or more processors that execute the instructions to: turn on 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 reoriented user interface for the application in the first interface orientation; and output the reoriented user interface for display on a display device in the first interface orientation.

[0005] In some aspects, the techniques described in this document relate to a non-transitory, computer-readable storage medium containing instructions which, when executed by one or more processors, cause the one or more processors of a computing device to: turn on 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 newly oriented user interface in the first interface orientation; and output the newly oriented user interface for display on a display device in the first interface orientation.

[0006] In some aspects, the techniques described in this document relate to an apparatus comprising: means for switching on 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 reoriented user interface for the application in the first interface orientation; and means for outputting the reoriented user interface for display on a display device in the first interface orientation.

[0007] The details of one or more examples are set forth in the accompanying drawings and the description below. Further features, functions, and advantages of the disclosure will become apparent from the description, the drawings, and the claims. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1A-1C are conceptual diagrams illustrating a computing device that performs adaptive user interface rotation according to one or more aspects of the present disclosure. Fig. Figure 2 is a block diagram illustrating further details of an exemplary computing device according to one or more aspects of the present disclosure. Fig. Figure 3 is a conceptual diagram illustrating another example of a computing device that performs adaptive user interface rotation according to one or more aspects of the present disclosure. Fig. Figure 4 is a conceptual diagram illustrating another example of a computing device that performs adaptive user interface rotation according to one or more aspects of the present disclosure. Fig. Figure 5 is a conceptual diagram illustrating another example of a computing device that performs adaptive user interface rotation according to one or more aspects of the present disclosure. Fig. Figure 6 is a conceptual diagram illustrating another example of a computing device that performs adaptive user interface rotation according to one or more aspects of the present disclosure. Fig. Figure 7 is a conceptual diagram illustrating another example of a computing device that performs adaptive user interface rotation according to one or more aspects of the present disclosure. Fig. Figure 8 is a flowchart illustrating exemplary operations performed by an exemplary computing device in accordance with one or more aspects of the present disclosure. DETAILED DESCRIPTION

[0008] Fig. Figures 1A-1C are conceptual diagrams illustrating a computing device that performs adaptive user interface rotation according to one or more aspects of the present disclosure. In the example from Fig. 1A The computing device 110 can be a mobile or non-mobile computing device. Examples of computing device 110 include 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, portable, and non-portable computing device.

[0009] The computing device 110 includes a user interface component (“UIC”) 112, one or more sensor components 114, a user interface module (“UI” module) 120, an interface rotary module 134 and one or more applications 126.

[0010] The UIC 112 of the computing device 110 can function as an input and / or output device for the computing device 110. The UIC 112 can be implemented using various technologies. For example, the UIC 112 can function as an input device using a resistive touchscreen, a surface acoustic wave touchscreen, a capacitive touchscreen, a projective capacitive touchscreen, a pressure-sensitive screen, an acoustic pulse detection touchscreen, or another presence-sensitive screen technology.The UIC 102 includes a display 108 which can function as an output device using one or more of a liquid crystal display (LCD), a dot matrix display, a light emitting diode display (LED display), a microLED display, an organic light emitting diode display (OLED display), electronic ink or a similar black and white or color display capable of outputting visible information to the user of the computing device 110.

[0011] The display 108 included in the UIC 112 of the computing device 110 can be a presence-sensitive screen capable of receiving tactile user input from a user of the computing device 110. The UIC 112 can receive the tactile user input by detecting one or more taps and / or gestures from a user of the computing device 110 (e.g., the user touching or pointing at one or more areas of the display 108 with a finger or stylus). The display 108 can present an output, such as a user interface, that may be related to the functionality provided by the computing device 110. For example, the display 108 can present various functions and applications running on the computing device 110, such as an electronic messaging application, a message transmission application, a map application, etc.

[0012] The one or more applications 126 can include functionality for performing a variety of operations on the computing device 110. For example, the one or more applications 126 can include an email application, a text messaging application, an instant messaging application, a weather application, a video conferencing application, a social networking application, a stock market application, an emergency alert application, a sports application, an office productivity application, a ride-sharing application, a multimedia player, etc.

[0013] Although it has been shown that they are operable by the computing device 110, in some examples the one or more applications 126 may be operable by a remote computing device that is communicatively coupled to the computing device 110. In such examples, an application running on 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, wireless short-range 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 the computing device 110. For example, the remote computing device may be operatively coupled to the computing device 110 via a network.Examples of a remote computing device include a server, a smartphone, a tablet, a smartwatch, and a desktop computer. In some examples, a remote computing device may not be an integrated component of Computing Device 110.

[0014] The UI module 120 can interpret inputs detected at the UIC 112 (e.g., when a user provides one or more gestures at a location on the display 108 where a user interface is shown). The UI module 120 can forward information about the inputs detected at the UIC 112 to one or more associated platforms, operating systems, applications, and / or services running on the computing device 110 to cause the computing device 110 to perform a function. The UI module 120 can also receive information and instructions from one or more associated platforms, operating systems, applications, and / or services running on the computing device 110 (e.g., the one or more applications 126) to generate a GUI.Furthermore, the UI module 120 can act as an intermediary between the one or more associated platforms, operating systems, applications and / or services running on the computing device 110 and various output devices of the computing device 110 (e.g. speakers, LED indicators, vibrators, etc.) to produce an output (e.g. graphic, acoustic, tactile, etc.) with the computing device 110.

[0015] The UI module 120 can be implemented in various ways. For example, the UI module 120 can be implemented as a downloadable or pre-installed application or "app". In another example, the UI module 120 can be implemented as part of a hardware unit of the computing device 110. In yet another example, the UI module 120 can be implemented as part of an operating system of the computing device 110. In some cases, parts of the functionality of the UI module 120, or of any other module described in this disclosure, can be implemented across any combination of an application, a hardware unit, and an operating system.

[0016] The interface rotary module 134 can reorient user interfaces output by one or more applications 126. That is, the interface rotary module 134 can receive a user interface output by an application in a first interface orientation and, based on this interface, determine a reoriented user interface for the application in a second interface orientation that differs from the first interface orientation corresponding to the user interface output by the application. The interface rotary module 134 can be implemented in various ways. For example, the interface rotary module 134 can be implemented as a downloadable or pre-installed application or "app". In another example, the interface rotary module 134 can be implemented as part of a hardware unit of the computing device 110.In another example, the interface rotary module 134 can be implemented as part of an operating system of the computing device 110. In some cases, parts of the functionality of the interface rotary module 134 can be implemented across any combination of an application, a hardware unit, and an operating system. For example, the interface rotary module 134 can be included as part of the UI module 120.

[0017] The computing device 110 may also include one or more sensor components 114. In some examples, a sensor component may be an input component that obtains environmental information about an environment containing the computing device 110. In some examples, a sensor component may be an input component that obtains information regarding the physical position, movement, and / or location of the computing device 110. For example, the one or more sensor components 114 may include, among others: 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.

[0018] In the example from Fig. 1A One or more applications 126 can send data to the UI module 120, causing the UI module 120 to generate one or more user interfaces and elements thereof. In response, the UI module 120 can issue instructions and information to the display 108, causing the display 108 to show the user interfaces according to the information received from the UI module 120. The user interfaces can be graphical user interfaces that allow a user of the computing device 110 to interact with applications and / or the operating system of the computing device 110 to provide input to the display 108.

[0019] When handling input detected by the UIC 112, the UI module 120 can receive information from the UIC 112 in response to inputs detected at locations on the display 108 where user interface elements are shown. The UI module 120 disseminates information about inputs detected by the UIC 112 to other components of the computing device 110 in order to interpret the inputs and to cause the computing device 110 to perform one or more functions in response to the inputs.

[0020] The computing device 110 can output user interfaces for display on the display 108 in a variety of interface orientations, such as portrait and landscape orientations. When the computing device 110 outputs a user interface in an interface orientation, the user interface elements, such as text, images, videos, controls, etc., can be oriented and / or otherwise positioned so that the user interface elements are designed to be viewed and / or interacted with correctly while the display 108 is in the corresponding orientation.

[0021] For example, if the computing device 110 outputs a user interface in a landscape orientation, the user interface elements, such as text, images, videos, controls, etc., are oriented so that they are correctly viewed by a user of the computing device 110 when the display 108 is in landscape orientation relative to the user. Similarly, if the computing device 110 outputs a user interface in a portrait orientation, the user interface elements, such as text, images, videos, controls, etc., are oriented so that they are correctly viewed by a user of the computing device 110 when the display 108 is in portrait orientation relative to the user.

[0022] The one or more sensor components 114, such as one or more accelerometers, one or more gyroscopes, and / or one or more cameras, can generate sensor data that the computing device 110 can use to determine its orientation relative to a reference frame, such as its orientation relative to the Earth. If a user or other entity physically rotates or otherwise moves the computing device 110, the computing device 110 can determine, based on the sensor data, whether its orientation relative to the reference frame has changed as a result of the physical movement of the computing device 110.

[0023] In some examples, a change in the orientation of the computing device 110 may also cause a corresponding change in the orientation of the display 108. For example, if the physical housing of the computing device 110 includes the display 108, as in the examples where the computing device 110 is a smartphone or a tablet computer, a change in the orientation of the display 108 may cause a change in the aspect ratio of the display 108. For example, if the display 108 has a rectangular shape, the computing device 110, when in a portrait orientation, may be oriented such that the height of the display is greater than the width of the display.If the calculating device 110 is rotated from the portrait orientation by approximately 90 degrees, the orientation of the calculating device 110 can accordingly change from the portrait orientation to a landscape orientation, with the width of the display being greater than the height of the display.

[0024] In some examples, the display 108 may not be located within the physical housing of the computing device 110, but may be a separate display device (e.g., an external display) that is operably coupled to the computing device 110. In examples where the display 108 is physically separate from the computing device 110, the display 108 may include one or more sensor components 114 that generate sensor data which the computing device 110 can use to determine the orientation of the display 108 with respect to a reference frame, such as the orientation of the display 108 with respect to the Earth.

[0025] The computing device 110 can determine the orientation of the display 108, for example, based on sensor data generated by one or more sensor components 114, and can perform an automatic rotation function based on the determined orientation of the display 108. Specifically, the computing device 110 can perform such an automatic rotation function to automatically change the orientation of the user interface output to the display 108 in response to the determination of a specified change in the orientation of the display 108, to an orientation corresponding to the determined orientation of the display 108. For example, in response to the determination that the display 108 is in a portrait orientation, the computing device 110 can output user interfaces to the display 108 in the portrait orientation.In response to the determination that the display 108 is in a landscape orientation, the computing device 110 can likewise output user interfaces for display on the display 108 in the landscape orientation.

[0026] As in Fig. As shown in Figure 1A, when the display 108 is in portrait orientation, the computing device 110 can activate an application 126A as the foreground application of the computing device 110. The computing device 110 can activate an application, such as application 126A, as the foreground application by starting or otherwise opening the application (e.g., from a home screen or startup program), switching from another application to application 126A, or otherwise displaying the user interface of application 126A in the foreground of the graphical user interface for display on the display 108.Since the computing device 110 performs the automatic rotation function to align user interfaces output by the computing device 110 to match the orientation of the display 108, the application 126A, in response to being turned on as the foreground application of the computing device 110, can output a user interface 118A for display on the display 108 in portrait orientation.

[0027] After application 126A is activated as the foreground application, the computer 110 can exit application 126A and return to a main screen of the computer 110, also referred to as the startup program or desktop. The computer 110 can also determine that the display 108 has been rotated from portrait to landscape orientation. The computer 110 can perform the automatic rotation function to cause the computer 110 to output user interfaces in landscape orientation in response to the determined change in orientation of the display 108 from portrait to landscape. Thus, if the main screen outputs a user interface 118B, the main screen can output the user interface 118B in landscape orientation, so that it corresponds to the display 108 in landscape orientation.

[0028] In some examples, although the computing device 110 can perform an automatic rotation function to change the orientation of user interfaces output on the display 108 so that they correspond to a specific orientation of the display 108, it may also be able to lock the display 108 in a specific interface orientation from among a variety of interface orientations. When the computing device 110 is locked in a specific interface orientation, it can still output user interfaces in an interface orientation that corresponds to the specific interface orientation in which the display on the display 108 is locked, even if the interface orientation in which the display 108 is locked does not correspond to the actual (e.g., physical) orientation of the display 108.

[0029] For example, the computing device 110 can lock the display 108 in portrait orientation to cause the computing device 110 to continue outputting user interfaces in portrait orientation, even if the computing device 110 determines that the display 108 is in landscape orientation. Likewise, the computing device 110 can lock the display 108 in landscape orientation to cause the computing device 110 to continue outputting user interfaces in landscape orientation, even if the computing device 110 determines that the display 108 is in portrait orientation. If the computing device 110 is operably coupled to two or more displays, the computing device 110 can lock or unlock the interface orientation of each of the two or more displays independently.If the computing device 110 locks the interface alignment of the display 108, the computing device 110 may not necessarily also lock the interface alignments of other displays that are operably coupled to the computing device 110.

[0030] In some examples, the computer 110 can lock the display 108 in an interface orientation by turning off or otherwise disabling the computer 110's auto-rotate function. In some examples, the computer 110 can include a physical control (e.g., a switch, a button, etc.) that the user can use to turn the computer 110's auto-rotate function on and off. In some examples, the computer 110 can output a UI control (e.g., a button, a slider, etc.) for display on the display 108, which a user of the computer 110 can interact with to enable and / or disable the computer 110's auto-rotate function.

[0031] In some examples, the computing device 110 can lock the display 108 in its current interface orientation. That is, if the computing device 110 locks the display 108 in an interface orientation, it can determine the current interface orientation of the display 108 and lock the display 108 in its current orientation. For example, if the display 108 is in portrait orientation, if the computing device 110 locks the interface orientation of the display 108, it can lock the display 108 in portrait orientation. Similarly, if the display 108 is in landscape orientation, if the computing device 110 locks the orientation of the display 108, it can lock the display 108 in landscape orientation. In the example from Fig. In 1A, the display 108 is in landscape orientation while the user interface 118B is being displayed. Therefore, if the computing device 110 locks the orientation of the display 108 while the display 108 is in landscape orientation, the computing device 110 can lock the display 108 in landscape orientation.

[0032] In some examples, the computing device 110 can automatically lock the display 108 in a specific interface orientation without user intervention and / or issue a suggestion to lock the display 108 in a specific interface orientation. The computing device 110 can implement one or more neural networks to determine, based on factors such as a history of previous orientations of the display 108, a history of the computing device 110 previously locking the display 108 in one or more orientations, user activities corresponding to the history of the computing device 110 previously locking the display 108 in one or more interface orientations, whether a camera input (e.g.,Images captured by one or more cameras of the computing device 110) indicate and / or predict the presence and / or orientation of the user's face relative to the computing device 110, the predicted type of foreground application (e.g., video player, web browser, etc.), content currently displayed by the display 108, whether the keyboard (e.g., a virtual keyboard) of the computing device 110 is currently displayed by the display 108 and / or in use, and the like, to determine whether the display 108 should be automatically locked in a specific interface orientation and / or whether a suggestion should be issued to lock the display 108 in a specific interface orientation.For example, the computing device 110 can use the one or more neural networks and the factors described above to determine that the user has a history of locking the display 108 in landscape orientation when going to bed at night. Accordingly, the computing device 110 can input information such as the time of day, user activity detected by the one or more sensor components 114, user inputs at the UIC 112, and the like into the one or more neural networks to determine whether the user goes to bed at night.The computing device 110 can, in response to a determination that the user is going to bed at night, automatically lock the display 108 in landscape orientation, or, in response to a determination that the user is going to bed at night, issue a suggestion on the display 108 to lock the display 108 in landscape orientation.

[0033] In some examples, the computing device 110 can determine, based on the neural network's prediction confidence, whether to automatically lock display 108 in a specific interface orientation or to issue a suggestion to lock display 108 in a specific interface orientation. For example, if the neural network's prediction confidence is above a first specified threshold, the computing device 110 can automatically lock display 108 in a specific interface orientation. If the neural network's prediction confidence is below the first specified threshold but above a second specified threshold, the computing device 110 might not automatically lock display 108 in a specific interface orientation, but instead might issue a suggestion to lock display 108 in a specific interface orientation.

[0034] In the example where the computing device 110 uses one or more neural networks to determine whether the user is going to bed, the one or more neural networks can output a prediction of whether the user is going to bed, which is associated with a confidence score. If the confidence of the neural network's prediction that the user is going to bed exceeds a first specified threshold, the computing device 110 can automatically lock the display 108 in a specific interface orientation.If the confidence of the neural network's prediction that the user will go to bed is below the first specified threshold but above a second specified threshold, the computing device 110 may not automatically lock the display 108 in a specific interface orientation, but may instead issue a suggestion to lock the display 108 in a specific interface orientation.

[0035] In general, one or more neural networks implemented by the computing device 110 can include several interconnected nodes, and each node can apply one or more functions to a set of input values ​​corresponding to one or more features and provide one or more corresponding output values. The one or more features can be sensor data generated by the one or more sensor components 114, user input at the UIC 112, and the like. The one or more corresponding output values ​​of one or more neural networks can indicate whether the display 108 is to be locked in a specific orientation.

[0036] In some examples, the computer 110 can train one or more neural networks on the device to determine more accurately whether the display 108 should be locked in a specific orientation. For example, one or more neural networks can include one or more learnable parameters or "weights" that are applied to the features. The computer 110 can adjust these learnable parameters during training to improve the accuracy with which one or more neural networks determine whether the display 108 should be locked in a specific orientation, and / or for any other suitable purpose. In some examples, the one or more neural networks can be trained outside the device and then downloaded to or installed on the computer 110.In some examples, one or more neural networks can be run on a remote server system (e.g., a cloud-based server system), and the computing device 110 can communicate with the remote server system to determine whether to lock the display 108 in a specific orientation.

[0037] The one or more applications 126 may be able to determine the specific interface orientation in which the display 108 is locked and may output user interfaces in that specific interface orientation. For example, the one or more applications 126 may use an application programming interface (API) for an orientation listener provided by the operating system of the computing device 110 to determine the specific interface orientation in which the display 108 is locked and may, in response, output user interfaces in that specific interface orientation.

[0038] In some examples, an application can be operable to output a user interface in a variety of different interface orientations. For example, an application can be operable to output a user interface in a portrait orientation and can also be operable to output a user interface in a landscape orientation. The application can determine the specific interface orientation in which display 108 is locked and can output a user interface in that specific interface orientation.

[0039] However, some applications may not be able to output a user interface in the specific interface orientation where display 108 is locked. For example, an application may only be able to output a user interface in portrait orientation and may not be able to output a user interface in landscape orientation. Therefore, even if display 108 is locked in landscape orientation, the application may still not be able to output a user interface in landscape orientation.

[0040] In some examples, while display 108 is locked in a specific interface orientation, an application that is not operable to output the user interface in that specific interface orientation can still output a user interface in an interface orientation different from the one in which display 108 is locked. For example, if the application is operable to output a user interface in portrait orientation, it can still output a user interface in portrait orientation even if display 108 is locked in landscape orientation.

[0041] However, displaying a user interface in an orientation different from the specific interface orientation in which display 108 is locked may provide a poor user experience for the user of computing device 110. A user of computing device 110 may have display 108 locked in a specific interface orientation because the user may be physically positioned in a way that makes it more convenient for the user to view content displayed in that specific interface orientation compared to other interface orientations.

[0042] A user of the computing device 110 may therefore find it inconvenient or otherwise difficult to view and / or interact with content displayed on the screen 108 in an interface orientation that differs from the specific interface orientation in which the screen 108 is locked. Thus, an application that outputs a user interface in an interface orientation different from the specific interface orientation in which the screen 108 is locked may cause the user to reposition their body and / or the computing device 110 to view the user interface more comfortably in the interface orientation that differs from the specific interface orientation in which the screen 108 is locked.

[0043] The user may not be concentrating on viewing display 108 while repositioning their body and / or the computing device 110, even though the application may continue to output the user interface to display on display 108. Therefore, outputting a user interface in an orientation that causes the user to reposition their body and / or the computing device may increase the time the application's user interface needs to be output to display on display 108 so that the user can concentrate on viewing the application's interface.Extending the time it takes for the application's user interface to be output to display on Display 108 may increase the amount of battery power consumed by Display 108 to display the user interface output by the application.

[0044] Aspects of this disclosure can solve the technical problems described above by outputting user interfaces for display on the display 108 in a way that reduces the frequency with which the user can reposition their body and / or the computing device 110 to more conveniently view the user interfaces displayed on the display 108. Reducing the frequency with which the user can reposition their body and / or the computing device 110 to more conveniently view the user interfaces displayed on the display 108 can increase the amount of time the user can concentrate on viewing the display 108.Extending the time the user focuses on viewing the display 108 can reduce the time the application's user interface needs to be output to the display 108 so the user can concentrate on viewing the display 108, thereby reducing the amount of battery power consumed by the display 108 to display the user interface output by the application.

[0045] According to aspects of the present disclosure, the computing device 110 can activate an application as a foreground application that is operable to output a user interface in an interface orientation different from the interface orientation in which the display 108 is locked, but is not operable to output the user interface in the interface orientation in which the display 108 is locked. The computing device 110 can activate an application as a foreground application by starting or otherwise opening the application (e.g., from a main screen or startup program), 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 on the display 108.

[0046] In the example from Fig. 1A A user can interact with the user interface 118B of the main screen to, for example, launch applications on the computing device 110. The user interface 118B includes application icons 122A-122D (“application icons 122”), each of which can correspond to one or more applications 126, and the user can provide user input corresponding to the selection of an application icon (e.g., from the application icons 122) to launch the application corresponding to the selected application icon.

[0047] For example, the user can provide user input corresponding to the selection of application icon 122D, which corresponds to application 126A, such as by providing touch input to tap application icon 122D. In response to receiving the user input corresponding to the selection of application icon 122D, the computing device 110 can activate application 126A, which corresponds to the selected application icon 122D, as the foreground application of the computing device 110.

[0048] While application 126A can be operated to output a user interface in portrait orientation, such as user interface 118A, which is output in portrait orientation, application 126A cannot be operated to output a user interface in landscape orientation in which display 108 is locked. For example, the application can be operated to output a user interface in portrait orientation regardless of the specific orientation of display 108 and / or computing device 110 and regardless of the interface orientation in which display 108 is locked.

[0049] Based on the fact that display 108 is locked in an interface orientation, and further based on the fact that the application is not operable to output a user interface in the interface orientation in which display 108 is locked, the computing device 110 can generate a reoriented user interface for the application in the interface orientation in which display 108 is locked. Therefore, the computing device 110 can output the reoriented user interface to the display on display 108 in the interface orientation in which display 108 is locked. That is, the computing device 110 can be able to output a user interface of the application in the interface orientation in which display 108 is locked, even if the application does not support outputting a user interface in the interface orientation in which display 108 is locked.

[0050] Since the application cannot operate to output a user interface in the interface orientation where display 108 is locked, the computing device 110 can, in some examples, send data to the interface rotary module 134 for outputting a user interface in an interface orientation different from the one where display 108 is locked. In response to receiving the user interface output data from the application, the interface rotary module 134 can generate a reoriented user interface for the application in the interface orientation where display 108 is locked.

[0051] The data sent by the application for outputting a user interface can include information such as details about the UI elements (e.g., interface elements such as UI controls, text, images, videos, etc.) in the application's user interface, details about the positioning and / or layout of the UI elements, such as constraints, distances between the UI elements and / or from the edges of the user interface, application functions associated with the UI controls, and the like. The interface rotation module 134 can use such application-sent data to generate a reoriented user interface in the interface orientation in which the display 108 is locked, corresponding to the user interface associated with the application-sent data.For example, the interface rotation module 134 can generate a reoriented user interface that includes the UI elements specified by the user interface output data sent by the application, wherein the UI elements in the reoriented user interface are oriented so that they are viewed correctly in the interface orientation in which the display 108 is locked (e.g., oriented so that the correct side is at the top).

[0052] In the example from Fig. In response to the activation of application 126A as the foreground application, application 126A can generate a reoriented user interface 118C in landscape orientation. Application 126A can be operated to output a user interface only in portrait orientation. In response to being activated as the foreground application, application 126A can send data for outputting the user interface in portrait orientation to the interface rotary module 134. Upon receiving data from application 126A, the interface rotary module 134 can generate a reoriented user interface 118C for application 126A, based on the data for outputting the user interface in portrait orientation. This new user interface corresponds to the user interface output in portrait orientation by application 126A.The interface rotation module 134 can therefore output a newly aligned user interface 118C of the application 126A for display on the display 108 in landscape orientation (e.g. via the UI module 120).

[0053] In some examples, the computing device 110 can resize the user interface in the first orientation and reorient it to generate the reoriented user interface in the second orientation, thus realigning a user interface from a first orientation to a second orientation. As in Fig. As shown in Figure 1B, when the display 108 is in portrait orientation, the computing device 110 can turn on the application 126A as the foreground application of the computing device 110, and in response to being turned on as the foreground application of the computing device 110, the application 126A can output the user interface 118A for display on the display 108 in portrait orientation.

[0054] After application 126A is activated as the foreground application, the computing device 110 can exit application 126A and return to a main screen application. The computing device 110 can also determine that the display 108 has been rotated from a portrait orientation to a landscape orientation. Thus, if the main screen outputs the user interface 118B, the computing device 110 can perform an automatic rotation to output the user interface 118B for the main screen in landscape orientation, so that it corresponds to the display 108 in landscape orientation.

[0055] The user can provide user input corresponding to the selection of application icon 122D in user interface 118B, which corresponds to application 126A, such as by providing touch input to tap application icon 122D. In response to receiving the user input corresponding to the selection of application icon 122D, the computing device 110 can activate application 126A, which corresponds to the selected application icon 122D, as the foreground application of the computing device 110.

[0056] While application 126A is operable to output a user interface in portrait orientation, such as user interface 118A, which is output in portrait orientation, application 126A is not operable to output a user interface in landscape orientation, in which display 108 is locked. Therefore, based on the fact that display 108 is locked in an interface orientation, and further based on the fact that application 110 is not operable to output a user interface in that interface orientation, computing device 110 can generate a reoriented user interface for application in that interface orientation. Computing device 110 can then output the reoriented user interface to display on display 108 in the interface orientation in which display 108 is locked.

[0057] Since the application cannot operate to output a user interface in the interface orientation where display 108 is locked, the computing device 110 can, in some examples, send data to the interface rotary module 134 for outputting a user interface in an interface orientation different from the one where display 108 is locked. In response to receiving the user interface output data from the application, the interface rotary module 134 can generate a reoriented user interface for the application in the interface orientation where display 108 is locked.

[0058] In some examples, the interface rotation module 134 can generate a reoriented user interface for the application by rotating and resizing (e.g., scaling) the user interface to whose output the application is operable. That is, the interface rotation module 134 can rotate the user interface to the interface orientation in which the display 108 is locked and can resize the rotated user interface so that it fits within the display 108.

[0059] In the example from Fig. 1B can generate a reoriented user interface 118D in landscape orientation in response to the activation of application 126A as the foreground application, where application 126A can be operated to output a user interface only in portrait orientation. Application 126A can output a user interface in portrait orientation in response to being activated as the foreground application and send data to the interface rotary module 134 for outputting the user interface in portrait orientation.The interface rotary module 134 can, in response to receiving data from the application 126A, generate a reoriented user interface 118D for the application 126A in landscape orientation based on the data, which corresponds to the user interface 118A output by the application 126A in portrait orientation.

[0060] To generate the reoriented user interface 118D for application 126A in landscape orientation, which corresponds to the user interface 118A output by application 126A in portrait orientation, the interface rotation module 134 can rotate the user interface 118A by 90 degrees and resize the rotated user interface 118A so that its height matches the height of display 108 in landscape orientation (e.g., is the same). The interface rotation module 134 can therefore output a reoriented user interface 118D from application 126A (e.g., via UI module 120) for display on display 108 in landscape orientation.

[0061] In some examples, the computing device 110 can generate a reoriented user interface for an application, at least in part, based on changing the result of the APIs called by the application. When the application determines that it wants to output a user interface, it can call an API provided by the operating system to query the type of user interface to output. For example, the application can use the APIs to query the operating system whether it should render a user interface for a tablet device (e.g., a user interface in landscape orientation). If the application receives a response to the query indicating that it should render a user interface for a smartphone (e.g., in portrait orientation), then the application can render the user interface for the smartphone.

[0062] In the example from Fig. When application 126A is switched on, application 1B can query application 126A via the APIs to determine the type of user interface to be output by application 126A. Although display 108 in the example from Fig. If 1B is locked in a portrait orientation, the computing device 110 can return a response to the query indicating that application 126A should render the user interface 118D in a portrait orientation. Therefore, in response to receiving the query response indicating that application 126A should render the user interface 118D in a portrait orientation, application 126A can output the user interface 118D in a portrait orientation, with the interface rotation module 134 being able to resize and rotate it for output to be displayed on the display 108 in a landscape orientation.

[0063] In some examples, the computing device 110 may be able to realign media content, such as images, videos, and multimedia content, from a first orientation to a second orientation in order to output the media content in the second orientation. As in Fig. As shown in Figure 1C, when the display 108 is in landscape orientation, the computing device 110 can activate an application 126B as the foreground application of the computing device 110. In some examples, the application 126B can be a media player (e.g., a video player) for outputting media content such as images, videos, and the like. Therefore, when running as the foreground application of the computing device 110, the application 126B can output media content 130A, which can be a video, for display on the display 108 in landscape orientation, which corresponds to the orientation of the display 108.

[0064] After application 126B is activated as the foreground application, the computing device 110 can exit application 126B and return to a main screen. The computing device 110 can also determine that the display 108 has been rotated from landscape to portrait orientation. Thus, if the main screen outputs the user interface 118D, the computing device 110 can perform an automatic rotation to output the user interface 118D in portrait orientation, so that it matches the portrait orientation of the display 108.

[0065] The user can provide user input corresponding to the selection of an application icon 122C in the user interface 118D that corresponds to application 126B, such as by providing touch input to tap the application icon 122C. In response to receiving the user input corresponding to the selection of application icon 122C, the computing device 110 can activate application 126B, which corresponds to the selected application icon 122C, as the foreground application of the computing device 110.

[0066] While application 126B is operable to output media content in landscape orientation, such as media content 130A, which is output in landscape orientation, application 126B is not operable to output media content in portrait orientation, in which display 108 is locked. Therefore, based on the fact that display 108 is locked in an interface orientation, and further based on the fact that the application is not operable to output media content in the interface orientation in which display 108 is locked, computing device 110 can transform media content into the interface orientation in which display 108 is locked. Computing device 110 can then output the transformed media content for display on display 108 in the interface orientation in which display 108 is locked.

[0067] In the example from Fig. 1C can, in response to the activation of application 126B as the foreground application (where application 126B can be configured to output media content only in landscape orientation), transform the media content output from landscape orientation to portrait orientation by rotating and / or scaling the media content to generate the transformed media content. For example, application 126B can send data to the interface rotation module 134 for outputting the media content in landscape orientation.The interface rotary module 134 can, in response to receiving data from the application 126B, generate media content 130B transformed from the data for the application 126B in portrait orientation, which corresponds to the media content 130A output by the application 126B in landscape orientation.

[0068] To generate the transformed media content 130B for application 126B in portrait orientation, which corresponds to the media content 130A output by application 126B in landscape orientation, the interface rotation module 134 can rotate the media content 130B by 90 degrees and resize (e.g., scale) the rotated media content 130A so that its width matches the width of display 108 in portrait orientation (e.g., is the same as display 108). The interface rotation module 134 can therefore output the transformed media content 130B from application 126B for display on display 108 in portrait orientation.

[0069] In some examples, the computing device 110 can implement one or more neural networks to determine whether media content in an interface orientation different from the interface orientation in which the display 108 is locked should be transformed into transformed media content in the interface orientation in which the display 108 is locked.The computing device 110 can make such a determination based on factors such as a history of a computing device having previously transformed media content in an interface orientation different from the interface orientation in which the display 108 is locked into transformed media content in the interface orientation in which the display 108 is locked, a history of whether the user has accordingly provided input to disable the locking of the display 108 in response to the computing device 110 transforming the media content into the transformed media content, the history of landscape orientations in which the display 108 is locked that correspond 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.

[0070] For example, the computing device 110 can 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 the display 108 in response to the computing device 110 transforming media content in a landscape orientation to a portrait orientation, but is likely to unlock the interface orientation of the display 108 from a landscape orientation in response to the computing device 110 transforming media content in a portrait orientation to a landscape orientation.Accordingly, in this example, the computing device 110 can use one or more neural networks and factors such as the current interface orientation in which the display 108 is locked to determine whether media content in a portrait orientation should be transformed into a landscape orientation when the display 108 is locked in the landscape orientation.

[0071] In another example, the computing device 110 can use the one or more neural networks and the factors described above to determine that if the display 108 is locked in a portrait orientation, the user is likely to refrain from unlocking the interface orientation of the display 108 from portrait orientation in response to the computing device 110 transforming media content with an aspect ratio of 16:9 or smaller from a landscape orientation to portrait orientation, but is likely to unlock the interface of the display 108 from portrait orientation in response to the computing device 110 transforming media content with an aspect ratio of 1.77:1 or larger from landscape orientation to portrait orientation.Accordingly, in this example, the computing device 110 can use one or more neural networks and factors such as the aspect ratio of the media content to determine whether media content in a landscape orientation should be transformed into a portrait orientation when the display 108 is locked in portrait orientation.

[0072] Fig. Figure 2 is a block diagram illustrating further details of an exemplary computing device according to one or more aspects of the present disclosure. A computing device 210 made of Fig. 2 is below used as an example for the in Fig. 1A-1C illustrated calculating device 110 described.

[0073] The calculating device 210 from Fig. 2 can be an example of a mobile phone, tablet computer, laptop computer, desktop computer, server, mainframe computer, set-top box, television, portable device, home automation device or system, PDA, gaming system, media player, e-book reader, mobile television platform, motor vehicle navigation or infotainment system, or any other type of mobile, non-mobile, portable, and non-portable computing device configured to receive and output a specification of notification data. Fig. Figure 2 illustrates only one specific example of the computing device 210, and many other examples of the computing device 210 can be used in other cases and may include a subset of the components included in the exemplary computing device 210, or may include additional components that are in Fig. 2 are not shown.

[0074] As in the example from Fig. As shown in Figure 2, the computing device 210 includes a user interface component (UIC) 212, one or more sensor components 214, one or more processors 240, one or more input components 242, one or more communication units 244, one or more output components 246, and one or more memory components 248. The UIC 212 includes a display 208. The one or more memory components 248 of the computing device 210 also include a UI module 220, one or more applications 226, an operating system 230, an interface rotary module 234, and one or more neural networks 232.

[0075] Communication channels 250 can connect any of the components 240, 212, 214, 244, 246, 242, and 248 for cross-component communication (physical, communicative, and / or operational). In some examples, the communication channels 250 can include a system bus, a network connection, a data structure for cross-process communication, or any other method for communicating data.

[0076] The one or more sensor components 214 are examples of the one or more sensor components 114 that are in Fig. The one or more sensor components 214 are shown in Figures 1A-1C and can be any component configured to obtain environmental information about the circumstances surrounding the computing device 210 and / or the physical position, movement, and / or location information of the computing device 210. Examples of the one or more sensor components 214 can include location sensors (e.g., components of the global navigation satellite system), temperature sensors, motion sensors (e.g., multi-axis accelerometers, gyroscopes, gravity sensors, etc.), pressure sensors, ambient light sensors, and the like. The one or more sensor components 215 are configured to generate sensor data that the computing device 210 can use to determine the orientation of the computing device 210 with respect to a reference frame, such as the orientation of the computing device 210 with respect to the Earth.

[0077] The one or more input components 242 of the computing device 210 can receive input. Examples of input include tactile input, audio, and video input. The one or more input components 242 of the computing device 210 include, for example, a presence-sensitive display, a touch-sensitive screen, a mouse, a keyboard, a speech-responsive system, a video camera, a microphone, or any other type of device for detecting input from a human or a machine.

[0078] The one or more output components 246 of the computing device 210 can generate an output. Examples of output include tactile output, audio output, and video output. The one or more output components 246 of the computing device 210 include, in one example, a presence-sensitive display, a sound card, a video graphics adapter card, a loudspeaker, a liquid crystal display (LCD), an organic light-emitting diode display (OLED display), a light field display, one or more haptic motors, one or more linear actuators, or any other type of device for generating an output to a person or a machine.

[0079] The one or more communication units 244 of the computing device 210 can communicate with external devices via one or more wired and / or wireless networks by transmitting and / or receiving network signals in the one or more networks. Examples of the one or more communication units 244 include 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 capable of transmitting and / or receiving information. Other examples of the one or more communication units 244 may include shortwave radios, cellular data radios, wireless network radios, and universal serial bus (USB) controllers.

[0080] The UIC 212 of the computing device 200 can be an example of the in Fig. The UIC 112 shown in Figures 1A-1C can be hardware that functions as an input and / or output device for the computing device 210. For example, the UIC 212 can include a display 208, which is an example of the display shown in Figures 1A-1C. Fig. Display 108, shown in examples 1A-1C, can be a screen displaying information. Display 208, in some examples, can be a presence-sensitive display.

[0081] The one or more processors 240 can implement functionality and / or execute instructions within the computing device 210. For example, the one or more processors 240 on the computing device 210 can receive and execute instructions stored by the one or more memory components 248, which execute the functionality of the UI module 220, the one or more applications 226, and the operating system 230. The instructions executed by the one or more processors 240 can cause the computing device 210 to store information within the one or more memory components 248 during program execution. Examples of the one or more processors 240 include application processors, display controllers, sensor hubs, and any other hardware configured to function as a processing unit.The one or more processors 240 can execute instructions from the UI module 220, the one or more applications 226, the operating system 230, the interface rotary module 234, and the one or more neural networks 232 to perform actions or functions. That is, the UI module 220, the one or more applications 226, the operating system 230, the interface rotary module 234, and the one or more neural networks 232 can be operated by the one or more processors 240 to perform various actions or functions of the computing device 210.

[0082] The one or more memory components 248 within the computing device 210 can store information for processing during the operation of the computing device 210. That is, the computing device 210 can store data that is accessed by the UI module 220, the one or more applications 226, the operating system 230, the interface rotary module 234, and the one or more neural networks 232 during execution on the computing device 210. In some examples, the one or more memory components 248 are temporary storage, meaning that a primary purpose of the one or more memory components 248 is not long-term storage.The one or more memory components 248 on the computing device 210 can be configured as volatile memory for short-term storage of information and therefore do not retain stored contents when they are turned off. Examples of volatile memory include random access memories (RAM), dynamic random access memories (DRAM), static random access memories (SRAM), and other well-known forms of volatile memory.

[0083] The one or more memory components 248 also include, in some examples, one or more computer-readable storage media. The one or more memory components 248 can be configured to store larger amounts of information as volatile memory. The one or more memory components 248 can also be configured for long-term storage of information as non-volatile memory and retain information after power cycles. Examples of non-volatile memory include magnetic hard disks, optical disks, floppy disks, flash memory, or forms of electrically programmable memories (EPROM) or electrically erasable and programmable memories (EEPROM). The one or more memory components 248 can store program instructions and / or information (e.g.,data) that are associated with the UI module 220, the one or more applications 226, the operating system 230, the interface rotary module 234, and the one or more neural networks 232. The UI module 220, the one or more applications 226, the interface rotary module 234, and the one or more neural networks 232 can be executed on the one or more processors 240 to perform functions similar to those of the UI module 120, the one or more applications 126, and the interface rotary module 134, respectively, which are in . Fig. 1A-1C are shown, are similar.

[0084] The one or more neural networks 232 can be implemented by the computing device 210 as software, hardware, or a combination thereof. The one or more neural networks 232 can include multiple interconnected nodes, and each node can apply one or more functions to a set of input values ​​corresponding to one or more features and provide one or more corresponding output values. The one or more neural networks 232 can be an example of the neural networks described in this entire disclosure and perform similar functions to them.

[0085] In some examples, the one or more neural networks 232 can be trained on the device by the computing device 210. For example, the one or more neural networks 232 can include one or more learnable parameters or "weights" that are applied to the features. The computing device 210 can adjust these learnable parameters during training to improve the accuracy of the one or more neural networks 232. In some examples, the one or more neural networks 232 can be trained outside the device and then downloaded to or installed on the computing device 210.

[0086] The operating system 230 can be run on the one or more processors 240 to cause the computing device 210 to perform various functions, to manage hardware resources of the computing device 210, to manage the processes running on the one or more processors 240, and / or to provide various common services for other software applications and processes running on the one or more processors 240.

[0087] The operating system 230 can run on one or more processors 240 to determine the orientation of the computing device 210 relative to a reference frame, such as the orientation of the computing device 210 relative to the Earth, based on sensor data generated by the one or more sensor components 214. If a user or another entity physically rotates or otherwise moves the computing device 210, the operating system 230 can determine, based on the sensor data, whether the orientation of the computing device 210 has changed as a result of the physical movement of the computing device 210.

[0088] The physical movement of the computing device 210, which causes a change in the orientation of the computing device 210, can also cause a corresponding change in the orientation of the display 208. For example, if the computing device 210 includes a display 208, such as if the computing device 210 is a smartphone or a tablet computer, the orientation of the display 208 can correspond to the orientation of the computing device 210. Accordingly, the operating system 230 can be configured to determine the orientation of the display 208, as well as changes in the orientation of the display 208, based on sensor data generated by one or more sensor components 214.

[0089] The operating system 230 can run on one or more processors 240 to determine the orientation of the display 208, for example, based on sensor data generated by the one or more sensor components 214, and can perform an automatic rotation function based on the determined orientation of the display 208. Specifically, the operating system 230 can perform such an automatic rotation function to automatically change the orientation of the user interface output to the display 208 in response to the determination of a specified change in the orientation of the display 208, to an orientation of the user interface that corresponds to the determined orientation of the display 208.

[0090] To provide an automatic rotation function, the operating system 230 can determine the orientation of the display 208 and can provide an API that one or more applications 226 can use to determine the orientation of the display 208 in order to output interfaces in an interface orientation that corresponds to the orientation of the display 208. For example, one or more applications 226 can use the API to determine that the display 208 is in portrait orientation and accordingly output user interfaces in portrait orientation. Likewise, one or more applications 226 can use the API to determine that the display 208 is in landscape orientation and accordingly output user interfaces in landscape orientation.

[0091] In some examples, the operating system 230 can run on one or more processors 240 to lock the display 208 in a specific interface orientation from a variety of orientations. The operating system 230 can lock the display 208 in an orientation by turning off or otherwise disabling the operating system 230's auto-rotate function. In some examples, the computing device 210 can include a physical control (e.g., a switch, a button, etc.) that the user can use to toggle the computing device 210's auto-rotate function. In some examples, the operating system 230 can include a UI control (e.g., a button, a slider, etc.).) output to the display on the display 208, which a user of the computing device 210 can interact with to activate and / or deactivate the automatic rotation function of the computing device 210.

[0092] In some examples, the operating system 230 can use the one or more neural networks 232 to automatically (i.e., without user intervention) lock the display 208 based on factors such as historical usage patterns of the computing device 210, the current usage of the computing device 210, environmental factors (e.g., the current time of day, the current date, etc.), and / or any other suitable factors in an interface orientation. For example, the operating system 230 can input data indicating such factors into the one or more neural networks 232, and the one or more neural networks 232 can, in response, output an indication of whether the display 208 should be locked in an interface orientation.The operating system 230 can therefore determine, based on the output of one or more neural networks 232, whether the display 208 should be locked in an interface orientation.

[0093] In some examples, the operating system 230 can lock the interface orientation of the display 208 in its current orientation. That is, if the operating system 230 locks the display 208 in an orientation, it can determine the current orientation and lock the display 208 in that orientation. In some examples, the operating system 230 can receive user input (e.g., on one or more input components 242) specifying the orientation in which the display 208 is locked, and it can lock the display 208 in the orientation specified by the user input.

[0094] In some examples, while the interface orientation is locked in a specific interface orientation, an application of one or more applications 226 may not be operable to output the user interface in the specific interface orientation in which the display 208 is locked, but may still output a user interface in an interface orientation different from the specific interface orientation in which the interface orientation is locked. For example, while the display 208 is locked in a landscape orientation, an application may only be able to output a user interface in a portrait orientation and not be able to output a user interface in a landscape orientation.

[0095] While the display 208 is locked in an interface orientation, the operating system 230 can run on one or more processors 240 to activate an application as a foreground application. This application can be operable to output a user interface in an interface orientation different from the one in which the display 208 is locked, but it is not operable to output the user interface in the interface orientation in which the display 208 is locked. The operating system 230 can activate an application as a foreground application by starting or otherwise opening the application (e.g., from a home screen or startup program), switching from another application to the application, or otherwise outputting the application's user interface to the foreground of the graphical user interface for display on the display 208.

[0096] The interface rotary module 234 can run on one or more processors 240 to generate a reoriented user interface for the application in the interface orientation in which the display 208 is locked, based on the fact that the display 208 is locked in an interface orientation and further based on the fact that the application is not executable. The interface rotary module 234 can therefore output the reoriented user interface to the display on the display 208 in the interface orientation in which the display 208 is locked.

[0097] The application can send data to the interface rotary module 234 for outputting a user interface in an interface orientation different from the interface orientation in which display 208 is locked. In response to receiving the user interface output data from the application, the interface rotary module 234 can generate a newly aligned user interface for the application in the interface orientation in which display 208 is locked, and can output the newly aligned user interface in the interface orientation in which display 208 is locked for display on display 208.

[0098] The data sent by the application to the interface rotary module 234 for outputting a user interface can include information such as details about the UI elements (e.g., interface elements such as UI controls, text, images, videos, etc.) in the user interface, details about 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, application functions associated with the UI controls, and the like. The interface rotary module 234 can use such data sent by the application to generate a reoriented user interface in the interface orientation in which the display 208 is locked, corresponding to the user interface associated with the data sent by the application.

[0099] In some examples, the interface rotation module 234 can generate a reoriented user interface that includes the UI elements specified by the user interface output data sent by the application, with the UI elements in the reoriented user interface oriented so that they are viewed correctly in the interface orientation in which the display 208 is locked (e.g., oriented so that the right side is up). In some examples, the interface rotation module 234 can generate a reoriented user interface for the application by rotating and resizing the user interface to whose output the application is operable.This means that the interface rotation module 234 can rotate the user interface into the interface orientation in which the display 208 is locked, and can resize the rotated user interface so that it fits into the display 208 in the interface orientation in which the display 208 is locked.

[0100] In some examples, the interface rotary module 234 can run on one or more processors 240 to realign media content, such as images, videos, and multimedia content, from a first orientation to a second orientation in the interface orientation in which the display 208 is locked, in order to output the media content in the second orientation. For example, an application can send data to the interface rotary module 234 to output the media content in an interface orientation that differs from the interface orientation in which the display 208 is locked.The interface rotation module 234 can, in response to receiving the data, generate media content transformed based on the data in the interface orientation in which the display 208 is locked, such as by rotating the media content into the interface orientation in which the display 208 is locked, and can change the size of the rotated media content so that it fits into the display 208 in the interface orientation in which the display 208 is locked.

[0101] If, in some examples, the display 208 is locked in a specific interface orientation, the operating system 230 can run on the one or more processors 240 to output the main screen and / or the lock screen of the computing device 210 in an interface orientation that differs from the specific interface orientation in which the display 208 is locked. For example, the display 208 can be associated with a primary orientation, which may be a preset default orientation for the display 208.If the display 208 is locked in a specific interface orientation that differs from the primary orientation associated with the display 208, the operating system 230, when transitioning to the main screen or lock screen of the computing device 210, can output the main screen and / or lock screen for display on the display 208 in the primary orientation associated with the display 208, even if the primary orientation associated with the display 207 differs from the specific interface orientation in which the display 208 is locked.

[0102] If the display 208 is locked in a specific interface alignment in some examples, the operating system 230 can be run on the one or more processors 240 to output a user interface of an application in an interface alignment different from the specific interface alignment in which the display 208 is locked.For example, one or more neural networks 232 can determine, based on factors such as a history of previous orientations of the application's user interfaces output to display on the display 208, a history of whether the user has provided input to cause the application's user interfaces to be output in an orientation different from the orientation of the user interfaces output to display on the display 208, and the like, whether to determine whether an application's user interface should be output in an interface orientation different from the interface orientation in which the display 208 is locked.

[0103] If, in some examples, display 208 outputs a user interface of an application in an interface orientation that differs from the specific interface orientation in which display 208 is locked, the operating system 230 can enable one or more applications 226 to output user interfaces in the interface orientation that differs from the specific interface orientation in which display 208 is locked. That is, the computing device 210 can determine the interface orientation in which display 208 shows a user interface as the most recent orientation of display 208 and can output a subsequent user interface of another application for display on display 208 in the most recent orientation of display 208, even if the most recent orientation of display 208 differs from the specific interface orientation in which display 208 is locked.

[0104] In some examples, the operating system 230 may be able to adaptively change the interface orientation in which the display 208 is locked. If the display 208 is locked in a first interface orientation, the operating system 230 may adaptively unlock the display 208 from the first interface orientation based on the fact that the computing device 210 outputs one or more user interfaces in a second interface orientation that differs from the first interface orientation in which the display 208 is locked.

[0105] In some examples, the operating system 230 can adaptively change the interface orientation in which the display 208 is locked, based on the duration during which the computing device 210 outputs one or more user interfaces in a second interface orientation that differs from the first interface orientation in which the display 208 is locked. If the duration during which the computing device 210 outputs one or more user interfaces in a second interface orientation that differs from the first interface orientation in which the display 208 is locked exceeds a threshold time period, such as five minutes, ten minutes, and the like, the operating system 230 can adaptively unlock the display 208 from the first interface orientation.

[0106] In some examples, the operating system 230 can use the one or more neural networks 232 to adaptively change the orientation in which the display 208 is locked, based on factors such as historical usage patterns of the computing device 210, the current usage of the computing device 210, environmental factors (e.g., the current time of day, the current date, etc.), the type of user interface and / or media content currently displayed on the display 208, and / or any other suitable factors. For example, the operating system 230 can input data indicating such factors into the one or more neural networks 232, and the one or more neural networks 232 can, in response, output an indication of whether the interface orientation in which the display 208 is locked should be adaptively changed.The operating system 230 can therefore determine, based on the output of one or more neural networks 232, whether the interface orientation in which the display 208 is locked should be adaptively changed.

[0107] In some examples, each of a multitude of applications on the computing device 210 can be associated with a respective interface orientation lock setting, so that different applications, when turned on as the foreground application, can lock the display in an interface orientation specified by the interface orientation lock setting associated with the application. For example, an application associated with a portrait orientation can, in response to being turned on as the foreground application, lock the display in portrait orientation, even if the display is already locked in landscape orientation.Similarly, an application associated with a landscape orientation may, in response to being turned on as a foreground application, lock the display in landscape orientation, even if the display is already locked in portrait orientation.

[0108] Fig. Figure 3 is a conceptual diagram illustrating another example of a computing device that performs adaptive user interface rotation according to one or more aspects of the present disclosure. A computing device 310 from Fig. 3 is below as an example of the in Fig. 1A-1C illustrated calculating device 110 and the one in Fig. 2 illustrated calculating device 210 described.

[0109] In the example from Fig. 3. A display 308 can be locked in a landscape orientation, and the computing device 310 can output a user interface 318A of an application 326 for display on the display 308 in landscape orientation. If the application 326 is not operational to output a user interface in landscape orientation, an interface rotary module 334, which is an example of the interface rotary module 134 from Fig. 1A-1C is to determine, based on the user interface of the application 326 in portrait orientation, a reoriented user interface 318A in landscape orientation according to the techniques described in this entire disclosure, and to output the user interface 318A of the application 326 for display on the display 308 in landscape orientation.

[0110] The computing device 310 can unlock the display 308 from an interface orientation (i.e., re-enable the automatic rotation feature of the computing device 310) when the computing device 310 exits a sleep state. For example, while the display 308 is locked in portrait orientation, the computing device 310 can transition from a waking state, which may be a state in which the display 308 is turned on and displays user interfaces (such as the user interface 318A), to a sleep state, which may be a state in which the display 308 is turned off. The computing device 310 can also enter a sleep state in response to receiving user input that instructs the computing device 310 to enter a sleep state, such as when the user presses the on / off button of the computing device 310, sometimes also called the sleep / wake button or side button.The computing device 310 can also enter sleep mode in response to user inactivity. For example, if the computing device 310 does not detect any user input for a specified period of time, such as 30 seconds, one minute, two minutes, five minutes, and so on, it can enter sleep mode. As part of entering sleep mode, the computing device 310 can turn off the display 308.

[0111] When the computing device 310 is in the sleep state, it can transition from the sleep state to a waking state, for example, in response to receiving user input that instructs the computing device 310 to transition from the sleep state to the waking state. Such user input could include the user pressing the power button of the computing device 310 while it is in the sleep state, touch input on the display 308, and the like.

[0112] When the computing device 310 transitions from sleep to wake mode, it can turn on the display 308, which may then display a lock screen, also known as a login screen. This screen is a user interface that a user can interact with to authenticate themselves as an authorized user of the computing device 310. In some examples, when the computing device 310 transitions from sleep to wake mode, it may also unlock the display 308 from landscape orientation and reactivate the automatic rotation function of the computing device 310.

[0113] Although the display 308 was locked in landscape orientation before the computing device 310 transitioned from wake to sleep, the computing device 310 can, in response to the transition from sleep to wake, unlock the display 308 from landscape orientation, thus enabling the computing device 310 to output a user interface for the lock screen in either portrait or landscape orientation. In the example from Fig. 3. The computing device 310 can determine that the display 308 is in portrait orientation after the computing device 310 has transitioned from sleep to wake state, and can therefore perform an automatic rotation to output a user interface 318B of the lock screen in portrait orientation.

[0114] In some examples, when the computing device 310 transitions from the sleep state to the waking state, it may refrain from unlocking the display 308 from the orientation (e.g., landscape orientation) in which the display 308 was locked before entering the sleep state. That is, if the display 308 was locked in a certain orientation before entering the sleep state, it may remain locked in the same orientation after entering the waking state.

[0115] Although the display 308 may remain locked in an interface orientation after transitioning to the waking state, the computing device 310 may output the lock screen user interface 318B in an interface orientation different from the interface orientation in which the display 308 is locked. For example, if the computing device 310 determines that the display 308 is oriented in a primary orientation, the computing device 310 may output the lock screen user interface 318B in the primary orientation, even if the primary orientation differs from the interface orientation in which the display 308 is locked.

[0116] A primary orientation of the display 308 can be a standard orientation preset in the computing device 310, such as by the manufacturer of the computing device 310. In some examples, a primary orientation can be the orientation of the display 308 when the computing device 310 is naturally held by the user of the computing device 310. For example, since a mobile phone is typically naturally held by users in a portrait orientation, if the computing device 310 is a mobile phone, the primary orientation of the display 308 is portrait. In some examples, some tablet computers are typically naturally held in a landscape orientation.If the computing device 310 is a tablet computer, then the primary orientation of the display 308 is the landscape orientation.

[0117] Accordingly, in response to the transition from sleep to wake state, the computing device 310 can determine whether the display 308 is in its primary orientation, which differs from the interface orientation in which the display 308 is locked. If the computing device 310 determines that the display 308 is in its primary orientation, which differs from the interface orientation in which the display 308 is locked, the computing device 310 can output the user interface 318B of the lock screen in its primary orientation.

[0118] In the example from Fig. 3. The primary orientation of the display 308 can be portrait orientation. If the computing device 310 determines that the display 308 is in portrait orientation after transitioning from sleep to wake mode, the computing device 310 can thus output the lock screen user interface 318B in portrait orientation.

[0119] In some examples, when the computing device 310 exits an application and returns to a main screen, the computing device 310 can output the main screen in the primary orientation of the display 308, even if the display 308 is locked in an interface orientation different from the interface orientation in which the display 308 is locked. For example, if the display 308 is locked in a landscape orientation and if the primary orientation of the display 308 is a portrait orientation, the computing device 310 can output its main screen for display on the display 308 in portrait orientation, even though the computing device 310 can be operated to output its main screen in either landscape or portrait orientation.

[0120] Fig. Figure 4 is a conceptual diagram illustrating another example of a computing device that performs adaptive user interface rotation according to one or more aspects of the present disclosure. A computing device 410 from Fig. 4 is below as an example of the in Fig. 1A-1C illustrated calculating device 110 and the one in Fig. 2 illustrated calculating device 210 described.

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

[0122] As in Fig. As shown in Figure 4, if a display 408 of the computing device 410 is locked in an interface orientation, the computing device 410 can, in some examples, still output a user interface to the display on the display 408 in an interface orientation that differs from the interface orientation in which the display 408 is locked. That is, if the display 408 is locked in a portrait orientation, the computing device 410 can, in some cases, output a user interface in a landscape orientation. Likewise, if the display 408 is locked in a landscape orientation, the computing device 410 can, in some cases, output a user interface in a portrait orientation.

[0123] For example, if an application is not operable to output a user interface in an interface orientation where display 408 is locked, but is operable to output a user interface in a different interface orientation from the one where display 408 is locked, the computing device 410 can output the application's user interface in an interface orientation different from the one where display 408 is locked. In the example from Fig. 4, in which the display 408 is locked in a landscape orientation, the computing device 410 can, in response to the activation of an application 426A that is capable of outputting a user interface 418A in portrait orientation but not capable of outputting a user interface in landscape orientation, output the user interface 418A of the application 426A in portrait orientation. Thus, instead of using an interface rotary module 434, which is an example of the interface rotary module 134 from Fig. 1A-1C is to determine a reoriented user interface of application 426A in landscape orientation based on the user interface 418A of application 426A in portrait orientation, instead output the user interface 418A of application 426A for display on display 408 in portrait orientation.

[0124] In some examples, the computing device 410 can output the user interface of an application in an interface orientation different from the interface orientation in which display 408 is locked, even if the application is operable to output a user interface in the interface orientation in which display 408 is locked.For example, the computing device 410 can implement one or more neural networks to determine, based on factors such as a history of previous orientations of the application's user interfaces output to display on the 408 display, a history of whether the user has provided input to cause the application's user interfaces to be output in an orientation different from the orientation of the user interfaces output to display on the 408 display, and the like, whether to determine whether an application's user interface should be output in an interface orientation different from the interface orientation in which the 408 display is locked.

[0125] For example, the computing device 410 can use the one or more neural networks and the factors described above to determine that if the computing device 410 is outputting user interfaces of the application 426A in a landscape orientation, the user is likely to provide an input, such as an input to unlock the display 408 from landscape orientation, which will cause the computing device 410 to output user interfaces of the application 426A in portrait orientation. Accordingly, the computing device 410 can use the one or more neural networks and the factors described above to output the application 426A user interface 418A for display on the display 408 in portrait orientation in response to the determination that the display 408 is locked in landscape orientation.

[0126] In response to the fact that the computing device 410 outputs the user interface 418A in portrait orientation for display on the display 408, the computing device 410 can determine that the most recent orientation of the display 408 is portrait orientation. That is, since the display 408 displays the user interface 418A in portrait orientation, the most recent orientation of the display 408 is portrait orientation.

[0127] In some examples, if the most recent orientation of display 408 differs from the interface orientation in which display 408 is locked, the computing device 410 can continue to output user interfaces from applications in the most recent orientation of display 408, provided that these applications are also operable to output user interfaces in the most recent orientation of display 408. However, if an application is not operable to output a user interface in the most recent orientation of display 408, the computing device 410 can revert to outputting the application's user interface in the interface orientation in which display 408 is locked.

[0128] In the example from Fig. 4. After outputting the user interface 418A for application 426A in portrait orientation, while the display 408 is locked in landscape orientation, the computing device 410 can turn on application 426B as the foreground application. If application 426B is operational to output a user interface in the most recent orientation (e.g., portrait orientation), the computing device 410 can, in response to application 426B being turned on as the foreground application, output a user interface 418B for application 426B in portrait orientation. In response to the computing device 410 outputting the user interface 418B in portrait orientation for display on the display 408, the computing device 410 can determine that the most recent orientation of the display 408 is still portrait orientation.

[0129] In the example from Fig. 4. After the application 426B outputs its user interface 418B in portrait orientation while the display 408 is locked in landscape orientation, the computing device 410 can turn on an application 426C as the foreground application. If the application 426C is not operational to output a user interface in the most recent orientation (e.g., portrait orientation), but is operational to output a user interface 418C in landscape orientation, the computing device 410 can, in response to the application 426C being turned on as the foreground application, output the user interface 418C for the application 426C in portrait orientation, in which the display 408 is locked.In response to the fact that the computing device 410 outputs the user interface 418C in landscape orientation for display on the display 408, the computing device 410 can determine that the most recent orientation of the display 408 is the landscape orientation.

[0130] Fig. Figure 5 is a conceptual diagram illustrating another example of a computing device that performs adaptive user interface rotation according to one or more aspects of the present disclosure. A computing device 510 from Fig. 5 is below as an example of the in Fig. 1A-1C illustrated calculating device 110 and the one in Fig. 2 illustrated calculating device 210 described.

[0131] In some examples, the computing device 510 may be able to adaptively change the interface orientation in which a display 508 is locked. If the display 508 is locked in a first interface orientation, the computing device 510 may adaptively unlock the display 508 from the first interface orientation based on the fact that it outputs one or more user interfaces in a second interface orientation that differs from the first interface orientation in which the display 508 is locked. In some examples, the computing device 510 may adaptively lock the display 508 in the second interface orientation.

[0132] In some examples, the computing device 510 can adaptively change the interface orientation in which the display 508 is locked, based on the duration during which the computing device 510 outputs one or more user interfaces in a second interface orientation that differs from the first interface orientation in which the display 508 is locked. If the duration during which the computing device 510 outputs one or more user interfaces in a second interface orientation that differs from the first interface orientation in which the display 508 is locked exceeds a threshold time period, such as five minutes, ten minutes, and the like, the computing device 510 can adaptively unlock the display 508 from the first interface orientation.In some examples, the computing device 510 can also adaptively lock the display 508 in the second interface orientation or reactivate the automatic rotation function of the computing device 110.

[0133] In some examples, the time period during which the computing device 510 outputs one or more user interfaces in a second interface orientation that differs from the first interface orientation in which the display 508 is locked may be the cumulative time period since the display 508 was locked in the first interface orientation, during which the computing device 510 outputs one or more user interfaces in a second interface orientation.In some examples, the time period during which the computing device 510 outputs one or more user interfaces in a second interface orientation, different from the first interface orientation in which the display 508 is locked, can be a continuous time period since the display 508 was locked in the first interface orientation, during which the computing device 510 outputs one or more user interfaces in a second interface orientation. In some examples, the time period during which the computing device 510 outputs one or more user interfaces in a second interface orientation, different from the first interface orientation in which the display 508 is locked, can be the cumulative time period within a given time period (e.g., 30 minutes, one hour, etc.).) since the display 508 was locked in the first interface orientation, while the computing device 510 outputs one or more user interfaces in a second interface orientation.

[0134] In some examples, the computing device 510 can determine, at least in part, whether to adaptively change the orientation in which the display 508 is locked, based on the type and / or provider of content displayed on the display 508, when such content is displayed on the display 508 in an interface orientation that differs from the interface orientation in which the display 508 is locked. For example, if the display 508 displays media content, such as images, videos, and the like, in an interface orientation that differs from the interface orientation in which the display 508 is locked, the computing device 510 can refrain from changing the orientation in which the display 508 is locked.In another example, if the 508 display shows text content, such as web pages, text documents, and the like, in an interface orientation that differs from the interface orientation in which the 508 display is locked, the computing device 510 can adaptively change the orientation in which the 508 display is locked to the orientation in which the text content is displayed on the 508 display.

[0135] In some examples, the Computing Device 510 can use one or more neural networks to adaptively change the orientation in which the Display 508 is locked, based on factors such as historical usage patterns of the Computing Device 510, current usage of the Computing Device 510, environmental factors (e.g., current time of day, current date, etc.), the type of user interface and / or media content currently displayed on the Display 508, and / or any other appropriate factors. For example, the Computing Device 510 can input data indicating such factors into one or more neural networks, and the one or more neural networks can, in response, output an indication of whether the interface orientation in which the Display 508 is locked should be adaptively changed.The computing device 510 can therefore determine, based on the output of one or more neural networks, whether the interface orientation in which the display 508 is locked should be adaptively changed.

[0136] In the example from Fig. The display 508 can be locked in a portrait orientation. While the display 508 is locked in portrait orientation, the computing device 510 can output a user interface 518A of a first application in a landscape orientation that differs from the portrait orientation in which the display 508 is locked. The computing device 510 can determine the duration for which it outputs one or more user interfaces in portrait orientation and can determine whether this duration exceeds a threshold duration. If the computing device 510 determines that the duration for which it outputs one or more user interfaces in portrait orientation exceeds the threshold duration, it can unlock the display 508 from portrait orientation.In some examples, the calculating device 510 can also lock the display 508 in landscape orientation or reactivate the automatic rotation function of the calculating device 510.

[0137] In some examples, the computing device 510 can adaptively change the interface orientation in which the display 508 is locked, based on the fact that the computing device 510 outputs a user interface in a primary orientation of the display 508. That is, if the display 508 is locked in a first interface orientation, the computing device 510 can output a user interface in a second interface orientation that differs from the first interface orientation in which the display 508 is locked. If the second orientation is the primary orientation of the display 508, the computing device 510 can adaptively unlock the display 508 from the first interface orientation. In some examples, the computing device 510 can also lock the display 508 in the landscape orientation (i.e., the primary orientation) or reactivate the automatic rotation function of the computing device 510.

[0138] In the example from Fig. The primary orientation of the display 508 can be landscape, and the display 508 can be locked in portrait orientation. While the display 508 is locked in portrait orientation, the computing device 510 can output the user interface 518A of an application 526A in portrait orientation. Following the output of the user interface 518A of the application 526A, the computing device 510 can activate the application 526A as the foreground application and output a user interface 518B of an application 526B in a landscape orientation, which differs from the portrait orientation in which the display 508 is locked. The computing device 510 can therefore determine that it outputs the user interface 518B in the primary orientation of the display 508.In response to a determination that the computing device 510 is outputting the user interface 518B in the primary orientation of the display 508, the computing device 510 can unlock the display 508 from portrait orientation. In some examples, the computing device 510 can also lock the display 508 in landscape orientation (i.e., the primary orientation) or reactivate the automatic rotation function of the computing device 510.

[0139] If the computing device 510 unlocks the display 508 from portrait orientation and locks the display 508 in landscape orientation, the computing device 510 can subsequently output additional user interfaces in landscape orientation. For example, after outputting user interface 518B, the computing device 510 can activate an application 526C as the foreground application and output a user interface 518C for application 526C in landscape orientation, in which the display 508 is locked.

[0140] In some examples, if the display 508 is locked in landscape orientation and if the application 526C is not operable to output a user interface in landscape orientation, an interface rotation module 534, which is an example of the interface rotation module 134 from Fig. 1A-1C, based on the user interface output by application 526C in portrait orientation, determines the user interface 518C for application 526C in landscape orientation, in which display 508 is locked, according to the techniques described in this entire disclosure. The interface rotary module 534 can therefore output the user interface 518C for display on display 508 in landscape orientation.

[0141] Fig. Figure 6 is a conceptual diagram illustrating another example of a computing device that performs adaptive user interface rotation according to one or more aspects of the present disclosure. A computing device 610 from Fig. 6 is below as an example of the in Fig. 1A-1C illustrated calculating device 110 and the one in Fig. 2 illustrated calculating device 210 described.

[0142] In some examples, each of a multitude of applications on the computing device can be associated with a specific interface orientation lock setting, so that different applications, when activated as the foreground application, can lock the display in an interface orientation specified by the interface orientation lock setting associated with the application. For example, an application associated with a portrait orientation, when activated as the foreground application, can lock the display in portrait orientation, even if the display is already locked in landscape orientation. Likewise, an application associated with a landscape orientation, when activated as the foreground application, can lock the display in landscape orientation, even if the display is already locked in portrait orientation.

[0143] As in Fig. As shown in Figure 6, an application 626 can be associated with an interface orientation lock setting that specifies that a display 608 is to be locked in a landscape orientation when the application 626 is turned on as the foreground application for the computing device 610. When the application 626 is turned on as the foreground application for the computing device 610, the computing device 610 can lock the display 608 in the landscape orientation specified by the interface orientation lock setting associated with the application 626, regardless of whether the display 608 is already locked in another interface orientation. Therefore, because the display 608 is locked in the landscape orientation, the application 626 can output a user interface 618A in the landscape orientation.

[0144] In some examples, an application can be associated with an interface orientation lock setting that specifies that display 608 is to be locked in a particular interface orientation, even if the application is not operational to output a user interface in that particular interface orientation in which display 608 is locked. For example, even if application 626 is not operational to output a user interface in landscape orientation, application 626 can still be associated with an interface orientation lock setting that specifies that display 608 is to be locked in landscape orientation. If application 626 outputs a user interface in portrait orientation, an interface rotation module 634, which is an example of interface rotation module 134 from Fig. 1A-1C is, based on the user interface for application 626 in portrait orientation, to determine a reoriented user interface 618A for application 626 in landscape orientation and output the user interface 618A for display by the display 608 in landscape orientation.

[0145] In some examples, an application associated with an interface orientation lock setting can lock display 608 in the interface orientation specified by the interface orientation lock setting each time the application is turned on as the foreground application. For example, if computing device 610 switches to an application other than the foreground application and then subsequently turns on application 626 again as the foreground application, computing device 610, when application 626 is turned on again as the foreground application, can lock display 608 in the portrait orientation specified by the interface orientation lock setting associated with application 626.

[0146] In some examples, when the Computing Device 610 closes an application associated with an interface orientation lock setting, the Computing Device 610 may clear the interface orientation lock setting associated with the application. Clearing the interface orientation lock setting associated with the application prevents the application from being associated with an interface orientation lock setting. Therefore, if the application is subsequently turned on again as the foreground application of the Computing Device 610, turning the application back on may not cause the Computing Device 610 to lock the display 608 in a specific interface orientation. Instead, in some examples, the Computing Device 610 may reactivate the Computing Device 610's automatic rotation function.

[0147] The computing device 610 can close an application by completely terminating all processes of the computing device 610, including any background processes of the application. 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 background processes of the application may continue to run on the computing device 610.

[0148] In the example from Fig. 6. After application 626 has been activated as the foreground application of the computer 610 and is outputting user interface 618A, the user of the computer 610 can provide user input that causes the computer 610 to switch to the computer 610's main screen and output user interface 618B of the main screen. On the main screen, the user can provide user input to access a list of recently used applications, such as a list of recently used applications 630 in user interface 618B. The user can interact with the list of recently used applications 630 to cause the computer 610 to close application 626, such as by selecting the close button 632 in the list of recently used applications 630 associated with application 626.The computing device 610 can close the application 626 in response to receiving user input corresponding to the selection of the close button 632.

[0149] By closing application 626, the computing device 610 can terminate all processes of application 626 running on the computing device 610, including any background processes of application 626. Furthermore, in response to the closing of application 626, the computing device 610 can clear the interface orientation lock setting associated with the application such that application 626 is no longer associated with the interface orientation lock setting that specifies that the display 608 should be locked in landscape orientation when application 626 is turned on as the foreground application.

[0150] If application 626 is subsequently switched on again as the foreground application of the computing device 610, application 626 is no longer associated with the interface orientation lock setting that specifies that the display 608 is to be locked in landscape orientation when application 626 is switched on as the foreground application. Therefore, application 626 can output a user interface 618C in portrait orientation on the display 608.

[0151] In some examples, a computing device may output user interfaces and / or user interface elements in an interface orientation that differs from the specific interface orientation in 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 user interfaces and / or user interface elements are to be output when 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 enhance the user experience when providing user input via the user interfaces and / or user interface elements.

[0152] For example, due to factors such as the form factor of the computing device, the size of the computing device's display, and the like, it may be more convenient for the user to enter text using a virtual keyboard displayed in portrait orientation rather than one displayed in landscape orientation. Therefore, in some examples, even if the computing device's display is locked in landscape orientation, it may still display a virtual keyboard in portrait orientation.

[0153] Fig. Figure 7 is a conceptual diagram illustrating another example of a computing device that performs adaptive user interface rotation according to one or more aspects of the present disclosure. A computing device 710 from Fig. 7 is below as an example of the in Fig. 1A-1C illustrated calculating device 110 and the one in Fig. 2 illustrated calculating device 210 described.

[0154] As in Fig. As shown in Figure 7, a display 708 can be locked in landscape orientation, and an application 726 running on the computing device 710 can accordingly output a user interface 718A in landscape orientation. The user interface 718A output by the application 726 can include a text field 742, which can be a user interface element capable of accepting text input.

[0155] The user can provide user input corresponding to the selection of text box 742, such as by providing touch input to tap text box 742 to provide text input in text box 742. In response to receiving the user input corresponding to the selection of text box 742, the computing device 710 can output a virtual keyboard on the display 708, which the user can interact with to provide text input in text box 742.

[0156] Although the display 708 is locked in landscape orientation, the computing device 710 can output a virtual keyboard in portrait orientation. Therefore, in response to the computing device 710 receiving user input corresponding to the selection of text box 742 in user interface 718A, application 726 can output a user interface 718B in portrait orientation, where user interface 718B includes a virtual keyboard 750, also in portrait orientation. The user can then use the virtual keyboard 750 to type text into text box 742 in user interface 718B.

[0157] Fig. Figure 8 is a flowchart illustrating exemplary operations performed by an exemplary computing device in accordance with one or more aspects of the present disclosure. Fig. 7 is referred to below in the context of the computing device 210. Fig. 2 described.

[0158] As in Fig. As shown in Figure 8, the one or more processors 240 of the computing device 210 can 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 (802). The one or more processors 240 can determine a reoriented user interface in the first interface orientation for the application (804). The one or more processors 240 can output the reoriented user interface for display on a display device 208 in the first interface orientation (806).

[0159] In some examples, the one or more processors 240, acting as the foreground application, can activate a second application that outputs media content. This second application is operational to output the media content in the second interface orientation but not operational to output the media content in the first interface orientation. Based on the fact that the display device is locked in the first interface orientation, the one or more processors 240 can transform the media content to generate a transformed version for display in the first interface orientation. The one or more processors 240 can then output this transformed media content for display on the display device 208 in the first interface orientation.

[0160] In some examples, to transform the media content and generate the transformed media content, one or more processors (240) may perform at least one of the following actions: 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.

[0161] In some examples, while the display device 208 is locked in the first interface orientation, one or more processors 240 can cause the computing device 210 to enter a sleep state. Conversely, in response to the computing device 210 being allowed to enter a wake state, one or more processors 240 can unlock the display device 208 from the first interface orientation.

[0162] In some examples, to lock the display device 208 in the first interface orientation of the plurality of interfaces, the one or more processors 240 can determine a respective interface orientation lock setting for each of a plurality of applications, the plurality of applications including the application. The one or more processors 240 can, in response to the application being turned on as the foreground application, lock the display device 210 in the first interface orientation specified by the respective interface orientation lock setting for the application.

[0163] In some examples, the one or more processors 240 can, as the foreground application, activate 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. The one or more processors 240 can, while the display device 208 is locked in the first interface orientation, output the third user interface for display on the display device 208 in the second interface orientation.The one or more processors 240 can determine, based on the fact that the third user interface is output in the second interface orientation, which differs from the first interface orientation in which the display device 208 is locked, that a recent interface orientation is the second interface orientation. After outputting the third user interface as the foreground application, the one or more processors 240 can activate 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.The one or more processors 240 can, while the display device 208 is locked in the first interface orientation, output the fourth user interface for display on the display device 208 in the second interface orientation, at least partly based on the fact that the most recent interface orientation is the second interface orientation.

[0164] In some examples, while the display device is locked in the first interface orientation, the one or more processors 240 can determine a time interval during which one or more user interfaces are output in the second interface orientation. In response to the determination that the time interval during which the one or more user interfaces are output in the second interface orientation exceeds a threshold time interval, the one or more processors 240 can unlock the display device 208 from the first interface orientation.

[0165] In some examples, the one or more processors 240 can determine that the second interface orientation is a primary orientation for the display device 208. The one or more processors 240 can activate a fifth application as the foreground 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. The one or more processors 240 can output the fifth user interface for display on the display device 208 in the second interface orientation while the display device 208 is locked in the first interface orientation.The one or more processors 240 can, in response to the output of the fifth user interface in the second interface orientation and based at least in part on the fact that the second interface orientation is the primary orientation for the display device 208, unlock the display device 208 from the first interface orientation.

[0166] In some examples, in order to unlock the display device 208 from the first interface orientation, one or more processors 240 can lock the display device in the primary orientation.

[0167] In some examples, while the display device 208 is locked in the first interface orientation, the one or more processors 240 can turn on a main screen, wherein the main screen is operable to output a main screen interface in the first interface orientation and operable to output the main screen interface in the second interface orientation. In response to the main screen being turned on, the one or more processors 240 can output the main screen interface for display on the display device 208 in the second interface orientation.

[0168] 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.

[0169] Aspects of this revelation include the following examples.

[0170] Example 1: Method comprising turning on, 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 newly oriented user interface in the first interface orientation; and outputting, by the one or more processors, the newly oriented user interface for display on a display device in the first interface orientation.

[0171] Example 2: Method according to Example 1, further comprising locking by the one or more processors of the computing device, which is operable to perform an automatic rotation of interfaces to be output by the display device, of the display device in the first interface orientation of a plurality of interface orientations.

[0172] Example 3: A method according to either Example 1 or 2, further comprising turning on, by one or more processors as a foreground application, a second application that outputs 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 fact that the display device is locked in the first interface orientation, transforming, by one or more processors, the media content to generate a transformed media content for display in the first interface orientation; and outputting, by one or more processors, the transformed media content for display on the display device in the first interface orientation.

[0173] Example 4: Method according to 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.

[0174] Example 5: Procedure according to one of Examples 3 and 4, where the media content is a video.

[0175] Example 6: Method according to any of Examples 1-5, further comprising, while the display device is locked in the first interface orientation, allowing the one or more processors of the computing device to enter a sleep state; and in response to the computing device being allowed to enter a wake state from the sleep state, unlocking the display device from the first interface orientation by the one or more processors.

[0176] Example 7: Method according to any one of Examples 1-6, wherein locking the display device in 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 turned on as the foreground application, locking, by the one or more processors, the display device in the first interface orientation specified by the respective interface orientation lock setting for the application.

[0177] Example 8: Method according to any one of Examples 1-7, further comprising turning on, by 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 in the first interface orientation, output, by one or more processors, the third user interface for display on the display device in the second interface orientation;Based on the fact that the third user interface is output in the second interface orientation, which differs from the first interface orientation in which the display device is locked, determine, by one or more processors, that a most recent interface orientation is the second interface orientation; after outputting the third user interface, turn on, by 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 in the first interface orientation, output, by one or more processors and at least partly based on the fact that the most recent interface orientation is the second interface orientation, to the fourth user interface for display on the display device in the second interface orientation.

[0178] Example 9: Method according to any one of Examples 1-8, further comprising, while the display device is locked in the first interface orientation, determining, by one or more processors, a time period during which one or more user interfaces are output in the second interface orientation; and in response to being determined that the time period during which one or more user interfaces are output in the second interface orientation exceeds a threshold time period, unlocking, by one or more processors, the display device from the first interface orientation.

[0179] Example 10: Method according to any one of Examples 1-9, further comprising determining, by the one or more processors, that the second interface orientation is a primary orientation for the display device; turning on, 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 in the first interface orientation, outputting, by the one or more processors, the fifth user interface for display on the display device in the second interface orientation;and in response to the output of the fifth user interface in the second interface orientation, and based at least in part on the fact that the second interface orientation is the primary orientation for the display device, unlocking, by the one or more processors, the display device from the first interface orientation.

[0180] Example 11: Method according to Example 10, wherein unlocking the display device from the first interface orientation further comprises: locking, by the one or more processors, the display device in the primary orientation.

[0181] Example 12: Method according to any one of Examples 1-11, further comprising, while the display device is locked in the first interface orientation, turning on, by the one or more processors, a main screen, wherein the main screen is operable to output a main screen interface in the first interface orientation, and operable to output the main screen interface in the second interface orientation; and in response to the turning on of the main screen, outputting, by the one or more processors, the main screen interface for display on the display device in the second interface orientation.

[0182] Example 13: Method according to one of Examples 1-12, wherein one of the following applies: 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.

[0183] Example 14: Computing device comprising a memory that stores instructions; and one or more processors that execute the instructions to: turn on 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 reoriented user interface in the first interface orientation; and output the reoriented user interface for display on a display device in the first interface orientation.

[0184] Example 15: Computing device according to claim 14, wherein the one or more processors are operable to perform an automatic rotation of interfaces to be output by the display device, and wherein the one or more processors further execute the instructions to lock the display device in the first interface orientation of a plurality of interface orientations.

[0185] Example 16: Computing device according to claims 14 and 15, wherein the one or more processors further execute the instructions to: turn on, as the foreground application, a second application that outputs 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 fact that the display device is locked in the first interface orientation, transform the media content to generate transformed media content for display in the first interface orientation; and output the transformed media content for display on the display device in the first interface orientation.

[0186] Example 17: Computing device according to claim 16, wherein the one or more processors executing the instructions to transform the media content in order 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.

[0187] Example 18: Computing device according to one of Examples 16 and 17, where the media content is a video.

[0188] Example 19: Computing device according to any of Examples 14-18, wherein the one or more processors further execute the instructions to: while the display device is locked in the first interface orientation, allow the computing device to enter a sleep state; and in response to the computing device being allowed to enter a wake state from the sleep state, unlock the display device from the first interface orientation.

[0189] Example 20: Computing device according to any of Examples 14-19, wherein the one or more processors executing the instructions to lock the display device in 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 turned on as the foreground application, lock the display device in the first interface orientation specified by the respective interface orientation lock setting for the application.

[0190] Example 21: Computing device according to any of Examples 14-20, wherein the one or more processors further execute the instructions to: turn on, 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 in the first interface orientation, output the third user interface for display on the display device in the second interface orientation; based on the fact that the third user interface is output in the second interface orientation, which is different from the first interface orientation in which the display device is locked, determine that a most recent interface orientation is the second interface orientation;After outputting the third user interface, turn on, 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 in the first interface orientation, output, at least in part based on the fact that the most recent interface orientation is the second interface orientation, the fourth user interface for display on the display device in the second interface orientation.

[0191] Example 22: Computing device according to any of Examples 14-21, wherein the one or more processors further execute the instructions to: while the display device is locked in the first interface orientation, determine a time interval during which one or more user interfaces are output in the second interface orientation; and in response to being determined that the time interval during which the one or more user interfaces are output in the second interface orientation exceeds a threshold time interval, unlock the display device from the first interface orientation.

[0192] Example 23: Computing device according to 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; turn on, 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 in the first interface orientation, output the fifth user interface for display on the display device in the second interface orientation;and in response to the output of the fifth user interface in the second interface orientation, and based at least in part on the fact that the second interface orientation is the primary orientation for the display device, unlocking the display device from the first interface orientation.

[0193] Example 24: Computing device according to claim 23, wherein the one or more processors executing the instructions to unlock the display device from the first interface orientation further execute the instructions to: lock the display device in the primary orientation.

[0194] Example 25: Computing device according to any of Examples 14-24, wherein the one or more processors further execute the instructions to: while the display device is locked in the first interface orientation, turn on a main screen, wherein the main screen is operable to output a main screen interface in the first interface orientation, and operable to output the main screen interface in the second interface orientation; and in response to the turning on of the main screen, output the main screen interface for display on the display device in the second interface orientation.

[0195] Example 26: Computing device according to one of Examples 14-25, wherein one of the following applies: 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.

[0196] Example 27: Non-transitory computer-readable storage medium containing instructions which, when executed, cause one or more processors to: turn on 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 reoriented user interface for the application in the first interface orientation; and output the reoriented user interface for display on a display device in the first interface orientation.

[0197] Example 28: Non-transitory computer-readable storage medium according to Example 27, wherein the instructions, when executed, further cause the one or more processors to do the following: Lock the display device in a first interface orientation of a plurality of interface orientations.

[0198] Example 29: Non-transitory computer-readable storage medium according to one of Examples 27 and 28, wherein, upon execution, the instructions further cause the one or more processors to: turn on, as the foreground application, a second application that outputs 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 fact that the display device is locked in the first interface orientation, transform the media content to generate transformed media content for display in the first interface orientation; and output the transformed media content for display on the display device in the first interface orientation.

[0199] Example 30: Non-transitory computer-readable storage medium according to Example 29, wherein instructions which, when executed, cause the one or more processors to transform the media content in order 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.

[0200] Example 31: Non-transitory computer-readable storage medium according to one of Examples 29 and 30, wherein the media content is a video.

[0201] Example 32: Computing device according to one of Examples 27-31, wherein the instructions, when executed, further cause the one or more processors to: while the display device is locked in the first interface orientation, allow the computing device to enter a sleep state; and, in response to the computing device being allowed to enter a wake state from the sleep state, unlock the display device from the first interface orientation.

[0202] Example 33: Non-transitory computer-readable storage medium according to any of Examples 27-32, wherein the instructions which, when executed, cause the one or more processors to lock the display device in 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 turned on as the foreground application, lock the display device in the first interface orientation specified by the respective interface orientation lock setting for the application.

[0203] Example 34: Non-transitory computer-readable storage medium according to any of Examples 27-33, wherein the instructions, when executed, further cause the one or more processors to: turn on, 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 in the first interface orientation, output the third user interface for display on the display device in the second interface orientation;Based on the fact that the third user interface is output in the second interface orientation, which differs from the first interface orientation in which the display device is locked, determine that a most recent interface orientation is the second interface orientation; after outputting the third user interface, turn on, 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 in the first interface orientation, output, at least in part based on the fact that the most recent interface orientation is the second interface orientation, to the fourth user interface for display on the display device in the second interface orientation.

[0204] Example 35: Non-transitory computer-readable storage medium according to any of Examples 27-34, wherein the instructions, when executed, further cause the one or more processors to: while the display device is locked in the first interface orientation, determine a time interval during which one or more user interfaces will be output in the second interface orientation; and, in response to being determined that the time interval during which the one or more user interfaces will be output in the second interface orientation exceeds a threshold time interval, unlock the display device from the first interface orientation.

[0205] Example 36: Non-transitory computer-readable storage medium according to any of Examples 27-35, wherein, upon execution, the instructions further cause the one or more processors to: determine that the second interface orientation is a primary orientation for the display device; turn on, 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 in the first interface orientation, output the fifth user interface for display on the display device in the second interface orientation;and in response to the output of the fifth user interface in the second interface orientation, and based at least in part on the fact that the second interface orientation is the primary orientation for the display device, unlocking the display device from the first interface orientation.

[0206] Example 37: Non-transitory computer-readable storage medium according to Example 36, wherein the instructions which, 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 in the primary orientation.

[0207] Example 38: Non-transitory computer-readable storage medium according to any of Examples 27-37, wherein, upon execution, the instructions further cause the one or more processors to: while the display device is locked in the first interface orientation, turn on a main screen, wherein the main screen is operable to output a main screen interface in the first interface orientation and operable to output the main screen interface in the second interface orientation; and, in response to the turning on of the main screen, output the main screen interface for display on the display device in the second interface orientation.

[0208] Example 39: Non-transitory computer-readable storage medium according to one of Examples 27-38, wherein one of the following applies: 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.

[0209] As an example, but not limited to, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory, or any other storage media that can be used to store the desired program code in the form of instructions or data structures and that a computer can access. Furthermore, any such connection is correctly referred to as 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 cable, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted-pair cable, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of the medium. However, it is understood that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other volatile media, but instead refer to non-volatile, tangible storage media.In this context, "disk" and "disc" include Compact Disc (CD), Laser Disc, Optical Disc, Digital Versatile Disc (DVD), floppy disk, and Blu-ray Disc, where "disc" typically reproduces data magnetically, while "disc" reproduces data optically using lasers. Combinations of the above are also included within the scope of a computer-readable medium.

[0210] Instructions can 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 circuits. Accordingly, the term "processor" in this context can refer to any of the aforementioned structures or any other structures suitable for implementing the techniques described herein. Furthermore, some aspects of the functionality described herein can be provided in dedicated hardware and / or software modules. Additionally, the techniques could be implemented entirely in one or more circuits or logic elements.

[0211] The techniques of this disclosure can 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 chipset). This disclosure describes various components, modules, or units to highlight functional aspects of devices configured to perform the disclosed techniques, but does not necessarily require implementation by different hardware units. Rather, as described above, different units can be combined in a single hardware unit or provided by a collection of interoperable hardware units, including one or more processors, as described above in conjunction with suitable software and / or firmware.

[0212] Several embodiments have been described. These and other embodiments are within the scope of the following claims.

Claims

[1] Method comprising: enabling, by one or more processors of a computing device, an application operable to render a user interface in a second interface orientation and inoperable to render the user interface in a first interface orientation; Determining, by the one or more processors and for the application, a newly aligned user interface in the first interface orientation; and Outputting, by the one or more processors, the newly oriented user interface for display on a display device in the first interface orientation. [2] The method of claim 1, further comprising: Locking, by the one or more processors of the computing device operable to perform automatic rotation of interfaces to be output by the display device, the display device in the first interface orientation of a plurality of interface orientations. [3] A method according to any one of claims 1 and 2, further comprising: enabling, by the one or more processors, a second application that outputs media content, the second application operable to output the media content in the second interface orientation and inoperable to output the media content in the first interface orientation; Transforming, by the one or more processors, the media content to generate transformed media content for display in the first interface orientation; and Outputting, by the one or more processors, the transformed media content for display on the display device in the first interface orientation. [4] The method of claim 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. [5] The method of any of claims 3 and 4, wherein the media content is a video. [6] The method of any one of claims 1-5, further comprising: while the display device is locked in the first interface orientation, causing, by the one or more processors, the computing device to enter 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. [7] The method of any of claims 2-6, wherein locking the display device in the first interface orientation further comprises: Determining, by the one or more processors, a respective interface alignment lock setting for each of a plurality of applications, the plurality of applications including the application; and in response to the application being turned on as a foreground application, locking, by the one or more processors, the display device in the first interface orientation specified by the respective interface orientation lock setting for the application. [8] A method according to any one of claims 1-7, further comprising: switching on, by the one or more processors as a foreground application, a third application, the third application being operable to output a third user interface in the second interface orientation and inoperable to output the third user interface in the first interface orientation; while the display device is locked in the first interface orientation, outputting, by the one or more processors, the third user interface for display on the display device in the second interface orientation; based on the third user interface being output in the second interface orientation that is different from the first interface orientation in which the display device is locked, determining, by the one or more processors, that a most recent interface orientation is the second interface orientation; after outputting the third user interface, enabling, 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 in 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 on the display device in the second interface orientation. [9] A method according to any one of claims 1-8, further comprising: while the display device is locked in the first interface orientation, determining, by the one or more processors, a period of time during which one or more user interfaces are output in the second interface orientation; and in response to determining that the period of time during which the one or more user interfaces are output in the second interface orientation exceeds a threshold period of time, unlocking, by the one or more processors, the display device from the first interface orientation. [10] The method of any one of claims 1-9, further comprising: determining, by the one or more processors, that the second interface orientation is a primary orientation for the display device; switching on, by the one or more processors as a foreground application, a fifth application, the fifth application being operable to output a fifth user interface in the second interface orientation and inoperable to output the fifth user interface in the first interface orientation; while the display device is locked in the first interface orientation, outputting, by the one or more processors, the fifth user interface for display on 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. [11] The method of claim 10, wherein unlocking the display device from the first interface orientation further comprises: Locking, by the one or more processors, the display device in the primary orientation. [12] The method of any one of claims 1-11, further comprising: while the display device is locked in the first interface orientation, turning on, by the one or more processors, a main screen, the main screen operable to output a main screen interface in the first interface orientation and operable to output the main screen interface in the second interface orientation; and in response to turning on the main screen, outputting, by the one or more processors, the main screen interface for display on the display device in the second interface orientation. [13] The method of any of claims 1-12, wherein one of the following applies: 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. [14] Computing device comprising: a memory that stores instructions; and one or more processors executing the instructions to perform any of the methods of claims 1-13. [15] A non-transitory computer-readable storage medium comprising instructions that, when executed by one or more processors of a computing device, cause the one or more processors to perform any of the methods of claims 1-13.