WiFi app: check "hidden" in EditNetwork

This commit is contained in:
Thomas Farstrike
2025-12-24 17:24:08 +01:00
parent 232a868820
commit 9db5c5e44c
3 changed files with 26 additions and 2 deletions
@@ -155,6 +155,7 @@ class WiFi(Activity):
intent = Intent(activity_class=EditNetwork)
intent.putExtra("selected_ssid", ssid)
intent.putExtra("known_password", WifiService.get_network_password(ssid))
intent.putExtra("hidden", WifiService.get_network_hidden(ssid))
self.startActivityForResult(intent, self.edit_network_result_callback)
def edit_network_result_callback(self, result):
@@ -228,6 +229,7 @@ class EditNetwork(Activity):
password_page.set_flex_flow(lv.FLEX_FLOW.COLUMN)
self.selected_ssid = self.getIntent().extras.get("selected_ssid")
known_password = self.getIntent().extras.get("known_password")
known_hidden = self.getIntent().extras.get("hidden", False)
# SSID:
if self.selected_ssid is None:
@@ -264,6 +266,8 @@ class EditNetwork(Activity):
self.hidden_cb = lv.checkbox(password_page)
self.hidden_cb.set_text("Hidden network (always try connecting)")
self.hidden_cb.set_style_margin_left(5, lv.PART.MAIN)
if known_hidden:
self.hidden_cb.set_state(lv.STATE.CHECKED, True)
# Action buttons:
buttons = lv.obj(password_page)
@@ -14,8 +14,7 @@ CACHE_DURATION_ADC1_MS = 30000 # 30 seconds (cheaper: no WiFi interference)
CACHE_DURATION_ADC2_MS = 600000 # 600 seconds (expensive: requires WiFi disable)
#CACHE_DURATION_ADC2_MS = CACHE_DURATION_ADC1_MS # trigger frequent disconnections for debugging OSUpdate resume
# Or at runtime, do:
# import mpos.battery_voltage
# mpos.battery_voltage.CACHE_DURATION_ADC2_MS = 30000
# import mpos.battery_voltage ; mpos.battery_voltage.CACHE_DURATION_ADC2_MS = 30000
def _is_adc2_pin(pin):
@@ -461,6 +461,27 @@ class WifiService:
return ap.get("password")
return None
@staticmethod
def get_network_hidden(ssid):
"""
Get the hidden flag for a network.
Args:
ssid: Network SSID
Returns:
bool: True if network is hidden, False otherwise
"""
if not WifiService.access_points:
WifiService.access_points = mpos.config.SharedPreferences(
"com.micropythonos.system.wifiservice"
).get_dict("access_points")
ap = WifiService.access_points.get(ssid)
if ap:
return ap.get("hidden", False)
return False
@staticmethod
def save_network(ssid, password, hidden=False):
"""