From 04e17424d0b6b529ca3f9e079daaffc993fa0c4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Fern=C3=A1ndez?= Date: Wed, 6 Feb 2019 15:51:50 +0100 Subject: [PATCH] display network settings based on device capabilities + fix android basic network info --- frontend/device/android/device.lua | 13 ++++++++++++- frontend/device/cervantes/device.lua | 1 + frontend/device/generic/device.lua | 2 ++ frontend/device/kobo/device.lua | 1 + frontend/device/pocketbook/device.lua | 1 + frontend/device/sdl/device.lua | 3 +++ frontend/device/sony-prstux/device.lua | 1 + frontend/ui/network/manager.lua | 21 +++++++++++++-------- 8 files changed, 34 insertions(+), 9 deletions(-) diff --git a/frontend/device/android/device.lua b/frontend/device/android/device.lua index 74ac7c529..274540991 100644 --- a/frontend/device/android/device.lua +++ b/frontend/device/android/device.lua @@ -1,9 +1,11 @@ local Generic = require("device/generic/device") -local _, android = pcall(require, "android") +local A, android = pcall(require, "android") -- luacheck: ignore local ffi = require("ffi") local C = ffi.C local lfs = require("libs/libkoreader-lfs") local logger = require("logger") +local _ = require("gettext") +local T = require("ffi/util").template local function yes() return true end local function no() return false end @@ -90,6 +92,15 @@ function Device:initNetworkManager(NetworkMgr) end end +function Device:retrieveNetworkInfo() + local ssid, ip, gw = android.getNetworkInfo() + if ip == 0 or gw == 0 then + return _("Not connected") + else + return T(_("Connected to %1\n IP address: %2\n gateway: %3"), ssid, ip, gw) + end +end + function Device:exit() android.log_name = 'luajit-launcher' android.LOGI("Finishing luajit launcher main activity"); diff --git a/frontend/device/cervantes/device.lua b/frontend/device/cervantes/device.lua index 5e72768ac..d7ba06dbe 100644 --- a/frontend/device/cervantes/device.lua +++ b/frontend/device/cervantes/device.lua @@ -40,6 +40,7 @@ local Cervantes = Generic:new{ touch_probe_ev_epoch_time = true, hasOTAUpdates = yes, hasKeys = yes, + hasWifiManager = yes, -- do we support usb mass storage? canToggleMassStorage = function() return isMassStorageSupported() end, diff --git a/frontend/device/generic/device.lua b/frontend/device/generic/device.lua index 8639586de..8ed4ca657 100644 --- a/frontend/device/generic/device.lua +++ b/frontend/device/generic/device.lua @@ -21,6 +21,8 @@ local Device = { hasKeyboard = no, hasKeys = no, hasDPad = no, + hasWifiToggle = yes, + hasWifiManager = no, isTouchDevice = no, hasFrontlight = no, needsTouchScreenProbe = no, diff --git a/frontend/device/kobo/device.lua b/frontend/device/kobo/device.lua index b05729b75..40b86bf25 100644 --- a/frontend/device/kobo/device.lua +++ b/frontend/device/kobo/device.lua @@ -25,6 +25,7 @@ local Kobo = Generic:new{ isTouchDevice = yes, -- all of them are hasBGRFrameBuffer = yes, -- True when >16bpp (i.e., on current FW) hasOTAUpdates = yes, + hasWifiManager = yes, -- most Kobos have X/Y switched for the touch screen touch_switch_xy = true, diff --git a/frontend/device/pocketbook/device.lua b/frontend/device/pocketbook/device.lua index dcce339df..f75855c14 100644 --- a/frontend/device/pocketbook/device.lua +++ b/frontend/device/pocketbook/device.lua @@ -55,6 +55,7 @@ local PocketBook = Generic:new{ isPocketBook = yes, isInBackGround = false, hasOTAUpdates = yes, + hasWifiToggle = no, } function PocketBook:init() diff --git a/frontend/device/sdl/device.lua b/frontend/device/sdl/device.lua index 4384c99f0..4d274d6a3 100644 --- a/frontend/device/sdl/device.lua +++ b/frontend/device/sdl/device.lua @@ -12,6 +12,7 @@ local Device = Generic:new{ hasKeyboard = yes, hasKeys = yes, hasDPad = yes, + hasWifiToggle = no, isTouchDevice = yes, needsScreenRefreshAfterResume = no, hasColorScreen = yes, @@ -27,6 +28,8 @@ local Emulator = Device:new{ isEmulator = yes, hasEinkScreen = yes, hasFrontlight = yes, + hasWifiToggle = yes, + hasWifiManager = yes, } local Linux = Device:new{ diff --git a/frontend/device/sony-prstux/device.lua b/frontend/device/sony-prstux/device.lua index d55d3fef0..2022a1c67 100644 --- a/frontend/device/sony-prstux/device.lua +++ b/frontend/device/sony-prstux/device.lua @@ -11,6 +11,7 @@ local SonyPRSTUX = Generic:new{ isSonyPRSTUX = yes, hasKeys = yes, hasOTAUpdates = yes, + hasWifiManager = yes, } diff --git a/frontend/ui/network/manager.lua b/frontend/ui/network/manager.lua index 8286c0c80..92f130079 100644 --- a/frontend/ui/network/manager.lua +++ b/frontend/ui/network/manager.lua @@ -129,7 +129,7 @@ end function NetworkMgr:getWifiMenuTable() return { text = _("Wi-Fi connection"), - enabled_func = function() return Device:isAndroid() or Device:isCervantes() or Device:isKindle() or Device:isKobo() or Device:isSonyPRSTUX() end, + enabled_func = function() return Device:hasWifiToggle() and not Device:isEmulator() end, checked_func = function() return NetworkMgr:isWifiOn() end, callback = function(touchmenu_instance) local wifi_status = NetworkMgr:isWifiOn() and NetworkMgr:isConnected() @@ -195,7 +195,7 @@ function NetworkMgr:getRestoreMenuTable() return { text = _("Automatically restore Wi-Fi connection after resume"), checked_func = function() return G_reader_settings:isTrue("auto_restore_wifi") end, - enabled_func = function() return Device:isKobo() or Device:isCervantes() end, + enabled_func = function() return Device:hasWifiManager() and not Device:isEmulator() end, callback = function() G_reader_settings:flipNilOrFalse("auto_restore_wifi") end, } end @@ -221,7 +221,6 @@ function NetworkMgr:getInfoMenuTable() } end - function NetworkMgr:getBeforeWifiActionMenuTable() local wifi_enable_action_setting = G_reader_settings:readSetting("wifi_enable_action") or "prompt" local wifi_enable_actions = { @@ -257,18 +256,24 @@ function NetworkMgr:getDismissScanMenuTable() return { text = _("Dismiss Wi-Fi scan popup after connection"), checked_func = function() return G_reader_settings:nilOrTrue("auto_dismiss_wifi_scan") end, - --enabled_func = function() return Device:isKobo() end, + enabled_func = function() return Device:hasWifiManager() and not Device:isEmulator() end, callback = function() G_reader_settings:flipNilOrTrue("auto_dismiss_wifi_scan") end, } end function NetworkMgr:getMenuTable(common_settings) - common_settings.network_wifi = self:getWifiMenuTable() + if Device:hasWifiToggle() then + common_settings.network_wifi = self:getWifiMenuTable() + end + common_settings.network_proxy = self:getProxyMenuTable() - common_settings.network_restore = self:getRestoreMenuTable() common_settings.network_info = self:getInfoMenuTable() - common_settings.network_before_wifi_action = self:getBeforeWifiActionMenuTable() - common_settings.network_dismiss_scan = self:getDismissScanMenuTable() + + if Device:hasWifiManager() then + common_settings.network_restore = self:getRestoreMenuTable() + common_settings.network_dismiss_scan = self:getDismissScanMenuTable() + common_settings.network_before_wifi_action = self:getBeforeWifiActionMenuTable() + end end function NetworkMgr:showNetworkMenu(complete_callback)