Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c23d8029 authored by Svetoslav Ganov's avatar Svetoslav Ganov Committed by Gerrit Code Review
Browse files

Merge "Improve untrusted sources UX for app side-loading"

parents 816baf35 82e74ce4
Loading
Loading
Loading
Loading
+17 −6
Original line number Diff line number Diff line
@@ -68,6 +68,8 @@ import java.util.List;
public class PackageInstallerActivity extends Activity implements OnCancelListener, OnClickListener {
    private static final String TAG = "PackageInstaller";

    private static final int REQUEST_ENABLE_UNKNOWN_SOURCES = 1;

    private int mSessionId = -1;
    private Uri mPackageURI;
    private Uri mOriginatingURI;
@@ -245,7 +247,7 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
                    .setPositiveButton(R.string.settings, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            Log.i(TAG, "Launching settings");
                            launchSettingsAppAndFinish();
                            launchSecuritySettings();
                        }
                    })
                    .setOnCancelListener(this)
@@ -350,13 +352,22 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
       return null;
   }

    private void launchSettingsAppAndFinish() {
        // Create an intent to launch SettingsTwo activity
    private void launchSecuritySettings() {
        Intent launchSettingsIntent = new Intent(Settings.ACTION_SECURITY_SETTINGS);
        launchSettingsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(launchSettingsIntent);
        startActivityForResult(launchSettingsIntent, REQUEST_ENABLE_UNKNOWN_SOURCES);
    }

    @Override
    public void onActivityResult(int request, int result, Intent data) {
        // If the settings app approved the install we are good to go regardless
        // whether the untrusted sources setting is on. This allows partners to
        // implement a "allow untrusted source once" feature.
        if (request == REQUEST_ENABLE_UNKNOWN_SOURCES && result == RESULT_OK) {
            initiateInstall();
        } else {
            finish();
        }
    }

    private boolean isInstallRequestFromUnknownSource(Intent intent) {
        String callerPackage = getCallingPackage();