From e95dec30b5e7e2fa0e63f4cf2aac07846d317388 Mon Sep 17 00:00:00 2001
From: Hans-Christoph Steiner <hans@eds.org>
Date: Wed, 1 Jun 2016 22:04:57 +0200
Subject: [PATCH] remove APK from active list if install process is interrupted

If the install process is interrupted, then InstallManagerService is no
longer managing it.  It will make the announcements and set the
notification, then forget about that APK.
---
 .../fdroid/fdroid/installer/InstallManagerService.java    | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/app/src/main/java/org/fdroid/fdroid/installer/InstallManagerService.java b/app/src/main/java/org/fdroid/fdroid/installer/InstallManagerService.java
index 4936ccbad..9494fdacf 100644
--- a/app/src/main/java/org/fdroid/fdroid/installer/InstallManagerService.java
+++ b/app/src/main/java/org/fdroid/fdroid/installer/InstallManagerService.java
@@ -288,18 +288,18 @@ public class InstallManagerService extends Service {
                         // show notification if app details is not visible
                         if (!TextUtils.isEmpty(errorMessage)) {
                             App app = getAppFromActive(downloadUrl);
-                            String title = String.format(
-                                    getString(R.string.install_error_notify_title),
-                                    app.name);
 
                             // show notification if app details is not visible
                             if (AppDetails.isAppVisible(app.packageName)) {
                                 cancelNotification(downloadUrl);
                             } else {
+                                String title = String.format(
+                                        getString(R.string.install_error_notify_title),
+                                        app.name);
                                 notifyError(downloadUrl, title, errorMessage);
                             }
                         }
-
+                        removeFromActive(downloadUrl);
                         localBroadcastManager.unregisterReceiver(this);
                         break;
                     case Installer.ACTION_INSTALL_USER_INTERACTION: