Display of an online catalog for concurrent downloading of files

Example embodiments relate to provision of an online catalog of files. In example embodiments, a computing device may display an online catalog that identifies files available for download. The computing device may also output a corresponding user interface element for each file and set each user interface element to an initial state. Upon selection of a first file for download, the computing device may modify the user interface element for that file to a downloading state to indicate a status of the download while continuing to display the online catalog. Subsequently, upon selection of a second file for download, the computing device may modify the user interface element for the second file to the downloading state, such that the computing device may concurrently download multiple files.

BACKGROUND

As the availability of the Internet to various devices has increased, the ease of downloading content has also increased. Mobile phones, tablets, electronic readers, and other devices often provide access to an online catalog of files. Such online catalogs typically allow a user to purchase or otherwise obtain music, videos, electronic books, applications, and a number of other types of electronic files from any Internet-accessible location.

DETAILED DESCRIPTION

As detailed above, many computing devices now provide access to an online catalog that enables a user to purchase and download media, applications, and other files. In some existing file catalogs, the user is required to go to a separate screen to complete each file download. In other existing catalogs, a user selection of an application for installation minimizes the catalog and takes the user to the home screen to initiate the installation of the application. These implementations are often distracting to the user, reduce the ability of a user to initiate and monitor multiple downloads, and may lead to a decrease in total sales attributable to the owner or operator of the catalog.

Example embodiments disclosed herein address these issues by providing an online catalog that enables a user to concurrently manage the purchases and downloads for multiple files from within a single user interface. For example, in some embodiments, a computing device may display an online catalog that identifies files available for download. The computing device may also output a corresponding UI element for each file and set each UI element to an initial state. Upon selection of a first file for download, the computing device may modify the UI element for that file to a downloading state to indicate a status of the download while continuing to display the online catalog. Subsequently, upon selection of a second file for download, the computing device may modify the UI element for the second file to the downloading state, such that the computing device may concurrently download multiple files.

In some embodiments, the UI element for each file available for download is a multi-state object that modifies its appearance depending on the status of a download. For example, in an initial state, the UI element may display the purchase price of the corresponding application. Upon receipt of a user selection of an element in the initial state, the UI element may then enter the downloading state, in which the element indicates the status of the download and, in some embodiments, also enables the user to pause the download. When the file is an application, the UI element may then enter the installing state, which may indicate the installation progress of the application. Finally, the interface element may enter the launch state, such that selection of the element opens the file using the associated application or, when the file is an application, launches the application.

In this manner, example embodiments disclosed herein provide advantages to both the user and the party that operates the online catalog. In particular, the catalog enables a user to concurrently download multiple files, while remaining within a single online catalog interface. In addition, the use of a multi-state interface element for each file enables a user to concurrently control and monitor the entire process for purchasing, downloading, installing, launching, and updating multiple files or applications using a single UI element for each file. Furthermore, because the catalog enables a user to download multiple files without changing the interface context or otherwise leaving the catalog, users may purchase more files, thereby increasing revenue to the party that operates the online catalog.

Referring now to the drawings,FIG. 1is a block diagram of an example computing device100for concurrently downloading multiple files using an online catalog including a multi-state UI element for each available file. Computing device100may be, for example, a notebook computer, a desktop computer, an all-in-one system, a tablet computing device, a mobile phone, an electronic book reader, or any other computing device suitable for display of a user interface on an available display device. In the embodiment ofFIG. 1, computing device100includes a processor110and a machine-readable storage medium120.

Processor110may be one or more central processing units (CPUs), semiconductor-based microprocessors, and/or other hardware devices suitable for retrieval and execution of instructions stored in machine-readable storage medium120. Processor110may fetch, decode, and execute instructions121,123,125,127,129to display an online catalog of files, display a multi-state UI element for each available file, and update the state of each UI element based on user interactions. As an alternative or in addition to retrieving and executing instructions, processor110may include one or more electronic circuits that include electronic components for performing the functionality of one or more of instructions121,123,125,127,129.

Machine-readable storage medium120may be any electronic, magnetic, optical, or other non-transitory physical storage device that contains or stores executable instructions. Thus, machine-readable storage medium120may be, for example, Random Access Memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, an optical disc, and the like. As described in detail below, machine-readable storage medium120may be encoded with a series of executable instructions121,123,125,127,129for outputting an online catalog of files and a corresponding set of multi-state UI elements.

