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 ], )