Displaying applications on a fixed orientation display

A method and system displaying the output from an application on a fixed orientation display is disclosed. The method is performed at an application stored on an electronic device. The application sends a request to display output from the application in a second orientation with second dimensions. The application receives from the electronic device a notification that a display associated with the electronic device is a fixed orientation display with a first orientation and first dimensions and a notification that the requested second orientation and second dimensions are different from the first orientation. The application then determines optimal dimensions to display the output from the application based on the first orientation and first dimensions associated with the fixed display. The application then scales output data to match the determined optimal dimensions. The application then sends the scaled output data to the device for display on the fixed display.

TECHNICAL FIELD

The disclosed implementations relate to the field of applications for electronic devices generally and in particular to displaying applications on electronic devices with fixed orientation displays.

BACKGROUND

Electronic devices, such as personal computers or smart phones, are capable of executing applications. User experience with electronic devices is improved by the use of applications. There are many applications available for electronic devices, including but not limited to calendar applications, voting applications, productivity applications, gaming applications, video display applications, and package tracking applications. Some applications are configured for use on a specific type of electronic device and can only be used on the specific device for which it is configured. Other applications are configured to be used on a wide variety of electronic devices. When configuring an application to be used on an electronic device, it is useful to know the orientation and size of the display associated with the electronic device to ensure that the application is properly displayed to a user of the electronic device.

Some electronic devices, such as smart phones or tablets, have displays that can be easily rotated and used in either a landscape or a portrait orientation. Other electronic devices, such as televisions or personal computers, have displays that are fixed in either landscape orientation or portrait orientation and are not easily rotated to a different orientation. Electronic devices with displays that can be easily rotated are able to correctly display applications configured to be displayed in either a landscape orientation or a portrait orientation because of the ease with which the orientation of the display can be changed.

SUMMARY

In accordance with some implementations, a method displaying the output from an application on a fixed orientation display is disclosed. The method is performed at an application stored on an electronic device having one or more processors, memory storing one or more programs for execution by the one or more processors. The application sends, to the electronic device on which the application is stored, a request to display output from the application in a second orientation with second dimensions. The application receives from the electronic device a notification that a display associated with the electronic device is a fixed orientation display with a first orientation and first dimensions and a notification that the requested second orientation and second dimensions are different from the first orientation. The application then determines optimal dimensions to display the output from the application based on the first orientation and first dimensions associated with the fixed orientation display. The application then scales output data to match the determined optimal dimensions. The application then sends the scaled output data to the electronic device for display on the fixed screen display.

In accordance with some implementations, a method for displaying an application on a fixed orientation display is disclosed. The method is performed on an electronic device, the electronic device having one or more processors, memory storing one or more programs for execution by the one or more processors, and a fixed orientation display with a first orientation. The electronic device receives, from an application running on the electronic device, a request to display the output from the application in a second orientation with second dimensions. The electronic device determines that the display on which output data received from the application is to be displayed is a fixed orientation display with a first orientation that is different from the requested second orientation. The electronic device then receives output from the application for display. The electronic device determines first dimensions of a first display space available to display the output from the application. The electronic device then automatically scales the output received from the application to fit within the first dimensions such that the data outputted by the application is displayed in smaller dimensions than what was originally requested by the application. The electronic device displays the scaled output on the fixed orientation display on the fixed orientation display.

In accordance with some implementations, an electronic device for displaying an application on a fixed orientation display is disclosed. The electronic device has one or more processors, a fixed orientation display with a first orientation, and memory storing one or more applications to be executed by the one or more processors, and a display with a first orientation. An application in the one or more programs includes instructions for sending, to the electronic device on which the application is stored, a request to display output from the application in a second orientation with second dimensions. The application further includes instructions for receiving from the electronic device a notification that a display associated with the electronic device is a fixed orientation display with a first orientation and first dimensions and a notification that the requested second orientation and second dimensions are different from the first orientation. The application further includes instructions for determining optimal dimensions to display the output from the application based on the first orientation and first dimensions associated with the fixed orientation display. The application further includes instructions for scaling output data to match the determined optimal dimensions. The application further includes instructions for sending the scaled output data to the electronic device for display on the fixed screen display.

