app/modules/settings/settings.py

279 lines
11 KiB
Python

import flet as ft
from utils import AppView, Title
from .functions import Theme
def Settings(page: ft.Page):
settingsContainer = ft.ListView(
expand=True,
)
settingsContainer.controls.append(ft.Text('General'))
generalSettings = ft.Container(
content=ft.Column(
controls=[
ft.Card(
content=ft.Container(
ink=True,
content=ft.Column(
[
ft.ListTile(
leading=ft.Icon(ft.icons.PERSON),
title=ft.Text('Username'),
subtitle=ft.Text(
'The greeting message',
),
),
],
),
padding=10,
on_click=lambda _: print('clicked username'),
),
),
ft.Card(
content=ft.Container(
ink=True,
content=ft.Column(
[
ft.ListTile(
leading=ft.Icon(ft.icons.PHONE),
title=ft.Text('Phone'),
subtitle=ft.Text(
'Personal Phone number',
),
),
],
),
padding=10,
on_click=lambda _: print('clicked phone'),
),
),
ft.Card(
content=ft.Container(
ink=True,
content=ft.Column(
[
ft.ListTile(
leading=ft.Icon(ft.icons.EMAIL),
title=ft.Text('Email'),
subtitle=ft.Text(
'Personal Email',
),
),
],
),
padding=10,
on_click=lambda _: print('clicked email'),
),
),
ft.Card(
content=ft.Container(
ink=True,
content=ft.Column(
[
ft.ListTile(
leading=ft.Icon(ft.icons.CARD_TRAVEL),
title=ft.Text('NID'),
subtitle=ft.Text(
'National Idenity Number',
),
),
],
),
padding=10,
on_click=lambda _: print('clicked email'),
),
),
],
),
)
settingsContainer.controls.append(
generalSettings,
)
settingsContainer.controls.append(ft.Divider())
settingsContainer.controls.append(ft.Text('Notifications'))
notificationsSettings = ft.Container(
content=ft.Column(
controls=[
ft.Card(
content=ft.Container(
ink=True,
content=ft.Column(
[
ft.ListTile(
leading=ft.Icon(ft.icons.TELEGRAM),
title=ft.Text('Telegram'),
subtitle=ft.Text(
'Telegram Notifications for reminders and Bill pays',
),
),
],
),
padding=10,
on_click=lambda _: print('clicked username'),
),
),
],
),
)
settingsContainer.controls.append(
notificationsSettings,
)
settingsContainer.controls.append(ft.Divider())
settingsContainer.controls.append(ft.Text('Apps'))
appsSettings = ft.Container(
content=ft.Column(
controls=[
ft.Card(
content=ft.Container(
ink=True,
content=ft.Column(
[
ft.ListTile(
leading=ft.Image(
border_radius=ft.border_radius.all(10),
fit=ft.ImageFit.CONTAIN,
src='https://asset.brandfetch.io/idZJsIaold/id9-VJM_HU.png',
),
title=ft.Text('Dhiraagu'),
subtitle=ft.Text(
'An ISP Service.',
),
),
],
),
padding=10,
on_click=lambda _: print('clicked dhiraagu'),
),
),
ft.Card(
content=ft.Container(
ink=True,
content=ft.Column(
[
ft.ListTile(
leading=ft.Image(
border_radius=ft.border_radius.all(10),
fit=ft.ImageFit.CONTAIN,
src='https://asset.brandfetch.io/idR1xFKHLD/idu6J-WQsm.jpeg',
),
title=ft.Text('Ooredoo'),
subtitle=ft.Text(
'An ISP Service.',
),
),
],
),
padding=10,
on_click=lambda _: print('clicked ooredoo'),
),
),
ft.Card(
content=ft.Container(
ink=True,
content=ft.Column(
[
ft.ListTile(
leading=ft.Image(
border_radius=ft.border_radius.all(10),
fit=ft.ImageFit.CONTAIN,
src='https://www.stelco.com.mv/wp-content/uploads/2022/02/unnamed.png',
),
title=ft.Text('STELCO'),
subtitle=ft.Text(
'Electricity Bills',
),
),
],
),
padding=10,
on_click=lambda _: print('clicked stelco'),
),
),
ft.Card(
content=ft.Container(
ink=True,
content=ft.Column(
[
ft.ListTile(
leading=ft.Image(
border_radius=ft.border_radius.all(10),
fit=ft.ImageFit.CONTAIN,
src='https://asset.brandfetch.io/idOZWUOUm-/idNastd9Bg.jpeg',
),
title=ft.Text('MWSC'),
subtitle=ft.Text(
'Water Bills',
),
),
],
),
padding=10,
on_click=lambda _: print('clicked mwsc'),
),
),
ft.Card(
content=ft.Container(
ink=True,
content=ft.Column(
[
ft.ListTile(
leading=ft.Image(
border_radius=ft.border_radius.all(10),
fit=ft.ImageFit.CONTAIN,
src='https://asset.brandfetch.io/idLMZnv5SC/iduyX4keYN.jpeg',
),
title=ft.Text('Medianet'),
subtitle=ft.Text(
'Online Television Service',
),
),
],
),
padding=10,
on_click=lambda _: print('clicked medianet'),
),
),
],
),
)
settingsContainer.controls.append(appsSettings)
settingsContainer.controls.append(ft.Divider())
settingsContainer.controls.append(ft.Text('Theme'))
def _on_theme_change(e):
Theme(page).change()
themeSettings = ft.Container(
content=ft.Column(
controls=[
ft.Card(
content=ft.Container(
content=ft.Container(
ft.Switch(
value=True,
label=' Switch to dark theme',
on_change=_on_theme_change,
),
),
padding=10,
on_click=None,
),
),
],
),
)
settingsContainer.controls.append(themeSettings)
return AppView(
'/settings',
[
ft.AppBar(
leading=ft.IconButton(
ft.icons.ARROW_BACK_IOS_NEW_ROUNDED,
on_click=lambda _: page.go('/'),
),
title=ft.Text(Title(str(__file__))),
bgcolor=ft.colors.TRANSPARENT,
),
settingsContainer,
],
)