package io.github.mthli.Ninja.Browser;
import android.net.Uri;
import android.os.Message;
import android.view.View;
import android.webkit.*;
import io.github.mthli.Ninja.View.NinjaWebView;
public class NinjaWebChromeClient extends WebChromeClient {
private NinjaWebView ninjaWebView;
public NinjaWebChromeClient(NinjaWebView ninjaWebView) {
super();
this.ninjaWebView = ninjaWebView;
}
@Override
public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
ninjaWebView.getBrowserController().onCreateView(view, resultMsg);
return isUserGesture;
}
@Override
public void onCloseWindow(WebView view) {
super.onCloseWindow(view);
}
@Override
public void onProgressChanged(WebView view, int progress) {
super.onProgressChanged(view, progress);
ninjaWebView.update(progress);
}
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
ninjaWebView.update(title, view.getUrl());
}
@Deprecated
@Override
public void onShowCustomView(View view, int requestedOrientation, WebChromeClient.CustomViewCallback callback) {
ninjaWebView.getBrowserController().onShowCustomView(view, requestedOrientation, callback);
super.onShowCustomView(view, requestedOrientation, callback);
}
@Override
public void onShowCustomView(View view, WebChromeClient.CustomViewCallback callback) {
ninjaWebView.getBrowserController().onShowCustomView(view, callback);
super.onShowCustomView(view, callback);
}
@Override
public void onHideCustomView() {
ninjaWebView.getBrowserController().onHideCustomView();
super.onHideCustomView();
}
/* For 4.1 to 4.4 */
public void openFileChooser(ValueCallback<Uri> uploadMsg) {
ninjaWebView.getBrowserController().openFileChooser(uploadMsg);
}
/* For 4.1 to 4.4 */
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) {
ninjaWebView.getBrowserController().openFileChooser(uploadMsg);
}
/* For 4.1 to 4.4 */
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
ninjaWebView.getBrowserController().openFileChooser(uploadMsg);
}
@Override
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, WebChromeClient.FileChooserParams fileChooserParams) {
ninjaWebView.getBrowserController().showFileChooser(filePathCallback, fileChooserParams);
return true;
}
/**
* TODO: ?support this method
* @link http://developer.android.com/reference/android/webkit/WebChromeClient.html#onGeolocationPermissionsShowPrompt%28java.lang.String,%20android.webkit.GeolocationPermissions.Callback%29
* @param origin
* @param callback
*/
@Override
public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
super.onGeolocationPermissionsShowPrompt(origin, callback);
}
}