Online catalog displaying instructions121may display an online catalog that identifies a plurality of files available for download to the computing device. Displaying instructions121may initially launch a catalog application on computing device100or launch a web browser and connect to the online catalog at a predetermined Uniform Resource Locator (URL). In response, displaying instructions121may then receive the online catalog from a remote server via the Internet, a corporate intranet, or any other network. The online catalog may be any user interface including a listing of files available for download, which may include any files that may be opened or executed on computing device100, such as music files, video, electronic books, applications, and the like. As used herein, the term “file” in the singular may also refer to a group of files that are downloaded together (e.g., a set of application files to be installed, a music album including multiple songs, etc.). In some implementations, the catalog may enable a user to navigate between multiple screens or pages to view categories or other groupings of files available for download.

Displaying instructions121may also output, for each file, a corresponding UI element for controlling a process for downloading the file to a storage device of computing device100. For example, displaying instructions121may display a description of each file available for download (e.g., a file name, application name, description, author or artist, rating, file size, etc.) and display a UI element proximate to the description for each file.

Each UI element may be any displayed object with which the user can interact to initiate and manage the download process. For example, the UI element may be a button of a square, rectangular, circular, or other shape that may be selected via a mouse click, touchscreen tap, or other input provided by the user. In some implementations, the UI element may be a single object that may be modified to one of a plurality of possible states depending on the status of the download for the corresponding file. In particular, as described below, instructions125,127,129may concurrently manage a multi-state UI element for each file by setting each element to an initial state, a download state, and a launch state depending on the state of the download of the corresponding file. In additional implementations detailed below with respect toFIG. 2, the multi-state UI element may also include an installing state and an update state.

UI element selection receiving instructions123may manage the process for receiving and responding to user input. For example, when the user provides a mouse click, touch tap, key input, or other input instruction indicating a selection of a particular UI element, receiving instructions123may initiate any changes of the state of the UI element, as described in detail below.

Initial state instructions125may set the UI element to an initial state for each file that has not yet been downloaded. For example, initial state instructions125may set a label associated with each UI element to a prompt that indicates the file is available for download (e.g., the text “Download”) or display an appropriate symbol (e.g., a downward pointing arrow). In addition or as an alternative, initial state instructions125may set the label associated with each UI element to a cost for purchasing the corresponding file (e.g., “Free” or a purchase price for downloading the file). Initial state instructions125may display the label within the UI element (e.g., inside the boundaries of a button) or proximate to the UI element.

Upon initiation of a download for a particular file, download state instructions127may set the corresponding UI element to a downloading state that indicates a status of the download. For example, when receiving instructions123receive a selection of a particular UI element that is in the initial state, download state instructions127may initiate the download of the file from the server and update the UI element accordingly. Thus, download state instructions may set a label associated with the UI element to text indicating that the download is underway (e.g., “Downloading”, “Download In Progress”, etc.). While in the downloading state, each UI element may indicate a percentage completion of the download of the corresponding file by, for example, displaying a numerical percentage or progressively filling the UI element from one side to the other. In addition, in some implementations, each UI element may also display a pause element that, when selected, toggles the download between a paused state and an in progress state.

Note that, in some implementations, download state instructions127may initially determine whether the user desires to continue with the download prior to starting the download. For example, when the file is not free, download state instructions127may prompt the user to agree to pay for the file. Additionally, download state instructions127may request a user name and password and/or payment information for the purchase. After the user has agreed to pay for the file, successfully authenticated, and/or provided payment information, download state instructions127may then start the download and update the state of the corresponding UI element, as detailed above. Conversely, in some implementations, when the file is free, download state instructions127may immediately initiate the download without a prompt.

Upon completion of a download for a particular file, launch state instructions129may set the corresponding UI element to a launch state that enables the user to open the downloaded file from within the online catalog. For example, launch state instructions129may set a label associated with the UI element for the downloaded file to a prompt that indicates the file is ready to be opened (e.g., “Open”, “Launch”, “View”, etc.) or display an appropriate symbol (e.g., an icon of a rocket launching). When a user selects a UI element that is currently in the launch state, computing device100may then open the corresponding file. For example, when the file is a music file or video file, device100may launch a media viewer in a new window and open the file using the viewer. Similarly, when the file is an electronic book, device100may launch an e-reader and open the book using the reader. As another example, when the file is an application, device100may simply launch the application in a new window.

