diff --git a/app/src/main/java/org/fdroid/fdroid/installer/DefaultInstaller.java b/app/src/main/java/org/fdroid/fdroid/installer/DefaultInstaller.java index b806d5724..70c23e054 100644 --- a/app/src/main/java/org/fdroid/fdroid/installer/DefaultInstaller.java +++ b/app/src/main/java/org/fdroid/fdroid/installer/DefaultInstaller.java @@ -63,8 +63,6 @@ public class DefaultInstaller extends Installer { @Override protected void uninstallPackage() { - sendBroadcastUninstall(Installer.ACTION_UNINSTALL_STARTED); - Intent uninstallIntent = new Intent(context, DefaultInstallerActivity.class); uninstallIntent.setAction(DefaultInstallerActivity.ACTION_UNINSTALL_PACKAGE); uninstallIntent.putExtra(Installer.EXTRA_APK, apk); diff --git a/app/src/main/java/org/fdroid/fdroid/installer/ExtensionInstaller.java b/app/src/main/java/org/fdroid/fdroid/installer/ExtensionInstaller.java index 647ed89af..2ec681cf0 100644 --- a/app/src/main/java/org/fdroid/fdroid/installer/ExtensionInstaller.java +++ b/app/src/main/java/org/fdroid/fdroid/installer/ExtensionInstaller.java @@ -78,8 +78,6 @@ public class ExtensionInstaller extends Installer { @Override protected void uninstallPackage() { - sendBroadcastUninstall(Installer.ACTION_UNINSTALL_STARTED); - Intent uninstallIntent = new Intent(context, InstallExtensionDialogActivity.class); uninstallIntent.setAction(InstallExtensionDialogActivity.ACTION_UNINSTALL); diff --git a/app/src/main/java/org/fdroid/fdroid/installer/FileInstaller.java b/app/src/main/java/org/fdroid/fdroid/installer/FileInstaller.java index aa7d41d48..01bf38d3d 100644 --- a/app/src/main/java/org/fdroid/fdroid/installer/FileInstaller.java +++ b/app/src/main/java/org/fdroid/fdroid/installer/FileInstaller.java @@ -68,8 +68,6 @@ public class FileInstaller extends Installer { @Override protected void uninstallPackage() { - sendBroadcastUninstall(Installer.ACTION_UNINSTALL_STARTED); - Intent uninstallIntent = new Intent(context, FileInstallerActivity.class); uninstallIntent.setAction(FileInstallerActivity.ACTION_UNINSTALL_FILE); uninstallIntent.putExtra(Installer.EXTRA_APK, apk); diff --git a/app/src/main/java/org/fdroid/fdroid/installer/Installer.java b/app/src/main/java/org/fdroid/fdroid/installer/Installer.java index 38268e983..817f1fa53 100644 --- a/app/src/main/java/org/fdroid/fdroid/installer/Installer.java +++ b/app/src/main/java/org/fdroid/fdroid/installer/Installer.java @@ -200,6 +200,15 @@ public abstract class Installer { } private void sendBroadcastUninstall(String action, PendingIntent pendingIntent, String errorMessage) { + sendBroadcastUninstall(context, apk, action, pendingIntent, errorMessage); + } + + static void sendBroadcastUninstall(Context context, Apk apk, String action) { + sendBroadcastUninstall(context, apk, action, null, null); + } + + private static void sendBroadcastUninstall(Context context, Apk apk, String action, + PendingIntent pendingIntent, String errorMessage) { Uri uri = Uri.fromParts("package", apk.packageName, null); Intent intent = new Intent(action); diff --git a/app/src/main/java/org/fdroid/fdroid/installer/InstallerService.java b/app/src/main/java/org/fdroid/fdroid/installer/InstallerService.java index db214122b..ee47f5050 100644 --- a/app/src/main/java/org/fdroid/fdroid/installer/InstallerService.java +++ b/app/src/main/java/org/fdroid/fdroid/installer/InstallerService.java @@ -142,6 +142,9 @@ public class InstallerService extends JobIntentService { */ public static void uninstall(Context context, @NonNull Apk apk) { Objects.requireNonNull(apk); + + Installer.sendBroadcastUninstall(context, apk, Installer.ACTION_UNINSTALL_STARTED); + Intent intent = new Intent(context, InstallerService.class); intent.setAction(ACTION_UNINSTALL); intent.putExtra(Installer.EXTRA_APK, apk); diff --git a/app/src/main/java/org/fdroid/fdroid/installer/PrivilegedInstaller.java b/app/src/main/java/org/fdroid/fdroid/installer/PrivilegedInstaller.java index fee625af3..653f32068 100644 --- a/app/src/main/java/org/fdroid/fdroid/installer/PrivilegedInstaller.java +++ b/app/src/main/java/org/fdroid/fdroid/installer/PrivilegedInstaller.java @@ -355,8 +355,6 @@ public class PrivilegedInstaller extends Installer { @Override protected void uninstallPackage() { - sendBroadcastUninstall(Installer.ACTION_UNINSTALL_STARTED); - ServiceConnection mServiceConnection = new ServiceConnection() { public void onServiceConnected(ComponentName name, IBinder service) { IPrivilegedService privService = IPrivilegedService.Stub.asInterface(service);