2024-04-19 16:59:43 +00:00
|
|
|
import flet as ft
|
|
|
|
from utils import views_handler
|
2024-04-20 08:00:17 +00:00
|
|
|
from modules.settings.functions import config
|
2024-04-21 11:56:10 +00:00
|
|
|
from utils import checkInternet
|
2024-04-19 16:59:43 +00:00
|
|
|
|
2024-04-20 16:59:36 +00:00
|
|
|
|
2024-04-19 16:59:43 +00:00
|
|
|
def main(page: ft.Page):
|
2024-04-19 20:02:44 +00:00
|
|
|
page.title = 'BillPay'
|
2024-04-20 08:00:17 +00:00
|
|
|
print('Initial route:', page.route)
|
2024-04-21 11:56:10 +00:00
|
|
|
config.save('general', 'ignore_network', '0')
|
2024-04-19 20:02:44 +00:00
|
|
|
|
2024-04-21 11:56:10 +00:00
|
|
|
def route_change(e: ft.ControlEvent):
|
2024-04-20 08:00:17 +00:00
|
|
|
print('Route change:', e.route)
|
2024-04-19 16:59:43 +00:00
|
|
|
page.views.clear()
|
|
|
|
page.views.append(
|
2024-04-19 20:02:44 +00:00
|
|
|
views_handler(page)[page.route],
|
2024-04-19 16:59:43 +00:00
|
|
|
)
|
|
|
|
page.update()
|
2024-04-21 11:56:10 +00:00
|
|
|
if not config.getint('general', 'ignore_network') and not checkInternet():
|
|
|
|
dlg = ft.CupertinoActionSheet(
|
|
|
|
title=ft.Text('No Internet'),
|
|
|
|
message=ft.Text(
|
|
|
|
'Please check your network connectivity and try again',
|
|
|
|
),
|
|
|
|
cancel=ft.CupertinoActionSheetAction(
|
|
|
|
content=ft.Text('Okay'),
|
|
|
|
on_click=lambda _: (
|
|
|
|
page.close_bottom_sheet() if checkInternet(
|
|
|
|
) else None, page.update(), None if e.route == '/' else page.go('/'),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
actions=[
|
|
|
|
ft.CupertinoActionSheetAction(
|
|
|
|
content=ft.Text('Ignore Completely'),
|
|
|
|
is_destructive_action=True,
|
|
|
|
on_click=lambda e: (
|
|
|
|
page.close_bottom_sheet(), config.save(
|
|
|
|
'general', 'ignore_network', '1',
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
)
|
|
|
|
page.show_bottom_sheet(ft.CupertinoBottomSheet(dlg))
|
2024-04-19 20:02:44 +00:00
|
|
|
|
2024-04-21 11:56:10 +00:00
|
|
|
def view_pop(e: ft.ControlEvent):
|
2024-04-20 08:00:17 +00:00
|
|
|
print('View pop:', e.view)
|
2024-04-19 16:59:43 +00:00
|
|
|
page.views.pop()
|
|
|
|
top_view = page.views[-1]
|
|
|
|
page.go(top_view.route)
|
2024-04-21 04:44:52 +00:00
|
|
|
|
2024-04-20 08:00:17 +00:00
|
|
|
if config.get('general', 'theme') == 'dark':
|
|
|
|
page.theme_mode = ft.ThemeMode.DARK
|
|
|
|
else:
|
|
|
|
page.theme_mode = ft.ThemeMode.LIGHT
|
2024-04-19 16:59:43 +00:00
|
|
|
page.on_route_change = route_change
|
|
|
|
page.on_view_pop = view_pop
|
|
|
|
page.go(page.route)
|
|
|
|
|
|
|
|
|
2024-04-19 20:02:44 +00:00
|
|
|
ft.app(target=main, assets_dir='assets')
|