As detailed above, computing device100may concurrently manage the state of each UI element in the online catalog, such that computing device100continues to display the current view of the online catalog without minimizing the catalog, leaving the current window, or obscuring the current interface. In this manner, computing device100may concurrently provide the status of multiple downloads using a single UI element for each file, while enabling the user to continue to select new files for download while other downloads are in progress. Furthermore, in some implementations, device100may continue to update UI elements in the background even when they are not currently viewable by the user, such that the current state of the UI elements is updated when the user restores a particular UI element to the current view.

FIG. 2is a block diagram of an example computing device200for concurrently downloading multiple files using an online catalog including an interface element for each file, where each interface element includes an initial state, a download state, an install state, a launch state, and an update state. As with computing device100ofFIG. 1, computing device200may be any computing device suitable for display of an online catalog user interface on an available display device.

As illustrated inFIG. 2and described in detail below, computing device200may include a number of modules202-224. Each of the modules may include a series of instructions encoded on a machine-readable storage medium and executable by a processor of computing device200. In addition or as an alternative, each module may include one or more hardware devices including electronic circuitry for implementing the functionality described below.

As with catalog displaying instructions121ofFIG. 1, catalog displaying module202may manage the process for receiving an online catalog230and displaying the catalog230on an available display device of computing device200. Module202may include identifier display module204, which may output an identifier for each available file, such as a name of the file and/or a description of the file. In some implementations, the catalog230may be an online application catalog, such that each of the plurality of files is an application available for installation on the computing device. In such implementations, as detailed below, install state module216may update the corresponding UI element during installation of an application, while update state module224may update the corresponding UI element when an application update is available.

Computing device200may also display a selectable UI element, such as a button, proximate to the displayed identifier for each available file. Each UI element may include a number of states, thereby enabling a user to concurrently monitor and control the download process for multiple files from within a unified online catalog interface. As detailed below, computing device200may include a series of modules206-224for managing these states of each UI element.

Initial state module206may set the UI element to the initial state for each file that has not yet been downloaded. Module206may further include a purchase cost module208, which may display a label or other text indicating the price for purchasing a particular file (e.g., “Free” or a cost in U.S. dollars or another currency). Additional details regarding initial state module206are provided above in connection with initial state instructions125ofFIG. 1.

Download state module210may set the UI element for a file to the downloading state upon initiation of the download by a user. For example, in response to a selection of a UI element that is in the initial state, download state module210may first confirm the download by, for example, presenting a prompt that requests payment confirmation and/or payment details when the file is not free. Download state module210may then initiate the download of the file by sending a download instruction234to the online server and may then modify the corresponding UI element to indicate the status of the download of the file236. Percent completion module212may display the progress of the download as a numerical percentage, as a progress bar within the UI element, or in any other graphical manner visible to the user. In addition, pause element module214may output a selectable UI element that enables a user to pause the download of the application. For example, pause module214may display an additional UI element, such as a button, within the boundaries of the UI element corresponding to the downloading file236. Upon selection of the pause UI element, pause module214may modify the label to “Paused” and instruct the server to temporarily stop sending data for the file. Additional details regarding download state module210are provided above in connection with download state instructions127ofFIG. 1.

Install state module216may set the UI element to an installing state during installation of a file upon completion of the download of the file236. For example, when the file236is an application, computing device200may start an installation process, which may include decompressing the downloaded files, creating folders, modifying the registry or configuration files, and creating links or shortcuts. During the install, install state module216may modify the UI element corresponding to the downloaded application to indicate the status of the installation. For example, install state module216may modify the label for the UI element to indicate that the install is in progress (e.g., a label of “Installing”). In some implementations, install state module216may include a percent completion module218, which may indicate a percentage completion of the installation by, for example, displaying a numerical percentage within the UI element or progressively filling the UI element. Note that, if the installation fails, install state module216may modify the UI element to include a warning indicating that the installation failed (e.g., a prompt labeled “Installation Failed”).

Upon completion of a successful download and/or installation of a file236, launch state module220may modify the state of the corresponding UI element to the launch state. For example, launch state module220may modify the UI element to include a label or other prompt that indicates that the corresponding file is ready to be opened. When a user selects a UI element that is currently in the launch state, computing device200may then open the corresponding file. Additional details regarding launch state module220are provided above in connection with launch state instructions129ofFIG. 1.

