From e4e63eee810d9350b3f18d092e922b129374591d Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 7 Mar 2023 11:50:38 -0300 Subject: [PATCH] [app] Ask user to enable unknown sources for F-Droid when needed This still needs to be tested on old Android versions < 31 --- .../org/fdroid/fdroid/installer/DefaultInstaller.java | 11 +++++++++++ 1 file changed, 11 insertions(+) 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 5bd91400a..7a1bb65ef 100644 --- a/app/src/main/java/org/fdroid/fdroid/installer/DefaultInstaller.java +++ b/app/src/main/java/org/fdroid/fdroid/installer/DefaultInstaller.java @@ -24,6 +24,8 @@ import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.net.Uri; +import android.os.Build; +import android.provider.Settings; import org.fdroid.fdroid.data.Apk; import org.fdroid.fdroid.data.App; @@ -48,6 +50,15 @@ public class DefaultInstaller extends Installer { @Override protected void installPackageInternal(Uri localApkUri, Uri canonicalUri) { + // ask to enable unknown sources on old Android versions + if (Build.VERSION.SDK_INT >= 26 && Build.VERSION.SDK_INT < 31) { + if (!context.getPackageManager().canRequestPackageInstalls()) { + Intent i = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES); + i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + i.setData(Uri.parse("package:" + context.getPackageName())); + context.startActivity(i); + } + } Intent installIntent = new Intent(context, DefaultInstallerActivity.class); installIntent.setAction(DefaultInstallerActivity.ACTION_INSTALL_PACKAGE);