In accordance with some implementations, an electronic device for displaying an application on a fixed orientation display is disclosed. The electronic device has one or more processors, a fixed orientation display with a first orientation, and memory storing one or more programs to be executed by the one or more processors. The one or more programs include instructions for receiving, from an application running on the electronic device, a request to display the output from the application in a second orientation with second dimensions. The one or more programs include instructions for determining that the display on which output data received from the application is to be displayed is a fixed orientation display with a first orientation that is different from the requested second orientation. The electronic device further includes instructions for receiving output from the application for display. The electronic device further includes instructions for determining first dimensions of a first display space available to display the output from the application. The electronic device further includes instructions for automatically scaling the output received from the application to fit within the first dimensions such that the data outputted by the application is displayed in smaller dimensions than what was originally requested by the application. The electronic device displays the scaled output received from the application on the fixed orientation display.

In accordance with some implementations, a non-transitory, computer readable storage medium storing one or more applications configured for execution by an electronic device is disclosed. An application in the one or more programs includes instructions for sending, to the electronic device on which the application is stored, a request to display output from the application in a second orientation with second dimensions. The application further includes instructions for receiving from the electronic device a notification that a display associated with the electronic device is a fixed orientation display with a first orientation and first dimensions and a notification that the requested second orientation and second dimensions are different from the first orientation. The application further includes instructions for determining optimal dimensions to display the output from the application based on the first orientation and first dimensions associated with the fixed orientation display. The application further includes instructions for scaling output data to match the determined optimal dimensions. The application further includes instructions for sending the scaled output data to the electronic device for display on the fixed screen display.

In accordance with some implementations, a non-transitory computer readable storage medium storing one or more programs configured for execution by an electronic device is disclosed. The one or more programs include instructions for receiving, from an application running on the electronic device, a request to display the output from the application in a second orientation with second dimensions. The one or more programs include instructions for determining that the display on which output data received from the application is to be displayed is a fixed orientation display with a first orientation that is different from the requested second orientation. The one or more programs further include instructions for receiving output from the application for display. The one or more programs further include instructions for determining first dimensions of a first display space available to display the output from the application. The one or more programs further include instructions for automatically scaling the output received from the application to fit within the first dimensions such that the data outputted by the application is displayed in smaller dimensions than what was originally requested by the application. The one or more programs further include instructions for displaying the scaled output received from the application on the fixed orientation display.

DESCRIPTION OF IMPLEMENTATIONS

In some implementations, an electronic device with a display having a fixed orientation and aspect ratio (such as a large, flat panel television with a landscape orientation display and a 16:9 aspect ratio) is configured to execute an operating system (such as the Android® operating system) that can also be executed on other types of devices (e.g., smart phones, tablets, laptop computers, media players, and set top boxes). An advantage of this commonality between operating systems is that the electronic device is able to execute many applications originally configured for use on another type of electronic device. This dramatically increases the scope and number of applications that are available on the electronic device. However, different types of devices often have different display characteristics, which means that the output formats of applications developed for the different device types might not be compatible with the fixed display characteristics (including orientation and aspect ratio) of the electronic device.

In some implementations, the electronic device includes a display module that interacts with applications being executed on the device and/or the display of the electronic device to configure the output of an application for satisfactory display on the electronic device in view of the first device's display characteristics. In some implementations, the display module receives requested dimensions and a requested orientation from an application running on the electronic device. In some implementations, the requested dimensions and the requested orientation match the dimensions and orientation of the fixed orientation display associated with the electronic device. If this is the case, the data outputted by the application for display can be displayed on the fixed orientation display without modification.

In some implementations the requested orientation and dimensions are different from the orientation and dimensions of the fixed orientation display. In this case either the application or the device itself must modify the outputted data to be displayed appropriately on the fixed orientation display associated with the electronic device. The action taken by the electronic device to modify the outputted data will fall into one of four broad categories and will depend on the capabilities of the application. In a first category, the application itself is able to reconfigure the data it outputs for display into the proper dimensions and orientation. In a second category, the application is able to change the dimensions, size, or aspect ratio of the output data but due to limitations of the application (such as the type of content displayed, for example) the application is not able to meet the specific orientation or dimensions of the fixed orientation display. In a third category, the application is able to scale the size (dimensions) of the output, but not able to change the aspect ratio of the output data. In this case, the data is scaled to a smaller version with the aspect ratio intact. Finally, in a fourth category, the application is not able to scale the data it outputs for display at all, and instead the display module of the electronic device automatically scales the output for display on the fixed orientation display without any scaling by the application. These four scenarios will be explained in more detail below.