In some implementations, launch state module220may also include download history module222, which may determine, while loading the online catalog, whether each of the plurality of files has already been downloaded to computing device200. For each file that has already been downloaded and is currently installed or available on the device, download history module222may then set the corresponding UI element to the launch state, such that the user may launch the file from within the online catalog. For files that have been previously purchased, but are not currently installed or otherwise available on the device, download history module222may maintain the UI element in the initial state, but set the label associated with the UI element to “Free.” As a result, the user will understand that the previously-purchased file is available to download again for free.

The method employed by download history module222for determining whether files have already been downloaded may vary by embodiment. In some implementations, download history module222may make this determination by accessing an online account of the user. For example, module222may obtain a complete download history232by accessing an online account of the user and then comparing the download history232with the applications listed within the online catalog. As an alternative, module222may individually query the server to determine whether each application currently displayed in the catalog has already been downloaded to the user's device. In other implementations, download history module222may locally determine whether each file has already been downloaded by accessing data local to computing device200. For example, download history module222may examine one or more predetermined directories, the operating system registry, and/or another data source on computing device200to determine whether the corresponding file is present on the device.

Finally, computing device200may include update state module224, which may set the UI element to an update state for each file for which an update is available. Update state module224may determine whether an update is available for each file identified in the online catalog while device200is loading the online catalog. For example, update state module224may query download history module222to determine which files have already been downloaded and, for each such file, query the server to determine whether an update is available. When an update is available for a given file, update state module224may then set the user interface element for the file to an update state and display a label or other text indicating that an update is available for the file (e.g., “Update”, “Download Update”, etc.). When a user selects a UI element in the update state, update state module224may then connect to the server, begin the process for downloading the update, and trigger download state module210for modification of the UI element to the download state.

As with computing device100ofFIG. 1, computing device200may concurrently manage the state of each UI element in the catalog. In particular, as detailed above, state modules206,210,216,220,224may concurrently update the respective states for each UI element currently displayed within the online catalog. Thus, the user of computing device200may concurrently monitor and control the purchase, download, installation, launching, and updating for all files listed in the catalog while continuing to view the current window of the catalog.

FIG. 3is a flowchart of an example method300for concurrently downloading multiple files using an online catalog including a multi-state UI element for each available file. Although execution of method300is described below with reference to computing device100ofFIG. 1, other suitable devices for execution of method300will be apparent to those of skill in the art (e.g., computing device200). Method300may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as storage medium120, and/or in the form of electronic circuitry.

Method300may start in block302and proceed to block304, where computing device100may display an online catalog that identifies a plurality of applications or other files available for installation. The displayed online catalog may also include a UI element corresponding to each identified file. As described above in connection withFIG. 1, each displayed UI element may allow the user to control and monitor the download and installation process for the corresponding file.

Next, in block306, computing device100may receive a selection of a first UI element that is in the initial state and, in response, initiate a download of the corresponding file. Then, in block308, computing device100may modify the first UI element to the downloading state, such that the first UI element displays the status of the download of the corresponding file. For example, the downloading state may indicate a percentage completion of the download and include a pause element that enables the user to pause the download of the file. Note that, as detailed above, computing device100may continue to display the current view of the application catalog, such that the user may concurrently monitor and control the download and installation process for numerous files.

Thus, in block310, computing device100may receive a selection of a second UI element corresponding to a second file when the second UI element is in the initial state, while the first UI element is still in the downloading state. In response, computing device100may initiate the download of the second file. In block312, computing device100may then modify the second UI element to the downloading state, such that the second UI element indicates the status of the download of the second file. Again, updating of the second UI element may be done concurrently with updating of the first UI element, such that the user can monitor and control both downloads from within the same screen of the online catalog.

Subsequent to block312, computing device300may continue to receive selections of additional files to download and continue to update the status of the download of each file, including modifying the state of downloaded files to the install state and/or launch state. Method300may then continue to block314, where method300stops.

FIGS. 4A,4B, and4C are flowcharts of a method400for displaying an application catalog, responding to user inputs, and managing the state of a number of UI elements corresponding to the available applications. Although execution of method400is described below with reference to computing device200ofFIG. 2, other suitable devices for execution of method400will be apparent to those of skill in the art. Method400may be implemented in the form of executable instructions stored on a machine-readable storage medium and/or in the form of electronic circuitry. Furthermore, although described below with respect to applications, method400is equally applicable to all types of files, including multimedia and electronic books.

Referring now toFIG. 4A, method400may include a procedure for launching and initializing an online application catalog including a multi-state UI element for each available application. In particular, method400may start in block402and proceed to block404, where computing device200may launch the application catalog. For example, computing device200may load a dedicated application for purchasing and downloading applications or load an application catalog at a predetermined URL.

