You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
2.7 KiB
105 lines
2.7 KiB
# SPDX-FileCopyrightText: 2020 Foundation Devices, Inc. <hello@foundationdevices.com>
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
#
|
|
# SPDX-FileCopyrightText: 2018 Coinkite, Inc. <coldcardwallet.com>
|
|
# SPDX-License-Identifier: GPL-3.0-only
|
|
#
|
|
# (c) Copyright 2018 by Coinkite Inc. This file is part of Coldcard <coldcardwallet.com>
|
|
# and is covered by GPLv3 license found in COPYING.
|
|
#
|
|
# choosers.py - various interactive menus for setting config values.
|
|
#
|
|
from common import settings
|
|
|
|
|
|
def shutdown_timeout_chooser():
|
|
DEFAULT_SHUTDOWN_TIMEOUT = (2*60) # 2 minutes
|
|
|
|
timeout = settings.get('shutdown_timeout', DEFAULT_SHUTDOWN_TIMEOUT) # in seconds
|
|
|
|
ch = [' 1 minute',
|
|
' 2 minutes',
|
|
' 5 minutes',
|
|
'15 minutes',
|
|
'30 minutes',
|
|
'60 minutes',
|
|
'Never']
|
|
va = [1*60, 2*60, 5*60, 15*60, 30*60, 60*60, 0]
|
|
|
|
try:
|
|
which = va.index(timeout)
|
|
except ValueError:
|
|
which = 1
|
|
|
|
def set_shutdown_timeout(idx, text):
|
|
settings.set('shutdown_timeout', va[idx])
|
|
|
|
return which, ch, set_shutdown_timeout
|
|
|
|
|
|
def brightness_chooser():
|
|
screen_brightness = settings.get('screen_brightness', 100)
|
|
|
|
ch = ['Off', '25%', '50%', '75%', '100%'] # , 'Automatic']
|
|
va = [0, 25, 50, 75, 100] # , 999]
|
|
|
|
try:
|
|
which = va.index(screen_brightness)
|
|
except ValueError:
|
|
which = 4
|
|
|
|
def set(idx, text):
|
|
from common import dis
|
|
dis.set_brightness(va[idx])
|
|
settings.set('screen_brightness', va[idx])
|
|
|
|
return which, ch, set
|
|
|
|
|
|
def enable_passphrase_chooser():
|
|
# Should the Passphrase menu be enabled in the main menu?
|
|
ch = ['Disabled', 'Enabled']
|
|
va = [False, True]
|
|
assert len(ch) == len(va)
|
|
|
|
enable_passphrase = settings.get('enable_passphrase', False)
|
|
try:
|
|
which = va.index(enable_passphrase)
|
|
except ValueError:
|
|
which = 0
|
|
|
|
def set_enable_passphrase(idx, text):
|
|
settings.set('enable_passphrase', va[idx])
|
|
|
|
return which, ch, set_enable_passphrase
|
|
|
|
def chain_chooser():
|
|
from chains import AllChains
|
|
|
|
chain = settings.get('chain', 'BTC')
|
|
|
|
ch = [(i.ctype, i.menu_name or i.name) for i in AllChains ]
|
|
|
|
# find index of current choice
|
|
try:
|
|
which = [n for n, (k,v) in enumerate(ch) if k == chain][0]
|
|
except IndexError:
|
|
which = 0
|
|
|
|
def set_chain(idx, text):
|
|
val = ch[idx][0]
|
|
assert ch[idx][1] == text
|
|
settings.set('chain', val)
|
|
|
|
try:
|
|
# update xpub stored in settings
|
|
import stash
|
|
with stash.SensitiveValues() as sv:
|
|
sv.capture_xpub()
|
|
except ValueError:
|
|
# no secrets yet, not an error
|
|
pass
|
|
|
|
return which, [t for _,t in ch], set_chain
|
|
|
|
# EOF
|
|
|