In some implementations, the requested dimensions will differ from the dimensions of the display and the application is configured to display its output in different orientations (such as an application developed for a smart phone that can display application information in either portrait or landscape modes—typically based on a rotation orientation of the smart phone) and in different dimensions. This situation will fall into the above noted first category. For this type of application, in some implementations the display module interacts with the application to set an appropriate display orientation and aspect ratio for the data outputted by the application to enable at least satisfactory display of the application's output on the electronic device.

For example, presume that the application to be executed on the electronic device is a calendar application designed to display calendar views in either portrait or landscape orientation and in most dimensions. Such an application, in response to receiving notification from the electronic device of the orientation and dimensions of the display, will scale the dimensions and orientation of the information to be displayed such that it matches the appropriate orientation and at the correct dimensions. The data output by the application is then displayed on the fixed orientation device.

In some implementations, the requested dimensions differ from the dimensions of the display and the application is configured with the capability to change the size and aspect ratio but not to alter the orientation of the display data. This situation will fall into the above noted second category. When this is the case, the application will determine the output dimensions of the information such that all application information is displayed, but on only a portion of the display. For example, if an application is configured to display information in landscape orientation and with a 16:9 aspect ratio, and the fixed orientation display has a portrait orientation with a 9:16 aspect ratio, maintaining the 16:9 aspect ratio of the application display window will result in about 30% of the display being used to display the output of the application (due to the fact that information from the application will be displayed in a letter box format on the fixed display in order for the application aspect ratio to be retained when displayed).

In some implementations, in order to use more screen real estate of the display, the application will modify the aspect ratio of the displayed information to a 4:3 aspect ratio instead of the original 16:9 aspect ratio. This situation will fall into the above noted third category. This will have the effect of using more than 40% of the screen real estate of the display for presentation of the application information. Thus, in accordance with some implementations, the electronic device determines dimensions with an aspect ratio which differs from the aspect ratio associated with the requested orientation and dimensions so as to use as much of the fixed orientation display as possible. For an illustration of how this scaling may be accomplished seeFIG. 3Band the accompanying discussion below. The electronic device then receives the scaled output from the application. The received output is then displayed on the fixed orientation display

In some implementations, the requested dimensions differ from the dimensions of the display and the application is configured with the capability to change the size (scale) of the display data, but not the aspect ratio or orientation of the output display data. When this is the case, the display module determines dimensions describing the maximum screen space available to the application, given the aspect ratio of the output, and sends the determined dimensions to the application. The application then scales the display data down to the dimensions received from the display module. The display data will have smaller dimensions than the originally requested dimension but the same aspect ratio. For an illustration of how this scaling may be accomplished seeFIG. 3Aand the accompanying discussion below. The scaled output data is then displayed on the fixed orientation display.

In accordance with some implementations, the requested dimensions differ from the dimensions of the display and the application is not configured with the capability to scale the display data it outputs to an orientation and dimensions different from the orientation and dimensions requested by the application. This situation will fall into the above noted forth category. For example, a digital video viewing application or video game application may be designed to run only in a specific orientation and with specific dimensions. Thus, in some implementations, the output data the electronic device receives from the application is in the requested second orientation and second dimensions and has not been scaled to fit within the first dimensions of the fixed orientation display.

When this is the case, the display module of the electronic device is configured to automatically scale the output data received from the application to fit within the dimensions of the display. The scaled output data will be displayed in smaller dimensions than what was originally requested by the application. For example, if a game application that was configured to be displayed on a smart phone in portrait orientation was run on a personal computer with a display that was fixed in the landscape orientation, the game application itself would not scale the visual data output it was sending to the electronic device. Instead, the electronic device would determine dimensions available to display the application in the requested orientation. In some implementations, the dimensions are determined so as to use as large a portion of the display as possible, while still displaying the application in the requested second orientation. For an illustration of how this scaling is to be done seeFIG. 3Aand the accompanying discussion below. Once the new dimensions have been determined, the output data from the application is then automatically scaled to the determined dimensions and displayed on the fixed orientation display.

In some implementations, the dimensions needed are determined only once, when the application first requests a display orientation and dimensions. The determined dimensions can then be used to automatically scale the output from the application until the application requests new dimensions or ceases outputting data for display. The electronic device then displays the scaled output on the fixed orientation display.

