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/dhiraagu',
                                    ),
                                ),
                                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/dhiraagu',
                                    ),
                                ),
                                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/dhiraagu',
                                    ),
                                ),
                                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/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', '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,
        ],
    )