Smart user interface rotation
By automatically adjusting the user interface orientation using interface rotation module and neural network in mobile computing devices, the problem of user interface inconvenience when device orientation changes is solved, and the user experience and battery life are improved.
Patent Information
- Application Number
- CN202280096393.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2022-06-06
- Publication Date
- 2024-12-20
AI Technical Summary
The prior art is difficult to effectively solve the problem of automatic rotation of the user interface of the display of the mobile computing device, which leads to the user's need to frequently reposition the body or device when the device orientation changes to adapt to the interface orientation, which increases battery power consumption and user inconvenience.
By introducing interface rotation modules and neural networks in the mobile computing device, the orientation changes of the device and the user are detected, the user interface orientation is automatically adjusted, and when the device is locked to a specific orientation, a reorientated user interface is generated to adapt to the current state of the display when the device is locked to a specific orientation. .
Reduces the number of times users reposition their bodies and devices, increases user concentration time, reduces battery power consumption output from the user interface, and improves user experience.
Smart Images

Figure CN119173842A_ABST
Abstract
Description
Background Art
[0001] A mobile computing device including a display may use sensor data generated from a motion sensor to determine an orientation of the display of the mobile computing device. The mobile computing device may perform automatic rotation of a user interface output by the mobile computing device such that the mobile computing device may change the orientation of the user interface output by the mobile computing device to correspond to the orientation of the display in response to determining a change in the orientation of the display of the mobile computing device. Summary of the invention
[0002] In general, the technology of the present disclosure relates to determining an interface orientation of a user interface to be output by a computing device for display at a display device when the display device is locked to a specific interface orientation. The computing device may lock the display device to a specific orientation. When the computing device activates an application that is not operable to output a user interface in the specific orientation to which the display device is locked as a foreground application, the computing device may be able to determine a re-oriented user interface for the application in the specific orientation to which the display device is locked. Therefore, the computing device may output the re-oriented user interface in the specific orientation to which the display device is locked for display at the display device.
[0003] In some aspects, the technology described herein relates to a method comprising: activating, by one or more processors, an application that is operable to output a user interface in a second interface orientation and is not operable to output a user interface in a first interface orientation; determining, by the one or more processors, a reoriented user interface in the first interface orientation for the application; and outputting, by the one or more processors, the reoriented user interface in the first interface orientation for display at a display device.
[0004] In some aspects, the technology described herein relates to a computing device comprising: a memory that stores instructions; and one or more processors that execute the instructions to: activate an application that is operable to output a user interface in a second interface orientation and is not operable to output a user interface in a first interface orientation; determine a reoriented user interface in the first interface orientation for the application; and output the reoriented user interface in the first interface orientation for display at a display device.
[0005] In some aspects, the technology described herein relates to a non-transitory computer-readable storage medium comprising instructions that, when executed by one or more processors, cause one or more processors of a computing device to: activate an application that is operable to output a user interface in a second interface orientation and is not operable to output a user interface in a first interface orientation; determine a reoriented user interface in the first interface orientation for the application; and output the reoriented user interface in the first interface orientation for display at a display device.
[0006] In some aspects, the technology described herein relates to a device comprising: components for activating an application that is operable to output a user interface in a second interface orientation and is not operable to output a user interface in a first interface orientation; components for determining a reoriented user interface in a first interface orientation for the application; and components for outputting the reoriented user interface in the first interface orientation for display at a display device.
[0007] The details of one or more examples are set forth in the accompanying drawings and the description below.Other features, objects, and advantages of the disclosure will be apparent from the description and drawings, and from the claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] Figures 1A to 1C is a conceptual diagram illustrating a computing device that performs adaptive user interface rotation according to one or more aspects of the present disclosure.
[0009] Figure 2 is a block diagram illustrating an example computing device according to one or more aspects of the present disclosure.
[0010] 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.
[0011] 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.
[0012] 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.
[0013] 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.
[0014] 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.
[0015] Figure 8 is a flow diagram illustrating example operations performed by an example computing device in accordance with one or more aspects of the present disclosure. DETAILED DESCRIPTION
[0016] Figures 1A to 1C is a conceptual diagram illustrating a computing device that performs adaptive user interface rotation according to one or more aspects of the present disclosure. Figure 1A In the examples of FIG. 1 , computing device 110 may represent a mobile computing device or a 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, wearable, and non-wearable computing device.
[0017] Computing device 110 includes a user interface component (“UIC”) 112 , one or more sensor components 114 , a user interface (“UI”) module 120 , an interface rotation module 134 , and one or more applications 126 .
[0018] The UIC 112 of the computing device 110 may be used as an input device and / or an output device of the computing device 110. The UIC 112 may be implemented using various technologies. For example, the UIC 112 may use a resistive touch screen, a surface acoustic wave touch screen, a capacitive touch screen, a projected capacitive touch screen, a pressure sensitive screen, an acoustic pulse recognition touch screen, or another presence sensitive screen technology as an input device. The UIC 102 includes a display 108, which may use any one or more of a liquid crystal display (LCD), a dot matrix display, a light emitting diode (LED) display, a microLED, an organic light emitting diode (OLED) display, electronic ink, or a similar monochrome or color display capable of outputting visual information to a user of the computing device 110 as an output device.
[0019] The display 108 included in the UIC 112 of the computing device 110 may be a presence-sensitive screen that may receive tactile user input from a user of the computing device 110. The UIC 112 may receive tactile user input by detecting one or more taps and / or gestures from the user of the computing device 110 (e.g., the user touching or pointing to one or more locations of the display 108 with a finger or stylus). The display 108 may present output, such as a user interface, that may be related to functionality provided by the computing device 110. For example, the display 108 may present various functions and applications executed on the computing device 110, such as an electronic messaging application, a messaging application, a map application, etc.
[0020] The one or more applications 126 may include functionality for performing any kind of operations on the computing device 110. For example, the one or more applications 126 may include an email application, a text messaging application, an instant messaging application, a weather application, a video conferencing application, a social networking application, a weather application, a stock market application, an emergency alert application, a sports application, an office productivity application, a ride sharing application, a multimedia player, etc.
[0021] Although illustrated as being operable by computing device 110, in some examples, one or more applications 126 may be operable by a remote computing device that is communicatively coupled to computing device 110. In such examples, the application executed at the remote computing device may cause the remote computing device to send content and intent information using any suitable form of data communication (e.g., a wired or wireless network, short-range wireless communication such as near field communication or Bluetooth, etc.). In some examples, the remote computing device may be a computing device separate from computing device 110. For example, the remote computing device may be operatively coupled to computing device 110 via a network. Examples of remote computing devices may include, but are not limited to, servers, smart phones, tablet computing devices, smart watches, and desktop computers. In some examples, the remote computing device may not be an integrated component of computing device 110.
[0022] The UI module 120 may interpret input detected at the UIC 112 (e.g., when a user provides one or more gestures at a location of the display 108 where a user interface is displayed). The UI module 120 may relay information about the input detected at the UIC 112 to one or more associated platforms, operating systems, applications, and / or services executing at the computing device 110 to cause the computing device 110 to perform functions. The UI module 120 may also receive information and instructions from one or more associated platforms, operating systems, applications, and / or services (e.g., one or more applications 126) executing at the computing device 110 for generating a GUI. In addition, the UI module 120 may act as an intermediary between one or more associated platforms, operating systems, applications, and / or services executing at the computing device 110 and various output devices of the computing device 110 (e.g., speakers, LED indicators, vibrators, etc.) to generate output (e.g., graphical output, auditory output, tactile output, etc.) using the computing device 110.
[0023] UI module 120 may be implemented in a variety of ways. For example, UI module 120 may be implemented as a downloadable or pre-installed application or "app". In another example, UI module 120 may be implemented as part of a hardware unit of computing device 110. In another example, UI module 120 may be implemented as part of an operating system of computing device 110. In some cases, portions of the functionality of UI module 120 or any other module described in this disclosure may be implemented across any combination of applications, hardware units, and operating systems.
[0024] The interface rotation module 134 can reorient the user interface output by one or more applications 126. That is, the interface rotation module 134 can receive a user interface output by an application in a first interface orientation, and can determine a reoriented user interface of the application in a second interface orientation different from the first interface orientation based on the interface, and the reoriented user interface corresponds to the user interface output by the application. The interface rotation module 134 can be implemented in various ways. For example, the interface rotation module 134 can be implemented as a downloadable or pre-installed application or "app". In another example, the interface rotation module 134 can be implemented as part of a hardware unit of the computing device 110. In another example, the interface rotation module 134 can be implemented as part of the operating system of the computing device 110. In some cases, the functional portion of the interface rotation module 134 can be implemented across any combination of applications, hardware units, and operating systems. For example, the interface rotation module 134 can be included as part of the UI module 120.
[0025] Computing device 110 may also include one or more sensor components 114. In some examples, the sensor component may be an input component that obtains environmental information including the environment of computing device 110. In some examples, the sensor component may be an input component that obtains information about the physical positioning, movement, and / or position information of computing device 110. For example, one or more sensor components 114 may include, but are not limited to, a motion sensor (e.g., an accelerometer, a gyroscope, etc.), a heart rate sensor, a temperature sensor, a positioning sensor, a pressure sensor (e.g., a barometer), a proximity sensor (e.g., an infrared sensor), an ambient light detector, a position sensor (e.g., a global navigation satellite system sensor), or any other type of sensing component.
[0026] exist Figure 1A In the example of FIG. 1 , one or more applications 126 may send data to UI module 120 that causes UI module 120 to generate one or more user interfaces and elements thereof. In response, UI module 120 may output instructions and information to display 108 that causes display 108 to display a user interface based on the information received from UI module 120. The user interface may represent a graphical user interface that a user of computing device 110 may utilize to interact with applications and / or an operating system of computing device 110 to provide input at display 108.
[0027] When handling input detected by UIC 112, UI module 120 may receive information from UIC 112 in response to the input detected at the location of display 108 where an element of the user interface is displayed. UI module 120 propagates information about the input detected by UIC 112 to other components of computing device 110 for interpreting the input and causing computing device 110 to perform one or more functions in response to the input.
[0028] Computing device 110 may be capable of outputting a user interface in a plurality of interface orientations, such as a portrait orientation and a landscape orientation, for display at display 108. When computing device 110 outputs a user interface in an interface orientation, elements of the user interface, such as text, images, video, controls, etc., may be oriented and / or otherwise positioned such that the elements of the user interface are designed to be properly viewed and / or interacted with when display 108 is in the corresponding orientation.
[0029] For example, when computing device 110 outputs a user interface in a landscape orientation, elements of the user interface, such as text, images, videos, controls, etc., are oriented to be properly viewed by the user when display 108 is in a landscape orientation relative to a user of computing device 110. Similarly, when computing device 110 outputs a user interface in a portrait orientation, elements of the user interface, such as text, images, videos, controls, etc., are oriented to be properly viewed by the user when display 108 is in a portrait orientation relative to a user of computing device 110.
[0030] One or more sensor components 114, such as one or more accelerometers, one or more gyroscopes, and / or one or more cameras, may generate sensor data that computing device 110 may use to determine an orientation of computing device 110 relative to a reference frame, such as an orientation of computing device 110 relative to the earth. If a user or another entity physically rotates or otherwise moves computing device 110, computing device 110 may be able to determine, based on the sensor data, whether the orientation of computing device 110 relative to the reference frame has changed due to the physical movement of computing device 110.
[0031] In some examples, a change in the orientation of computing device 110 may also result in a corresponding change in the orientation of display 108. For example, when the physical housing of computing device 110 includes display 108, such as in examples where computing device 110 is a smart phone or tablet computer, a change in the orientation of display 108 may result in a change in the aspect ratio of display 108. For example, if display 108 is rectangular in shape, computing device 110 may be oriented such that the height of the display is greater than the width of the display when in the portrait orientation. When computing device 110 is rotated approximately 90 degrees from the portrait orientation, the orientation of computing device 110 may correspondingly change from the portrait orientation to a landscape orientation in which the width of the display is greater than the height of the display.
[0032] In some examples, display 108 may not be in a physical housing of computing device 110, but may be a separate display device (e.g., an external display) operably coupled to computing device 110. In examples where display 108 is physically separate from computing device 110, display 108 may include one or more sensor components 114 that generate sensor data that computing device 110 may use to determine an orientation of display 108 relative to a reference frame, such as an orientation of display 108 relative to the Earth.
[0033] Computing device 110 may determine an orientation of display 108, such as based on sensor data generated by one or more sensor components 114, and may perform an auto-rotation function based on the determined orientation of display 108. Specifically, computing device 110 may perform such an auto-rotation function to automatically change the orientation of a user interface output for display at display 108 to an orientation of the user interface corresponding to the determined orientation of display 108 in response to determining a specified change in the orientation of display 108. For example, in response to determining that display 108 is in a portrait orientation, computing device 110 may output the user interface in a portrait orientation for display at display 108. Similarly, in response to determining that display 108 is in a landscape orientation, computing device 110 may output the user interface in a landscape orientation for display at display 108.
[0034] like Figure 1AAs shown, when display 108 is in a portrait orientation, computing device 110 may activate application 126A as a foreground application of computing device 110. Computing device 110 may activate an application such as application 126A as a foreground application by launching or otherwise opening the application (e.g., from a home screen or launcher), switching to application 126A from another application, or otherwise outputting a user interface of application 126A in the foreground of a graphical user interface for display at display 108. Because computing device 110 performs an auto-rotate function to orient the user interface output by computing device 110 to correspond to the orientation of display 108, in response to being activated as the foreground application of computing device 110, application 126A may output user interface 118A in a portrait orientation for display at display 108.
[0035] After activating application 126A as the foreground application, computing device 110 may exit application 126A and may return to a home screen of computing device 110, also referred to as a launcher or desktop. Computing device 110 may also determine that display 108 has been rotated from being in a portrait orientation to a landscape orientation. Computing device 110 may perform an auto-rotate function to cause computing device 110 to output a user interface in a landscape orientation in response to determining that the orientation of display 108 has changed from a portrait orientation to a landscape orientation. Thus, when the home screen outputs user interface 118B, the home screen may output user interface 118B in a landscape orientation to correspond to display 108 being in a landscape orientation.
[0036] In some examples, computing device 110 may be able to lock display 108 to a particular interface orientation among a plurality of interface orientations, even though computing device 110 may perform an auto-rotation function to change the orientation of a user interface output at display 108 to correspond to the determined orientation of display 108. When computing device 110 is locked to a particular interface orientation, computing device 110 may continue to output the user interface in the interface orientation corresponding to the particular interface orientation to which the display at display 108 is locked, even when the interface orientation to which display 108 is locked does not correspond to the actual (e.g., physical) orientation of display 108.
[0037] For example, computing device 110 may lock display 108 to a portrait orientation such that computing device 110 continues to output a user interface in the portrait orientation even if computing device 110 determines that display 108 is in a landscape orientation. Similarly, computing device 110 may lock display 108 to a landscape orientation such that computing device 110 continues to output a user interface in the landscape orientation even if computing device 110 determines that display 108 is in a portrait orientation. If computing device 110 is operably coupled to two or more displays, computing device 110 may independently lock or unlock the interface orientation of each of the two or more displays. Thus, when computing device 110 locks the interface orientation of display 108, computing device 110 may not necessarily also lock the interface orientations of other displays operably coupled to computing device 110.
[0038] In some examples, computing device 110 may lock display 108 to an interface orientation by turning off or otherwise disabling an automatic rotation function of computing device 110. In some examples, computing device 110 may include a physical control (e.g., a switch, a button, etc.) that a user may use to toggle the automatic rotation function of computing device 110 on and off. In some examples, computing device 110 may output a UI control (e.g., a button, a slider, etc.) for display at display 108, with which a user of computing device 110 may interact to enable and / or disable the automatic rotation function of computing device 110.
[0039] In some examples, computing device 110 may lock display 108 to a current interface orientation of display 108. That is, when computing device 110 locks display 108 to an interface orientation, computing device 110 may determine the current interface orientation of display 108 and may lock display 108 to the current orientation of display 108. For example, if display 108 is in a portrait orientation when computing device 110 locks the interface orientation of display 108, computing device 110 may lock display 108 to the portrait orientation. Similarly, if display 108 is in a landscape orientation when computing device 110 locks the orientation of display 108, computing device 110 may lock display 108 to the landscape orientation. Figure 1A In the example of , display 108 is in landscape orientation while outputting user interface 118B. As such, when computing device 110 locks the orientation of display 108 when display 108 is in landscape orientation, computing device 110 may therefore lock display 108 to the landscape orientation.
[0040] In some examples, computing device 110 may automatically lock display 108 to a particular interface orientation without user intervention, and / or may output a suggestion to lock display 108 to a particular interface orientation. Computing device 110 may implement one or more neural networks to determine whether to automatically lock display 108 to a particular interface orientation and / or output a suggestion to lock display 108 to a particular interface orientation based on factors such as a history of previous orientations of display 108, a history of computing device 110 previously locking display 108 to one or more orientations, user activity corresponding to a history of computing device 110 previously locking display 108 to one or more interface orientations, whether camera input (e.g., images captured by one or more cameras of computing device 110) indicates and / or predicts the presence and / or orientation of a user's face relative to computing device 110, a predicted type of foreground application (e.g., a video player, a web browser, etc.), content currently being displayed by display 108, whether a keyboard (e.g., a virtual keyboard) of computing device 110 is currently displayed and / or in use by display 108, etc. For example, computing device 110 may use one or more neural networks and the factors described above to determine that the user has a history of locking display 108 to a landscape orientation when going to bed at night. Thus, computing device 110 may determine whether the user is going to bed at night by inputting information such as the time of day, user activity sensed by one or more sensor components 114, user input at UIC 112, etc. into one or more neural networks. Computing device 110 may automatically lock display 108 to a landscape orientation in response to determining that the user is going to bed at night, or may output a suggestion at display 108 to lock display 108 to a landscape orientation in response to determining that the user is going to bed at night.
[0041] In some examples, computing device 110 may determine whether to automatically lock display 108 to a particular interface orientation or whether to output a suggestion to lock display 108 to a particular interface orientation based on the confidence of the neural network prediction. For example, if the confidence of the neural network prediction is above a first specified threshold, computing device 110 may automatically lock display 108 to a particular interface orientation. If the confidence of the neural network prediction is below the first specified threshold but above a second specified threshold, computing device 110 may not automatically lock display 108 to a particular interface orientation, but may instead output a suggestion to lock display 108 to a particular interface orientation.
[0042] In an example where computing device 110 uses one or more neural networks to determine whether a user is about to go to sleep, the one or more neural networks may output a prediction of whether the user is about to go to sleep that is associated with a confidence score. If the confidence of the neural network prediction that the user is about to go to sleep is above a first specified threshold, computing device 110 may automatically lock display 108 to a particular interface orientation. If the confidence of the neural network prediction that the user is about to go to sleep is below the first specified threshold but above a second specified threshold, computing device 110 may not automatically lock display 108 to a particular interface orientation, but may instead output a suggestion to lock display 108 to a particular interface orientation.
[0043] In general, the one or more neural networks implemented by the computing device 110 may include a plurality of interconnected nodes, and each node may 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 may be sensor data generated by the one or more sensor components 114, user input at the UIC 112, etc., and the one or more corresponding output values of the one or more neural networks may be an indication of whether to lock the display 108 to a particular orientation.
[0044] In some examples, one or more neural networks may be trained on-device by computing device 110 to more accurately determine whether to lock display 108 to a particular orientation. For example, one or more neural networks may include one or more learnable parameters or “weights” applied to features. Computing device 110 may adjust these learnable parameters during training to improve the accuracy of one or more neural networks in determining whether to lock display 108 to a particular orientation and / or for any other suitable purpose. In some examples, one or more neural networks may be trained off-device and then downloaded to or installed at computing device 110. In some examples, one or more neural networks may be executed at a remote server system (e.g., a cloud-based server system), and computing device 110 may communicate with the remote server system to determine whether to lock display 108 to a particular orientation.
[0045] One or more applications 126 may be able to determine the particular interface orientation that display 108 is locked to, and may output a user interface in the particular interface orientation. For example, one or more applications 126 may use an orientation listener application programming interface (API) provided by an operating system of computing device 110 to determine the particular interface orientation that display 108 is locked to, and in response, may output a user interface in the particular interface orientation that display 108 is locked to.
[0046] In some examples, the application may be operable to output the user interface in multiple different interface orientations. For example, the application may be operable to output the user interface in a portrait orientation, and may also be operable to output the user interface in a landscape orientation. The application may determine the specific interface orientation that the display 108 is locked to, and may output the user interface in the specific interface orientation.
[0047] However, some applications may not be operable to output a user interface in the particular interface orientation that display 108 is locked to. For example, an application may only be operable to output a user interface in a portrait orientation, and may not be operable to output a user interface in a landscape orientation. Thus, even when display 108 is locked to a landscape orientation, an application may not be operable to output a user interface in a landscape orientation.
[0048] In some examples, while display 108 is locked to a particular interface orientation, an application that is not operable to output a user interface in the particular interface orientation that display 108 is locked to may continue to output the user interface in an interface orientation different from the particular interface orientation that display 108 is locked to. For example, if an application is operable to output a user interface in a portrait orientation, then when display 108 is locked to a landscape orientation, the application may continue to output the user interface in the portrait orientation.
[0049] However, outputting a user interface in an orientation different from the particular interface orientation to which display 108 is locked may provide a poor user experience to a user of computing device 110. The user of computing device 110 may have locked display 108 to a particular interface orientation because the user may be physically positioned in a manner that makes content displayed in the particular interface orientation more comfortable for the user to view than in other interface orientations.
[0050] A user of computing device 110 may therefore find it uncomfortable or otherwise difficult to view and / or interact with content displayed at display 108 in an interface orientation that is different from the particular interface orientation to which display 108 is locked. Accordingly, an application that outputs a user interface in an interface orientation that is different from the particular interface orientation to which display 108 is locked may cause the user to reposition their body and / or computing device 110 in order to more comfortably view the user interface in an interface orientation that is different from the particular interface orientation to which display 108 is locked.
[0051] While the user is repositioning their body and / or computing device 110, even though the application may continue to output the user interface for display at display 108, the user may not be focused on viewing display 108. Thus, outputting the user interface in an interface orientation that causes the user to reposition their body and / or computing device may increase the amount of time that the application's user interface may need to be output for display at display 108 in order for the user to focus on viewing the application's interface. Increasing the amount of time that the application's user interface needs to be output for display at display 108 may increase the amount of battery power consumed by display 108 to display the user interface output by the application.
[0052] Aspects of the present disclosure may overcome the technical problems described above by outputting a user interface for display at display 108 in a manner that reduces the number of times a user may reposition their body and / or computing device 110 to more comfortably view the user interface displayed at display 108. Reducing the number of times a user may reposition their body and / or computing device 110 to more comfortably view the user interface displayed at display 108 may increase the amount of time a user may focus on viewing display 108. Increasing the amount of time a user may focus on viewing display 108 may reduce the amount of time a user interface of an application may need to be output for display at display 108 in order for the user to focus on viewing display 108, thereby reducing the amount of battery power consumed by display 108 to display a user interface output by an application.
[0053] According to aspects of the present disclosure, computing device 110 may activate as a foreground application an application that is operable to output a user interface in an interface orientation different from the interface orientation to which display 108 is locked, but is not operable to output the user interface in the interface orientation to which display 108 is locked. Computing device 110 may activate an application as a foreground application by launching or otherwise opening the application (e.g., from a home screen or launcher), switching to the application from another application, or otherwise outputting the application's user interface in the foreground of a graphical user interface for display at display 108.
[0054] exist Figure 1A In the example of , a user may interact with user interface 118B of the home screen to, for example, launch an application at computing device 110. User interface 118B includes application icons 122A-122D ("application icons 122"), each of which may correspond to an application in one or more applications 126, and a user may provide user input corresponding to a selection of an application icon (e.g., in application icons 122) to launch an application corresponding to the selected application icon.
[0055] For example, the user may provide user input corresponding to selection of application icon 122D corresponding to application 126A, such as by providing a touch input that taps application icon 122D. Computing device 110 may, in response to receiving the user input corresponding to selection of application icon 122D, activate application 126A corresponding to selected application icon 122D as a foreground application of computing device 110.
[0056] While application 126A is operable to output a user interface in a portrait orientation, such as user interface 118A output in a portrait orientation, application 126A is not operable to output a user interface in a landscape orientation to which display 108 is locked. For example, an application may be operable to output a user interface in a portrait orientation regardless of the determined orientation of display 108 and / or computing device 110, and regardless of the interface orientation to which display 108 is locked.
[0057] Computing device 110 may generate a reoriented user interface for the application in the interface orientation to which display 108 is locked, based on display 108 being locked to the interface orientation and further based on the application being inoperable to output the user interface in the interface orientation to which display 108 is locked. Computing device 110 may thus output the reoriented user interface in the interface orientation to which display 108 is locked for display at display 108. That is, computing device 110 may be able to output the user interface for the application in the interface orientation to which display 108 is locked, even if the application does not support outputting the user interface in the interface orientation to which display 108 is locked.
[0058] In some examples, because the application is not operable to output the user interface in the interface orientation to which display 108 is locked, computing device 110 may send data for outputting the user interface in an interface orientation different from the interface orientation to which display 108 is locked to interface rotation module 134. Interface rotation module 134 may generate a reoriented user interface for the application in the interface orientation to which display 108 is locked in response to receiving the data for outputting the user interface from the application.
[0059] The data sent by the application for outputting the user interface may include information such as an indication of UI elements (e.g., interfaces such as UI controls, text, images, videos, etc.) in the user interface of the application, an indication of the positioning and / or layout of the UI elements (such as constraints), the distances of the UI elements from each other and / or from the edges of the user interface, the functions of the application associated with the UI controls, etc. The interface rotation module 134 may use such data sent by the application to generate a reoriented user interface in the interface orientation to which the display 108 is locked, the reoriented user interface corresponding to the user interface associated with the data sent by the application. For example, the interface rotation module 134 may generate a reoriented user interface including the UI elements indicated by the data sent by the application for outputting the user interface, wherein the UI elements in the reoriented user interface are oriented to be properly viewed (e.g., oriented right side up) in the interface orientation to which the display 108 is locked.
[0060] exist Figure 1A In the example of , computing device 110, which has locked display 108 to a landscape orientation, may generate a reoriented user interface 118C in a landscape orientation in response to activating application 126A as a foreground application, where application 126A may be operable to output a user interface only in a portrait orientation. In response to being activated as a foreground application, application 126A may send data for outputting the user interface in a portrait orientation to interface rotation module 134. Interface rotation module 134 may, in response to receiving the data from application 126A, generate a reoriented user interface 118C of application 126A corresponding to the user interface in a portrait orientation output by application 126A based on the data for outputting the user interface in a portrait orientation. Interface rotation module 134 may thus output (e.g., via UI module 120) reoriented user interface 118C of application 126A in a landscape orientation for display at display 108.
[0061] In some examples, to reorient the user interface from the first orientation to the second orientation, computing device 110 may resize the user interface in the first orientation and reorient the user interface to generate the reoriented user interface in the second orientation. Figure 1B As shown, when display 108 is in a portrait orientation, computing device 110 may activate application 126A as a foreground application of computing device 110, and in response to being activated as a foreground application of computing device 110, application 126A may output user interface 118A in a portrait orientation for display at display 108.
[0062] After activating application 126A as the foreground application, computing device 110 may exit application 126A and may return to the home screen application. Computing device 110 may also determine that display 108 has been rotated from being in a portrait orientation to a landscape orientation. Therefore, when the home screen outputs user interface 118B, computing device 110 may perform an automatic rotation to output user interface 118B of the home screen in a landscape orientation to correspond to display 108 being in a landscape orientation.
[0063] The user may provide user input corresponding to selection of application icon 122D corresponding to application 126A in user interface 118B, such as by providing a touch input that taps application icon 122D. Computing device 110 may, in response to receiving the user input corresponding to selection of application icon 122D, activate application 126A corresponding to selected application icon 122D as a foreground application of computing device 110.
[0064] While application 126A is operable to output a user interface in a portrait orientation, such as user interface 118A output in a portrait orientation, application 126A is not operable to output a user interface in the landscape orientation to which display 108 is locked. Thus, computing device 110 may generate a reoriented user interface for the application in the interface orientation to which display 108 is locked based on display 108 being locked to the interface orientation and further based on the application being inoperable to output a user interface in the interface orientation to which display 108 is locked. Computing device 110 may therefore output the reoriented user interface in the interface orientation to which display 108 is locked for display at display 108.
[0065] In some examples, because the application is not operable to output the user interface in the interface orientation to which display 108 is locked, computing device 110 may send data for outputting the user interface in an interface orientation different from the interface orientation to which display 108 is locked to interface rotation module 134. Interface rotation module 134 may generate a reoriented user interface for the application in the interface orientation to which display 108 is locked in response to receiving the data for outputting the user interface from the application.
[0066] In some examples, interface rotation module 134 can generate a reoriented user interface for the application by rotating a user interface that the application is operable to output and adjusting the size (e.g., scaling) of the user interface. That is, interface rotation module 134 can rotate the user interface to the interface orientation to which display 108 is locked, and can adjust the size of the rotated user interface to fit within display 108.
[0067] exist Figure 1BIn the example of , computing device 110 with display 108 locked to a landscape orientation may, in response to activating application 126A as a foreground application, where application 126A may be operable to output a user interface only in a portrait orientation, generate a reoriented user interface 118D in a landscape orientation. In response to being activated as a foreground application, application 126A may output a user interface in a portrait orientation, and may send data for outputting the user interface in a portrait orientation to interface rotation module 134. Interface rotation module 134 may, in response to receiving the data from application 126A, generate a reoriented user interface 118D of application 126A in a landscape orientation based on the data, the reoriented user interface 118D corresponding to user interface 118A in a portrait orientation output by application 126A.
[0068] To generate a reoriented user interface 118D of application 126A in a landscape orientation that corresponds to user interface 118A in a portrait orientation output by application 126A, interface rotation module 134 may rotate user interface 118A 90 degrees, and may resize rotated user interface 118A so that the height of rotated user interface 118A corresponds to (e.g., is the same as) the height of display 108 in a landscape orientation. Interface rotation module 134 may thus (e.g., via UI module 120) output reoriented user interface 118D of application 126A in a landscape orientation for display at display 108.
[0069] In some examples, computing device 110 may generate a reoriented user interface for the application based at least in part on a result of changing an API called by the application. When the application determines to output a user interface, the application may call an API provided by the operating system to query the type of user interface to be output by the application. For example, the application may use the API to query the operating system about whether the application is to render a user interface for a tablet device (e.g., a user interface in a landscape orientation). If the application receives a response to the query indicating that the application is to render a user interface for a smartphone (e.g., in a portrait orientation), the application may render the user interface for the smartphone.
[0070] exist Figure 1B In the example of , when application 126A is activated, application 126A can query the type of user interface to be output by application 126A via the API. Figure 1BIn the example where display 108 is locked to a portrait orientation, computing device 110 may also return a response to the query indicating that application 126A is to render user interface 118D in a portrait orientation. Thus, application 126A may, in response to receiving a response to the query indicating that application 126A is to render user interface 118D in a portrait orientation, output user interface 118D in a portrait orientation, and interface rotation module 134 may resize and rotate user interface 118D so that it is output in a landscape orientation for display at display 108.
[0071] In some examples, computing device 110 may be able to reorient media content, such as images, videos, and multimedia content, from a first orientation to a second orientation to output the media content in the second orientation. Figure 1C As shown, when display 108 is in a landscape orientation, computing device 110 may activate application 126B as a foreground application of computing device 110. In some examples, application 126B may be a media player (e.g., a video player) for outputting media content such as images, videos, etc. Thus, when executed as a foreground application of computing device 110, application 126B may output media content 130A, which may be a video, for display at display 108 in a landscape orientation, which corresponds to the orientation of display 108.
[0072] After activating application 126B as the foreground application, computing device 110 may exit application 126B and may return to the home screen. Computing device 110 may also determine that display 108 has been rotated from being in a landscape orientation to a portrait orientation. Therefore, when the home screen outputs user interface 118D, computing device 110 may perform an automatic rotation to output user interface 118D in a portrait orientation to correspond to display 108 being in a portrait orientation.
[0073] The user may provide user input corresponding to selection of application icon 122C corresponding to application 126B in user interface 118D, such as by providing a touch input that taps application icon 122C. Computing device 110 may, in response to receiving the user input corresponding to selection of application icon 122C, activate application 126B corresponding to selected application icon 122C as a foreground application of computing device 110.
[0074] Although application 126B is operable to output media content in a landscape orientation, such as media content 130A output in a landscape orientation, application 126B is not operable to output the media content in the portrait orientation to which display 108 is locked. Thus, computing device 110 may transform the media content to the interface orientation to which display 108 is locked based on display 108 being locked to the interface orientation and further based on the application being not operable to output the media content in the interface orientation to which display 108 is locked. Computing device 110 may therefore output the transformed media content in the interface orientation to which display 108 is locked for display at display 108.
[0075] exist Figure 1C In an example of , computing device 110 with display 108 locked to a portrait orientation may, in response to activating application 126B as a foreground application—where application 126B may be operable to output media content only in a landscape orientation—transform media content output by application 126B from a landscape orientation to transformed media content in a portrait orientation by rotating and / or scaling the media content to generate transformed media content. For example, application 126B may send data for outputting media content in a landscape orientation to interface rotation module 134. Interface rotation module 134 may, in response to receiving the data from application 126B, generate transformed media content 130B of application 126B in a portrait orientation corresponding to media content 130A output by application 126B in a landscape orientation based on the data.
[0076] To generate transformed media content 130B of application 126B in a portrait orientation that corresponds to media content 130A output by application 126B in a landscape orientation, interface rotation module 134 may rotate media content 130B by 90 degrees and may resize (e.g., scale) rotated media content 130A so that the width of rotated media content 130A corresponds to (e.g., is the same as) the width of display 108 in a portrait orientation. Interface rotation module 134 may thus output transformed media content 130B of application 126B in a portrait orientation for display at display 108.
[0077] In some examples, computing device 110 may implement one or more neural networks to determine whether to transform media content in an interface orientation different from the interface orientation to which display 108 is locked to transformed media content in the interface orientation to which display 108 is locked. Computing device 110 may make such a determination based on factors such as a history of the computing device previously transforming media content in an interface orientation different from the interface orientation to which display 108 is locked to transformed media content in the interface orientation to which display 108 is locked, a history of whether a user has correspondingly provided input to disable locking of display 108 in response to computing device 110 transforming the media content to the transformed media content, a history of landscape orientations to which display 108 was locked corresponding to previous transformations of the media content, information associated with the transformed media content (e.g., aspect ratio, media type, file size, etc.), and the like.
[0078] For example, computing device 110 may use 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 display 108 in response to computing device 110 transforming media content in a landscape orientation to a portrait orientation, but is likely to unlock the interface orientation of display 108 from a landscape orientation in response to computing device 110 transforming media content in a portrait orientation to a landscape orientation. Thus, in this example, computing device 110 may use one or more neural networks and factors such as the current interface orientation to which display 108 is locked to determine whether to transform media content in a portrait orientation to a landscape orientation when display 108 is locked to a landscape orientation.
[0079] In another example, computing device 110 may use one or more neural networks and the factors described above to determine that, when display 108 is locked to the portrait orientation, the user is likely to refrain from unlocking the interface orientation of display 108 from the portrait orientation in response to computing device 110 transforming media content in an aspect ratio of 16:9 or less from the landscape orientation to the portrait orientation, but is likely to unlock the interface of display 108 from the portrait orientation in response to computing device 110 transforming media content in an aspect ratio of 1.77:1 or greater from the landscape orientation to the portrait orientation. Thus, in this example, computing device 110 may use one or more neural networks and factors such as the aspect ratio of the media content to determine whether to transform media content in a landscape orientation to a portrait orientation when display 108 is locked to the portrait orientation.
[0080] Figure 2 is a block diagram illustrating an example computing device according to one or more aspects of the present disclosure. Figure 2 The computing device 210 is as follows Figures 1A to 1C The example of computing device 110 is shown.
[0081] Figure 2 The computing device 210 may be an example of a mobile phone, a tablet computer, a laptop computer, a desktop computer, a server, a mainframe, a set-top box, a television, a wearable device, a home automation device or system, a PDA, a gaming system, a media player, an e-book reader, a mobile television platform, a car navigation or infotainment system, or any other type of mobile, non-mobile, wearable, and non-wearable computing device configured to receive and output an indication of notification data. Figure 2 Only one particular example of computing device 210 is shown, and many other examples of computing device 210 may be used in other situations and may include a subset of the components included in the example computing device 210, or may include Figure 2 Additional components not shown.
[0082] like Figure 2 As shown in the example of FIG. 2 , computing device 210 includes 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 storage components 248. UIC 212 includes display 208. One or more storage components 248 of computing device 210 also include UI module 220, one or more applications 226, operating system 230, interface rotation module 234, and one or more neural networks 232.
[0083] Communication channel 250 can interconnect each of components 240, 212, 214, 244, 246, 242, and 248 for inter-component communication (physically, communicatively, and / or operationally). In some examples, communication channel 250 can include a system bus, a network connection, an inter-process communication data structure, or any other method for transferring data.
[0084] One or more sensor components 214 are Figures 1A to 1C 210 and can be any component configured to obtain environmental information about the environment surrounding the computing device 210 and / or physical positioning, movement, and / or location information of the computing device 210. Examples of the one or more sensor components 214 may include a position sensor (e.g., a global navigation satellite system component), a temperature sensor, a motion sensor (e.g., a multi-axis accelerometer, a gyroscope, a gravity sensor, etc.), a pressure sensor, an ambient light sensor, etc. 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 relative to a reference frame, such as the orientation of the computing device 210 relative to the earth.
[0085] One or more input components 242 of computing device 210 can receive input. Examples of input are tactile input, audio input, and video input. In one example, one or more input components 242 of computing device 210 include a presence-sensitive display, a touch-sensitive screen, a mouse, a keyboard, a voice response system, a video camera, a microphone, or any other type of device for detecting input from a person or a machine.
[0086] One or more output components 246 of computing device 210 can generate output. Examples of output are tactile output, audio output, and video output. In one example, one or more output components 246 of computing device 210 include a presence-sensitive display, a sound card, a video graphics adapter card, a speaker, a liquid crystal display (LCD), an organic light-emitting diode (OLED) display, a light field display, one or more haptic motors, one or more linear actuators, or any other type of device for generating output to a person or machine.
[0087] 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 on 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 that can send and / or receive information. Other examples of the one or more communication units 244 can include a shortwave radio, a cellular data radio, a wireless network radio, and a universal serial bus (USB) controller.
[0088] The UIC 212 of the computing device 200 may be Figures 1A to 1C 2 and may be hardware that functions as an input and / or output device for computing device 210. For example, UIC 212 may include display 208, which may be Figures 1A to 1C An example of a display 108 is shown in FIG. 1 , and the display may be a screen at which information is displayed. In some examples, the display 208 may be a presence-sensitive display.
[0089] One or more processors 240 may implement functionality and / or execute instructions within the computing device 210. For example, one or more processors 240 on the computing device 210 may receive and execute instructions stored by one or more storage components 248 that implement functionality of the UI module 220, one or more applications 226, and the operating system 230. The instructions executed by the one or more processors 240 may cause the computing device 210 to store information within the one or more storage 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 may execute instructions of the UI module 220, one or more applications 226, the operating system 230, the interface rotation module 234, and the one or more neural networks 232 to perform actions or functions. That is, the UI module 220, one or more applications 226, the operating system 230, the interface rotation module 234, and the one or more neural networks 232 may be operable by the one or more processors 240 to perform various actions or functions of the computing device 210.
[0090] One or more storage components 248 within computing device 210 may store information for processing during operation of computing device 210. That is, computing device 210 may store data accessed by UI module 220, one or more applications 226, operating system 230, interface rotation module 234, and one or more neural networks 232 during execution at computing device 210. In some examples, one or more storage components 248 are temporary storage, meaning that the primary purpose of one or more storage components 248 is not long-term storage. One or more storage components 248 on computing device 210 may be configured as volatile memory for short-term storage of information, and therefore the stored contents are not retained in the event of a power outage. Examples of volatile memory include random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), and other forms of volatile memory known in the art.
[0091] In some examples, storage component(s) 248 also include one or more computer-readable storage media. Storage component(s) 248 may be configured to store larger amounts of information than volatile memory. Storage component(s) 248 may be further configured as non-volatile memory space for long-term storage of information and retaining the information after power on / off cycles. Examples of non-volatile memory include magnetic hard disks, optical disks, floppy disks, flash memory, or in the form of electrically programmable memory (EPROM) or electrically erasable and programmable (EEPROM) memory. Storage component(s) 248 may store program instructions and / or information (e.g., data) associated with UI module 220, one or more applications 226, operating system 230, interface rotation module 234, and one or more neural networks 232. UI module 220, one or more applications 226, interface rotation module 234, and one or more neural networks 232 may be executed at one or more processors 240 to respectively perform operations similar to Figures 1A to 1C 1. The functionality of the UI module 120, one or more applications 126, and the interface rotation module 134 shown in FIG.
[0092] The one or more neural networks 232 may be implemented by the computing device 210 as software, hardware, or a combination thereof. The one or more neural networks 232 may include a plurality of interconnected nodes, and each node may 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 may be examples of neural networks described throughout the present disclosure and may perform functions similar to those of these neural networks.
[0093] In some examples, one or more neural networks 232 may be trained on-device by computing device 210. For example, one or more neural networks 232 may include one or more learnable parameters or “weights” applied to features. Computing device 210 may adjust these learnable parameters during training to improve the accuracy of one or more neural networks 232. In some examples, one or more neural networks 232 may be trained off-device and then downloaded to or installed at computing device 210.
[0094] The operating system 230 may be executed at the one or more processors 240 to enable the computing device 210 to perform various functions to manage hardware resources of the computing device 210, manage processes executed at the one or more processors 240, and / or provide various public services for other software applications and processes executed at the one or more processors 240.
[0095] Operating system 230 may execute at one or more processors 240 to determine an orientation of computing device 210 relative to a reference frame, such as an orientation of computing device 210 relative to the earth, based on sensor data generated by one or more sensor components 214. If a user or another entity physically rotates or otherwise moves computing device 210, operating system 230 may be able to determine, based on the sensor data, whether the orientation of computing device 210 has changed due to the physical movement of computing device 210.
[0096] Physical movement of the computing device 210 that results in a change in the orientation of the computing device 210 may also result in a corresponding change in the orientation of the display 208. For example, if the computing device 210 includes the display 208, such as when the computing device 210 is a smart phone or a tablet computer, the orientation of the display 208 may correspond to the orientation of the computing device 210. Thus, the operating system 230 may be configured to determine the orientation of the display 208 and changes in the orientation of the display 208 based on sensor data generated by the one or more sensor components 214.
[0097] The operating system 230 may be executed at the one or more processors 240 to determine the orientation of the display 208, such as based on sensor data generated by the one or more sensor components 214, and may perform an automatic rotation function based on the determined orientation of the display 208. Specifically, the operating system 230 may perform such an automatic rotation function to automatically change the orientation of a user interface output for display at the display 208 in response to determining 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.
[0098] To provide the automatic rotation function, the operating system 230 can determine the orientation of the display 208, and the operating system 230 can provide an API that one or more applications 226 can use to determine the orientation of the display 208, so as to output the interface in an interface orientation corresponding 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 a portrait orientation, and can correspondingly output the user interface in a portrait orientation. Similarly, one or more applications 226 can use the API to determine that the display 208 is in a landscape orientation, and can correspondingly output the user interface in a landscape orientation.
[0099] In some examples, operating system 230 may execute at one or more processors 240 to lock display 208 to a particular interface orientation of a plurality of orientations. Operating system 230 may lock display 208 to an orientation by turning off or otherwise disabling an automatic rotation function of operating system 230. In some examples, computing device 210 may include a physical control (e.g., a switch, a button, etc.) that a user may use to toggle the automatic rotation function of computing device 210. In some examples, operating system 230 may output a UI control (e.g., a button, a slider, etc.) for display at display 208, and a user of computing device 210 may interact with the UI control to enable and / or disable the automatic rotation function of computing device 210.
[0100] In some examples, operating system 230 may use one or more neural networks 232 to automatically (i.e., without user intervention) lock display 208 to an interface orientation based on factors such as historical usage patterns of computing device 210, current usage of computing device 210, environmental factors (e.g., current time of day, current date, etc.), and / or any other suitable factors. For example, operating system 230 may input data indicative of such factors to one or more neural networks 232, and in response, one or more neural networks 232 may output an indication of whether to lock display 208 to an interface orientation. Operating system 230 may thus determine whether to lock display 208 to an interface orientation based on the output of one or more neural networks 232.
[0101] In some examples, operating system 230 may lock the interface orientation of display 208 to the current orientation of display 208. That is, when operating system 230 locks display 208 to an orientation, operating system 230 may determine the current orientation of display 208 and may lock display 208 to the current orientation of display 208. In some examples, operating system 230 may receive (e.g., at one or more input components 242) user input indicating the orientation to which display 208 is locked, and operating system 230 may lock the orientation of display 208 to the orientation indicated by the user input.
[0102] In some examples, when the interface orientation is locked to a particular interface orientation, an application in one or more applications 226 may not be operable to output a user interface in the particular interface orientation that display 208 is locked to, and may continue to output the user interface in an interface orientation different from the particular interface orientation that the interface orientation is locked to. For example, when display 208 is locked to a landscape orientation, an application may only be able to output a user interface in a portrait orientation, and may not be able to output a user interface in a landscape orientation.
[0103] While display 208 is locked to an interface orientation, operating system 230 may execute at one or more processors 240 to activate, as a foreground application, an application that is operable to output a user interface in an interface orientation different from the interface orientation to which display 208 is locked, but is not operable to output a user interface in the interface orientation to which display 208 is locked. Operating system 230 may activate an application as a foreground application by launching or otherwise opening the application (e.g., from a home screen or launcher), switching to the application from another application, or otherwise outputting the application's user interface in the foreground of a graphical user interface for display at display 208.
[0104] The interface rotation module 234 can be executed at the one or more processors 240 to generate a reoriented user interface of the application in the interface orientation that the display 208 is locked to, based on the display 208 being locked to the interface orientation and further based on the application being inoperable to output the user interface in the interface orientation that the display 208 is locked to. The interface rotation module 234 can therefore output the reoriented user interface in the interface orientation that the display 208 is locked to for display at the display 208.
[0105] The application may send data for outputting the user interface in an interface orientation different from the interface orientation to which the display 208 is locked to the interface rotation module 234. The interface rotation module 234 may, in response to receiving the data for outputting the user interface from the application, generate a reoriented user interface for the application in the interface orientation to which the display 208 is locked, and may output the reoriented user interface in the interface orientation to which the display 208 is locked for display at the display 208.
[0106] The data sent by the application to the interface rotation module 234 for outputting the user interface may include information such as indications of UI elements (e.g., interfaces such as UI controls, text, images, videos, etc.) in the user interface, indications of the positioning and / or layout of the UI elements (such as constraints), distances of the UI elements from each other and / or from edges of the user interface, functions of the application associated with the UI controls, etc. The interface rotation module 234 may use such data sent by the application to generate a reoriented user interface in the interface orientation to which the display 208 is locked, the reoriented user interface corresponding to the user interface associated with the data sent by the application.
[0107] In some examples, interface rotation module 234 can generate a reoriented user interface that includes UI elements indicated by data sent by the application for outputting the user interface, wherein the UI elements in the reoriented user interface are oriented to be properly viewed (e.g., oriented right side up) in the interface orientation to which display 208 is locked. In some examples, interface rotation module 234 can generate a reoriented user interface for the application by rotating a user interface that the application is operable to output and resizing the user interface. That is, interface rotation module 234 can rotate the user interface to the interface orientation to which display 208 is locked, and can resize the rotated user interface to fit within display 208 in the interface orientation to which display 208 is locked.
[0108] In some examples, interface rotation module 234 can be executed at one or more processors 240 to reorient media content, such as images, videos, and multimedia content, to the interface orientation to which display 208 is locked, from a first orientation to a second orientation, and thereby output the media content in the second orientation. For example, an application can send data to interface rotation module 234 for outputting media content in an interface orientation different from the interface orientation to which display 208 is locked. Interface rotation module 234 can, in response to receiving the data, generate transformed media content in the interface orientation to which display 208 is locked based on the data, such as by rotating the media content to the interface orientation to which display 208 is locked, and can adjust the size of the rotated media content to fit within display 208 in the interface orientation to which display 208 is locked.
[0109] In some examples, when display 208 is locked to a particular interface orientation, operating system 230 may execute at one or more processors 240 to output a home screen and / or lock screen of computing device 210 in an interface orientation that is different from the particular interface orientation to which display 208 is locked. For example, display 208 may be associated with a primary orientation, which may be a preset default orientation of display 208. When display 208 is locked to a particular interface orientation that is different from the primary orientation associated with display 208, operating system 230 may output the home screen and / or lock screen in the primary orientation associated with display 208 for display at display 208 when transitioning to a home screen or lock screen of computing device 210, even if the primary orientation associated with display 207 is different from the particular interface orientation to which display 208 is locked.
[0110] In some examples, when display 208 is locked to a particular interface orientation, operating system 230 may execute at one or more processors 240 to output a user interface of an application in an interface orientation that is different from the particular interface orientation that display 208 is locked to. For example, one or more neural networks 232 may determine whether to output a user interface of an application in an interface orientation that is different from the interface orientation that display 208 is locked to based on factors such as a history of previous orientations of user interfaces of an application that were output for display at display 208, a history of whether a user provided input to cause the user interface of the application to be output in an orientation that is different from the orientation of the user interface that was output for display at display 208, and the like.
[0111] In some examples, when display 208 outputs a user interface of an application in an interface orientation that is different from the specific interface orientation to which display 208 is locked, operating system 230 may enable one or more applications 226 to output the user interface in an interface orientation that is different from the specific interface orientation to which display 208 is locked. That is, computing device 210 may determine the interface orientation in which display 208 displays the user interface as the most recent orientation of display 208, and may output a subsequent user interface of another application in the most recent orientation of display 208 for display at display 208, even if the most recent orientation of display 208 is different from the specific interface orientation to which display 208 is locked.
[0112] In some examples, operating system 230 may be able to adaptively change the interface orientation that display 208 is locked to. When display 208 is locked to a first interface orientation, operating system 230 may adaptively unlock display 208 from the first interface orientation based on computing device 210 outputting one or more user interfaces in a second interface orientation that is different from the first interface orientation that display 208 is locked to.
[0113] In some examples, operating system 230 may adaptively change the interface orientation to which display 208 is locked based on an amount of time during which computing device 210 outputs one or more user interfaces in a second interface orientation that is different from the first interface orientation to which display 208 is locked. If the amount of time during which computing device 210 outputs one or more user interfaces in a second interface orientation that is different from the first interface orientation to which display 208 is locked exceeds a threshold amount of time, such as five minutes, ten minutes, etc., operating system 230 may adaptively unlock display 208 from the first interface orientation.
[0114] In some examples, operating system 230 may use one or more neural networks 232 to adaptively change the orientation to which display 208 is locked based on factors such as historical usage patterns of computing device 210, current usage of computing device 210, environmental factors (e.g., current time of day, current date, etc.), the type of user interface and / or media content currently being displayed at display 208, and / or any other suitable factors. For example, operating system 230 may input data indicative of such factors to one or more neural networks 232, and in response, one or more neural networks 232 may output an indication of whether to adaptively change the interface orientation to which display 208 is locked. Operating system 230 may thus determine whether to adaptively change the interface orientation to which display 208 is locked based on the output of one or more neural networks 232.
[0115] In some examples, each of the multiple applications at computing device 210 can be associated with a corresponding interface orientation lock setting, so that different applications, when activated as a foreground application, can lock the display to an interface orientation specified by the interface orientation lock setting associated with the application. For example, an application associated with a portrait orientation can lock the display to a portrait orientation in response to being activated as a foreground application, even when the display is already locked to a landscape orientation. Similarly, an application associated with a landscape orientation can lock the display to a landscape orientation in response to being activated as a foreground application, even when the display is already locked to a portrait orientation.
[0116] 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. Figure 3 The computing device 310 is as follows Figures 1A to 1C The computing device 110 shown and Figure 2 The example of computing device 210 is shown for description.
[0117] exist Figure 3 In the example of FIG. 3 , display 308 may be locked to a landscape orientation, and computing device 310 may output user interface 318A of application 326 in a landscape orientation for display at display 308. If application 326 is not operable to output a user interface in a landscape orientation, interface rotation module 334, which is Figures 1A to 1C An example of an interface rotation module 134 - which can determine a reoriented user interface 318A in a landscape orientation based on a user interface of an application 326 in a portrait orientation according to the techniques described throughout this disclosure, and can output the user interface 318A of the application 326 in a landscape orientation for display at the display 308.
[0118] When computing device 310 exits the sleep state, computing device 310 may unlock display 308 from the interface orientation (i.e., re-enable the auto-rotation feature of computing device 310). For example, while display 308 is locked in a landscape orientation, computing device 310 may transition from a wake state, which may be a state in which display 308 is turned on and displays a user interface (e.g., user interface 318A), to a sleep state, which may be a state in which display 308 is turned off. Computing device 310 may transition to the sleep state in response to receiving a user input directing computing device 310 to enter the sleep state, such as by a user pressing a power button of computing device 310, which is sometimes also referred to as a sleep / wake button or side button. Computing device 310 may also enter the sleep state in response to user inactivity. For example, if computing device 310 does not detect any user input at computing device 310 within a specified time period, such as 30 seconds, 1 minute, 2 minutes, 5 minutes, etc., computing device 310 may enter the sleep state. As part of entering the sleep state, computing device 310 may turn off display 308.
[0119] When computing device 310 is in the sleep state, computing device 310 may transition from the sleep state to the awake state, such as in response to receiving a user input directing computing device 310 to transition from the sleep state to the awake state. Such user input may include a user pressing a power button of computing device 310 while computing device 310 is in the sleep state, a touch input at display 308, and the like.
[0120] When computing device 310 transitions from the sleep state to the awake state, computing device 310 may turn on display 308, and display 308 may display a lock screen, also referred to as a login screen, which may be a user interface with which a user may interact to authenticate the user as an authorized user of computing device 310. When computing device 310 transitions from the sleep state to the awake state, computing device 310 may also, in some examples, unlock display 308 from a landscape orientation, and may re-enable an auto-rotate function of computing device 310.
[0121] Thus, even if display 308 is locked to the landscape orientation before computing device 310 transitions from the awake state to the sleep state, computing device 310 may unlock display 308 from the landscape orientation in response to computing device 310 transitioning from the sleep state to the awake state, thereby enabling computing device 310 to output the user interface of the lock screen in the portrait orientation or in the landscape orientation. Figure 3In the example of , after computing device 310 transitions from a sleep state to a wake state, computing device 310 may determine that display 308 is in a portrait orientation, and may therefore perform automatic rotation to output lock screen user interface 318B in a portrait orientation.
[0122] In some examples, when computing device 310 transitions from the sleep state to the awake state, computing device 310 may refrain from unlocking display 308 from the orientation (e.g., landscape orientation) to which display 308 was locked prior to entering the sleep state. That is, if display 308 was locked to an orientation prior to transitioning to the sleep state, display 308 may remain locked to the same orientation after transitioning out of the sleep state to the awake state.
[0123] Even though display 308 may remain locked to an interface orientation after transitioning to the wake state, computing device 310 may output lock screen user interface 318B in an interface orientation different from the interface orientation to which display 308 is locked. For example, if computing device 310 determines that display 308 is oriented in a primary orientation, computing device 310 may output lock screen user interface 318B in the primary orientation, even though the primary orientation is different from the interface orientation to which display 308 is locked.
[0124] The primary orientation of display 308 may be a default orientation that is preset in computing device 310, such as by the manufacturer of computing device 310. In some examples, the primary orientation may be the orientation of display 308 when computing device 310 is naturally held by a user of computing device 310. For example, because mobile phones may generally be naturally held by users with display 308 in a portrait orientation, if computing device 310 is a mobile phone, the primary orientation of display 308 is a portrait orientation. In some examples, some tablet computers may generally be naturally held with display 308 in a landscape orientation. Thus, if computing device 310 is a tablet computer, the primary orientation of display 308 is a landscape orientation.
[0125] Thus, computing device 310 may determine, in response to transitioning from the sleep state to the wake state, whether display 308 is in a primary orientation different from the interface orientation to which display 308 is locked. If computing device 310 determines that display 308 is in a primary orientation different from the interface orientation to which display 308 is locked, computing device 310 may output a lock screen user interface 318B in the primary orientation.
[0126] exist Figure 3In the example of , the primary orientation of display 308 may be a portrait orientation. Thus, if computing device 310 determines that display 308 is in a portrait orientation after transitioning from a sleep state to a wake state, computing device 310 may output a lock screen user interface 318B in a portrait orientation.
[0127] In some examples, when computing device 310 exits an application and returns to the home screen, computing device 310 may output the home screen in a primary orientation of display 308 even when display 308 is locked to an interface orientation that is different from the interface orientation to which display 308 is locked. For example, if display 308 is locked to a landscape orientation and if the primary orientation of display 308 is a portrait orientation, computing device 310 may output the home screen of computing device 310 in a portrait orientation for display at display 308 even though computing device 310 may be operable to output the home screen of computing device 310 in either a landscape orientation or a portrait orientation.
[0128] 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. Figure 4 The computing device 410 is as follows Figures 1A to 1C The computing device 110 shown and Figure 2 The example of computing device 210 is shown for description.
[0129] In some examples, while the display of the computing device is locked to a particular interface orientation, the computing device may still be capable of outputting a user interface in an interface orientation that is different from the particular interface orientation that the display is locked to. If the computing device outputs the user interface in an interface orientation that is different from the particular interface orientation that the display is locked to, the computing device may continue to output the user interface in the interface orientation that is different from the particular interface orientation that the display is locked to until the computing device activates an application that is only operable to output the user interface in the particular interface orientation that the display is locked to as a foreground application.
[0130] like Figure 4 As shown, when display 408 of computing device 410 is locked to an interface orientation, in some examples, computing device 410 can still output a user interface for display at display 408 in an interface orientation different from the interface orientation to which display 408 is locked. That is, if display 408 is locked to a portrait orientation, computing device 410 can output a user interface in a landscape orientation in some cases. Similarly, if display 408 is locked to a landscape orientation, computing device 410 can output a user interface in a portrait orientation in some cases.
[0131] For example, if an application is not operable to output a user interface in the interface orientation to which display 408 is locked, but is operable to output a user interface in another interface orientation that is different from the interface orientation to which display 408 is locked, computing device 410 may output the user interface of the application in the interface orientation that is different from the interface orientation to which display 408 is locked. Figure 4 In the example of , with display 408 locked to a landscape orientation, computing device 410 may, in response to activating application 426A that is capable of outputting user interface 418A in a portrait orientation but not in a landscape orientation, output user interface 418A of application 426A in a portrait orientation. Thus, instead of using interface rotation module 434, which is Figures 1A to 1C An example of interface rotation module 134 - determining a reoriented user interface of application 426A in a landscape orientation based on user interface 418A of application 426A in a portrait orientation, computing device 410 may alternatively output user interface 418A of application 426A in a portrait orientation for display at display 408.
[0132] In some examples, computing device 410 may output a user interface of an application in an interface orientation that is different from the interface orientation to which display 408 is locked, even if the application is operable to output the user interface in the interface orientation to which display 408 is locked. For example, computing device 410 may implement one or more neural networks to determine whether to output the application's user interface in an interface orientation that is different from the interface orientation to which display 408 is locked based on factors such as a history of previous orientations of the application's user interface that were output for display at display 408, a history of whether a user provided input to cause the application's user interface to be output in an orientation that is different from the orientation of the user interface that was output for display at display 408, and the like.
[0133] For example, computing device 410 may use one or more neural networks and the factors described above to determine that when computing device 410 outputs the user interface of application 426A in a landscape orientation, the user is likely to provide input that causes computing device 410 to output the user interface of application 426A in a portrait orientation, such as input to unlock display 408 from a landscape orientation. Thus, in response to determining that display 408 is locked in a landscape orientation, computing device 410 may use one or more neural networks and the factors described above to output user interface 418A of application 426A in a portrait orientation for display at display 408.
[0134] In response to computing device 410 outputting user interface 418A in a portrait orientation for display at display 408, computing device 410 may determine the most recent orientation of display 408 to be the portrait orientation. That is, because display 408 is displaying user interface 418A in a portrait orientation, the most recent orientation of display 408 is the portrait orientation.
[0135] In some examples, if the most recent orientation of display 408 is different from the interface orientation to which display 408 is locked, computing device 410 may continue to output the user interfaces of applications in the most recent orientation of display 408 if those applications are also operable to output user interfaces in the most recent orientation of display 408. However, if the applications are not operable to output user interfaces in the most recent orientation of display 408, computing device 410 may revert to outputting the user interfaces of the applications in the interface orientation to which display 408 is locked.
[0136] exist Figure 4 In the example of , after outputting user interface 418A of application 426A in a portrait orientation when display 408 is locked to a landscape orientation, computing device 410 may activate application 426B as a foreground application. If application 426B is operable to output a user interface in a most recent orientation (e.g., a portrait orientation), computing device 410 may, in response to activating application 426B as the foreground application, output user interface 418B of application 426B in a portrait orientation. In response to computing device 410 outputting user interface 418B in a portrait orientation for display at display 408, computing device 410 may determine that the most recent orientation of display 408 is still the portrait orientation.
[0137] exist Figure 4 In the example of , computing device 410 may activate application 426C as a foreground application after outputting user interface 418B of application 426B in a portrait orientation while display 408 is locked to a landscape orientation. If application 426C is not operable to output a user interface in a most recent orientation (e.g., a portrait orientation), but is operable to output user interface 418C in a landscape orientation, computing device 410 may, in response to activating application 426C as the foreground application, output user interface 418C of application 426C in the landscape orientation to which display 408 is locked. In response to computing device 410 outputting user interface 418C in a landscape orientation for display at display 408, computing device 410 may determine the most recent orientation of display 408 to be the landscape orientation.
[0138] 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. Figure 5 The computing device 510 is as follows Figures 1A to 1CThe computing device 110 shown and Figure 2 The example of computing device 210 is shown for description.
[0139] In some examples, computing device 510 may be able to adaptively change the interface orientation to which display 508 is locked. When display 508 is locked to a first interface orientation, computing device 510 may adaptively unlock display 508 from the first interface orientation based on computing device 510 outputting one or more user interfaces in a second interface orientation that is different from the first interface orientation to which display 508 is locked. In some examples, computing device 510 may adaptively lock display 508 to the second interface orientation.
[0140] In some examples, computing device 510 may adaptively change the interface orientation to which display 508 is locked based on an amount of time during which computing device 510 outputs one or more user interfaces in a second interface orientation that is different from the first interface orientation to which display 508 is locked. If the amount of time during which computing device 510 outputs one or more user interfaces in a second interface orientation that is different from the first interface orientation to which display 508 is locked exceeds a threshold amount of time, such as five minutes, ten minutes, etc., computing device 510 may adaptively unlock display 508 from the first interface orientation. In some examples, computing device 510 may also adaptively lock display 508 to the second interface orientation, or may re-enable an auto-rotation function of computing device 110.
[0141] In some examples, the amount of time during which computing device 510 outputs one or more user interfaces in a second interface orientation different from the first interface orientation to which display 508 is locked may be the cumulative amount of time since display 508 was locked to the first interface orientation during which computing device 510 outputs one or more user interfaces in the second interface orientation. In some examples, the amount of time during which computing device 510 outputs one or more user interfaces in a second interface orientation different from the first interface orientation to which display 508 is locked may be the continuous amount of time since display 508 was locked to the first interface orientation during which computing device 510 outputs one or more user interfaces in the second interface orientation. In some examples, the amount of time during which computing device 510 outputs one or more user interfaces in a second interface orientation different from the first interface orientation to which display 508 is locked may be the cumulative amount of time in a given time period (e.g., 30 minutes, 1 hour, etc.) since display 508 was locked to the first interface orientation.
[0142] In some examples, when content displayed at display 508 is displayed at display 508 in an interface orientation different from the interface orientation to which display 508 is locked, computing device 510 may determine, based at least in part on the type and / or provider of such content, whether to adaptively change the orientation to which display 508 is locked. For example, if display 508 is displaying media content such as images, videos, etc. in an interface orientation different from the interface orientation to which display 508 is locked, computing device 510 may refrain from changing the orientation to which display 508 is locked. In another example, if display 508 is displaying text content such as a web page, a text document, etc. in an interface orientation different from the interface orientation to which display 508 is locked, computing device 510 may adaptively change the orientation to which display 508 is locked to the orientation at which the text content is displayed at display 508.
[0143] In some examples, computing device 510 may use one or more neural networks to adaptively change the orientation to which display 508 is locked based on factors such as historical usage patterns of computing device 510, current usage of computing device 510, environmental factors (e.g., current time of day, current date, etc.), the type of user interface and / or media content currently being displayed at display 508, and / or any other suitable factors. For example, computing device 510 may input data indicative of such factors into one or more neural networks, and in response, the one or more neural networks may output an indication of whether to adaptively change the interface orientation to which display 508 is locked. Computing device 510 may thus determine whether to adaptively change the interface orientation to which display 508 is locked based on the output of the one or more neural networks.
[0144] exist Figure 5 In an example of , display 508 may be locked in a portrait orientation. When display 508 is locked in a portrait orientation, computing device 510 may output user interface 518A of a first application in a landscape orientation that is different from the portrait orientation to which display 508 is locked. Computing device 510 may determine an amount of time during which computing device 510 outputs one or more user interfaces in a portrait orientation, and may determine whether this amount of time exceeds a threshold amount of time. If computing device 510 determines that the amount of time during which computing device 510 outputs one or more user interfaces in a portrait orientation exceeds a threshold time period, computing device 510 may unlock display 508 from the portrait orientation. In some examples, computing device 510 may also lock display 508 to a landscape orientation, or may re-enable an automatic rotation function of computing device 510.
[0145] In some examples, computing device 510 may adaptively change the interface orientation to which display 508 is locked based on computing device 510 outputting a user interface in the primary orientation of display 508. That is, when display 508 is locked to a first interface orientation, computing device 510 may output a user interface in a second interface orientation that is different from the first interface orientation to which display 508 is locked. If the second orientation is the primary orientation of display 508, computing device 510 may adaptively unlock display 508 from the first interface orientation. In some examples, computing device 510 may also lock display 508 to a landscape orientation (i.e., the primary orientation), or may re-enable an automatic rotation function of computing device 510.
[0146] exist Figure 5 In an example of , the primary orientation of display 508 may be a landscape orientation, and display 508 may be locked in a portrait orientation. When display 508 is locked in a portrait orientation, computing device 510 may output user interface 518A of application 526A in a portrait orientation. After outputting user interface 518A of application 526A, computing device 510 may activate application 526A as a foreground application, and may output user interface 518B of application 526B in a landscape orientation different from the portrait orientation to which display 508 is locked. Computing device 510 may therefore determine that computing device 510 is outputting user interface 518B in the primary orientation of display 508. In response to determining that computing device 510 is outputting user interface 518B in the primary orientation of display 508, computing device 510 may unlock display 508 from the portrait orientation. In some examples, computing device 510 may also lock display 508 to a landscape orientation (i.e., the primary orientation), or may re-enable the automatic rotation function of computing device 510.
[0147] If computing device 510 unlocks display 508 from the portrait orientation and locks display 508 to the landscape orientation, computing device 510 may subsequently output additional user interfaces in the landscape orientation. For example, after outputting user interface 518B, computing device 510 may activate application 526C as the foreground application and may output user interface 518C of application 526C in the landscape orientation to which display 508 is locked.
[0148] In some examples, if display 508 is locked to a landscape orientation, and if application 526C is not operable to output a user interface in a landscape orientation, interface rotation module 534, which is Figures 1A to 1CExample of interface rotation module 134 of the embodiment of the present invention - based on the user interface output by application 526C in the portrait orientation, determine the user interface 518C of application 526C in the landscape orientation to which display 508 is locked according to the techniques described throughout this disclosure. Interface rotation module 534 can therefore output user interface 518C in the landscape orientation for display at display 508.
[0149] 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. Figure 6 The computing device 610 is as follows Figures 1A to 1C The computing device 110 shown and Figure 2 The example of computing device 210 is shown for description.
[0150] In some examples, each of a plurality of applications at a computing device may be associated with a corresponding interface orientation lock setting such that a different application, when activated as a foreground application, may lock a display to an interface orientation specified by the interface orientation lock setting associated with the application. For example, an application associated with a portrait orientation may lock a display to a portrait orientation when activated as a foreground application, even when the display is already locked to a landscape orientation. Similarly, an application associated with a landscape orientation may lock a display to a landscape orientation when activated as a foreground application, even when the display is already locked to a portrait orientation.
[0151] like Figure 6 As shown, application 626 can be associated with an interface orientation lock setting that specifies that display 608 will be locked to a landscape orientation when application 626 is activated as a foreground application of computing device 610. When application 626 is activated as a foreground application of computing device 610, computing device 610 can lock display 608 to a landscape orientation specified by the interface orientation lock setting associated with application 626, regardless of whether display 608 has been locked to another interface orientation. Thus, because display 608 is locked to a landscape orientation, application 626 can output user interface 618A in a landscape orientation.
[0152] In some examples, an application can be associated with an interface orientation lock setting that specifies that display 608 will be locked to a particular interface orientation even if the application is not operable to output a user interface in the particular interface orientation to which display 608 is locked. For example, even if application 626 is not operable to output a user interface in a landscape orientation, application 626 can still be associated with an interface orientation lock setting that specifies that display 608 will be locked to a landscape orientation. When application 626 outputs a user interface in a portrait orientation, interface rotation module 634, which is Figures 1A to 1CAn example of an interface rotation module 134 of the embodiment of the present invention - a reoriented user interface 618A for application 626 in a landscape orientation may be determined based on the user interface of application 626 in a portrait orientation, and user interface 618 may be output in a landscape orientation for display by display 608.
[0153] In some examples, whenever an application associated with the interface orientation lock setting is activated as the foreground application, the application may lock display 608 to the interface orientation specified by the interface orientation lock setting. For example, if computing device 610 switches to another application as the foreground application and then subsequently reactivates application 626 as the foreground application, computing device 610 may lock display 608 to the portrait orientation specified by the interface orientation lock setting associated with application 626 when application 626 is reactivated as the foreground application.
[0154] In some examples, when computing device 610 closes an application that has an associated interface orientation lock setting, computing device 610 may clear the interface orientation lock setting associated with the application. By clearing the interface orientation lock setting associated with the application, the application may no longer be associated with the interface orientation lock setting. Therefore, if the application is subsequently reactivated as a foreground application of computing device 610, the reactivation of the application may not cause computing device 610 to lock display 608 to a particular interface orientation. Alternatively, in some examples, computing device 610 may re-enable the automatic rotation function of computing device 610.
[0155] The computing device 610 may close an application by completely exiting all processes of the computing device 610, including any background processes of the application. This may be contrasted with switching the computing device's foreground application away from the application to another application, in which case the background processes of the application may continue to execute at the computing device 610.
[0156] exist Figure 6 In the example of FIG. 6 , after application 626 is activated as a foreground application of computing device 610 and user interface 618A is output, a user of computing device 610 may provide user input that causes computing device 610 to switch to a home screen of computing device 610 and output user interface 618B of the home screen. While at the home screen, the user may provide user input to call up a list of recent applications, such as recent application list 630 in user interface 618B. The user may interact with recent application list 630 to cause computing device 610 to close application 626, such as by selecting a close button 632 associated with application 626 in recent application list 630. Computing device 610 may close application 626 in response to receiving user input corresponding to selection of close button 632.
[0157] Computing device 610 may exit all processes of application 626 executing at computing device 610, including any background processes of application 626, by closing application 626. Computing device 610 may also, in response to closing application 626, clear the interface orientation lock setting associated with the application, such that when application 626 is activated as the foreground application, application 626 is no longer associated with the interface orientation lock setting that specifies that display 608 is to be locked to a landscape orientation.
[0158] When application 626 is subsequently reactivated as a foreground application of computing device 610, application 626 is no longer associated with the interface orientation lock setting that specifies that display 608 will be locked to a landscape orientation when application 626 is activated as a foreground application. Thus, application 626 may be able to output user interface 618C at display 608 in a portrait orientation.
[0159] In some examples, when a user interface and / or user interface element is used by a user of the computing device to provide user input, the computing device may output the user interface and / or user interface element in an interface orientation that is different from the particular interface orientation that the display is locked to. The computing device may determine an interface orientation at which to output a user interface and / or user interface element used by the user to provide user input in order to increase user comfort when providing user input via the user interface and / or user interface element, and / or otherwise improve the user experience of providing user input via the user interface and / or user interface element.
[0160] For example, due to factors such as the form factor of the computing device, the size of the display of the computing device, etc., it may be more comfortable for a user of the computing device to enter text using a virtual keyboard output in a portrait orientation rather than a virtual keyboard output in a landscape orientation. Thus, in some examples, when the display of the computing device is locked to a landscape orientation, the computing device may still output the virtual keyboard in a portrait orientation.
[0161] 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. Figure 7 The computing device 710 is as follows Figures 1A to 1C The computing device 110 shown and Figure 2 The example of computing device 210 is shown for description.
[0162] like Figure 7 As shown, display 708 can be locked to a landscape orientation, and application 726 executing at computing device 710 can correspondingly output user interface 718A in a landscape orientation. User interface 718A output by application 726 can include text field 742, which can be a user interface element that can accept text input.
[0163] The user may provide user input corresponding to selection of text field 742, such as by providing a touch input that taps text field 742, so as to provide text input in text field 742. Computing device 710 may, in response to receiving the user input corresponding to selection of text field 742, output at display 708 a virtual keyboard with which the user may interact to provide text input at text field 742.
[0164] Even if display 708 is locked to a landscape orientation, computing device 710 can output a virtual keyboard in a portrait orientation. Thus, in response to computing device 710 receiving a user input corresponding to a selection of text field 742 in user interface 718A, application 726 can output user interface 718B in a portrait orientation, where user interface 718B includes virtual keyboard 750 that is also in a portrait orientation. Thus, a user can type using virtual keyboard 750 to provide text input to text field 742 in user interface 718B.
[0165] Figure 8 is a flowchart illustrating example operations performed by an example computing device according to one or more aspects of the present disclosure. Figure 2 The context of the computing device 210 is described in Figure 7 .
[0166] like Figure 8 As shown, one or more processors 240 of computing device 210 may activate an application that is operable to output a user interface in a second interface orientation and is not operable to output a user interface in a first interface orientation (802). One or more processors 240 may determine a reoriented user interface in the first interface orientation for the application (804). One or more processors 240 may output the reoriented user interface in the first interface orientation for display at display device 208 (806).
[0167] In some examples, one or more processors 240 can activate a second application that outputs media content as a foreground application, wherein the second application is operable to output media content in a second interface orientation and is not operable to output media content in a first interface orientation. One or more processors 240 can transform the media content based on the display device being locked to the first interface orientation, thereby generating the transformed media content for display in the first interface orientation. One or more processors 240 can output the transformed media content in the first interface orientation for display at the display device 208.
[0168] In some examples, to transform the media content to generate transformed media content, one or more processors 240 can perform at least one of rotating the media content or scaling the media content to generate the transformed media content for display in the first interface orientation. In some examples, the media content is a video.
[0169] In some examples, while display device 208 is locked to the first interface orientation, one or more processors 240 may transition computing device 210 to a sleep state. One or more processors 240 may unlock display device 208 from the first interface orientation in response to transitioning computing device 210 from the sleep state to the awake state.
[0170] In some examples, to lock display device 208 to a first interface orientation among multiple interfaces, one or more processors 240 may determine a corresponding interface orientation lock setting for each of multiple applications, including the application. One or more processors 240 may lock display device 210 to a first interface orientation specified by the corresponding interface orientation lock setting of the application in response to the application being activated as the foreground application.
[0171] In some examples, one or more processors 240 may activate a third application as a foreground application, wherein the third application is operable to output a third user interface in a second interface orientation and is not operable to output the third user interface in a first interface orientation. When the display device 208 is locked to the first interface orientation, the one or more processors 240 may output the third user interface in a second interface orientation for display at the display device 208. The one or more processors 240 may determine the most recent interface orientation as the second interface orientation based on the third user interface being output in a second interface orientation different from the first interface orientation to which the display device 208 is locked. The one or more processors 240 may activate a fourth application as a foreground application after outputting the third user interface, wherein the fourth application is operable to output a fourth user interface in a first interface orientation and is also operable to output a fourth user interface in a second interface orientation. When the display device 208 is locked to the first interface orientation, the one or more processors 240 may output a fourth user interface in a second interface orientation for display at the display device 208 at least in part based on the most recent interface orientation being the second interface orientation.
[0172] In some examples, while the display device is locked to the first interface orientation, one or more processors 240 may determine an amount of time during which one or more user interfaces are output in the second interface orientation. One or more processors 240 may unlock display device 208 from the first interface orientation in response to determining that the amount of time during which one or more user interfaces are output in the second interface orientation exceeds a threshold amount of time.
[0173] In some examples, one or more processors 240 may determine that the second interface orientation is the primary orientation of display device 208. One or more processors 240 may activate a fifth application as a 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. When display device 208 is locked to the first interface orientation, one or more processors 240 may output the fifth user interface in the second interface orientation for display at display device 208. One or more processors 240 may unlock display device 208 from the first interface orientation 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 of display device 208.
[0174] In some examples, to unlock display device 208 from the first interface orientation, one or more processors 240 may lock the display device into the primary orientation.
[0175] In some examples, when the display device 208 is locked to the first interface orientation, the one or more processors 240 can activate the home screen, wherein the home screen is operable to output the home screen interface in the first interface orientation and is operable to output the home screen interface in the second interface orientation. The one or more processors 240 can output the home screen interface in the second interface orientation for display at the display device 208 in response to activating the home screen.
[0176] 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 a landscape orientation and the second interface orientation is a portrait orientation.
[0177] Aspects of the present disclosure include the following examples.
[0178] Example 1: A method includes: activating, by one or more processors, an application that is operable to output a user interface in a second interface orientation and is not operable to output a user interface in a first interface orientation; determining, by the one or more processors, a reoriented user interface in the first interface orientation for the application; and outputting, by the one or more processors, the reoriented user interface in the first interface orientation for display at a display device.
[0179] Example 2: The method of Example 1 further comprises locking, by one or more processors of a computing device operable to perform automatic rotation of an interface to be output by the display device, the display device to a first interface orientation of a plurality of interface orientations.
[0180] Example 3: The method as described in any of Examples 1 and 2, further includes: activating, by one or more processors, a second application that outputs media content as a foreground application, wherein the second application is operable to output the media content in a second interface orientation and is not operable to output the media content in a first interface orientation; based on the display device being locked to the first interface orientation, transforming, by one or more processors, the media content to generate transformed media content for display in the first interface orientation; and outputting, by one or more processors, the transformed media content in the first interface orientation for display at the display device.
[0181] Example 4: The method of Example 3, wherein transforming the media content to generate transformed media content further comprises: performing, by 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.
[0182] Example 5: A method as described in any of Examples 3 and 4, wherein the media content is a video.
[0183] Example 6: The method as described in any of Examples 1 to 5, further comprising: when the display device is locked to the first interface orientation, one or more processors transitioning the computing device to a sleep state; and in response to transitioning the computing device from the sleep state to the wake state, one or more processors unlocking the display device from the first interface orientation.
[0184] Example 7: A method as described in any of Examples 1 to 6, wherein locking the display device to a first interface orientation among multiple interface orientations further includes: determining, by one or more processors, a corresponding interface orientation lock setting for each of a plurality of applications, the plurality of applications including the application; and in response to the application being activated as a foreground application, locking, by one or more processors, the display device to a first interface orientation specified by the corresponding interface orientation lock setting for the application.
[0185] Example 8: The method as described in any one of Examples 1 to 7, further comprising: activating, by one or more processors, a third application as a foreground application, wherein the third application is operable to output a third user interface in a second interface orientation and is not operable to output the third user interface in a first interface orientation; when the display device is locked to the first interface orientation, outputting, by one or more processors, the third user interface in the second interface orientation for display at the display device; determining, by one or more processors, a most recent interface orientation as the second interface orientation based on the third user interface being output in a second interface orientation different from the first interface orientation to which the display device is locked; after outputting the third user interface, activating, by one or more processors, a fourth application as a foreground 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 when the display device is locked to the first interface orientation, outputting, by one or more processors, a fourth user interface in the second interface orientation for display at the display device based at least in part on the most recent interface orientation being the second interface orientation.
[0186] Example 9: The method as described in any of Examples 1 to 8, further including: while the display device is locked to the first interface orientation, determining, by one or more processors, an amount of time during which one or more user interfaces are output in a second interface orientation; and unlocking, by one or more processors, the display device from the first interface orientation in response to determining that the amount of time during which one or more user interfaces are output in the second interface orientation exceeds a threshold amount of time.
[0187] Example 10: The method as described in any of Examples 1 to 9, further including: determining, by one or more processors, that the second interface orientation is a primary orientation of the display device; activating, by one or more processors, a fifth application as a 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; outputting, by one or more processors, the fifth user interface in the second interface orientation for display at the display device when the display device is locked to the first interface orientation; and unlocking, by one or more processors, the display device from the first interface orientation in response to outputting the fifth user interface in the second interface orientation and at least partially based on the second interface orientation being the primary orientation of the display device.
[0188] Example 11: The method of Example 10, wherein unlocking the display device from the first interface orientation further comprises: locking, by one or more processors, the display device to the primary orientation.
[0189] Example 12: The method as described in any of Examples 1 to 11, further comprising: activating a main screen by one or more processors when the display device is locked to a first interface orientation, wherein the main screen is operable to output the main screen interface in the first interface orientation and is operable to output the main screen interface in a second interface orientation; and in response to activating the main screen, outputting the main screen interface in the second interface orientation for display at the display device by one or more processors.
[0190] Example 13: The method of any one of Examples 1 to 12, wherein one of the following: the first interface orientation is a longitudinal orientation and the second interface orientation is a transverse orientation, or the first interface orientation is a transverse orientation and the second interface orientation is a longitudinal orientation.
[0191] Example 14: A computing device comprising: a memory storing instructions; and one or more processors executing the instructions to: activate an application that is operable to output a user interface in a second interface orientation and is not operable to output a user interface in a first interface orientation; determine a reoriented user interface in a first interface orientation for the application; and output the reoriented user interface in the first interface orientation for display at a display device.
[0192] Example 15: A computing device as described in Example 14, wherein the one or more processors are operable to perform automatic rotation of an interface to be output by the display device, and wherein the one or more processors also execute instructions to lock the display device to a first interface orientation among multiple interface orientations.
[0193] Example 16: A computing device as described in Examples 14 and 15, wherein one or more processors further execute instructions to: activate a second application that outputs media content as a foreground application, wherein the second application is operable to output the media content in a second interface orientation and is not operable to output the media content in a first interface orientation; based on the display device being locked to 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 in the first interface orientation for display at the display device.
[0194] Example 17: A computing device as described in Example 16, wherein one or more processors that execute instructions to transform media content to generate transformed media content also execute 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 a first interface orientation.
[0195] Example 18: A computing device as described in any of Examples 16 and 17, wherein the media content is a video.
[0196] Example 19: A computing device as described in any of Examples 14 to 18, wherein the one or more processors further execute instructions to: transition the computing device to a sleep state when the display device is locked to a first interface orientation; and unlock the display device from the first interface orientation in response to transitioning the computing device from the sleep state to a wake state.
[0197] Example 20: A computing device as described in any of Examples 14 to 19, wherein one or more processors that execute instructions to lock the display device to a first interface orientation among multiple interface orientations also execute instructions to: determine a corresponding interface orientation lock setting for each of a plurality of applications, the plurality of applications including the application; and in response to the application being activated as a foreground application, lock the display device to a first interface orientation specified by the corresponding interface orientation lock setting for the application.
[0198] Example 21: A computing device as described in any of Examples 14 to 20, wherein one or more processors further execute instructions to: activate a third application as a foreground application, wherein the third application is operable to output a third user interface in a second interface orientation and is not operable to output the third user interface in a first interface orientation; when the display device is locked to the first interface orientation, output the third user interface in the second interface orientation for display at the display device; based on the third user interface being output in a second interface orientation different from the first interface orientation to which the display device is locked, determine the most recent interface orientation as the second interface orientation; after outputting the third user interface, activate a fourth application as a foreground 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 when the display device is locked to the first interface orientation, based at least in part on the most recent interface orientation being the second interface orientation, output a fourth user interface in the second interface orientation for display at the display device.
[0199] Example 22: A computing device as described in any of Examples 14 to 21, wherein one or more processors further execute instructions to: while the display device is locked to the first interface orientation, determine an amount of time during which one or more user interfaces are output in a second interface orientation; and in response to determining that the amount of time during which one or more user interfaces are output in the second interface orientation exceeds a threshold amount of time, unlock the display device from the first interface orientation.
[0200] Example 23: A computing device as described in any of Examples 14 to 22, wherein one or more processors further execute instructions to: determine that the second interface orientation is a primary orientation of the display device; activate a fifth application as a 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; output the fifth user interface in the second interface orientation for display at the display device when the display device is locked to the first interface orientation; and unlock the display device from the first interface orientation in response to outputting the fifth user interface in the second interface orientation and at least partially based on the second interface orientation being the primary orientation of the display device.
[0201] Example 24: The computing device of Example 23, wherein the one or more processors that execute instructions to unlock the display device from the first interface orientation also execute instructions to: lock the display device to the primary orientation.
[0202] Example 25: A computing device as described in any of Examples 14 to 24, wherein one or more processors further execute instructions to: activate a home screen when the display device is locked to a first interface orientation, wherein the home screen is operable to output a home screen interface in the first interface orientation and is operable to output the home screen interface in a second interface orientation; and in response to activating the home screen, output the home screen interface in the second interface orientation for display at the display device.
[0203] Example 26: A computing device as described in any of Examples 14 to 25, wherein one of the following: the first interface orientation is a portrait orientation and the second interface orientation is a landscape orientation, or the first interface orientation is a landscape orientation and the second interface orientation is a portrait orientation.
[0204] Example 27: A non-transitory computer-readable storage medium comprising instructions that, when executed, cause one or more processors to: activate an application that is operable to output a user interface in a second interface orientation and is not operable to output a user interface in a first interface orientation; determine a reoriented user interface in the first interface orientation for the application; and output the reoriented user interface in the first interface orientation for display at a display device.
[0205] Example 28: The non-transitory computer-readable storage medium of Example 27, wherein the instructions, when executed, further cause the one or more processors to: lock the display device to a first interface orientation of a plurality of interface orientations.
[0206] Example 29: A non-transitory computer-readable storage medium as described in any of Examples 27 and 28, wherein the instructions, when executed, further cause one or more processors to: activate a second application that outputs media content as a foreground application, wherein the second application is operable to output the media content in a second interface orientation and is not operable to output the media content in a first interface orientation; based on the display device being locked to 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 in the first interface orientation for display at the display device.
[0207] Example 30: The non-transitory computer-readable storage medium of Example 29, wherein the instructions that, when executed, cause one or more processors to transform media content to generate transformed media content also cause the one or more processors to: perform at least one of rotating the media content or scaling the media content, thereby generating the transformed media content for display in a first interface orientation.
[0208] Example 31: The non-transitory computer-readable storage medium of any of Examples 29 and 30, wherein the media content is a video.
[0209] Example 32: A computing device as described in any of Examples 27 to 31, wherein the instructions, when executed, further cause one or more processors to: transition the computing device to a sleep state when the display device is locked to a first interface orientation; and unlock the display device from the first interface orientation in response to transitioning the computing device from the sleep state to a wake state.
[0210] Example 33: A non-transitory computer-readable storage medium as described in any of Examples 27 to 32, wherein instructions that, when executed, cause one or more processors to lock a display device to a first interface orientation among multiple interface orientations also cause the one or more processors to: a corresponding interface orientation lock setting for each of a plurality of applications, the plurality of applications including the application; and in response to the application being activated as a foreground application, lock the display device to a first interface orientation specified by the corresponding interface orientation lock setting for the application.
[0211] Example 34: A non-transitory computer-readable storage medium as described in any of Examples 27 to 33, wherein the instructions, when executed, further cause one or more processors to: activate a third application as a foreground application, wherein the third application is operable to output a third user interface in a second interface orientation and is not operable to output the third user interface in a first interface orientation; when the display device is locked to the first interface orientation, output the third user interface in the second interface orientation for display at the display device; based on the third user interface being output in a second interface orientation different from the first interface orientation to which the display device is locked, determine the most recent interface orientation as the second interface orientation; after outputting the third user interface, activate a fourth application as a foreground 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 when the display device is locked to the first interface orientation, output the fourth user interface in the second interface orientation for display at the display device based at least in part on the most recent interface orientation being the second interface orientation.
[0212] Example 35: A non-transitory computer-readable storage medium as described in any of Examples 27 to 34, wherein the instructions, when executed, further cause one or more processors to: determine, while the display device is locked to a first interface orientation, an amount of time during which one or more user interfaces are output in a second interface orientation; and unlock the display device from the first interface orientation in response to determining that the amount of time during which one or more user interfaces are output in the second interface orientation exceeds a threshold amount of time.
[0213] Example 36: A non-transitory computer-readable storage medium as described in any of Examples 27 to 35, wherein the instructions, when executed, further cause one or more processors to: determine that the second interface orientation is a primary orientation of the display device; activate a fifth application as a 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; output the fifth user interface in the second interface orientation for display at the display device when the display device is locked to the first interface orientation; and unlock the display device from the first interface orientation in response to outputting the fifth user interface in the second interface orientation and at least partially based on the second interface orientation being the primary orientation of the display device.
[0214] Example 37: The non-transitory computer-readable storage medium of Example 36, wherein the instructions that, when executed, cause the one or more processors to unlock the display device from the first interface orientation also cause the one or more processors to: lock the display device to the primary orientation.
[0215] Example 38: A non-transitory computer-readable storage medium as described in any of Examples 27 to 37, wherein the instructions, when executed, further cause one or more processors to: activate a home screen when the display device is locked to a first interface orientation, wherein the home screen is operable to output a home screen interface in the first interface orientation and is operable to output the home screen interface in a second interface orientation; and in response to activating the home screen, output the home screen interface in the second interface orientation for display at the display device.
[0216] Example 39: A non-transitory computer-readable storage medium as described in any of Examples 27 to 38, wherein one of the following: the first interface orientation is a portrait orientation and the second interface orientation is a landscape orientation, or the first interface orientation is a landscape orientation and the second interface orientation is a portrait orientation.
[0217] By way of example and not limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage devices, magnetic disk storage devices or other magnetic storage devices, flash memory or any other storage medium that can be used to store the desired program code in the form of instructions or data structures and can be accessed by a computer. Moreover, any connection is appropriately referred to as a computer-readable medium. For example, if a coaxial cable, optical fiber cable, twisted pair, digital subscriber line (DSL) or wireless technologies such as infrared, radio and microwaves are used to transmit instructions from a website, server or other remote source, then coaxial cable, optical fiber cable, twisted pair, DSL or wireless technologies such as infrared, radio and microwaves are included in the definition of the medium. However, it should be understood that computer-readable storage media and data storage media do not include connections, carrier waves, signals or other temporary media, but rather relate to non-temporary tangible storage media. Disks and optical disks as used herein include compact disks (CDs), laser disks, optical disks, digital versatile disks (DVDs), floppy disks and blue-ray disks, wherein disks typically reproduce data magnetically, and optical disks reproduce data optically with lasers. The above combination should also be included in the scope of computer-readable media.
[0218] Instructions may be executed by one or more processors such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuit systems. Therefore, as used herein, the term "processor" may refer to any of the aforementioned structures or any other structure suitable for implementing the techniques described herein. In addition, in some aspects, the functionality described herein may be provided within dedicated hardware and / or software modules. In addition, the techniques may be fully implemented in one or more circuits or logic elements.
[0219] The techniques of the present disclosure may be implemented in a variety of devices or apparatuses, including wireless handsets, integrated circuits (ICs), or a set of ICs (e.g., a chipset). Various components, modules, or units are described in the present disclosure to emphasize the functional aspects of devices configured to perform the disclosed techniques, but the various components, modules, or units are not necessarily required to be implemented by different hardware units. Instead, as described above, the various units may be combined in a hardware unit, or provided by a collection of interoperable hardware units including one or more processors as described above in combination with appropriate software and / or firmware.
[0220] Various embodiments have been described. These and other embodiments are within the scope of the following claims.
Claims
1. A method comprising: activating, by one or more processors of the computing device, an application operable to output a user interface in a second interface orientation and inoperable to output the user interface in a first interface orientation; determining, by the one or more processors, a reoriented user interface for the application in the first interface orientation; as well as The reoriented user interface is outputted by the one or more processors in the first interface orientation for display at a display device.
2. The method of claim 1, further comprising: The display device is locked to the first of a plurality of interface orientations by the one or more processors of the computing device operable to perform automatic rotation of an interface to be output by the display device.
3. The method according to any one of claims 1 and 2, further comprising: activating, by the one or more processors, 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; transforming, by the one or more processors, the media content to generate transformed media content for display in the first interface orientation; as well as The transformed media content is output, by the one or more processors, in the first interface orientation for display at the display device.
4. The method of claim 3, wherein transforming the media content to generate the transformed media content further comprises: At least one of rotating the media content or scaling the media content is performed by the one or more processors to generate the transformed media content for display in the first interface orientation.
5. The method of any one of claims 3 and 4, wherein the media content is a video.
6. The method according to any one of claims 1 to 5, further comprising: transitioning, by the one or more processors, the computing device to a sleep state when the display device is locked to the first interface orientation; as well as In response to transitioning the computing device from the sleep state to the awake state, the display device is unlocked, by the one or more processors, from the first interface orientation.
7. The method of any one of claims 2 to 6, wherein locking the display device to the first interface orientation further comprises: determining, by the one or more processors, a corresponding interface orientation lock setting for each of a plurality of applications, the plurality of applications including the application; as well as In response to the application being activated as a foreground application, the one or more processors lock the display device to the first interface orientation specified by the corresponding interface orientation lock setting of the application.
8. The method according to any one of claims 1 to 7, further comprising: activating, by the one or more processors, a third application as a foreground application, wherein the third application is operable to output a third user interface in the second interface orientation and is inoperable to output the third user interface in the first interface orientation; outputting, by the one or more processors, the third user interface in the second interface orientation for display at the display device when the display device is locked to the first interface orientation; determining, by the one or more processors, a most recent interface orientation as the second interface orientation based on the third user interface being output in the second interface orientation different from the first interface orientation to which the display device is locked; After outputting the third user interface, activating, by the one or more processors, a fourth application as the foreground application, wherein the fourth application is operable to output a fourth user interface in the first interface orientation and is further operable to output the fourth user interface in the second interface orientation; as well as The fourth user interface is output, by the one or more processors, for display at the display device in the second interface orientation while the display device is locked to the first interface orientation and based at least in part on the most recent interface orientation being the second interface orientation.
9. The method according to any one of claims 1 to 8, further comprising: determining, by the one or more processors, an amount of time during which one or more user interfaces are output in the second interface orientation while the display device is locked in the first interface orientation; as well as In response to determining that the amount of time during which the one or more user interfaces are output in the second interface orientation exceeds a threshold amount of time, unlocking, by the one or more processors, the display device from the first interface orientation.
10. The method according to any one of claims 1 to 9, further comprising: determining, by the one or more processors, that the second interface orientation is a primary orientation of the display device; activating, by the one or more processors, a fifth application as a foreground application, wherein the fifth application is operable to output a fifth user interface in the second interface orientation and is inoperable to output the fifth user interface in the first interface orientation; outputting, by the one or more processors, the fifth user interface in the second interface orientation for display at the display device when the display device is locked to the first interface orientation; as well as 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 of 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: The display device is locked, by the one or more processors, to the primary orientation.
12. The method according to any one of claims 1 to 11, further comprising: activating, by the one or more processors, a home screen when the display device is locked to the first interface orientation, wherein the home screen is operable to output a home screen interface in the first interface orientation and is operable to output the home screen interface in the second interface orientation; as well as In response to activating the home screen, the home screen interface is output by the one or more processors in the second interface orientation for display at the display device.
13. The method of any one of claims 1 to 12, wherein one of the following: the first interface orientation is a longitudinal orientation and the second interface orientation is a transverse orientation, or the first interface orientation is the transverse orientation and the second interface orientation is the longitudinal orientation.
14. A computing device comprising: a memory storing instructions; as well as One or more processors, the one or more processors executing the instructions to perform any of the methods of claims 1 to 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 to 13.