FIG. 1is a block diagram illustrating an electronic device with a fixed orientation display, in accordance with some implementations. The electronic device100includes one or more applications102, a display module114, which includes a window manager104, a compositor/display manager106, and a display buffer108, a display110, and optionally, a communication network interface112. The communication network interface112may connect to any of a variety of networks, including local area networks (LAN), wide area networks (WAN), wireless networks, wired networks, the Internet, or a combination of such networks.

In accordance with some implementations, the one or more applications102can be any type of application capable of running on an electronic device. For example, the one or more applications102can include game applications, video display applications, word processing application, productivity applications, email applications, internet browsing applications, and many others. In some implementations, the one or more applications102are specifically configured to be run on a specific electronic device with a particular orientation and particular dimensions.

In some implementations, the one or more applications102were designed to be run on a wide variety of electronic devices. In some implementations, the one or more applications102were written for a multi-device platform. For example, the Android® operating system is used on a wide variety of electronic devices, including smart phones and tablets, and therefore applications configured for the Android® operating system will available to be used on the same wide variety of devices. In some cases a platform is extended to a new type of electronic device. As such, applications that were configured to be shown on a specific display orientation, dimensions, or size, may later need to run on a display for which is was not originally configured.

In some implementations the display module114receives information from the one or more applications102and passes it onto the windows manager104. Such information includes, but is not limited to, requests from the one or more applications102to display outputted data in a requested orientation with requested dimensions116and the output display data118generated by the one or more applications102. In some implementations, the windows manager104determines whether the electronic device has an associated display110which is capable of displaying the output from the one or more applications102in the requested orientation and dimensions116.

In accordance with a determination that the electronic device does not have an associated display110which is able to display in the requested orientation and dimensions116, the windows manager104then determines whether the application102is able to scale the outputted data to the dimensions and orientation of the fixed orientation display. In some implementations, this determination is made based on metadata concerning the application which is stored on the electronic device, retrieved from a remote database over the communication network interface112, or from the application102itself. In accordance with a determination that the application102is able to scale the outputted data to the dimensions and orientation of the fixed orientation display, the windows104manager sends the application102, the orientation and dimensions118of the fixed orientation display110. The application102then scales the outputted data120to the received orientation and dimensions before outputting the display data120to the windows manager104.

In some implementations, in accordance with a determination that the application102does not have the ability to scale has a fixed orientation display110which is in a different orientation from the requested orientation116, the windows manager104determines the largest area possible to display the outputted display data120from the application104. The dimensions determined by the windows manager104and display data outputted120by the application102, are transmitted to the compositor/display manager106.

In accordance with some implementations, the compositor/display manager106composes the final version of the data to be displayed on the fixed orientation display110. The compositor/display manager106receives display information from the window manager104from one or more applications102and arranges all the received data into a final display arrangement. In some implementations, the information received from the window manager104is ready to be outputted for display on the fixed orientation display110without modification. In some implementations, the display manager106receives determined dimensions along with display data outputted by the one or more applications102. The compositor/display manager106uses the determined dimensions to automatically scale the received information from its original dimensions to the determined dimensions for display.

In some implementations, the compositor/display manager106then centers the newly scaled information on the fixed orientation display. In some implementations, the compositor/display manager106fills the parts of the display not displaying the display data outputted by the application102with a standard color, such as black. This results in a “letter-boxing” or “pillar-boxing” effect with the uniform color displayed in all areas of the display110not currently displaying the scaled output display information from the application102. In some implementations, the compositor/display manager106receives output data120from more than one application102and arranges the multiple applications on the display110in accordance with default rules or the preferences of a user of the electronic device100. Once the compositor/display manager106has composed all data received from the window manager104the resulting display data is sent to the display buffer108.

In accordance with some implementations, the display buffer108includes output data for each pixel of the display110, such that display data received from the compositor/display manager106is stored in the display buffer108for each pixel of the display110. In some implementations, the fixed orientation display110periodically reads the values stored in the display buffer108and updates the display110based on the stored values. The rate at which the display110reads the values stored in the display buffer108determines the refresh rate of the display110.

