package com.secureline.installer;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInstaller;
import android.util.Log;

public final class InstallReceiver extends BroadcastReceiver {
    private static final String TAG = "LemenzoInstaller";

    @Override
    public void onReceive(Context context, Intent intent) {
        int status = intent.getIntExtra(
                PackageInstaller.EXTRA_STATUS,
                PackageInstaller.STATUS_FAILURE
        );

        String token = intent.getStringExtra("token");
        String packageName = intent.getStringExtra("package");
        String message = intent.getStringExtra(
                PackageInstaller.EXTRA_STATUS_MESSAGE
        );

        if (status == PackageInstaller.STATUS_PENDING_USER_ACTION) {
            Intent confirmation =
                    intent.getParcelableExtra(Intent.EXTRA_INTENT);

            if (confirmation != null) {
                confirmation.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(confirmation);
                Log.i(TAG, "Waiting for required user confirmation: " + packageName);
                return;
            }
        }

        AppInstaller.complete(token, status, message);

        if (status == PackageInstaller.STATUS_SUCCESS) {
            Log.i(TAG, "Installed " + packageName);
        } else {
            Log.e(
                    TAG,
                    "Install failed " + packageName
                            + " status=" + status
                            + " message=" + message
            );
        }
    }
}
