Skip to content

Commit 2798e47

Browse files
committed
Improve views handling
1 parent bcd3f52 commit 2798e47

File tree

3 files changed

+24
-23
lines changed

3 files changed

+24
-23
lines changed

openandroidinstaller/openandroidinstaller.py

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -95,26 +95,13 @@ def __init__(self, state: AppState):
9595
on_back=self.to_previous_view,
9696
state=self.state,
9797
)
98-
# ordered to allow for pop
99-
self.default_views = [
100-
select_files_view,
101-
requirements_view,
102-
start_view,
103-
welcome_view,
104-
]
10598

10699
# create the install view
107100
self.install_view = InstallView(on_confirm=self.to_next_view, state=self.state)
108101

109102
# create the final success view
110103
self.final_view = SuccessView(state=self.state)
111104

112-
# final default views, ordered to allow to pop
113-
self.final_default_views = [
114-
self.final_view,
115-
self.install_view,
116-
]
117-
118105
# initialize the addon view
119106
self.select_addon_view = AddonsView(
120107
on_confirm=self.to_next_view, state=self.state
@@ -124,26 +111,40 @@ def __init__(self, state: AppState):
124111
)
125112

126113
# attach some views to the state to modify and reuse later
127-
self.state.add_default_views(views=self.default_views)
114+
# ordered to allow for pop
115+
self.state.add_default_views(
116+
views=[
117+
select_files_view,
118+
requirements_view,
119+
start_view,
120+
welcome_view,
121+
]
122+
)
128123
self.state.add_addon_views(
129124
views=[
130125
self.install_addons_view,
131126
self.select_addon_view,
132127
]
133128
)
134-
self.state.add_final_default_views(views=self.final_default_views)
129+
# final default views, ordered to allow to pop
130+
self.state.add_final_default_views(
131+
views=[
132+
self.final_view,
133+
self.install_view,
134+
]
135+
)
135136

136137
# stack of previous default views for the back-button
137138
self.previous_views: List = []
138139

139140
def build(self):
140-
self.view.controls.append(self.default_views.pop())
141+
self.view.controls.append(self.state.default_views.pop())
141142
return self.view
142143

143144
def to_previous_view(self, e):
144145
"""Method to display the previous view."""
145146
# store the current view
146-
self.default_views.append(self.view.controls[-1])
147+
self.state.default_views.append(self.view.controls[-1])
147148
# clear the current view
148149
self.view.controls = []
149150
# retrieve the new view and update
@@ -158,8 +159,8 @@ def to_next_view(self, e):
158159
# remove all elements from column view
159160
self.view.controls = []
160161
# if there are default views left, display them first
161-
if self.default_views:
162-
self.view.controls.append(self.default_views.pop())
162+
if self.state.default_views:
163+
self.view.controls.append(self.state.default_views.pop())
163164
elif self.state.steps:
164165
self.view.controls.append(
165166
StepView(
@@ -168,9 +169,9 @@ def to_next_view(self, e):
168169
on_confirm=self.to_next_view,
169170
)
170171
)
171-
elif self.final_default_views:
172+
elif self.state.final_default_views:
172173
# here we expect the install view to populate the step views again if necessary
173-
self.view.controls.append(self.final_default_views.pop())
174+
self.view.controls.append(self.state.final_default_views.pop())
174175

175176
# else:
176177
# # display the final view

openandroidinstaller/views/install_view.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ def check_addons_switch(e):
7777
if self.install_addons_switch.value:
7878
logger.info("Enable flashing addons.")
7979
# add the addons step here.
80-
self.state.default_views.extend(self.state.addon_views)
80+
self.state.add_default_views(self.state.addon_views)
8181
self.state.install_addons = True
8282
else:
8383
logger.info("Disable flashing addons.")

tests/test_app.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def test_app():
4343
state = page.controls[0].state
4444
state.load_config(device_code="sargo")
4545
state.default_views.extend(state.addon_views)
46-
number_of_steps = 12
46+
number_of_steps = 14
4747
for _ in range(number_of_steps):
4848
page.controls[0].to_next_view(None)
4949
assert "SuccessView" in str(page.controls[0].view.controls[0])

0 commit comments

Comments
 (0)