import flet as ft from utils import AppView, Title from modules.settings import config from modules.home import AppRow def Apps(page: ft.Page): AppRow.controls = [] appsContainer = ft.ListView( expand=True, ) appList = ft.Container( content=ft.Column( controls=[], ), ) appsContainer.controls.append( appList, ) if config.getint('apps', 'dhiraagu') == 1: appList.content.controls.append( 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 _: page.go('/apps/dhiraagu'), ), ), ) AppRow.controls.append( ft.Text('Dhiraagu'), ) AppRow.controls.append( ft.Container( margin=10, padding=10, bgcolor=ft.colors.with_opacity(0.1, '#000000'), border_radius=10, content=ft.Row( [ ft.Column( controls=[ ft.Container( content=ft.Icon( ft.icons.ACCOUNT_BOX, color=ft.colors.WHITE, ), margin=10, padding=10, alignment=ft.alignment.center, bgcolor=ft.colors.GREY_700, width=60, height=60, border_radius=10, ink=True, on_click=lambda _: page.go( '/apps/dhiraagu', ), ), ft.Container( content=ft.Text( 'Gift', text_align=ft.TextAlign.CENTER, ), alignment=ft.alignment.center, width=80, ), ], ), ft.Column( controls=[ ft.Container( content=ft.Icon( ft.icons.ELECTRIC_BOLT, color=ft.colors.WHITE, ), margin=10, padding=10, alignment=ft.alignment.center, bgcolor=ft.colors.GREY_700, width=60, height=60, border_radius=10, ink=True, on_click=lambda _: page.go( '/apps/dhiraagu', ), ), ft.Container( content=ft.Text( 'Reload', text_align=ft.TextAlign.CENTER, ), alignment=ft.alignment.center, width=80, ), ], ), ft.Column( controls=[ ft.Container( content=ft.Icon( ft.icons.DASHBOARD, color=ft.colors.WHITE, ), margin=10, padding=10, alignment=ft.alignment.center, bgcolor=ft.colors.GREY_700, width=60, height=60, border_radius=10, ink=True, on_click=lambda _: page.go( '/apps/dhiraagu', ), ), ft.Container( content=ft.Text( 'Usage', text_align=ft.TextAlign.CENTER, ), alignment=ft.alignment.center, width=80, ), ], ), ft.Column( controls=[ ft.Container( content=ft.Icon( ft.icons.RECEIPT, color=ft.colors.WHITE, ), margin=10, padding=10, alignment=ft.alignment.center, bgcolor=ft.colors.GREY_700, width=60, height=60, border_radius=10, ink=True, on_click=lambda _: page.go( '/apps/dhiraagu', ), ), ft.Container( content=ft.Text( 'Bills', text_align=ft.TextAlign.CENTER, ), alignment=ft.alignment.center, width=80, ), ], ), ], alignment=ft.MainAxisAlignment.CENTER, ), ), ) if config.getint('apps', 'ooredoo') == 1: appList.content.controls.append( 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 _: page.go('/apps/ooredoo'), ), ), ) AppRow.controls.append( ft.Text('Ooredoo'), ) AppRow.controls.append( ft.Container( margin=10, padding=10, bgcolor=ft.colors.with_opacity(0.1, '#000000'), border_radius=10, content=ft.Row( [ ft.Column( controls=[ ft.Container( content=ft.Icon( ft.icons.SETTINGS_PHONE, color=ft.colors.WHITE, ), margin=10, padding=10, alignment=ft.alignment.center, bgcolor=ft.colors.GREY_700, width=60, height=60, border_radius=10, ink=True, on_click=lambda _: page.go( '/apps/ooredoo', ), ), ft.Container( content=ft.Text( 'Add-ons', text_align=ft.TextAlign.CENTER, ), alignment=ft.alignment.center, width=80, ), ], ), ft.Column( controls=[ ft.Container( content=ft.Icon( ft.icons.ELECTRIC_BOLT, color=ft.colors.WHITE, ), margin=10, padding=10, alignment=ft.alignment.center, bgcolor=ft.colors.GREY_700, width=60, height=60, border_radius=10, ink=True, on_click=lambda _: page.go( '/apps/ooredoo', ), ), ft.Container( content=ft.Text( 'Raastas', text_align=ft.TextAlign.CENTER, ), alignment=ft.alignment.center, width=80, ), ], ), ft.Column( controls=[ ft.Container( content=ft.Icon( ft.icons.DASHBOARD, color=ft.colors.WHITE, ), margin=10, padding=10, alignment=ft.alignment.center, bgcolor=ft.colors.GREY_700, width=60, height=60, border_radius=10, ink=True, on_click=lambda _: page.go( '/apps/ooredoo', ), ), ft.Container( content=ft.Text( 'Balance', text_align=ft.TextAlign.CENTER, ), alignment=ft.alignment.center, width=80, ), ], ), ft.Column( controls=[ ft.Container( content=ft.Icon( ft.icons.RECEIPT, color=ft.colors.WHITE, ), margin=10, padding=10, alignment=ft.alignment.center, bgcolor=ft.colors.GREY_700, width=60, height=60, border_radius=10, ink=True, on_click=lambda _: page.go( '/apps/ooredoo', ), ), ft.Container( content=ft.Text( 'Bills', text_align=ft.TextAlign.CENTER, ), alignment=ft.alignment.center, width=80, ), ], ), ], alignment=ft.MainAxisAlignment.CENTER, ), ), ) if config.getint('apps', 'mwsc') == 1: appList.content.controls.append( 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 _: page.go('/apps/mwsc'), ), ), ) if config.getint('apps', 'stelco') == 1: appList.content.controls.append( 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 _: page.go('/apps/stelco'), ), ), ) if config.getint('apps', 'medianet') == 1: appList.content.controls.append( 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('Dhiraagu'), subtitle=ft.Text( 'Online Television Service', ), ), ], ), padding=10, on_click=lambda _: page.go('/apps/medianet'), ), ), ) if not AppRow.controls: AppRow.controls.append( ft.Container( content=ft.Card( content=ft.Container( content=ft.Container( ft.Text( 'Add a module from settings to see shortcuts here.', text_align=ft.TextAlign.CENTER, ), ), padding=10, on_click=None, ), ), ), ) if not appList.content.controls: appList.content.controls.append( ft.Text( 'Add a module from settings to see shortcuts here.', text_align=ft.TextAlign.CENTER, ), ) appList.alignment = ft.alignment.center appList.expand = True return AppView( '/apps', [ 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, ), appsContainer, ], )