From 45289ab66615cf826b79425f05cfe99dd8c55efd Mon Sep 17 00:00:00 2001 From: Aadin Date: Sun, 11 Oct 2026 04:38:04 +0530 Subject: [PATCH 01/20] refactor(browser): keep a list of devices in the emulator device list --- src/plugins/browser/android/com/foxdebug/browser/Emulator.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/browser/android/com/foxdebug/browser/Emulator.java b/src/plugins/browser/android/com/foxdebug/browser/Emulator.java index adb65f2b1f..686c86d7a1 100644 --- a/src/plugins/browser/android/com/foxdebug/browser/Emulator.java +++ b/src/plugins/browser/android/com/foxdebug/browser/Emulator.java @@ -367,6 +367,7 @@ public void deselect() { class DeviceListView extends ScrollView { DeviceView selectedDeviceView; + ArrayList devices = new ArrayList(); LinearLayout deviceListLayout; Callback callback; Context context; From 64b915d63b64d568adf35e8c4f12d512ccf2e751 Mon Sep 17 00:00:00 2001 From: Aadin Date: Sun, 11 Oct 2026 04:38:11 +0530 Subject: [PATCH 02/20] refactor(browser): register each device when added to the list --- src/plugins/browser/android/com/foxdebug/browser/Emulator.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/browser/android/com/foxdebug/browser/Emulator.java b/src/plugins/browser/android/com/foxdebug/browser/Emulator.java index 686c86d7a1..be0d0faf42 100644 --- a/src/plugins/browser/android/com/foxdebug/browser/Emulator.java +++ b/src/plugins/browser/android/com/foxdebug/browser/Emulator.java @@ -408,6 +408,7 @@ public void select(Device device) { } public void add(Device device) { + devices.add(device); DeviceView deviceView = new DeviceView(context, device, theme); deviceListLayout.addView(deviceView); From fc7e8d94bcc542e7ae87ae9aa3d4e2614ba626b1 Mon Sep 17 00:00:00 2001 From: Aadin Date: Sun, 11 Oct 2026 04:38:19 +0530 Subject: [PATCH 03/20] feat(browser): apply the saved default preview size once layout is ready --- src/plugins/browser/android/com/foxdebug/browser/Emulator.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/browser/android/com/foxdebug/browser/Emulator.java b/src/plugins/browser/android/com/foxdebug/browser/Emulator.java index be0d0faf42..1687334c89 100644 --- a/src/plugins/browser/android/com/foxdebug/browser/Emulator.java +++ b/src/plugins/browser/android/com/foxdebug/browser/Emulator.java @@ -163,6 +163,8 @@ public void onGlobalLayout() { if (listener != null) { listener.onChange(iWidth, correctedHeight, 1); } + + restoreDefaultDevice(); } } ); From fced123a35764e9096104b691508a343062f4cb2 Mon Sep 17 00:00:00 2001 From: Aadin Date: Sun, 11 Oct 2026 04:38:30 +0530 Subject: [PATCH 04/20] feat(browser): save and restore a default device preview size --- .../com/foxdebug/browser/Emulator.java | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/src/plugins/browser/android/com/foxdebug/browser/Emulator.java b/src/plugins/browser/android/com/foxdebug/browser/Emulator.java index 1687334c89..862ae033f1 100644 --- a/src/plugins/browser/android/com/foxdebug/browser/Emulator.java +++ b/src/plugins/browser/android/com/foxdebug/browser/Emulator.java @@ -304,6 +304,81 @@ private void selectDevice(Device device) { listener.onChange(width, height, maxScale / 100f); } + public static boolean hasDefault(Context context) { + return context + .getSharedPreferences("acode_browser", Context.MODE_PRIVATE) + .getBoolean("default_set", false); + } + + public static void clearDefault(Context context) { + context + .getSharedPreferences("acode_browser", Context.MODE_PRIVATE) + .edit() + .putBoolean("default_set", false) + .apply(); + } + + public void saveAsDefault() { + context + .getSharedPreferences("acode_browser", Context.MODE_PRIVATE) + .edit() + .putBoolean("default_set", true) + .putInt("default_width", getWidthProgress()) + .putInt("default_height", getHeightProgress()) + .putInt("default_scale", seekBars.get("scale").getProgress()) + .putString( + "default_device", + selectedDevice != null ? selectedDevice.name : "Custom" + ) + .apply(); + } + + private void restoreDefaultDevice() { + if (!hasDefault(context)) return; + + android.content.SharedPreferences prefs = context.getSharedPreferences( + "acode_browser", + Context.MODE_PRIVATE + ); + SeekBar widthSeekBar = seekBars.get("width"); + SeekBar heightSeekBar = seekBars.get("height"); + SeekBar scaleSeekBar = seekBars.get("scale"); + + int width = Math.min( + prefs.getInt("default_width", widthSeekBar.getMax()), + widthSeekBar.getMax() + ); + int height = Math.min( + prefs.getInt("default_height", heightSeekBar.getMax()), + heightSeekBar.getMax() + ); + + widthSeekBar.setProgress(width); + heightSeekBar.setProgress(height); + setMaxScale(width, height); + int scale = Math.min( + prefs.getInt("default_scale", 100), + scaleSeekBar.getMax() + ); + scaleSeekBar.setProgress(scale); + + String name = prefs.getString("default_device", "Custom"); + for (Device device : deviceListView.devices) { + if (device.name.equals(name)) { + if (deviceListView.selectedDeviceView != null) { + deviceListView.selectedDeviceView.deselect(); + } + deviceListView.select(device); + selectedDevice = device; + break; + } + } + + if (listener != null) { + listener.onChange(width, height, scale / 100f); + } + } + private void setMaxScale(int width, int height) { SeekBar scaleSeekBar = seekBars.get("scale"); SeekBar widthSeekBar = seekBars.get("width"); From 91f3ca2154a84fbacb6a86e8739e3daec77215d1 Mon Sep 17 00:00:00 2001 From: Aadin Date: Sun, 11 Oct 2026 04:38:38 +0530 Subject: [PATCH 05/20] feat(browser): add "Set as Default" and "Clear Default" menu items --- src/plugins/browser/android/com/foxdebug/browser/Browser.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/plugins/browser/android/com/foxdebug/browser/Browser.java b/src/plugins/browser/android/com/foxdebug/browser/Browser.java index f12597159b..fcf504b054 100644 --- a/src/plugins/browser/android/com/foxdebug/browser/Browser.java +++ b/src/plugins/browser/android/com/foxdebug/browser/Browser.java @@ -236,6 +236,10 @@ private void createMenu() { menu.addItem(Ui.Icons.DEVICES, "Devices", false); menu.addItem(Ui.Icons.NO_CACHE, "Disable Cache", false); menu.addItem(Ui.Icons.TERMINAL, "Console", false); + menu.addItem(Ui.Icons.TUNE, "Set as Default"); + menu.addItem(Ui.Icons.REFRESH, "Clear Default"); + menu.setVisible("Set as Default", false); + menu.setVisible("Clear Default", false); menu.addItem(Ui.Icons.OPEN_IN_BROWSER, "Open in Browser"); menu.addItem(Ui.Icons.EXIT, "Exit"); From 615296b4eb2bec4f94002eb79436fadd4a29753c Mon Sep 17 00:00:00 2001 From: Aadin Date: Sun, 11 Oct 2026 04:38:46 +0530 Subject: [PATCH 06/20] feat(browser): handle "Set as Default" and "Clear Default" actions --- .../android/com/foxdebug/browser/Browser.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/plugins/browser/android/com/foxdebug/browser/Browser.java b/src/plugins/browser/android/com/foxdebug/browser/Browser.java index fcf504b054..17ddf77670 100644 --- a/src/plugins/browser/android/com/foxdebug/browser/Browser.java +++ b/src/plugins/browser/android/com/foxdebug/browser/Browser.java @@ -288,6 +288,24 @@ public void onGlobalLayout() { case "Console": setConsoleVisible(checked); break; + case "Set as Default": + if (deviceEmulator != null) { + deviceEmulator.saveAsDefault(); + Toast + .makeText( + context, + "Saved as default preview", + Toast.LENGTH_SHORT + ) + .show(); + } + break; + case "Clear Default": + Emulator.clearDefault(context); + Toast + .makeText(context, "Default cleared", Toast.LENGTH_SHORT) + .show(); + break; case "Disable Cache": webView .getSettings() From 8fd2c319420d39e4f3ae140f03b7eca509d61b65 Mon Sep 17 00:00:00 2001 From: Aadin Date: Sun, 11 Oct 2026 04:38:54 +0530 Subject: [PATCH 07/20] feat(browser): show default menu items only while Devices mode is on --- src/plugins/browser/android/com/foxdebug/browser/Browser.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/browser/android/com/foxdebug/browser/Browser.java b/src/plugins/browser/android/com/foxdebug/browser/Browser.java index 17ddf77670..7412d64d75 100644 --- a/src/plugins/browser/android/com/foxdebug/browser/Browser.java +++ b/src/plugins/browser/android/com/foxdebug/browser/Browser.java @@ -254,6 +254,7 @@ public void onSelect(String action, Boolean checked) { } emulator = checked; + updateDefaultItems(checked); if (checked) { setDesktopMode(true); setConsoleVisible(false); From 4791cba66cbc22f8a32c0870f128b70b544bc14b Mon Sep 17 00:00:00 2001 From: Aadin Date: Sun, 11 Oct 2026 04:39:05 +0530 Subject: [PATCH 08/20] feat(browser): open the preview in Devices mode when a default is set --- .../android/com/foxdebug/browser/Browser.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/plugins/browser/android/com/foxdebug/browser/Browser.java b/src/plugins/browser/android/com/foxdebug/browser/Browser.java index 7412d64d75..0098f96288 100644 --- a/src/plugins/browser/android/com/foxdebug/browser/Browser.java +++ b/src/plugins/browser/android/com/foxdebug/browser/Browser.java @@ -331,6 +331,46 @@ public void onGlobalLayout() { ); } + private void updateDefaultItems(boolean emulatorOn) { + menu.setVisible("Set as Default", emulatorOn); + menu.setVisible("Clear Default", emulatorOn); + } + + private void restoreEmulator() { + if (onlyConsole) return; + if (!Emulator.hasDefault(context)) return; + + webView + .getViewTreeObserver() + .addOnGlobalLayoutListener( + new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + if (webView.getMeasuredWidth() == 0) return; + webView.getViewTreeObserver().removeOnGlobalLayoutListener(this); + + if (deviceEmulator == null) { + createDeviceEmulatorLayout(); + } + + emulator = true; + menu.setChecked("Devices", true); + updateDefaultItems(true); + setDesktopMode(true); + setConsoleVisible(false); + menu.setChecked("Console", false); + menu.setVisible("Console", false); + addView(deviceEmulator); + fitWebViewTo( + deviceEmulator.getWidthProgress(), + deviceEmulator.getHeightProgress(), + deviceEmulator.getScaleProgress() + ); + } + } + ); + } + private void createDeviceEmulatorLayout() { Browser browser = this; deviceEmulator = new Emulator(context, theme); From bbf48d8b39769574ee416429954e0b7a93ca7c9d Mon Sep 17 00:00:00 2001 From: Aadin Date: Sun, 11 Oct 2026 04:39:12 +0530 Subject: [PATCH 09/20] feat(browser): restore the default preview mode on startup --- src/plugins/browser/android/com/foxdebug/browser/Browser.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/browser/android/com/foxdebug/browser/Browser.java b/src/plugins/browser/android/com/foxdebug/browser/Browser.java index 0098f96288..7cfea53fb4 100644 --- a/src/plugins/browser/android/com/foxdebug/browser/Browser.java +++ b/src/plugins/browser/android/com/foxdebug/browser/Browser.java @@ -227,6 +227,7 @@ public void onDownloadStart(String url, String userAgent, createMenu(); addView(titleLayout); addView(webViewContainer); + restoreEmulator(); } private void createMenu() { From 28d28bc8722af5b872083c77cd970e0ca5003faa Mon Sep 17 00:00:00 2001 From: Aadin Date: Sun, 11 Oct 2026 09:46:06 +0530 Subject: [PATCH 10/20] refactor(browser): allow applying desktop mode without reloading --- src/plugins/browser/android/com/foxdebug/browser/Browser.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/plugins/browser/android/com/foxdebug/browser/Browser.java b/src/plugins/browser/android/com/foxdebug/browser/Browser.java index 7cfea53fb4..80d3fda6fa 100644 --- a/src/plugins/browser/android/com/foxdebug/browser/Browser.java +++ b/src/plugins/browser/android/com/foxdebug/browser/Browser.java @@ -403,6 +403,10 @@ private void setTextViewProperties(TextView textView, int height) { } private void setDesktopMode(boolean enabled) { + setDesktopMode(enabled, true); + } + + private void setDesktopMode(boolean enabled, boolean reload) { int width = 0; int height = 0; WebSettings webSettings = webView.getSettings(); From 752a64c4844dba30c6a8c594b0aa3ce40a4e5f66 Mon Sep 17 00:00:00 2001 From: Aadin Date: Sun, 11 Oct 2026 09:46:13 +0530 Subject: [PATCH 11/20] refactor(browser): make the reload in setDesktopMode optional --- src/plugins/browser/android/com/foxdebug/browser/Browser.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/browser/android/com/foxdebug/browser/Browser.java b/src/plugins/browser/android/com/foxdebug/browser/Browser.java index 80d3fda6fa..bb7a84a596 100644 --- a/src/plugins/browser/android/com/foxdebug/browser/Browser.java +++ b/src/plugins/browser/android/com/foxdebug/browser/Browser.java @@ -428,7 +428,9 @@ private void setDesktopMode(boolean enabled, boolean reload) { webSettings.setLoadWithOverviewMode(enabled); webSettings.setSupportZoom(enabled); webSettings.setBuiltInZoomControls(enabled); - webView.reload(); + if (reload) { + webView.reload(); + } } public void setDesktopMode() { From 477aedc7f9135339cd3ff9091f48ab5c95d6a0a6 Mon Sep 17 00:00:00 2001 From: Aadin Date: Sun, 11 Oct 2026 09:46:20 +0530 Subject: [PATCH 12/20] fix(browser): apply saved desktop mode before the first load to avoid a reload --- src/plugins/browser/android/com/foxdebug/browser/Browser.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/plugins/browser/android/com/foxdebug/browser/Browser.java b/src/plugins/browser/android/com/foxdebug/browser/Browser.java index bb7a84a596..f407b8e382 100644 --- a/src/plugins/browser/android/com/foxdebug/browser/Browser.java +++ b/src/plugins/browser/android/com/foxdebug/browser/Browser.java @@ -341,6 +341,10 @@ private void restoreEmulator() { if (onlyConsole) return; if (!Emulator.hasDefault(context)) return; + // Apply the saved mode before the first navigation so the page is not + // loaded with the wrong user agent and then reloaded. + setDesktopMode(true, false); + webView .getViewTreeObserver() .addOnGlobalLayoutListener( From e0a18dbf29ce94190778a7629b3783c24c57b256 Mon Sep 17 00:00:00 2001 From: Aadin Date: Sun, 11 Oct 2026 09:46:27 +0530 Subject: [PATCH 13/20] fix(browser): only apply dimensions after layout, not desktop mode --- src/plugins/browser/android/com/foxdebug/browser/Browser.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/plugins/browser/android/com/foxdebug/browser/Browser.java b/src/plugins/browser/android/com/foxdebug/browser/Browser.java index f407b8e382..fc8687255a 100644 --- a/src/plugins/browser/android/com/foxdebug/browser/Browser.java +++ b/src/plugins/browser/android/com/foxdebug/browser/Browser.java @@ -361,7 +361,6 @@ public void onGlobalLayout() { emulator = true; menu.setChecked("Devices", true); updateDefaultItems(true); - setDesktopMode(true); setConsoleVisible(false); menu.setChecked("Console", false); menu.setVisible("Console", false); From 5a534528fffc6663f1ef5b37384f316e4f4b1a5f Mon Sep 17 00:00:00 2001 From: Aadin Date: Sun, 11 Oct 2026 18:53:53 +0530 Subject: [PATCH 14/20] fix(browser): re-fit saved presets to the current screen on restore --- .../com/foxdebug/browser/Emulator.java | 81 ++++++++++++------- 1 file changed, 54 insertions(+), 27 deletions(-) diff --git a/src/plugins/browser/android/com/foxdebug/browser/Emulator.java b/src/plugins/browser/android/com/foxdebug/browser/Emulator.java index 862ae033f1..25f0d70eae 100644 --- a/src/plugins/browser/android/com/foxdebug/browser/Emulator.java +++ b/src/plugins/browser/android/com/foxdebug/browser/Emulator.java @@ -333,6 +333,12 @@ public void saveAsDefault() { .apply(); } + private Runnable restoredListener; + + public void setRestoredListener(Runnable listener) { + restoredListener = listener; + } + private void restoreDefaultDevice() { if (!hasDefault(context)) return; @@ -343,39 +349,60 @@ private void restoreDefaultDevice() { SeekBar widthSeekBar = seekBars.get("width"); SeekBar heightSeekBar = seekBars.get("height"); SeekBar scaleSeekBar = seekBars.get("scale"); - - int width = Math.min( - prefs.getInt("default_width", widthSeekBar.getMax()), - widthSeekBar.getMax() - ); - int height = Math.min( - prefs.getInt("default_height", heightSeekBar.getMax()), - heightSeekBar.getMax() - ); - - widthSeekBar.setProgress(width); - heightSeekBar.setProgress(height); - setMaxScale(width, height); - int scale = Math.min( - prefs.getInt("default_scale", 100), - scaleSeekBar.getMax() - ); - scaleSeekBar.setProgress(scale); - String name = prefs.getString("default_device", "Custom"); + + Device preset = null; for (Device device : deviceListView.devices) { - if (device.name.equals(name)) { - if (deviceListView.selectedDeviceView != null) { - deviceListView.selectedDeviceView.deselect(); - } - deviceListView.select(device); - selectedDevice = device; + if (device.id != customDevice.id && device.name.equals(name)) { + preset = device; break; } } - if (listener != null) { - listener.onChange(width, height, scale / 100f); + if (preset != null && listener != null) { + // A preset is re-fitted to the current screen, so it keeps its shape if + // the screen size changed since it was saved (rotation, split-screen, + // foldables). Only the scale is restored from the saved value. + if (deviceListView.selectedDeviceView != null) { + deviceListView.selectedDeviceView.deselect(); + } + deviceListView.select(preset); + selectDevice(preset); + + int scale = Math.min( + prefs.getInt("default_scale", scaleSeekBar.getMax()), + scaleSeekBar.getMax() + ); + scaleSeekBar.setProgress(scale); + listener.onChange(getWidthProgress(), getHeightProgress(), scale / 100f); + } else { + // Custom sizes are restored from the saved width/height. + int width = Math.min( + prefs.getInt("default_width", widthSeekBar.getMax()), + widthSeekBar.getMax() + ); + int height = Math.min( + prefs.getInt("default_height", heightSeekBar.getMax()), + heightSeekBar.getMax() + ); + + widthSeekBar.setProgress(width); + heightSeekBar.setProgress(height); + setMaxScale(width, height); + int scale = Math.min( + prefs.getInt("default_scale", 100), + scaleSeekBar.getMax() + ); + scaleSeekBar.setProgress(scale); + selectedDevice = customDevice; + + if (listener != null) { + listener.onChange(width, height, scale / 100f); + } + } + + if (restoredListener != null) { + restoredListener.run(); } } From b43da8f4fe8b8199733d98e8639ee8e7f476a863 Mon Sep 17 00:00:00 2001 From: Aadin Date: Sun, 11 Oct 2026 18:54:01 +0530 Subject: [PATCH 15/20] fix(browser): reload once after the saved size is applied --- .../browser/android/com/foxdebug/browser/Browser.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/plugins/browser/android/com/foxdebug/browser/Browser.java b/src/plugins/browser/android/com/foxdebug/browser/Browser.java index fc8687255a..4839de7f99 100644 --- a/src/plugins/browser/android/com/foxdebug/browser/Browser.java +++ b/src/plugins/browser/android/com/foxdebug/browser/Browser.java @@ -356,6 +356,14 @@ public void onGlobalLayout() { if (deviceEmulator == null) { createDeviceEmulatorLayout(); + deviceEmulator.setRestoredListener( + new Runnable() { + @Override + public void run() { + reloadAfterLayout(); + } + } + ); } emulator = true; From c7fcd738230039f8d50297e2674dc434a748e07e Mon Sep 17 00:00:00 2001 From: Aadin Date: Sun, 11 Oct 2026 18:54:10 +0530 Subject: [PATCH 16/20] fix(browser): don't resize the webview before the emulator is set up --- .../browser/android/com/foxdebug/browser/Browser.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/plugins/browser/android/com/foxdebug/browser/Browser.java b/src/plugins/browser/android/com/foxdebug/browser/Browser.java index 4839de7f99..9fd8d8240f 100644 --- a/src/plugins/browser/android/com/foxdebug/browser/Browser.java +++ b/src/plugins/browser/android/com/foxdebug/browser/Browser.java @@ -373,11 +373,8 @@ public void run() { menu.setChecked("Console", false); menu.setVisible("Console", false); addView(deviceEmulator); - fitWebViewTo( - deviceEmulator.getWidthProgress(), - deviceEmulator.getHeightProgress(), - deviceEmulator.getScaleProgress() - ); + // The emulator sets up its sliders on a later layout pass and then + // applies the saved size itself, so the webview is not resized here. } } ); From 4c629f7f8695513090928de6cc678a830903be90 Mon Sep 17 00:00:00 2001 From: Aadin Date: Sun, 11 Oct 2026 18:54:18 +0530 Subject: [PATCH 17/20] fix(browser): add reloadAfterLayout helper, only when a page was requested --- .../android/com/foxdebug/browser/Browser.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/plugins/browser/android/com/foxdebug/browser/Browser.java b/src/plugins/browser/android/com/foxdebug/browser/Browser.java index 9fd8d8240f..dada9dcb96 100644 --- a/src/plugins/browser/android/com/foxdebug/browser/Browser.java +++ b/src/plugins/browser/android/com/foxdebug/browser/Browser.java @@ -337,6 +337,24 @@ private void updateDefaultItems(boolean emulatorOn) { menu.setVisible("Clear Default", emulatorOn); } + private void reloadAfterLayout() { + // If no page was requested yet, the first load will already happen at + // the saved size, so there is nothing to reload. + if (url.isEmpty()) return; + + webView + .getViewTreeObserver() + .addOnGlobalLayoutListener( + new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + webView.getViewTreeObserver().removeOnGlobalLayoutListener(this); + webView.reload(); + } + } + ); + } + private void restoreEmulator() { if (onlyConsole) return; if (!Emulator.hasDefault(context)) return; From 1d23d80c47ca5b8d3d88883b9e9ea3175238746c Mon Sep 17 00:00:00 2001 From: Aadin Date: Sun, 11 Oct 2026 18:54:27 +0530 Subject: [PATCH 18/20] fix(browser): show "Clear Default" only when a default is saved --- .../browser/android/com/foxdebug/browser/Browser.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/plugins/browser/android/com/foxdebug/browser/Browser.java b/src/plugins/browser/android/com/foxdebug/browser/Browser.java index dada9dcb96..cfcd2338b6 100644 --- a/src/plugins/browser/android/com/foxdebug/browser/Browser.java +++ b/src/plugins/browser/android/com/foxdebug/browser/Browser.java @@ -334,7 +334,10 @@ public void onGlobalLayout() { private void updateDefaultItems(boolean emulatorOn) { menu.setVisible("Set as Default", emulatorOn); - menu.setVisible("Clear Default", emulatorOn); + menu.setVisible( + "Clear Default", + emulatorOn && Emulator.hasDefault(context) + ); } private void reloadAfterLayout() { From bf0ec37c1054b41e9d525c18460bc3dbf6a55651 Mon Sep 17 00:00:00 2001 From: Aadin Date: Sun, 11 Oct 2026 18:54:34 +0530 Subject: [PATCH 19/20] fix(browser): refresh default menu items after Set as Default --- src/plugins/browser/android/com/foxdebug/browser/Browser.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/browser/android/com/foxdebug/browser/Browser.java b/src/plugins/browser/android/com/foxdebug/browser/Browser.java index cfcd2338b6..b032aef714 100644 --- a/src/plugins/browser/android/com/foxdebug/browser/Browser.java +++ b/src/plugins/browser/android/com/foxdebug/browser/Browser.java @@ -293,6 +293,7 @@ public void onGlobalLayout() { case "Set as Default": if (deviceEmulator != null) { deviceEmulator.saveAsDefault(); + updateDefaultItems(emulator); Toast .makeText( context, From 7f4afd86be8b990f2432cee62587a09e229bc76a Mon Sep 17 00:00:00 2001 From: Aadin Date: Sun, 11 Oct 2026 18:54:41 +0530 Subject: [PATCH 20/20] fix(browser): refresh default menu items after Clear Default --- src/plugins/browser/android/com/foxdebug/browser/Browser.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/browser/android/com/foxdebug/browser/Browser.java b/src/plugins/browser/android/com/foxdebug/browser/Browser.java index b032aef714..bd0d4ab93d 100644 --- a/src/plugins/browser/android/com/foxdebug/browser/Browser.java +++ b/src/plugins/browser/android/com/foxdebug/browser/Browser.java @@ -305,6 +305,7 @@ public void onGlobalLayout() { break; case "Clear Default": Emulator.clearDefault(context); + updateDefaultItems(emulator); Toast .makeText(context, "Default cleared", Toast.LENGTH_SHORT) .show();