aboutsummaryrefslogtreecommitdiffstats
path: root/android/app/src/main/java/com/zeroxf7
diff options
context:
space:
mode:
Diffstat (limited to 'android/app/src/main/java/com/zeroxf7')
-rw-r--r--android/app/src/main/java/com/zeroxf7/solotool/MainActivity.java103
1 files changed, 103 insertions, 0 deletions
diff --git a/android/app/src/main/java/com/zeroxf7/solotool/MainActivity.java b/android/app/src/main/java/com/zeroxf7/solotool/MainActivity.java
new file mode 100644
index 0000000..4861bb5
--- /dev/null
+++ b/android/app/src/main/java/com/zeroxf7/solotool/MainActivity.java
@@ -0,0 +1,103 @@
+package com.zeroxf7.solotool;
+import android.net.DnsResolver;
+import android.net.NetworkRequest;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowInsetsController;
+import android.webkit.WebChromeClient;
+import android.webkit.WebResourceRequest;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
+import android.widget.ProgressBar;
+import android.widget.Toast;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.view.WindowCompat;
+import androidx.core.view.WindowInsetsCompat;
+import androidx.core.view.WindowInsetsControllerCompat;
+
+public class MainActivity extends AppCompatActivity {
+
+ private WebView webView;
+ private ProgressBar progressBar;
+ private final String url = "http://apollo.0xf7.com:80"; // Hardcoded URL
+ private int retryCount = 0;
+ private final int maxRetries = 100;
+
+ private void hideSystemUI() {
+ WindowInsetsControllerCompat windowInsetsController =
+ WindowCompat.getInsetsController(getWindow(), getWindow().getDecorView());
+ // Configure the behavior of the hidden system bars.
+ windowInsetsController.setSystemBarsBehavior(
+ WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
+ );
+ windowInsetsController.hide(WindowInsetsCompat.Type.systemBars());
+ }
+
+ @Override
+ public void onWindowFocusChanged(boolean hasFocus) {
+ super.onWindowFocusChanged(hasFocus);
+ if (hasFocus) {
+ hideSystemUI(); // Reapply fullscreen when the window gains focus.
+ }
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ // Request no title for your activity
+ requestWindowFeature(Window.FEATURE_NO_TITLE);
+
+ // Make the app fullscreen
+ hideSystemUI();
+
+ setContentView(R.layout.activity_main);
+
+ // Initialize the WebView and ProgressBar
+ webView = findViewById(R.id.webView);
+ progressBar = findViewById(R.id.progressBar);
+
+ // Set WebView settings
+ webView.getSettings().setJavaScriptEnabled(true);
+ webView.setWebViewClient(new WebViewClient() {
+ @Override
+ public void onPageStarted(WebView view, String url, android.graphics.Bitmap favicon) {
+ super.onPageStarted(view, url, favicon);
+ progressBar.setVisibility(View.VISIBLE); // Show the progress bar when loading starts
+ }
+
+ @Override
+ public void onPageFinished(WebView view, String url) {
+ super.onPageFinished(view, url);
+ progressBar.setVisibility(View.GONE); // Hide the progress bar when loading finishes
+ }
+
+ @Override
+ public void onReceivedError(WebView view, WebResourceRequest request, android.webkit.WebResourceError error) {
+ super.onReceivedError(view, request, error);
+ handleLoadError(error); // Handle error and retry
+ }
+ });
+
+ // Load the URL
+ loadUrl(url);
+ }
+
+ private void loadUrl(String url) {
+ webView.loadUrl(url);
+ }
+
+ private void handleLoadError(android.webkit.WebResourceError error) {
+ if (retryCount < maxRetries) {
+ retryCount++;
+ Toast.makeText(this, "Loading failed (" + retryCount + "/" + maxRetries + ")", Toast.LENGTH_SHORT).show();
+ // Retry after 3 seconds
+ webView.postDelayed(() -> loadUrl(url), 3000);
+ } else {
+ Toast.makeText(this, "Failed to load the page. Please check your connection.", Toast.LENGTH_LONG).show();
+ }
+ }
+}