Next, in block406, computing device200may receive the application catalog menu and identifiers for each available application. For example, the identifiers may include the name of the application and/or a numerical identifier that uniquely identifies the application.

In block408, computing device200may then initialize a UI element for each application identifier. For example, computing device200may instantiate a new UI element object for each of the application identifiers and assign the application identifier to the corresponding object. Computing device200may then initialize the UI element for each application to the initial state, such that the UI element includes a label prompting the user to start a download and/or including the price of the application.

In blocks410to420, computing device200may then update the UI elements for any applications that have been installed or for which an update is available. In particular, in block410, computing device200may select the next application to be displayed in the current window for analysis. Then, in block412, computing device may determine whether the application has already been downloaded and installed by, for example, querying the server or inspecting local files. If the application is not installed, method400may skip directly to block420, described below. Otherwise, if the application has been downloaded and installed, method400may continue to block414, where computing device200may set the corresponding UI element to the launch state, such that the user may launch the application by selecting the UI element. Alternatively, if the application was previously purchased and installed, but has since been deleted, computing device200may maintain the corresponding UI element in the initial state, but change the label associated with the UI element to “Free.” Method400may then continue to block416.

In block416, computing device200may determine whether an update is available for the application. For example, computing device200may send a query to the server including the application identifier requesting that the server indicate whether an update is available for the application. If so, method400may continue to block418, where computing device200may set the corresponding UI element to the update state, such that the user may update the application by selecting the UI element. Method400may then continue to block420. Alternatively, when it is determined in block416that an update is not available, method400may skip directly to block420.

In block420, computing device200may determine whether there are additional applications to analyze. If so, method400may return to block410, where computing device200may select the next application for analysis. Otherwise, when all applications to be displayed in the current window of the catalog have been analyzed, method400may continue to block421. In block421, computing device200may display the catalog, the application identifiers, and the corresponding UI element for each application. Method400may then proceed to block422ofFIG. 4B.

Turning now toFIG. 4B, method400may also include a procedure for responding to a user selection of a particular multi-state UI element displayed in an application catalog. In particular, in block422, computing device200may determine whether a particular UI element has been selected in the form of a mouse click, touch tap, key press, or other input. If not, method400may skip to block440ofFIG. 4C, described in detail below. Otherwise, if a particular UI element has been selected, method400may continue to block424.

In block424, computing device200may determine whether the selected UI element is currently in the initial state. If not, method400may skip directly to block428, described in detail below. Alternatively, if the selected UI element is in the initial state, computing device200may first prompt the user to confirm the download and, if the application is not free, to obtain payment information or authorization to use previously-stored payment information. Upon receipt of user confirmation and/or payment, computing device200may then start the download and modify the UI element to the download state, such that the UI element begins to display the status of the download of the application. Method400may then continue to block440ofFIG. 4C.

In block428, computing device200may determine whether the selected UI element is currently in the download state and, if so, whether the user has toggled the pause element included in the UI element. If not, method400may skip directly to block432, described in detail below. Alternatively, if the user has selected a pause element, computing device200may toggle the status of the download. Thus, if the download is currently in progress, computing device200may pause the download and toggle the pause element to the resume state. Conversely, if the download is currently paused, computing device200may resume the download and toggle the pause element to a pause state. Method400may then continue to block440ofFIG. 4C.

In block432, computing device200may determine whether the selected UI element is currently in the launch state. If not, method400may skip to block436, described in detail below. Alternatively, if the selected UI element is in the launch state, computing device200may launch the corresponding application in a new window. In some implementations, computing device200may continue to update the application catalog while the launched application is executing and, as a result, method400may continue to block440ofFIG. 4C.

In block436, computing device200may determine whether the selected UI element is currently in the update state. If not, method400may proceed to block440ofFIG. 4C. Alternatively, if the selected UI element is in the update state, computing device200may begin the update process by connecting to the server and beginning to download and install the update. In some implementations, computing device200may set the UI element to the download state during the download of the update and to the install state during the installation of the update. After starting the download and updating the UI element as appropriate, method400may continue to block440ofFIG. 4C.

Referring toFIG. 4C, method400may include a procedure for updating the active multi-state UI elements displayed in an application catalog. By updating the status of each UI element currently displayed in the catalog, this procedure enables the user to concurrently monitor and control the download and installation of multiple applications.

