From ccbf8eac0cf1fa6c9cddebed594a0dc628ae66fe Mon Sep 17 00:00:00 2001 From: Hzj_jie Date: Tue, 26 Jul 2016 21:32:13 -0700 Subject: [PATCH] Add a network info page (#2187) Add network info page --- frontend/device/generic/device.lua | 15 +++++++++++++++ .../ui/elements/common_settings_menu_table.lua | 1 + frontend/ui/network/manager.lua | 18 ++++++++++++++++++ 3 files changed, 34 insertions(+) diff --git a/frontend/device/generic/device.lua b/frontend/device/generic/device.lua index 335e8ce70..3926c4108 100644 --- a/frontend/device/generic/device.lua +++ b/frontend/device/generic/device.lua @@ -196,4 +196,19 @@ function Device:exit() self.screen:close() end +function Device:retrieveNetworkInfo() + local std_out = io.popen("ifconfig | " .. + "sed -n " .. + "-e 's/ \\+$//g' " .. + "-e 's/ \\+/ /g' " .. + "-e 's/inet6\\? addr: \\?\\([^ ]\\+\\) .*$/\\1/p' " .. + "-e 's/Link encap:\\(.*\\)/\\1/p'", + "r") + if std_out then + local result = std_out:read("*all") + std_out:close() + return result + end +end + return Device diff --git a/frontend/ui/elements/common_settings_menu_table.lua b/frontend/ui/elements/common_settings_menu_table.lua index 3bb045475..585fd47c0 100644 --- a/frontend/ui/elements/common_settings_menu_table.lua +++ b/frontend/ui/elements/common_settings_menu_table.lua @@ -32,6 +32,7 @@ table.insert(common_settings, { sub_item_table = { NetworkMgr:getWifiMenuTable(), NetworkMgr:getProxyMenuTable(), + NetworkMgr:getInfoMenuTable(), } }) table.insert(common_settings, { diff --git a/frontend/ui/network/manager.lua b/frontend/ui/network/manager.lua index 2d0a3ce96..bc1ed343f 100644 --- a/frontend/ui/network/manager.lua +++ b/frontend/ui/network/manager.lua @@ -117,6 +117,24 @@ function NetworkMgr:getProxyMenuTable() } end +function NetworkMgr:getInfoMenuTable() + return { + text = _("Network info"), + callback = function(menu) + if Device.retrieveNetworkInfo then + UIManager:show(InfoMessage:new{ + text = Device:retrieveNetworkInfo(), + }) + else + UIManager:show(InfoMessage:new{ + text = _("Cannot retrieve network info"), + timeout = 3, + }) + end + end + } +end + function NetworkMgr:showNetworkMenu(complete_callback) local info = InfoMessage:new{text = _("Scanning…")} UIManager:show(info)