Skip to content

Commit

Permalink
Enable flashing of vendor_boot partition
Browse files Browse the repository at this point in the history
  • Loading branch information
tsterbak committed Oct 7, 2023
1 parent dda3aed commit a2f3621
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 1 deletion.
1 change: 1 addition & 0 deletions openandroidinstaller/app_state.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ def __init__(
self.dtbo_path = None
self.vbmeta_path = None
self.super_empty_path = None
self.vendor_boot_path = None

# store views
self.default_views: List = []
Expand Down
52 changes: 51 additions & 1 deletion openandroidinstaller/views/select_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,9 @@ def init_visuals(
self.pick_super_empty_dialog = FilePicker(
on_result=self.pick_super_empty_result
)
self.pick_vendor_boot_dialog = FilePicker(
on_result=self.pick_vendor_boot_result
)

self.selected_image = Text("Selected image: ")
self.selected_recovery = Text("Selected recovery: ")
Expand All @@ -118,6 +121,9 @@ def init_visuals(
self.selected_super_empty = Checkbox(
fill_color=colors.RED, value=None, disabled=True, tristate=True
)
self.selected_vendor_boot = Checkbox(
fill_color=colors.RED, value=None, disabled=True, tristate=True
)

# initialize and manage button state.
self.confirm_button = confirm_button(self.on_confirm)
Expand All @@ -131,6 +137,7 @@ def init_visuals(
self.pick_dtbo_dialog.on_result = self.enable_button_if_ready
self.pick_vbmeta_dialog.on_result = self.enable_button_if_ready
self.pick_super_empty_dialog.on_result = self.enable_button_if_ready
self.pick_vendor_boot_dialog.on_result = self.enable_button_if_ready
# back button
self.back_button = ElevatedButton(
"Back",
Expand All @@ -155,6 +162,7 @@ def build(self):
self.pick_dtbo_dialog,
self.pick_vbmeta_dialog,
self.pick_super_empty_dialog,
self.pick_vendor_boot_dialog,
]
)

Expand Down Expand Up @@ -462,6 +470,27 @@ def toggle_additional_image_selection(self):
self.selected_super_empty,
]
),
]
)
if "vendor_boot" in self.state.config.additional_steps:
self.selected_vendor_boot.value = False
additional_image_selection.extend(
[
Row(
[
FilledButton(
"Pick `vendor_boot.img` image",
icon=icons.UPLOAD_FILE,
on_click=lambda _: self.pick_vendor_boot_dialog.pick_files(
allow_multiple=False,
file_type="custom",
allowed_extensions=["img"],
),
expand=True,
),
self.selected_vendor_boot,
]
),
Divider(),
]
)
Expand Down Expand Up @@ -600,6 +629,26 @@ def pick_super_empty_result(self, e: FilePickerResultEvent):
# update
self.selected_super_empty.update()

def pick_vendor_boot_result(self, e: FilePickerResultEvent):
path = ", ".join(map(lambda f: f.name, e.files)) if e.files else "Cancelled!"
# update the textfield with the name of the file
if e.files:
# check if the super_empty works with the device and show the filename in different colors accordingly
if path == "vendor_boot.img":
self.selected_vendor_boot.fill_color = colors.GREEN
self.selected_vendor_boot.value = True
self.state.vendor_boot_path = e.files[0].path
logger.info(
f"Selected vendor_boot.img from {self.state.vendor_boot_path}"
)
else:
self.selected_vendor_boot.fill_color = colors.RED
self.selected_vendor_boot.value = False
else:
logger.info("No image selected.")
# update
self.selected_vendor_boot.update()

def enable_button_if_ready(self, e):
"""Enable the confirm button if both files have been selected."""
if (".zip" in self.selected_image.value) and (
Expand Down Expand Up @@ -642,6 +691,8 @@ def enable_button_if_ready(self, e):
or "vbmeta" not in self.state.config.additional_steps,
self.selected_super_empty.value
or "super_empty" not in self.state.config.additional_steps,
self.selected_vendor_boot.value
or "vendor_boot" not in self.state.config.additional_steps,
]
):
logger.error(
Expand Down Expand Up @@ -693,4 +744,3 @@ def enable_button_if_ready(self, e):
self.right_view.update()
else:
self.confirm_button.disabled = True
# self.continue_eitherway_button.disabled = True

0 comments on commit a2f3621

Please sign in to comment.