From 5bb5e3a96ba7e805ba8459e73b8b8aaa02c6e1de Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Mart=C3=AD?= <mvdan@mvdan.cc>
Date: Wed, 9 Sep 2015 21:35:38 -0700
Subject: [PATCH] Fix conflict between swap and privileged merges

Also avoid possible NPE in the package name comparison.
---
 F-Droid/src/org/fdroid/fdroid/installer/Installer.java      | 2 +-
 .../org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java  | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/F-Droid/src/org/fdroid/fdroid/installer/Installer.java b/F-Droid/src/org/fdroid/fdroid/installer/Installer.java
index 295032086..7fca11add 100644
--- a/F-Droid/src/org/fdroid/fdroid/installer/Installer.java
+++ b/F-Droid/src/org/fdroid/fdroid/installer/Installer.java
@@ -155,7 +155,7 @@ abstract public class Installer {
         }
 
         // special case: Install F-Droid Privileged
-        if (packageName.equals(PrivilegedInstaller.PRIVILEGED_PACKAGE_NAME)) {
+        if (packageName != null && packageName.equals(PrivilegedInstaller.PRIVILEGED_PACKAGE_NAME)) {
             Activity activity;
             try {
                 activity = (Activity) mContext;
diff --git a/F-Droid/src/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java b/F-Droid/src/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java
index cb8e5ee11..df2f96cdd 100644
--- a/F-Droid/src/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java
+++ b/F-Droid/src/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java
@@ -791,7 +791,7 @@ public class SwapWorkflowActivity extends AppCompatActivity {
             public void onProgress(Event event) {
                 switch (event.type) {
                     case ApkDownloader.EVENT_APK_DOWNLOAD_COMPLETE:
-                        handleDownloadComplete(downloader.localFile());
+                        handleDownloadComplete(downloader.localFile(), app.id);
                         break;
                     case ApkDownloader.EVENT_ERROR:
                         break;
@@ -801,7 +801,7 @@ public class SwapWorkflowActivity extends AppCompatActivity {
         downloader.download();
     }
 
-    private void handleDownloadComplete(File apkFile) {
+    private void handleDownloadComplete(File apkFile, String packageName) {
 
         try {
             Installer.getActivityInstaller(SwapWorkflowActivity.this, new Installer.InstallerCallback() {
@@ -816,7 +816,7 @@ public class SwapWorkflowActivity extends AppCompatActivity {
                 public void onError(int operation, int errorCode) {
                     // TODO: Boo!
                 }
-            }).installPackage(apkFile);
+            }).installPackage(apkFile, packageName);
         } catch (Installer.AndroidNotCompatibleException e) {
             // TODO: Handle exception properly
         }