package com.mobify.astro.plugins.webviewplugin;

import android.util.Log;
import android.webkit.GeolocationPermissions;
import android.webkit.WebChromeClient;

import com.mobify.astro.PermissionsInterface;
import com.mobify.astro.PermissionsManager;

public class AstroWebChromeClient extends WebChromeClient {

    private static String TAG = AstroWebChromeClient.class.getSimpleName();
    public static final int ACCESS_LOCATION_PERMISSION_REQUEST = 1;

    PermissionsInterface permissionsInterface;

    public AstroWebChromeClient(PermissionsInterface permissionsInterface) {
        this.permissionsInterface = permissionsInterface;
    }

    @Override
    public void onGeolocationPermissionsShowPrompt(final String origin, final GeolocationPermissions.Callback callback) {
        Log.d(TAG, "Checking geolocation permission for " + origin);

        permissionsInterface.permissionsRequest(ACCESS_LOCATION_PERMISSION_REQUEST,
                new String[] {android.Manifest.permission.ACCESS_FINE_LOCATION}, new PermissionsManager.PermissionsCallback() {
            @Override
            public void onPermissionUpdated(boolean isPermissionGiven) {
                if (callback != null) {
                    callback.invoke(origin, isPermissionGiven, isPermissionGiven);
                }
            }
        });
    }
}
