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.8 KiB
105 lines
2.8 KiB
from kivy.app import App |
|
from kivy.uix.screenmanager import Screen |
|
from kivy.properties import ObjectProperty |
|
from kivy.clock import Clock |
|
|
|
|
|
class CScreen(Screen): |
|
|
|
__events__ = ('on_activate', 'on_deactivate') |
|
|
|
action_view = ObjectProperty(None) |
|
|
|
def _change_action_view(self): |
|
app = App.get_running_app() |
|
action_bar = app.root.manager.current_screen.ids.action_bar |
|
_action_view = self.action_view |
|
|
|
if (not _action_view) or _action_view.parent: |
|
return |
|
action_bar.clear_widgets() |
|
action_bar.add_widget(_action_view) |
|
|
|
def on_activate(self): |
|
Clock.schedule_once(lambda dt: self._change_action_view()) |
|
|
|
def on_deactivate(self): |
|
Clock.schedule_once(lambda dt: self._change_action_view()) |
|
|
|
|
|
class ScreenDashboard(CScreen): |
|
|
|
tab = ObjectProperty(None) |
|
|
|
def show_tx_details( |
|
self, date, address, amount, amount_color, balance, |
|
tx_hash, conf, quote_text): |
|
|
|
ra_dialog = RecentActivityDialog() |
|
|
|
ra_dialog.address = address |
|
ra_dialog.amount = amount |
|
ra_dialog.amount_color = amount_color |
|
ra_dialog.confirmations = conf |
|
ra_dialog.quote_text = quote_text |
|
date_time = date.split() |
|
if len(date_time) == 2: |
|
ra_dialog.date = date_time[0] |
|
ra_dialog.time = date_time[1] |
|
ra_dialog.status = 'Validated' |
|
else: |
|
ra_dialog.date = date_time |
|
ra_dialog.status = 'Pending' |
|
ra_dialog.tx_hash = tx_hash |
|
|
|
app = App.get_running_app() |
|
main_gui = app.gui.main_gui |
|
tx_hash = tx_hash |
|
tx = app.wallet.transactions.get(tx_hash) |
|
|
|
if tx_hash in app.wallet.transactions.keys(): |
|
is_relevant, is_mine, v, fee = app.wallet.get_tx_value(tx) |
|
conf, timestamp = app.wallet.verifier.get_confirmations(tx_hash) |
|
#if timestamp: |
|
# time_str = datetime.datetime.fromtimestamp(timestamp).isoformat(' ')[:-3] |
|
#else: |
|
# time_str = 'pending' |
|
else: |
|
is_mine = False |
|
|
|
ra_dialog.is_mine = is_mine |
|
|
|
if is_mine: |
|
if fee is not None: |
|
ra_dialog.fee = main_gui.format_amount(fee) |
|
else: |
|
ra_dialog.fee = 'unknown' |
|
|
|
ra_dialog.open() |
|
|
|
|
|
class ScreenPassword(Screen): |
|
|
|
__events__ = ('on_release', 'on_deactivate', 'on_activate') |
|
|
|
def on_activate(self): |
|
app = App.get_running_app() |
|
action_bar = app.root.main_screen.ids.action_bar |
|
action_bar.add_widget(self._action_view) |
|
|
|
def on_deactivate(self): |
|
self.ids.password.text = '' |
|
|
|
def on_release(self, *args): |
|
pass |
|
|
|
class ScreenSend(CScreen): |
|
pass |
|
|
|
class ScreenReceive(CScreen): |
|
pass |
|
|
|
class ScreenContacts(CScreen): |
|
|
|
def add_new_contact(self): |
|
NewContactDialog().open()
|
|
|