AeThex-OS/android/app/src/main/java/com/aethex/os/MainActivity.java

78 lines
2.7 KiB
Java

package com.aethex.os;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebSettings;
import android.webkit.WebViewClient;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceError;
import android.widget.Toast;
import android.app.AlertDialog;
import com.getcapacitor.BridgeActivity;
import android.util.Log;
import android.os.Handler;
public class MainActivity extends BridgeActivity {
@Override
public void onStart() {
super.onStart();
if (this.bridge != null && this.bridge.getWebView() != null) {
// Delay loading to ensure WebView is ready and avoid race conditions
new Handler().postDelayed(this::loadCustomUrl, 1000);
}
}
private void loadCustomUrl() {
WebView webView = this.bridge.getWebView();
runOnUiThread(() -> {
Toast.makeText(MainActivity.this, "Resetting & Loading...", Toast.LENGTH_SHORT).show();
});
// Set WebView background to BLACK
webView.setBackgroundColor(0xFF000000);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
settings.setAllowFileAccess(true);
settings.setAllowContentAccess(true);
settings.setAllowFileAccessFromFileURLs(true);
settings.setAllowUniversalAccessFromFileURLs(true);
// Add WebViewClient to catch errors
webView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
Log.e("AeThexOS", "WebView Error: " + error.getDescription());
runOnUiThread(() -> {
new AlertDialog.Builder(MainActivity.this)
.setTitle("WebView Error")
.setMessage("Failed to load: " + request.getUrl() + "\n\nReason: " + error.getDescription())
.setPositiveButton("OK", null)
.show();
});
}
@Override
public void onPageFinished(WebView view, String url) {
Log.i("AeThexOS", "Page Loaded: " + url);
runOnUiThread(() -> {
Toast.makeText(MainActivity.this, "Loaded: " + url, Toast.LENGTH_SHORT).show();
});
}
});
// NUCLEAR CACHE CLEAR
webView.clearCache(true);
webView.clearHistory();
webView.clearFormData();
webView.clearSslPreferences();
// Force load our local test file
webView.loadUrl("file:///android_asset/public/test_red.html");
}
}