in app/src/main/java/co/huggingface/chat_ui_android/MainActivity.kt [24:74]
override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
webView = findViewById(R.id.webview)
webView.settings.setJavaScriptEnabled(true)
webView.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
url?.let {
if (it.contains("huggingface.co/chat")
|| it.contains("huggingface.co/oauth")
|| it.contains("huggingface.co/login")
|| it.contains("huggingface.co/authorize")
) {
view?.loadUrl(it)
return false
} else {
val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(it))
startActivity(browserIntent)
}
}
return true
}
}
webView.getSettings()
.setUserAgentString(BuildConfig.APPLICATION_ID + "/" + BuildConfig.VERSION_NAME + " " + webView.settings.userAgentString);
webView.webChromeClient = object : WebChromeClient() {
override fun onShowFileChooser(
webView: WebView?,
filePathCallback: ValueCallback<Array<Uri>>?,
fileChooserParams: FileChooserParams?
): Boolean {
fileUploadCallback?.onReceiveValue(null)
fileUploadCallback = filePathCallback
// Use file picker
val intent = Intent(Intent.ACTION_GET_CONTENT)
intent.addCategory(Intent.CATEGORY_OPENABLE)
intent.type = "*/*"
val chooserIntent = Intent.createChooser(intent, "Choose File")
startActivityForResult(chooserIntent, FILE_CHOOSER_REQUEST_CODE)
return true
}
}
webView.loadUrl("https://huggingface.co/chat")
}