From e54c0a029f8fee595c11cc015179dcc20f80eea2 Mon Sep 17 00:00:00 2001 From: Daniel Arantes Loverde Date: Fri, 17 Apr 2026 15:57:17 -0300 Subject: [PATCH] fix(android): add coordinate space fallbacks for android build --- .../PediFoods/Support/PlatformCompat.swift | 9 +++++++++ .../Sources/PediFoods/Views/Main/HomeView.swift | 2 +- .../PediFoods/Views/Main/StoreDetailView.swift | 2 +- skip_for_android_plan.md | 15 +++++++++++++++ 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/pedi-foods/Sources/PediFoods/Support/PlatformCompat.swift b/pedi-foods/Sources/PediFoods/Support/PlatformCompat.swift index 996b658..a5a1d38 100644 --- a/pedi-foods/Sources/PediFoods/Support/PlatformCompat.swift +++ b/pedi-foods/Sources/PediFoods/Support/PlatformCompat.swift @@ -127,6 +127,15 @@ extension View { self #else self.layoutPriority(value) +#endif + } + + @ViewBuilder + func appNamedCoordinateSpace(_ name: String) -> some View { +#if os(Android) + self +#else + self.coordinateSpace(name: name) #endif } } diff --git a/pedi-foods/Sources/PediFoods/Views/Main/HomeView.swift b/pedi-foods/Sources/PediFoods/Views/Main/HomeView.swift index e716dc1..671d53a 100644 --- a/pedi-foods/Sources/PediFoods/Views/Main/HomeView.swift +++ b/pedi-foods/Sources/PediFoods/Views/Main/HomeView.swift @@ -48,7 +48,7 @@ struct HomeView: View { refreshCategories: true ) } - .coordinateSpace(name: HomeScrollCoordinateSpace.name) + .appNamedCoordinateSpace(HomeScrollCoordinateSpace.name) header(collapseProgress: collapseProgress, height: headerHeight) .frame(maxWidth: .infinity, alignment: .top) diff --git a/pedi-foods/Sources/PediFoods/Views/Main/StoreDetailView.swift b/pedi-foods/Sources/PediFoods/Views/Main/StoreDetailView.swift index df42bbb..232deb7 100644 --- a/pedi-foods/Sources/PediFoods/Views/Main/StoreDetailView.swift +++ b/pedi-foods/Sources/PediFoods/Views/Main/StoreDetailView.swift @@ -74,7 +74,7 @@ struct StoreDetailView: View { .refreshable { await loadStoreData(forceRefresh: true) } - .coordinateSpace(name: StoreDetailScrollCoordinateSpace.name) + .appNamedCoordinateSpace(StoreDetailScrollCoordinateSpace.name) .ignoresSafeArea(edges: .top) } .ignoresSafeArea(edges: .top) diff --git a/skip_for_android_plan.md b/skip_for_android_plan.md index f1e3adf..66605a2 100644 --- a/skip_for_android_plan.md +++ b/skip_for_android_plan.md @@ -344,3 +344,18 @@ Legenda: - `HomeScrollOffsetObserver` habilitado para uso cross-platform. - `HomeView` deixou de usar `EmptyView()` no observer em Android. - `swift build` validado com sucesso após o ajuste. +12. Correção de compatibilidade do bridge Android concluída para destravar export. + - `skip-fuse-ui` recebeu fallback Android-only para `onGeometryChange(...)`, evitando dependência de hook de geometria ausente no bridge. + - `skip-ui` recebeu shim Android-only para `GroupBox`, mantendo iOS preservado. + - Ajustes feitos no vendor local sem alterar comportamento iOS. +13. Compatibilidade de `coordinateSpace` aplicada com fallback Android. + - Criado `appNamedCoordinateSpace(...)` em `PlatformCompat`. + - `HomeView` e `StoreDetailView` passaram a usar o helper compatível. + - O fluxo iOS permanece no caminho original (`coordinateSpace`) e Android usa no-op seguro. +14. Export Android final validado com sucesso. + - `skip export --debug --no-ios --android --arch aarch64 --plain --verbose` concluído com sucesso. + - Artefatos Android gerados novamente em `pedi-foods/.build/skip-export`. +15. Execução direta (`skip android run`) compilou com sucesso, porém sem instalação por ausência de device conectado. + - Build Swift/Kotlin finalizado. + - Etapa de conexão Android falhou com `adb devices` vazio no ambiente atual. + - Próximo passo para concluir Task 6: conectar device físico (USB) ou iniciar AVD válido.