Skip to content

Commit 87d523d

Browse files
committed
Start a new appraoch to GUI
1 parent c39fa64 commit 87d523d

3 files changed

Lines changed: 162 additions & 7 deletions

File tree

openandroidinstaller/openandroidinstaller.py

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@
55
from subprocess import check_output, STDOUT
66

77

8-
9-
108
def main(page: Page):
119
page.title = "OpenAndroidInstaller"
12-
views = []
10+
views = []
11+
blocked = False
1312

1413
# Click-event handlers
1514

@@ -30,10 +29,20 @@ def go_back(e):
3029
page.update()
3130

3231
def check_devices(e):
33-
output = check_output(["adb", "shell", "dumpsys", "bluetooth_manager", "|", "grep", "\'name:\'", "|", "cut", "-c9-"], stderr=STDOUT).decode()
34-
page.views[-1].controls.append(Text(f"Detected: {output}"))
32+
try:
33+
output = check_output(["adb", "shell", "dumpsys", "bluetooth_manager", "|", "grep", "\'name:\'", "|", "cut", "-c9-"], stderr=STDOUT).decode()
34+
page.views[-1].controls.append(Text(f"Detected: {output}"))
35+
page.views[-1].controls.append(get_confirm_button("Is this correct?"))
36+
except:
37+
output = "No device detected!"
38+
page.views[-1].controls.append(Text(f"{output}"))
3539
page.update()
3640

41+
42+
def confirm(e):
43+
# unblock
44+
blocked = False
45+
3746
# Generate the Views for the different steps
3847

3948
def get_nav() -> Row:
@@ -43,6 +52,14 @@ def get_nav() -> Row:
4352
])
4453

4554

55+
def get_confirm_button(notification_text: str) -> Row:
56+
"""Get a button with a text to confirm."""
57+
return Row([
58+
Text(notification_text),
59+
ElevatedButton("Confirm", on_click=confirm),
60+
])
61+
62+
4663
def get_welcome_view(page: Page) -> View:
4764
return View(
4865
"0",
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
import flet
2+
from flet import AppBar, ElevatedButton, Page, Text, View, Row
3+
4+
5+
from subprocess import check_output, STDOUT
6+
7+
8+
def main(page: Page):
9+
page.title = "OpenAndroidInstaller"
10+
views = []
11+
blocked = False
12+
13+
# Click-event handlers
14+
15+
def go_next(e):
16+
view_num = int(page.views[-1].route) + 1
17+
if view_num > 6:
18+
view_num = 6
19+
page.views.clear()
20+
page.views.append(views[view_num])
21+
page.update()
22+
23+
def go_back(e):
24+
view_num = int(page.views[-1].route) - 1
25+
if view_num < 0:
26+
view_num = 0
27+
page.views.clear()
28+
page.views.append(views[view_num])
29+
page.update()
30+
31+
def check_devices(e):
32+
try:
33+
output = check_output(["adb", "shell", "dumpsys", "bluetooth_manager", "|", "grep", "\'name:\'", "|", "cut", "-c9-"], stderr=STDOUT).decode()
34+
page.views[-1].controls.append(Text(f"Detected: {output}"))
35+
page.views[-1].controls.append(get_confirm_button("Is this correct?"))
36+
except:
37+
output = "No device detected!"
38+
page.views[-1].controls.append(Text(f"{output}"))
39+
page.update()
40+
41+
42+
def confirm(e):
43+
# unblock
44+
blocked = False
45+
46+
# Generate the Views for the different steps
47+
48+
def get_nav() -> Row:
49+
return Row([
50+
ElevatedButton("Back", on_click=go_back),
51+
ElevatedButton("Next", on_click=go_next),
52+
])
53+
54+
55+
def get_confirm_button(notification_text: str) -> Row:
56+
"""Get a button with a text to confirm."""
57+
return Row([
58+
Text(notification_text),
59+
ElevatedButton("Confirm", on_click=confirm),
60+
])
61+
62+
63+
def get_welcome_view(page: Page) -> View:
64+
return View(
65+
"0",
66+
[
67+
AppBar(title=Text("Welcome to OpenAndroidInstaller!")),
68+
ElevatedButton("Check devices", on_click=check_devices),
69+
ElevatedButton("Next", on_click=go_next),
70+
],
71+
)
72+
73+
74+
def get_bootloader_view(page: Page) -> View:
75+
return View(
76+
"1",
77+
[
78+
AppBar(title=Text("Unlock bootloder")),
79+
Text("Turn on developer options and OEM Unlock on your phone."),
80+
get_nav(),
81+
],
82+
)
83+
84+
85+
def get_image_select_view(page: Page) -> View:
86+
return View(
87+
"2",
88+
[
89+
AppBar(title=Text("Select images.")),
90+
get_nav(),
91+
],
92+
)
93+
94+
95+
def get_recovery_view(page: Page) -> View:
96+
return View(
97+
"3",
98+
[
99+
AppBar(title=Text("Boot recovery")),
100+
get_nav(),
101+
],
102+
)
103+
104+
105+
def get_install_view(page: Page) -> View:
106+
return View(
107+
"4",
108+
[
109+
AppBar(title=Text("Install Lineage OS")),
110+
get_nav(),
111+
],
112+
)
113+
114+
115+
def get_success_view(page: Page) -> View:
116+
return View(
117+
"5",
118+
[
119+
AppBar(title=Text("Success!")),
120+
ElevatedButton("Back", on_click=go_back),
121+
],
122+
)
123+
124+
# main part
125+
126+
views = [
127+
get_welcome_view(page),
128+
get_bootloader_view(page),
129+
get_image_select_view(page),
130+
get_recovery_view(page),
131+
get_install_view(page),
132+
get_success_view(page)
133+
]
134+
135+
page.views.append(views[0])
136+
page.update()
137+
138+
139+
flet.app(target=main, assets_dir="assets")

scripts/lineageos-on-galaxy-a3.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,7 @@ def install_os(image: str):
6969
if call(f'adb reboot', shell=True) < 0:
7070
return False
7171

72-
click.echo(
73-
"Flashing finished. Now press 'back' (arrow) and then 'Reboot system now' to finish the installation.")
72+
click.echo("Flashing finished.")
7473
return True
7574

7675

0 commit comments

Comments
 (0)