Upload modified plugin files that correct .svg rendering issue as well as adding feature for auto-enter on correct PIN
This commit is contained in:
BIN
pinpadlockscreen.koplugin/.DS_Store
vendored
Normal file
BIN
pinpadlockscreen.koplugin/.DS_Store
vendored
Normal file
Binary file not shown.
0
pinpadlockscreen.koplugin/_meta.lua
Normal file → Executable file
0
pinpadlockscreen.koplugin/_meta.lua
Normal file → Executable file
0
pinpadlockscreen.koplugin/main.lua
Normal file → Executable file
0
pinpadlockscreen.koplugin/main.lua
Normal file → Executable file
0
pinpadlockscreen.koplugin/menu/menuentryitems.lua
Normal file → Executable file
0
pinpadlockscreen.koplugin/menu/menuentryitems.lua
Normal file → Executable file
0
pinpadlockscreen.koplugin/menu/pinpadmenuentry.lua
Normal file → Executable file
0
pinpadlockscreen.koplugin/menu/pinpadmenuentry.lua
Normal file → Executable file
BIN
pinpadlockscreen.koplugin/ui/.DS_Store
vendored
Normal file
BIN
pinpadlockscreen.koplugin/ui/.DS_Store
vendored
Normal file
Binary file not shown.
0
pinpadlockscreen.koplugin/ui/icons/lock.svg
Normal file → Executable file
0
pinpadlockscreen.koplugin/ui/icons/lock.svg
Normal file → Executable file
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
15
pinpadlockscreen.koplugin/ui/pinpadbuttondialog.lua
Normal file → Executable file
15
pinpadlockscreen.koplugin/ui/pinpadbuttondialog.lua
Normal file → Executable file
@@ -24,6 +24,7 @@ local VerticalGroup = require("ui/widget/verticalgroup")
|
|||||||
local VerticalSpan = require("ui/widget/verticalspan")
|
local VerticalSpan = require("ui/widget/verticalspan")
|
||||||
local Screen = Device.screen
|
local Screen = Device.screen
|
||||||
local util = require("util")
|
local util = require("util")
|
||||||
|
local RenderImage = require("ui/renderimage")
|
||||||
|
|
||||||
local DGENERIC_ICON_SIZE = G_defaults:readSetting("DGENERIC_ICON_SIZE")
|
local DGENERIC_ICON_SIZE = G_defaults:readSetting("DGENERIC_ICON_SIZE")
|
||||||
|
|
||||||
@@ -83,14 +84,23 @@ function PinpadButtonDialog:init()
|
|||||||
}
|
}
|
||||||
|
|
||||||
local aesthetic_space = VerticalSpan:new { width = Size.margin.default + Size.padding.default }
|
local aesthetic_space = VerticalSpan:new { width = Size.margin.default + Size.padding.default }
|
||||||
|
-- Pre-render the SVG to an image to avoid inconsistent caching/rasterization across multiple shows.
|
||||||
|
local icon_image = nil
|
||||||
|
local icon_path = plugin_dir and (plugin_dir .. "/icons/lock.svg") or nil
|
||||||
|
if icon_path and util.getFileNameSuffix(icon_path) == "svg" then
|
||||||
|
icon_image = RenderImage:renderSVGImageFile(icon_path, nil, nil, 1)
|
||||||
|
end
|
||||||
local text_pin_content = VerticalGroup:new {
|
local text_pin_content = VerticalGroup:new {
|
||||||
align = "center",
|
align = "center",
|
||||||
ImageWidget:new {
|
ImageWidget:new {
|
||||||
file = plugin_dir .. "/icons/lock.svg",
|
-- Prefer a pre-rendered image object when available; fallback to file path so existing behavior is preserved.
|
||||||
|
image = icon_image,
|
||||||
|
file = icon_image and nil or (plugin_dir .. "/icons/lock.svg"),
|
||||||
alpha = true,
|
alpha = true,
|
||||||
width = Screen:scaleBySize(DGENERIC_ICON_SIZE) * 1.25,
|
width = Screen:scaleBySize(DGENERIC_ICON_SIZE) * 1.25,
|
||||||
height = Screen:scaleBySize(DGENERIC_ICON_SIZE) * 1.25,
|
height = Screen:scaleBySize(DGENERIC_ICON_SIZE) * 1.25,
|
||||||
scale_factor = 0,
|
-- don't force raster scaling for SVGs; let renderer handle vector scaling for crisp output
|
||||||
|
scale_factor = nil,
|
||||||
original_in_nightmode = false,
|
original_in_nightmode = false,
|
||||||
},
|
},
|
||||||
aesthetic_space,
|
aesthetic_space,
|
||||||
@@ -204,6 +214,7 @@ function PinpadButtonDialog:init()
|
|||||||
alpha = self.alpha,
|
alpha = self.alpha,
|
||||||
anchor = self.anchor,
|
anchor = self.anchor,
|
||||||
FrameContainer:new {
|
FrameContainer:new {
|
||||||
|
-- Restore original white window background so the dialog has a proper window appearance.
|
||||||
background = Blitbuffer.COLOR_WHITE,
|
background = Blitbuffer.COLOR_WHITE,
|
||||||
bordersize = Size.border.window,
|
bordersize = Size.border.window,
|
||||||
radius = Size.radius.window,
|
radius = Size.radius.window,
|
||||||
|
|||||||
27
pinpadlockscreen.koplugin/ui/pinpaddialog.lua
Normal file → Executable file
27
pinpadlockscreen.koplugin/ui/pinpaddialog.lua
Normal file → Executable file
@@ -204,7 +204,8 @@ function PinPadDialog:initializeScreensaverBackground()
|
|||||||
alpha = true,
|
alpha = true,
|
||||||
width = self.icon_size,
|
width = self.icon_size,
|
||||||
height = self.icon_size,
|
height = self.icon_size,
|
||||||
scale_factor = 0,
|
-- don't force raster scaling for SVGs; let renderer handle vector scaling for crisp output
|
||||||
|
scale_factor = nil,
|
||||||
original_in_nightmode = false,
|
original_in_nightmode = false,
|
||||||
}
|
}
|
||||||
self.screensaver_widget = ScreenSaverWidget:new {
|
self.screensaver_widget = ScreenSaverWidget:new {
|
||||||
@@ -284,7 +285,8 @@ function PinPadDialog:showPinPad()
|
|||||||
alpha = true,
|
alpha = true,
|
||||||
width = self.icon_size,
|
width = self.icon_size,
|
||||||
height = self.icon_size,
|
height = self.icon_size,
|
||||||
scale_factor = 0,
|
-- allow vector rendering for SVGs
|
||||||
|
scale_factor = nil,
|
||||||
original_in_nightmode = false,
|
original_in_nightmode = false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -301,7 +303,8 @@ function PinPadDialog:showPinPad()
|
|||||||
alpha = true,
|
alpha = true,
|
||||||
width = self.icon_size,
|
width = self.icon_size,
|
||||||
height = self.icon_size,
|
height = self.icon_size,
|
||||||
scale_factor = 0,
|
-- allow vector rendering for SVGs
|
||||||
|
scale_factor = nil,
|
||||||
original_in_nightmode = false,
|
original_in_nightmode = false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -399,12 +402,25 @@ function PinPadDialog:onAppendToPin(digit)
|
|||||||
end
|
end
|
||||||
self.pin = self.pin .. digit
|
self.pin = self.pin .. digit
|
||||||
|
|
||||||
|
-- Check whether we should auto-submit the PIN immediately: only when
|
||||||
|
-- we're in the locked/confirm_current_code stages and the entered pin
|
||||||
|
-- matches the stored PIN.
|
||||||
|
local stored_pin = G_reader_settings:readSetting("pinpadlock_pin_code") or ""
|
||||||
|
local should_auto_submit = (self.stage == "locked" or self.stage == "confirm_current_code") and (self.pin == stored_pin)
|
||||||
|
|
||||||
if G_reader_settings:isTrue("pinpadlock_display_digit_activated") then
|
if G_reader_settings:isTrue("pinpadlock_display_digit_activated") then
|
||||||
local temp_display_text = self.dialog_text .. digit
|
local temp_display_text = self.dialog_text .. digit
|
||||||
self.dialog:updateTitle(temp_display_text)
|
self.dialog:updateTitle(temp_display_text)
|
||||||
|
|
||||||
self.dialog_text = self.dialog_text .. "*"
|
self.dialog_text = self.dialog_text .. "*"
|
||||||
|
|
||||||
|
-- If we matched the PIN, submit immediately. closeDialogs() (called in onOk)
|
||||||
|
-- will stop any timers and clean up widgets properly.
|
||||||
|
if should_auto_submit then
|
||||||
|
self:onOk()
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
self.digit_display_timer = UIManager:scheduleIn(1, function()
|
self.digit_display_timer = UIManager:scheduleIn(1, function()
|
||||||
self.dialog:updateTitle(self.dialog_text)
|
self.dialog:updateTitle(self.dialog_text)
|
||||||
self.digit_display_timer = nil
|
self.digit_display_timer = nil
|
||||||
@@ -412,6 +428,11 @@ function PinPadDialog:onAppendToPin(digit)
|
|||||||
else
|
else
|
||||||
self.dialog_text = self.dialog_text .. "*"
|
self.dialog_text = self.dialog_text .. "*"
|
||||||
self.dialog:updateTitle(self.dialog_text)
|
self.dialog:updateTitle(self.dialog_text)
|
||||||
|
|
||||||
|
if should_auto_submit then
|
||||||
|
self:onOk()
|
||||||
|
return
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
0
pinpadlockscreen.koplugin/util/screensaverutil.lua
Normal file → Executable file
0
pinpadlockscreen.koplugin/util/screensaverutil.lua
Normal file → Executable file
Reference in New Issue
Block a user