diff --git a/openandroidinstaller/openandroidinstaller.py b/openandroidinstaller/openandroidinstaller.py index 2afd3970..4f6f8a32 100644 --- a/openandroidinstaller/openandroidinstaller.py +++ b/openandroidinstaller/openandroidinstaller.py @@ -62,7 +62,8 @@ PLATFORM = sys.platform # Define asset paths CONFIG_PATH = ( - Path(__file__).parent.joinpath(Path(os.sep.join(["assets", "configs"]))).resolve() + Path(__file__).parent.joinpath( + Path(os.sep.join(["assets", "configs"]))).resolve() ) BIN_PATH = Path(__file__).parent.joinpath(Path("bin")).resolve() @@ -75,7 +76,7 @@ def __init__(self, state: AppState): self.view = Column(expand=True, width=1200) # create default starter views - welcome_view = WelcomeView( + self.welcome_view = WelcomeView( on_confirm=self.to_next_view, state=self.state, ) @@ -102,14 +103,19 @@ def __init__(self, state: AppState): ) # create the final success view - self.final_view = SuccessView(state=self.state) + self.success_view = SuccessView( + on_confirm=self.restart, + state=self.state, + ) # initialize the addon view self.select_addon_view = AddonsView( - on_confirm=self.to_next_view, state=self.state + on_confirm=self.to_next_view, + state=self.state ) self.install_addons_view = InstallAddonsView( - on_confirm=self.to_next_view, state=self.state + on_confirm=self.to_next_view, + state=self.state ) # attach some views to the state to modify and reuse later @@ -119,7 +125,7 @@ def __init__(self, state: AppState): select_files_view, requirements_view, start_view, - welcome_view, + self.welcome_view, ] ) self.state.add_addon_views( @@ -131,7 +137,7 @@ def __init__(self, state: AppState): # final default views, ordered to allow to pop self.state.add_final_default_views( views=[ - self.final_view, + self.success_view, self.install_view, ] ) @@ -177,10 +183,20 @@ def to_next_view(self, e): # else: # # display the final view - # self.view.controls.append(self.final_view) + # self.view.controls.append(self.success_view) logger.info("Confirmed and moved to next step.") self.view.update() + def restart(self, e): + """Method to display the first view.""" + self.welcome_view.init_visuals() + # clear the current view + self.view.controls = [] + # retrieve the new view and update + self.view.controls.append(self.welcome_view) + logger.info("Restart.") + self.view.update() + def configure(page: Page): """Configure the application.""" @@ -219,7 +235,8 @@ def log_version_infos(bin_path): def main(page: Page, test: bool = False, test_config: str = "sargo"): - logger.info(f"Running OpenAndroidInstaller version '{VERSION}' on '{PLATFORM}'.") + logger.info( + f"Running OpenAndroidInstaller version '{VERSION}' on '{PLATFORM}'.") log_version_infos(bin_path=BIN_PATH) logger.info(100 * "-") @@ -234,7 +251,8 @@ def main(page: Page, test: bool = False, test_config: str = "sargo"): leading_width=56, toolbar_height=72, elevation=0, - title=Text(f"OpenAndroidInstaller version {VERSION}", style="displaySmall"), + title=Text( + f"OpenAndroidInstaller version {VERSION}", style="displaySmall"), center_title=False, bgcolor="#00d886", actions=[ diff --git a/openandroidinstaller/views/success_view.py b/openandroidinstaller/views/success_view.py index e1bd6af8..24ea1095 100644 --- a/openandroidinstaller/views/success_view.py +++ b/openandroidinstaller/views/success_view.py @@ -13,6 +13,7 @@ # If not, see .""" # Author: Tobias Sterbak +from typing import Callable from loguru import logger from flet import ( ElevatedButton, @@ -22,6 +23,7 @@ from styles import ( Text, Markdown, + icons, ) from views import BaseView from app_state import AppState @@ -29,8 +31,13 @@ class SuccessView(BaseView): - def __init__(self, state: AppState): + def __init__( + self, + state: AppState, + on_confirm: Callable, + ): super().__init__(state=state, image="success.png") + self.on_confirm = on_confirm def build( self, @@ -66,6 +73,12 @@ def close_window(e): "Finish and close", expand=True, on_click=close_window, + ), + ElevatedButton( + "Finish and close", + on_click=close_window, + icon=icons.EXIT_TO_APP_OUTLINED, + expand=True, ) ] ),