FIG. 2is a block diagram illustrating an electronic device, in accordance with some implementations. The electronic device100typically includes one or more processing units (CPU's)202, one or more network interfaces112, memory212, and one or more communication buses214for interconnecting these components. The electronic device includes a user interface204. The user interface204includes a display device110and optionally includes an input means such as a keyboard, mouse, a touch sensitive display, or other input buttons208. Optionally, the display device110includes an audio device or other information delivery device. Furthermore, some electronic devices use a microphone and voice recognition to supplement or replace the keyboard.

Memory212includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices; and may include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. Memory212may optionally include one or more storage devices remotely located from the CPU(s)202. Memory212, or alternately the non-volatile memory device(s) within memory212, includes a non-transitory computer readable storage medium. In some implementations, memory212or the computer readable storage medium of memory212stores the following programs, modules and data structures, or a subset thereof:an operating system216that includes procedures for handling various basic system services and for performing hardware dependent tasks;a network communication module218that is used for connecting the client system102to other computers via the one or more communication network interfaces112(wired or wireless) and one or more communication networks, such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on;an application module220that includes one or more applications (FIG. 1, 102) configured to run on the electronic device, including a variety of possible applications such as: browser applications, productivity applications, game applications, word processing applications, calendar applications, video display applications etc.;a display module222for enabling the information outputted by the one or more applications (FIG. 1, 102) to be displayed on the fixed orientation display (FIG. 1, 110), including but not limited to:a window manager module104for receiving requests from the one or more applications (FIG. 1, 102), determining display space dimensions available to the one or more applications (FIG. 1, 102), sending the determined display space dimensions to the one or more applications (FIG. 1, 102), and sending the display data outputted by the one or more applications (FIG. 1, 102) to the compositor/display manager106; anda compositor/display manager106for receiving display data from the window manager104, arranging the objects which need to be displayed on the display into a single composed display, and automatically scaling output from one or more applications (FIG. 102) to a size that can be displayed on the fixed orientation display (FIG. 1, 110), centering output from one or more applications (FIG. 102) in the center of the fixed orientation display; and filling the parts of the fixed orientation display (FIG. 1, 110) not displaying the output of the one or more applications (FIG. 1, 102) with black; anda data module232for storing data related to the electronic device100or one or more applications (FIG. 1, 102), including but not limited to:display dimensions data224including data concerning the dimensions of the fixed orientation display (FIG. 1, 110) associated with the electronic device100, including at least in some cases the physical size of the display, the height and width of the display in pixels (1920×1080 pixels, for example), and the density of the pixels on the display (measured in dots per inch (DPI), pixels per inch (PPI), or some other pixel density measuring units);display orientation data226including the orientation of the fixed orientation display (FIG. 1, 110), which, in some implementations, can be determined based on the display dimensions data;requested orientation data228including data representing the orientation requested by the one or more applications (FIG. 1, 102) to display the output from the one or more applications (FIG. 1, 102);application data230including data associated with the one or more applications (FIG. 1, 102) stored in the application module220, the stored data including but not limited to: the type of application, whether the application is able to scale the output produced to be displayed in an orientation and dimensions different from the requested orientation and dimensions, and any data needed by the one or more applications (FIG. 1, 102) to run on the electronic device100; anddisplay buffer108includes data representing the values to be output to the fixed orientation display (FIG. 1, 110) on a per pixel basis;outputted raw data234includes data received by the windows manager104from the one or more applications102that has not been scaled to fit determined dimensions or a determined orientation for display in the fixed orientation display110; andoutputted scaled data includes data received by the windows manager104from the one or more applications (FIG. 1, 102) or the produced by the compositor/display manager (FIG. 1, 106) which has been scaled to fit determined dimensions and orientation by either the one or more applications (FIG. 1, 102) themselves or scaled automatically by the compositor/display manager (FIG. 1, 106).

FIG. 3Adepicts an application as displayed on a fixed orientation display in accordance with some implementations. In this example, a fixed orientation display302displays the output data from an application (FIG. 1, 102) in an application display area304. The fixed orientation display302has a height dimension306and a width dimension308. The application display area304has a height dimension306and an application width dimension310. The electronic device (FIG. 1, 100) receives requested dimensions314from the application (FIG. 1, 102). The requested dimensions314have a requested height dimension316and a requested width dimension318. However, because the orientation of the requested dimensions314(as evidenced by the requested height dimension316and the requested width dimension318) is different from the orientation of the fixed orientation display302, the output from the application (FIG. 1, 102) must be scaled to be displayed on the fixed orientation display302. For example, if the requested dimensions are 1920 pixels for the requested height dimension316and 1080 pixels for the requested width dimension318and the dimensions of the fixed orientation are a height dimension306of 1080 and a width dimension of 1920, the fixed orientation would be unable to display the output data from the application (FIG. 1, 102) as requested. The outputted display data is scaled to be displayed on the fixed orientation display302by either the application (FIG. 1, 102) itself or automatically by the compositor/display manager (FIG. 1, 106).

In some implementations the output is scaled without altering the aspect ratio associated with the outputted data. In the current example then, the ratio of the requested dimensions is: height dimension316(1920) to the width dimension318(1080), which is more commonly denoted as 9:16. To maintain the same aspect ratio, new height and width dimensions must be determined. Since the height dimension306of the fixed orientation display302is the limiting factor, the new scaled height dimension of the output data from the application (FIG. 1, 102) is set to its maximum value (1080 pixels), which is the same as the height dimension306of the fixed orientation display302. The corresponding width dimension308would be 607.5 pixels (rounded up or down). Thus, the application output data is displayed in the application display area with a resolution of 1080×607.5. The parts of the fixed orientation display302which are outside of the application display area are called excess screen space312and are blacked out, creating a “pillar box” effect.

FIG. 3Bdepicts a user interface on a fixed orientation display in accordance with some implementations. In this example, a fixed orientation display322displays the display output from an application (FIG. 1, 102) in an application display area324. The fixed orientation display322has a height dimension326and a width dimension328. The application display area324has an application height dimension340and a width dimension328. The application (FIG. 1, 102) sent requested dimensions334to the electronic device (FIG. 1.100). The requested dimensions334have a requested height dimension336and a requested width dimension338. However, because the orientation of the requested dimensions334(as evidenced by the requested height dimension336and the requested width dimension338) is different from the orientation of the fixed orientation display322, the output from the application (FIG. 1, 102) must be scaled to be displayed on the fixed orientation display322. For example, if the requested dimensions are 1080 pixels for the requested height dimension316and 1920 pixels for the requested width dimension318and the dimensions of the fixed orientation are a height dimension326of 1920 pixels and a width dimension328of 1080 pixels, the fixed orientation would be unable to display the output data from the application (FIG. 1, 102) as requested. Instead, the outputted display data must be scaled to be displayed on the fixed orientation display322by either the application (FIG. 1, 102) itself or automatically by the compositor (FIG. 1, 106)

In some implementations, the output is scaled with a different aspect ratio than the aspect ratio associated with the requested dimensions so as to use a larger percentage of the fixed orientation display than would be possible if the aspect ratio were maintained. For example if the requested dimensions334were 1920×1080 (with a width dimension338of 1920 and a height dimension336of 1080) and a fixed orientation display with dimensions 1080×920 (with a width dimension328of 1080 and a height dimension306of 1920) the resulting scaled image would be 1080×607.5. This scaled version would only occupy about 30 percent of the total available display space. However, if the aspect ratio was changed to 4:3, the resulting dimensions of the application display area324would be 1080×810, which uses over 40 percent of available display space. Thus, in accordance with some implementations, the windows manager (FIG. 1, 104) may determine display dimensions for the application output which have a different aspect ratio than the requested dimensions334in order to increase the percentage of the display (FIG. 1, 110) which is used to display the application (FIG. 1, 102) output.

FIG. 4is a flow diagram illustrating the process of displaying the output of an application (FIG. 1, 102) on a fixed orientation display, in accordance with some implementations. Each of the operations shown inFIG. 4may correspond to instructions stored in a computer memory or computer readable storage medium. Optional operations are indicated by dashed lines (e.g., boxes with dashed-line borders). In some implementations, the method described inFIG. 4is performed by the electronic device (FIG. 1, 100).

In accordance with some implementations, an application (FIG. 1, 102) sends, to the electronic device (FIG. 1, 100) on which the application is stored, a request to display output from the application in a second orientation with second dimensions (402). In some implementations, the application (FIG. 1, 102) receives from the electronic device (FIG. 1, 100) a notification that a display (FIG. 1, 110) associated with the electronic device (FIG. 1, 100) is a fixed orientation display (FIG. 1, 110) with a first orientation and first dimensions and a notification that the requested second orientation and second dimensions are different from the first orientations (404). For example if the requested dimensions are 1920×1080, the application (FIG. 1, 102) receives a notification that the requested orientation is landscape orientation.

In accordance with some implementations, the application (FIG. 1, 102) determines (FIG. 1, 102) optimal dimensions to display the output from the application based on the first orientation and first dimensions associated with the fixed orientation display (406). For example, if the requested second dimensions are 1920×1080 and the second orientation is determined to be landscape orientation, and the first orientation has a portrait orientation, the application (FIG. 1, 102) determines, based on the first and second dimensions, optimal dimensions for displaying the application output on the fixed orientation display (FIG. 1, 110). In accordance with some implementations, the application (FIG. 1, 102) scales output data to match the determined optimal dimensions (408).

In accordance with some implementations, the application (FIG. 1, 102) then sends the scaled output data to the electronic device for display on the fixed orientation display (FIG. 1, 110) (410).

In accordance with some implementations, sending the scaled output includes sending instructions for displaying the output of the application on the fixed orientation display (FIG. 1, 110) includes centering the displayed output of the application at the center of the fixed orientation display (412). In accordance with some implementations, sending the scaled output includes sending instructions for displaying the output of the application on the fixed orientation display (FIG. 1, 110) includes blacking out the regions of the fixed orientation display (FIG. 1, 110) not displaying the output of the application (414).

In some implementations, the output of the application (FIG. 1, 102) is scaled to an aspect ratio which is different from the aspect ratio of the requested dimensions, but does not necessarily maximize the screen usage. For example, the application may change to an aspect ratio which is well known or commonly used for a specific type of application. By displaying an application in a familiar aspect ratio, user experience can be improved even though the application is not displayed in the most preferred orientation and aspect ratio. This is especially true if the fixed orientation display (FIG. 1, 110) has a not standard orientation. For example, if the electronic device has a nearly square display, it may be preferable to display the output from an application (FIG. 1, 102) with an aspect-ratio like a portrait phone. In some implementation a border would be added to further create the look and feel of a standard display ratio.

FIG. 5is a flow diagram illustrating the process of displaying an application's (FIG. 1, 102) output on a fixed orientation display, in accordance with some implementations. Each of the operations shown inFIG. 5may correspond to instructions stored in a computer memory or computer readable storage medium. Optional operations are indicated by dashed lines (e.g., boxes with dashed-line borders). In some implementations, the method described inFIG. 5is performed by the electronic device (FIG. 1, 100).

In accordance with some implementations, the electronic device (FIG. 1, 100) receives, from an application (FIG. 1, 102) running on the electronic device (FIG. 1, 100), a request to display output from the application (FIG. 1, 102) in a second orientation with second dimensions (502). The electronic device (FIG. 1, 100) determines that the display on which output data received from the application is to be displayed is fixed orientation display with a first orientation that is different from the requested second orientation (516). The electronic device (FIG. 1, 100) receives output from the application (FIG. 1, 102) for display (504). The electronic device determines first dimensions of a first display space available to display the output from the application (506). This determination is made by accessing display dimensions data (FIG. 2, 224) to get the first dimensions which correspond to the dimensions of the fixed orientation display (FIG. 1, 110) and comparing the first dimensions against the requested second dimensions.

In accordance with some implementations, the determined first dimensions have the same aspect ratio as the requested second dimensions received from the application (FIG. 1, 102). In accordance with other implementations, the determined first dimensions have a different aspect ratio than the requested second dimensions received from the application (FIG. 1, 102), wherein the determined first dimensions are determined to increase the percentage of the fixed orientation display (FIG. 1, 110) which is used to display the output received from the application (FIG. 1, 102).

In accordance with some implementations, the electronic device (FIG. 1, 100) automatically scales the output received from the application (FIG. 1, 102) to fit within the first dimensions such that the data outputted by the application is displayed in a smaller display space than what was originally requested by the application (508).

The electronic device (FIG. 1, 100) displays the scaled output on the fixed orientation display (FIG. 1.110) (510). In accordance with some implementations, displaying the output of the application (FIG. 1, 102) on the fixed orientation display (FIG. 1, 110) includes centering the displayed output of the application (FIG. 1, 102) at the center of the fixed orientation display (512). In accordance with some implementations, displaying the output of the application (FIG. 1, 102) on the fixed orientation display (FIG. 1, 110) includes blacking out the regions of the fixed orientation display not displaying the output of the application (514).