If at install time a user selects only apps that are already installed, Apps should just go ahead and enable the selected apps, just as it does after install time, where a user can enable an app that's already installed.
Currently, however, at install time Apps doesn't check to see whether apps selected for enabling are already installed. Even if all selected apps are already installed, the download task nonetheless runs (giving a confusing message about downloading project 1 of 0), and then the authorize and install tasks run as well. This adds up to a lot of unneeded screens and an unnecessary barrier to installation--there's no need to enter FTP credentials, since no code needs to be installed.
This bug relates to use cases for apps and distributions. Some apps-based distributions don't ship with their apps and supporting modules, instead relying on Apps to download and install as needed. However, some other apps-based distributions - e.g., Open Outreach - ship with many apps and supporting code already installed.
There's already a method for determining which apps are already installed (locally available). We just need to call this method after install time apps have been selected and determine whether any selected apps are not locally available and then set a flag that can be used to determine whether the app install related tasks need to run.
User interface changes
Install task screens will be skipped if download and install are not needed.