In block440, computing device200may select the next active UI element that is currently displayed, where active UI elements include those in the download or install state. Method400may then continue to block442, where computing device200may determine whether the download for the application corresponding to the active UI element is complete. If the download is not yet complete (i.e., is still in progress), method400may proceed to block444, where computing device200may determine the status of the download and update the UI element accordingly. For example, computing device200may determine the percentage completion of the download and update the UI element to indicate that percentage numerically, using a status bar, or using another technique. Method400may then continue to block448, described in detail below.

Alternatively, if it is determined in block442that the download is complete, method400may continue to block446. In block446, because the download is complete, computing device200may set the UI element to the install state, assuming the UI element is not already in the install state from a previous iteration. Method400may then continue to block448.

In block448, computing device200may determine whether the installation process for the application corresponding to the active UI element is complete. If the installation is not yet complete (i.e., is still in progress), method400may proceed to block450, where computing device200may determine the status of the installation and update the UI element accordingly. For example, computing device200may determine the percentage completion of the installation and update the UI element to display that percentage. Method400may then continue to block454, described in detail below.

Alternatively, if it is determined in block448that the installation is complete, method400may continue to block452. In block452, computing device200may set the UI element to the launch state, such that the user may launch the application by selecting the UI element. Method400may then continue to block454.

In block454, computing device200may determine whether there are additional active UI elements to update during this iteration. If so, method400may return to block440, where computing device200may continue the updating process for the next UI element. Otherwise, method400may continue to block456. In block456, computing device200may determine whether the user has provided a command to exit the application catalog. If not, method400may return to block422ofFIG. 4B. Otherwise, when the user has provided a command to exit the application catalog, computing device200may close the application catalog and method400may stop in block458.

FIG. 5Ais a diagram of an example application catalog500including a number of applications available for download. As illustrated, application catalog500lists numerous available applications, including applications510,520,530,540,550. Consequently, catalog500also includes a UI element511,521,531,541,551for each of the applications.

For applications510,520,540, each of the corresponding UI elements511,521,541is set to the initial state, such that selection of the UI element initiates the download for the corresponding application. As illustrated, UI elements511,521,541also include a listed purchase price. In particular, applications510and540are available for free, while application520is available for $2.99. Note that, in some scenarios, the user may have originally purchased application540for $2.99 and subsequently deleted the application from the device. As detailed above, the device may determine that the application was previously purchased and, as a result, list application540as available for free.

For application530, the corresponding UI element531is set to the launch state, as the application has already been downloaded to the device. As a result, when the user selects UI element531, the device may launch application530in a new window. Similarly, application550has also been downloaded to the device, but an update is currently available. As a result, UI element551is set to the update state, such that selection of the UI element triggers an update of application550.

FIG. 5Bis a diagram of an example application catalog500during download of a first application540. InFIG. 5B, the user has triggered the download of application540by selecting UI element541ofFIG. 5A. Thus, as illustrated, the device has modified the UI element543to the downloading state, including a progress bar indicating the status of the download of the application. The device has also added a pause element545that, when selected, pauses the download of application540.

FIG. 5Cis a diagram of an example application catalog500during installation of a first application540and download of a second application520. InFIG. 5C, the user has triggered the download of application520by selecting UI element521ofFIG. 5A. Thus, as illustrated, the device has modified the UI element523to the downloading state and added a pause element525. While the download of application520has progressed, the device has also completed the download of application540and began the install process. Thus, as illustrated, the device has modified the UI element547to the install state to indicate that the installation of application540is in progress. Note that, in some implementations, UI element547may indicate the progress of the installation as a progress bar similar to the progress bar of UI element523.

FIG. 5Dis a diagram of an example application catalog subsequent to installation of a first application540and during installation of a second application520. Because the device has finished the download of application540, the device has modified the UI element549to the launch state. In addition, the device has completed the download of application520and has therefore modified UI element527to the install state.

The foregoing disclosure describes a number of example embodiments for an online catalog of files that includes a multi-state UI element for each available file. By utilizing such multi-state UI elements and continuing to display each UI element in a persistent catalog interface, example embodiments enable a user to concurrently manage the purchases and downloads of multiple files from within a single user interface. Example embodiments thereby provide the user with a simplified shopping experience, while also potentially increasing revenue to the party that owns or operates the online catalog. Additional embodiments and advantages of such embodiments will be apparent to those of skill in the art upon reading and understanding the foregoing description.