TECHNICAL FIELDThe present technology pertains to presenting a representation of an application by a graphical user interface of a computing system, and more specifically pertains to presenting alternative representations of the application based on a status of the application and associated features.
BACKGROUNDUser interaction with electronic devices has increased significantly in recent years. The electronic devices can include devices such as computers, tablet computers, televisions, multimedia devices, mobile devices, etc. These devices can support applications or “apps”. Some apps can be downloaded through user interaction. In some examples, an app downloaded on a device may be displayed on a graphical user interface of the device using a representation such as an icon. The icon can be used to launch or access the app. Some apps may have a variety of features which may be associated with in-app purchases, tier levels, subscriptions, etc. It is possible for different versions of the app to have different feature sets. However, current implementations use the same icon on the graphical user interface for representing the various versions of the app.
BRIEF SUMMARYSystems and methods for are disclosed for indicating a status of an application on a graphical user interface. The systems and methods include displaying, on a graphical user interface a plurality of application icons associated with a plurality of applications. A first application of the plurality of applications has a first application status represented by a first application icon. The first application can change from the first application status to a second application status. The second application status is different from the first application status. The second application status having a second application icon reflecting the second application status, wherein the second application icon is different from the first application icon.
According to at least one example, a method of indicating a status of an application on a graphical user interface is provided. The method includes displaying, on a graphical user interface of a computing device, a plurality of application icons associated with a plurality of applications installed on the computing device, wherein a first application of the plurality of applications has a first application status represented by a first application icon, and wherein the first application status corresponds to a first set of features available using the first application. The method further includes receiving an input associated with changing the first application from the first application status to a second application status, wherein the second application status is different from the first application status, the second application status corresponds to a second set of features available using the first application, and the second set of features is different from the first set of features. The method further includes, in response to the input, replacing the first application icon with a second application icon reflecting the second application status, wherein the second application icon is different from the first application icon.
In another example, computing device is provided. The computing device comprises at least one processor; and at least one memory storing instructions, which when executed by the at least one processor causes the at least one processor to display, on a graphical user interface, a plurality of application icons associated with a plurality of applications, wherein a first application of the plurality of applications has a first application status represented by a first application icon, and wherein the first application status corresponds to a first set of features available using the first application; receive an input associated with changing the first application from the first application status to a second application status, wherein: the second application status is different from the first application status, the second application status corresponds to a second set of features available using the first application, and the second set of features is different from the first set of features; and in response to the input, replace the first application icon with a second application icon reflecting the second application status, wherein the second application icon is different from the first application icon.
In another example, at least one non-transitory computer readable medium storing instructions is provided, which when executed by at least one processor causes the at least one processor to: display, on a graphical user interface, a plurality of application icons associated with a plurality of applications installed on a computing device, wherein a first application of the plurality of applications has a first application status represented by a first application icon, and wherein the first application status corresponds to a first set of features available using the first application; receive an input associated with changing the first application from the first application status to a second application status, wherein: the second application status is different from the first application status, the second application status corresponds to a second set of features available using the first application, and the second set of features is different from the first set of features; and in response to the input, replace the first application icon with a second application icon reflecting the second application status, wherein the second application icon is different from the first application icon.
In some aspects of the method, computing device, and computer-readable medium described above, the input is an in-app purchase.
In some aspects of the method, computing device, and computer-readable medium described above, the input is a cold launch of the first application.
In some aspects of the method, computing device, and computer-readable medium described above, the input is a transition of the first application into the foreground of the graphical user interface.
In some aspects of the method, computing device, and computer-readable medium described above, the second application status is a downgrade from the first application status.
In some aspects of the method, computing device, and computer-readable medium described above, the second application status is an upgrade from the first application status.
In some aspects of the method, computing device, and computer-readable medium described above, the first application status is a first tier level of a plurality of tier levels and the second application status is a second tier level of the plurality of tier levels.
This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used in isolation to determine the scope of the claimed subject matter. The subject matter should be understood by reference to appropriate portions of the entire specification of this patent, any or all drawings, and each claim.
The foregoing, together with other features and embodiments, will become more apparent upon referring to the following specification, claims, and accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGSThe above-recited and other advantages and features of the present technology will become apparent by reference to specific implementations illustrated in the appended drawings. A person of ordinary skill in the art will understand that these drawings only show some examples of the present technology and would not limit the scope of the present technology to these examples. Furthermore, the skilled artisan will appreciate the principles of the present technology as described and explained with additional specificity and detail through the use of the accompanying drawings in which:
FIGS. 1A-C illustrate an electronic device with a graphical user interface, in accordance with some examples;
FIG. 2 illustrates an entitlement check engine configured in accordance with some examples;
FIG. 3 illustrates an electronic device configured to manage icons on a graphical user interface in accordance with some examples;
FIG. 4 illustrates a flowchart of an example process for displaying icons on a graphical user interface in accordance with some examples;
FIG. 5 illustrates a flowchart of an example process for managing icons on a graphical user interface based on associated application status, in accordance with some examples;
FIG. 6 illustrates a flowchart of an example process for installing icons on a graphical user interface in accordance with some examples;
FIG. 7 illustrates a flowchart of an example process for updating icons on a graphical user interface based on associated application status, in accordance with some examples; and
FIG. 8 shows an example system for implementing certain aspects of the present technology.
DETAILED DESCRIPTIONVarious examples of the present technology are discussed in detail below. While specific implementations are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the present technology.
The disclosed technology addresses the need in the art to provide a better user experience to users of apps which may have different versions or associated feature sets. Specifically, the present technology can automatically update a representation of an app on a graphical user interface of a device to reflect a status of the app. For example, an icon on the graphical user interface can provide a representation of the app, where the icon can be changed to reflect a change in the status of the app. In various examples, the status of the app can vary based on features associated with the app, a version of the app, or other characteristics of the app. Changing the icon based on changes in the status of the app provides an elegant solution for representing the changes in the status of the app.
FIGS. 1A-C are schematic diagrams of auser device100 configured according to example aspects of this disclosure. Theuser device100 can include an electronic device, such as a mobile or stationary telephone handset (e.g., smartphone, cellular telephone, or the like), a desktop computer, a laptop or notebook computer, a tablet computer, a set-top box, a television, a camera, a display device, a digital media player, a video gaming console, a video streaming device, a smart watch, an Internet Protocol (IP) camera, or any other suitable electronic device.
Theuser device100 can include adisplay102, where thedisplay102 may be capable of providing a graphical user interface for user interaction with one or more applications. For example, the graphical user interface can include one or more icons such asicons104,106, etc. (e.g., where the icon106 can have different versions identified as106A,106B, and106C inFIGS. 1A, 1B, and 1C, respectively). Thedisplay102 can include any of a variety of display devices such as a cathode ray tube (CRT), a liquid crystal display (LCD), a plasma display, an organic light emitting diode (OLED) display, or another type of display device. In some examples, thedisplay102 can support a touch screen functionality for interacting with a plurality of apps which may be associated withrespective icons104,106, etc.
Considering the various versions of the icon106 in more detail, thefirst version106A ofFIG. 1A, thesecond version106B ofFIG. 1B, and thethird version106C ofFIG. 1C are each depicted with different symbols or logos according to an illustrative example. In the illustrative example, thedifferent versions106A,106B, and106C of the icon106 are associated with respective versions of an app, for example a “News app” (with a corresponding symbol “N”). The different versions of the News app may be differentiated in various ways. For example, the different versions of the News app may be associated with different tiers, different subscription levels, different statuses, different feature sets, in-app purchases, or other differentiating characteristics. Each tier, level, status, etc. can have a unique identifier.
For example, thefirst version106A of the icon106 shown inFIG. 1A may be associated with a first application status, a first tier level, a first set of features, no in-app purchases, or other characteristics of the News app. Thefirst version106A may have a logo, visual appearance, or other representation which can be distinguishable from the second andthird versions106B and106C, respectively. In an illustrative example, thefirst version106A may correspond to a free version of the News app which is made available to users free of cost. Correspondingly, the first set of features may include a limited feature set. For example, the first set of features may have a high volume of advertisements, limited or partially available content, restricted speed or resolution of multimedia content, fewer options for personalization, or any other constraints which may be placed on the free version to differentiate the free version from one or more types of paid versions which may be made available to users for charge.
For example, different tiers of the News app may be available for different purchase or paid upgrade options. In an illustrative example, if a user of the free version of the News app makes an in-app purchase based on interacting with the News app, then user may be deemed to qualify for a higher tier (a second tier) of the News app. For example, an in-app purchase may include a purchase of a product or service advertised on the News app and purchased by clicking on a link made available on the News app. The purchase may be for a product or service pertaining to the News app (e.g., for paid content of the News app) or for a third party product or service. Different price thresholds or other criteria (e.g., whether the purchase is for a News app product/service or a third party product/service) may be used to determine whether an in-app purchase may qualify for the second tier. For example, a qualifying purchase may unlock additional features of the News app which may be unavailable in the free version. A second set of features which includes the additional features may involve different or additional content, less advertisements than the free version, higher quality or resolution of media content, or other features which distinguish over the first set of features available in the free version of the News app. According to the illustrative example, a qualifying in-app purchase can lead to an upgrade to the second tier of the News app which provides the second set of features, where thesecond version106B of the icon106 can be associated with the second tier of the News app.
Proceeding further with the illustrative example, a different higher tier (a third tier) of the News app may be available for paid subscribers of the News app. For example, one or more types of periodic subscription options (e.g., monthly subscription) may be available for the News app. The third tier of the News app can provide a third set of features which may be different from the first and second sets of features. In some examples, the third set of features can include additions to the first set of features, the second set of features, or both. For example, the third set of features may involve different content, different level of advertisements, different quality or resolution of media content, or other features which distinguish over the first and second sets of features of the News app discussed above. While in the illustrative example, the second and third tiers are considered as upgrades from the free version, the third tier can be an even higher tier than the second tier, where the third tier can also be reached by upgrading from the second tier. In some example, the second tier can be a first subscription option and the third tier and can be a second subscription option, the first and second subscription options having different availability of features, as explained above. In such examples, thethird version106C of the icon106 can be associated with the third tier of the News app.
In various examples, there may be more or less number of tiers/statuses or versions associated with an app, such as the News app discussed above, where each tier/status or version may have a corresponding set of features available. The set of features made available for an app can be based on entitlements corresponding to the app, and more specifically, the tier/status or version of the app. The entitlements can include the rights granted to an app, tool, or other executable program based on the respective tier/status or version.
FIG. 2 is a block diagram illustrating asystem200 for managing entitlements associated with apps on an electronic device. For example, thesystem200 can be configured to manage entitlements for apps available on thedevice100 ofFIG. 1.System200 can includeentitlement check engine210 which can determine a status or tier level of one or more applications of a device. In some examples,entitlement check engine210 can be linked with a user account of an app store. In some examples,entitlement check engine210 can be integrated with the app store.
Anentitlement check engine210 can receive aninput212 associated with one or more apps. An entitlement check can be performed based at least on theinput212 and one or more rules. For example, theentitlement check engine210 can be configured with one or more rules for an app, where the one or more rules can be used to determine the entitlements for the app, whether there are any status updates for the app, or other actions pertaining to the app. In some examples, theentitlement check engine210 can apply the one or more rules based on receiving theinput212 to generate anoutput214, where theoutput214 can include an action or a status message.
In the illustrative example shown inFIG. 2, theinput212 can include different types of events, notifications, states, etc., for an app such as the News app discussed above. For example,cold launch212A,foreground212B, andnotification212C are shown as example options forinput212 among other options which may be available. In some examples, theinput212 can provide a trigger for theentitlement check engine210 to perform an entitlement check for the app.
Considering the options for theinput212 in more detail, thecold launch212A can correspond to an event when the app is initiated, where prior to thecold launch212A the app may have been in an inactive or dormant state. In some examples, thecold launch212A can correspond to the first time the app is launched or executed after the app has been downloaded to thedevice100. In some examples, thecold launch212A can correspond to a subsequent launch of the app after a prior use of the app was terminated and the app was placed in an inactive state.
Theforeground212B option for theinput212 can include a status/tier of the app when the app is in active use or in the foreground of thedisplay102 or the graphical user interface of thedevice100. For example, subsequent to a cold launch, the app can be brought into the foreground (e.g., from the background) where the app can remain until the app is terminated (e.g., interaction with the app is closed or the app is moved to the background). In some examples where thedevice100 can support multitasking functionality, it is possible for multiple apps to be on the foreground simultaneously. In some examples, theinput212 corresponding to theforeground212B can indicate a transition of an app into the foreground of the graphical user interface. In some instances, while in the foreground, an app (installed on device100) can poll (entitlement check engine210) for an update on the apps currently installed.
Thenotification212C can include any notification or trigger which may be received from the app or from a source external to the app such as an app manager. For example, a common manager (e.g., iTunes store, iTunes, app store, etc.) for a plurality of apps on thedevice102 can generate thenotification212C pertaining to the app. In some cases, thenotification212C can be generated while the app is in the foreground or in active use, while it is possible for thenotification212C to be generated while the app is not active.
In some examples, an app available for interaction through the graphical user interface of thedevice100 can also be available on one more other devices. For example, a user may have access to several electronic devices such as a mobile phone, a laptop, and a tablet, with a respective version of the News app being available on all of these electronic devices (e.g., connected by a common user account). The common manager for the plurality of apps can include a central platform such as a cloud infrastructure (e.g., iTunes store, iTunes, app store, etc.). The common manager can synchronize operations and data pertaining to the News app on the electronic devices associated with the user account. Thus, for example, if an in-app purchase is made while interacting with the News app on the mobile phone, then a notification responsive to the in-app purchase can be generated by the common manager. Such a notification for the News app can be provided to other electronic devices such as the laptop and the tablet on the user account by the common manager, even if the News app is not in the foreground of the laptop or the tablet. Thus, in various examples, thenotification212C for an app can be external to or independent of the use of the app on a device. In other examples, the notification can come from an app store or a third party app connected to a user account of device102 (e.g., iTunes store, iTunes, etc.). For example, a user can purchase, from a second device at an app store, a subscription to an app running ondevice102.Notification212C can be sent from the common manager, app store, third party app or the second user device.
As previously mentioned, theentitlement check engine210 can receive theinput212 and determine the status/tier of the app. Theoutput214 of this determination can include one or more status messages. For example, theoutput214 can include status messages such as new214A, expired214B, upgraded214C, downgraded214D, among other possible messages. The status message can also include a specific tier or status level and an app identity.
Thus in an illustrative example, when theinput212 indicates thecold launch212A for the News app, then theentitlement check engine210 can apply one or more rules for determining the status/tier to be assigned to the News app. For instance, the one or more rules can include determining whether there have been anynotifications212C received prior to thecold launch212A indicating a qualifying purchase. In some examples, the qualifying purchase can include an in-app purchase (e.g., of a value greater than a predetermined threshold), a subscription (e.g., for a predetermined minimum term), or other payment pertaining to the News app. Upon thecold launch212A, theentitlement check engine210 can determine whether the News app is to retain its status/tier prior to thecold launch212A or whether a change in the status/tier of the News app may be in order.
In an example of theoutput214 including the status message new214A, the free version of the News app may have been launched for the first time, and the new214A message can correspond to the free version of the News app. For example, referring back toFIG. 1A, the first launch of the News app can pertain to the first time the icon106 is added to the graphical user interface of thedevice100, for which theversion106A may be the appropriate version.
In another illustrative example of thecold launch212A, theentitlement check engine210 can determine that a qualifying payment had been made (e.g., an in-app purchase or a subscription) which can lead to an upgrade of the News app to a higher tier/status such as the second tier or the third tier as previously mentioned. In such an example, theoutput214 can indicate an upgraded214C status, which can pertain to theversion106B or theversion106C of the icon106 as shown inFIG. 1B orFIG. 1C, respectively.
In yet another illustrative example of thecold launch212A, theentitlement check engine210 can determine that the News app may have lost its higher tier/status (e.g., second tier, third tier, etc.) for any reason such as a time period for a subscription having ended, the time duration for which an in-app purchase qualifies for a higher tier may have lapsed, or any other rules which may dictate the loss of status for the News app. In an example where a subscription may have expired, an expired214B status may be generated. In another example where a higher tier/status may be deemed to have been lost, the downgraded214D status may be generated. In some examples, the expired214B and the downgraded214D may both be potential status updates (e.g., in a situation such as the expiration of a subscription which can lead to a status downgrade or a membership expiration) and preconfigured rules can be used to determine which one of these two statuses would be the valid option for theoutput214. While only threeversions106A-C were previously mentioned, a fourth version of the icon106 can also be an option for displaying on the graphical user interface to indicate an expired status of the News app.
In other illustrative examples, theentitlement check engine210 may be configured to implement one or more rules forinput212 corresponding to theforeground212B status of the News app or anotification212C corresponding to the News app. For example, one or more of the above-noted considerations upon thecold launch212A may be applicable to situations in which the News app is in the foreground. For instance, while the News app has theforeground212B status (e.g., brought into the foreground), the default new214A status of theoutput214 can be maintained (corresponding toversion106A of the icon106). Based on one or more rules which may be met (e.g., qualifying payments, subscriptions, expirations, etc.) while the News app has theforeground212B status, theoutput214 can be set to an expired214B, an upgraded214C, or a downgraded214C status, as appropriate.
Similarly, theoutput214 can be set to a new214A, an expired214B, an upgraded214C, or a downgraded214C status, as appropriate, based on anotification212C (e.g., corresponding to qualifying payments, subscriptions, expirations, etc.) independent of a cold launch of the News app or whether the News app is in the foreground of the graphical user interface of thedevice100. The icon106 for the News app can be displayed or represented using one of theversions106A-C (or other) based on theoutput214. In some examples, theoutput214 from theentitlement check engine210 can be provided to an icon management system configured to display the appropriate version of the icon106 based on theoutput214.
FIG. 3 is a block diagram illustrating asystem300 for managing icons on a graphical user interface of an electronic device. For example, thesystem300 can be configured for managing one or more icons corresponding to apps on a graphical user interface of thedevice100. In an illustrative example as shown, theoutput214 from theentitlement check engine210 ofFIG. 2 can be utilized by thedevice100 in displaying the appropriate version of the icon106 for the News app. While illustrated outside ofdevice100, in some examples,entitlement check engine210 can be implemented withindevice100.
In an example implementation, an app specific subscription manager may be assigned to each app available on thedevice100. For example, an appspecific subscription manager320 may be associated with the News app. Various other app specific subscription managers may be associated with the other apps available for user interaction on thedevice100. In an example, the appspecific subscription manager320 can manage subscriptions or tiers/statuses associated with the News app. For example, the appspecific subscription manager320 can determine whether any modifications may be warranted to the status of the News app based on qualifying actions or payments.
In some examples, the appspecific subscription manager320 can work in conjunction with theentitlement check engine210. For example, if theoutput214 of the entitlement check engine indicates a new214A status for the News app, the appspecific subscription manager320 can associate the default set of features with the News app (e.g., for the free version). If theoutput214 of the entitlement check engine indicates an expired214B status for the News app, the appspecific subscription manager320 can withdraw feature associations with the News app. If theoutput214 of the entitlement check engine indicates an upgraded214C status for the News app, the appspecific subscription manager320 can associate features corresponding to one of the higher tiers, e.g., the second tier or the third tier based on predetermined rules implemented by the app specific subscription manager320 (e.g., an upgrade from the first tier may be the second tier or the third tier; an upgrade from the second tier may be the third tier, etc) Similarly, if theoutput214 of the entitlement check engine indicates a downgraded214D status for the News app, the appspecific subscription manager320 can associate features corresponding to a lower tier from the current tier e.g., the second tier or the first tier based on predetermined rules implemented by the app specific subscription manager320 (e.g., an downgrade from the second tier may be the first tier; a downgrade from the third tier may be the second tier or the first tier, etc.).Output214 can also include a unique identifier which identifies the tier or status level of the app based on the determination of the entitlement check engine.
In some examples, the set of features associated with the News app by the appspecific subscription manager320 can be different from a set of features which were previously associated with the News app. For example, if theoutput214 indicates a status which is different from a previous status associated with the News app, then the appspecific subscription manager320 can change the feature set association for the News app. However, in some examples, even if theoutput214 indicates a possible change, the appspecific subscription manager320 may not effectively change the feature set association for the News app. For example, if theoutput214 indicates an upgrade (upgraded214C status), but the status of the News app is already at the highest tier, then no upgrade or change may be effected. Similarly, if theoutput214 indicates a downgrade (downgraded214D status), but the status of the News app is already at the lowest tier, then no downgrade or change may be effected. Accordingly, based on whether there has been a change in the status of the News app, the version of the icon106 displayed on the graphical user interface of thedevice100 can be modified.
As shown inFIG. 3, a premiumapp icon manager322 can be configured to manage the representation of icons on the graphical user interface displayed on thedisplay102. In some examples, the premiumapp icon manager322 can communicate with the appspecific subscription manager320 to determine whether to modify the representation of an icon. In an illustrative example, if the free version of the News app is initially downloaded onto thedevice100, the premium app icon manager may be configured to provide thedefault version106A of the icon106 to be displayed on the graphical user interface of thedisplay102. Upon any status update, event, or notification which may precipitate a change, theentitlement check engine210 may provide acorresponding output214 indicative of a version status of the News app to the appspecific subscription manager320. The appspecific subscription manager320 may effect a change in the feature sets associated with the News app as appropriate or maintain the previous version. When, for example, a change to the second tier was indicated by theentitlement check engine210, then theoutput214 may indicate an upgraded214C status to the appspecific subscription manager320. In conjunction with associating the second set of features corresponding to the second tier of the News app, the appspecific subscription manager320 may inform the premiumapp icon manager322 to update the change icon106 to thesecond version106B corresponding to the second tier of the News app. The premiumapp icon manager322 may then provide the updatedsecond version106B of the icon106 to be displayed on thedisplay102 as shown inFIG. 3.
The premiumapp icon manager322 may be configured to change the icon for any other app as appropriate based on a change in a status of an app represented by the icon. For example, if the status of the News app is change downgraded, expired, or new in other examples discussed above, the premiumapp icon manager322 may be configured to update/replace the icon106 on thedisplay102 corresponding to the change in the status of the News app.
FIG. 4 is a flowchart illustrating an example of aprocess400 of associating an icon with an app. In some examples, theprocess400 can be implemented by the premiumapp icon manager322 ofFIG. 3. In some examples, the premiumapp icon manager322 may obtain information pertaining to the management of icons on thedisplay102 of thedevice100 from theentitlement check engine210 ofFIG. 2, the appspecific subscription manager320, or other system for managing tier associations of one or more apps on thedevice100.
Atstep405, theprocess400 can include downloading an app. For example, the News app can be downloaded on thedevice100. Various versions or tiers of the News app may be available for download from an app repository, store, database, etc. Some versions of the News app may be free for download, while others may be available for download based on a qualifying payment or subscription. The News app may be advertised as being available for download through a graphical user interface or other interface of thedevice100. In some examples, if the News app was downloaded on a different device commonly accessible by a user of thedevice100, then, based on preconfigured user settings, the News app may be automatically downloaded on thedevice100. Various techniques for downloading an app such as the News app on an electronic device are known in the art and considered to be within the scope of this disclosure.
Atstep410, theprocess400 can include determining an app tier associated with the app. subscription status of the News app which was downloaded can be determined (e.g., based on a received status identifier from the app, metadata, etc.). The News app may have been downloaded on thedevice100 with an associated tier level which can include the first tier, the second tier, or the third tier, among others. Each tier of the News app can have an associated set of features, such as the first, second, or third set of features, respectively.
Atstep415, theprocess400 can include registering the app with a manager. For example, the appspecific subscription manager320 and/or premiumapp icon manager322 can register the News app and associate its appropriate tier with the registration. The tier of the app can be available from information such as metadata associated with the app. Theentitlement check engine210 can provide the tier information in some examples. Registering the News app and its appropriate tier can include storing the News app, the tier level, a set of available features for the tier level, and any other user specific or app specific information for interacting with the News app generally and/or specifically for that tier level.
Atstep420, theprocess400 can include installing an icon associated with the app. For example, the premiumapp icon manager322 may obtain information pertaining to the tier of the News app from the appspecific subscription manager320 and provide a corresponding version of the icon106 to be displayed on a graphical user interface of thedevice100. For example, depending on the tier level of the News app which was downloaded, theversion106A,106B, or106C may be installed on thedisplay102. In some examples, the graphical user interface can display a plurality of application (app) icons associated with a plurality of applications installed on thedevice100. A first application of the plurality of applications such as the News app can have a first application status represented by a first application icon such as theversion106A of the icon106. The first application status can correspond to the first set of features available using the first application.
FIG. 5 is a flowchart illustrating an example of aprocess500 of updating an icon associated with an app. In some examples, theprocess500 can be implemented by the premiumapp icon manager322 ofFIG. 3. In some examples, the premiumapp icon manager322 may obtain information pertaining to the management of icons on thedisplay102 of thedevice100 from theentitlement check engine210 ofFIG. 2, the appspecific subscription manager320, or other system for managing tier associations of one or more apps on thedevice100.
Atstep505, theprocess500 can include receiving (at app specific subscription manager320) a notification associated with an app indicating a tier/status level. In some examples, the notification can be an output (e.g., from entitlement check engine210) associated with changing a status of an app, such as from a first application status to a second application status. For example, the notification (e.g., output214) can correspond to the new214A, expired214B, upgraded212C, or downgraded214D pertaining to the News app along with associated tier/status level, as discussed with reference toFIG. 2. In some examples, the notification can indicate an in-app purchase which can cause a tier upgrade of the News app. As such, the notification can include an indication of a qualifying payment, cold launch or foreground transition which may cause a determination of a status change of the News app.
Atstep510, theprocess500 can include determining a current tier/status associated with the app. For example, the appspecific subscription manager320 can determine the current tier level associated the News app. The News app in a first tier or first application status may have a first set of features which may be different from a second tier or second application status of the News app associated with a second set of features, for example.
Atstep515, theprocess500 can include determining whether a new tier/status (received at step505) is different from the current tier (determined at step510). In some examples, the new tier may be the same as the current tier, in which case theprocess500 may end at thestep520. In some examples, the new tier may be associated with the second application status, for example, where the second application status is different from the first application status corresponding to the current tier. The second application status can correspond to a second set of features available using the News app where the second set of features is different from the first set of features.
According to examples discussed herein, the first application icon such as theversion106A of the News app installed in thestep420 ofFIG. 4 may be replaced with a second application icon such as theversion106B reflecting the second application status, where the second application icon is different from the first application icon.
For example, when at thestep515, the new tier/status is determined to be different from the current tier/status, then instep525, theprocess500 can include fetching a new icon for the new tier/status. For example, the appspecific subscription manager322 may obtain the new tier level (from step505) and provide the premiumapp icon manager322 with an indication to fetch a new version of the icon for the News app, if appropriate. The appspecific subscription manager322 may fetch the appropriate replacement icon based on the received indication. In some instances, the replacement icons available can be stored locally ondevice100. In other instances, the replacement icons can be downloaded ondevice100. In a non-limiting example, the premiumapp icon manager322 may fetch theversion106B of the icon106 corresponding to an upgraded214C indication when the second application status is an upgrade from the first application status. If the current version is theversion106B of the icon106, then in another non-limiting example, the premiumapp icon manager322 may fetch theversion106A of the icon106 corresponding to a downgraded214D indication when the second application status is a downgrade from the first application status.
At step530, theprocess500 can include installing an icon on a graphical user interface of an electronic device. For example, if the new tier is different from the current tier as determined in thestep515, then the premiumapp icon manager322 may install theversion106B of the icon106 for the new tier fetched in thestep525 on the graphical user interface of thedevice100. For example, the first application status can correspond to a first tier level (current tier) of a plurality of tier levels and the second application status can correspond to a second tier level (new tier) of the plurality of tier levels. If the new tier is not different from the current tier then theprocess500 can end instep520 with theversion106A of the icon106 for the current tier of the remaining installed on the graphical user interface of thedevice100, e.g., in thestep420 ofFIG. 4.
FIG. 6 is a flowchart illustrating an example of aprocess600 for displaying icons on a graphical user interface. Atstep605, theprocess600 can include displaying a plurality of icons such as theicons104 and one of theversions106A-C of the icon106 on the graphical user interface of thedisplay102 as discussed with reference toFIGS. 1A-C.
Atstep610, theprocess600 can include receiving an input. For example, aninput212 including acold launch212A, foreground212B transition,notification212C or other can be received by theentitlement check engine210.
Atstep615, theprocess600 can include replacing an icon of the plurality of icons on the graphical user interface. For example, if based on the input, theentitlement check engine210 provided anoutput214 indicating a change in status for an app, the premiumapp icon manager322 can replace a prior icon for the app with a new icon. For example, anew version106B of the News app can be replaced from acurrent version106A of the News app if theoutput214 indicates an upgraded214C status.
FIG. 7 is a flowchart illustrating an example of aprocess700 for updating icons associated with an app. At step705, theprocess700 can include detecting a change in an app status/tier. For example, the appspecific subscription manager320 can detect a change in the status of the News app based on theoutput214 fromentitlement check engine210. In some examples, the change can be indicated in a new status provided in theoutput214, such as the new214A, the expired214B, the upgraded214C, the downgraded214D, or other status.
Atstep710, theprocess700 can include determining whether the changed status/tier of the app has a new icon. For example, the appspecific subscription manager320 may determine whether a new set of features are to be associated with the News app based on theoutput214. Correspondingly, thepremium icon manager322 may determine whether the version of the icon currently displayed on the graphical user interface of thedisplay102 is to be replaced based on the detected change in app status (step705). When thepremium icon manager322 determines a current version of the icon106 does not have to be updated, then theprocess700 may end instep715. When thepremium icon manager322 determines a current version of the icon106 is to be replaced (e.g., when the new status has a different icon than the currently presented icon), then theprocess700 proceeds to thestep720. For example, theoutput214 may indicate an upgraded214C status, based on which thepremium icon manager322 may determine that the representation of the icon106 is to be replaced from theversion106A to theversion106B according to the illustrative example discussed with reference toFIG. 3.
Atstep720, theprocess700 can include replacing a current icon for the app with a new icon. For example, based on determining that the representation of the icon106 is to be changed from theversion106A to theversion106B, thepremium icon manager322 may cause theversion106B of the icon106 to be displayed on the graphical user interface of thedevice100.
FIG. 8 shows an example of acomputing system800, which can be for example theelectronic device100, in which the components of the system are in communication with each other using aconnection805. Theconnection805 can be a physical connection via a bus, or a direct connection into aprocessor810, such as in a chipset architecture. Theconnection805 can also be a virtual connection, networked connection, or logical connection.
In some examples, thecomputing system800 is a distributed system in which the functions described in this disclosure can be distributed within a datacenter, multiple datacenters, a peer network, etc. In some examples, one or more of the described system components represents many such components each performing some or all of the function for which the component is described. In some examples, the components can be physical or virtual devices.
Thecomputing system800 can include at least one processing unit (CPU or processor) such as theprocessor810, as well as theconnection805 that couples various system components including asystem memory815, such as a read only memory (ROM) or a random access memory (RAM) to theprocessor810. Thecomputing system800 can also include a cache of high-speed memory connected directly with, in close proximity to, or integrated as part of theprocessor810.
Theprocessor810 can include any general purpose processor and a hardware service or software service, such asservices832,834, and836 stored in astorage device830, configured to control theprocessor810 as well as a special-purpose processor where software instructions are incorporated into the actual processor design. Theprocessor810 may essentially be a completely self-contained computing system, containing multiple cores or processors, a bus, memory controller, cache, etc. A multi-core processor may be symmetric or asymmetric.
To enable user interaction, thecomputing system800 can include aninput device845, which can represent any number of input mechanisms, such as a microphone for speech, a touch-sensitive screen for gesture or graphical input, keyboard, mouse, motion input, speech, etc. Thecomputing system800 can also include anoutput device835, which can be one or more of a number of output mechanisms known to those of skill in the art. In some instances, multimodal systems can enable a user to provide multiple types of input/output to communicate with thecomputing system800. Thecomputing system800 can include acommunications interface840, which can generally govern and manage the user input and system output. There is no restriction on operating on any particular hardware arrangement and therefore the basic features here may easily be substituted for improved hardware or firmware arrangements as they are developed.
Thestorage device830 can be a non-volatile memory device and can be a hard disk or other types of computer readable media which can store data that are accessible by a computer, such as magnetic cassettes, flash memory cards, solid state memory devices, digital versatile disks, cartridges, random access memories (RAMs), read only memory (ROM), and/or some combination of these devices.
Thestorage device830 can include software services, servers, services, etc., that when the code that defines such software is executed by theprocessor810, it causes the system to perform a function. In some examples, a hardware service that performs a particular function can include the software component stored in a computer-readable medium in connection with the necessary hardware components, such as theprocessor810, theconnection805, theoutput device835, etc., to carry out the function.
For clarity of explanation, in some instances the present technology may be presented as including individual functional blocks including functional blocks comprising devices, device components, steps or routines in a method embodied in software, or combinations of hardware and software.
Any of the steps, operations, functions, or processes described herein may be performed or implemented by a combination of hardware and software services or services, alone or in combination with other devices. In some examples, a service can be software that resides in memory of a client device and/or one or more servers of a content management system and perform one or more functions when a processor executes the software associated with the service. In some examples, a service is a program, or a collection of programs that carry out a specific function. In some examples, a service can be considered a server. The memory can be a non-transitory computer-readable medium.
In some examples the computer-readable storage devices, mediums, and memories can include a cable or wireless signal containing a bit stream and the like. However, when mentioned, non-transitory computer-readable storage media expressly exclude media such as energy, carrier signals, electromagnetic waves, and signals per se.
Methods according to the above-described examples can be implemented using computer-executable instructions that are stored or otherwise available from computer readable media. Such instructions can comprise, for example, instructions and data which cause or otherwise configure a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Portions of computer resources used can be accessible over a network. The computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, firmware, or source code. Examples of computer-readable media that may be used to store instructions, information used, and/or information created during methods according to described examples include magnetic or optical disks, solid state memory devices, flash memory, USB devices provided with non-volatile memory, networked storage devices, and so on.
Devices implementing methods according to these disclosures can comprise hardware, firmware and/or software, and can take any of a variety of form factors. Typical examples of such form factors include servers, laptops, smart phones, small form factor personal computers, personal digital assistants, and so on. Functionality described herein also can be embodied in peripherals or add-in cards. Such functionality can also be implemented on a circuit board among different chips or different processes executing in a single device, by way of further example.
The instructions, media for conveying such instructions, computing resources for executing them, and other structures for supporting such computing resources are means for providing the functions described in these disclosures.
Although a variety of examples and other information was used to explain aspects within the scope of the appended claims, no limitation of the claims should be implied based on particular features or arrangements in such examples, as one of ordinary skill would be able to use these examples to derive a wide variety of implementations. Further and although some subject matter may have been described in language specific to examples of structural features and/or method steps, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to these described features or acts. For example, such functionality can be distributed differently or performed in components other than those identified herein. Rather, the described features and steps are disclosed as examples of components of systems and methods within the scope of the appended claims.