From d9df96b5643ba290c4fae0613699d8144943c1bc Mon Sep 17 00:00:00 2001 From: Shaan Shoukath <147940963+Shaan-Shoukath@users.noreply.github.com> Date: Sun, 18 Oct 2026 03:20:38 +0530 Subject: [PATCH 01/11] feat(android): apply supplied Gilroy across native Material theme Use all four supplied faces with reproducible table-preserving native conversion and complete Material typography. Preserve native scaling, controls and the stable Material 3 toolchain. Co-Authored-By: Codex --- .github/workflows/android.yml | 1 + app/build.gradle.kts | 11 ++- .../app/AccountManagementJourneyTest.kt | 2 +- .../org/spaceworks/app/BrandTypographyTest.kt | 44 +++++++++++ .../app/CheckoutRecoveryJourneyTest.kt | 2 +- .../org/spaceworks/app/PaymentsJourneyTest.kt | 2 +- .../org/spaceworks/app/StaffJourneyTest.kt | 2 +- .../spaceworks/app/UsageGuideJourneyTest.kt | 2 +- .../java/org/spaceworks/app/MainActivity.kt | 3 +- .../spaceworks/app/platform/NativePayments.kt | 2 +- .../org/spaceworks/app/theme/BrandTheme.kt | 47 +++++++++++ .../test/java/org/spaceworks/app/BrandTest.kt | 14 ++++ branding/brand.json | 6 +- docs/CHANGELOG.md | 6 ++ docs/WHITE-LABEL.md | 4 +- docs/licenses/Gilroy-native-fonts.md | 9 +++ scripts/brand_fonts.py | 77 +++++++++++++++++++ scripts/prepare.py | 2 + scripts/tests/test_brand_fonts.py | 63 +++++++++++++++ scripts/tests/test_brand_links.py | 7 +- 20 files changed, 293 insertions(+), 13 deletions(-) create mode 100644 app/src/androidTest/java/org/spaceworks/app/BrandTypographyTest.kt create mode 100644 app/src/main/java/org/spaceworks/app/theme/BrandTheme.kt create mode 100644 docs/licenses/Gilroy-native-fonts.md create mode 100644 scripts/brand_fonts.py create mode 100644 scripts/tests/test_brand_fonts.py diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index c31cadb..27d509e 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -44,6 +44,7 @@ jobs: app/build/outputs/apk/release app/build/outputs/bundle/release validation/native-packaging.json + app/build/generated/brand-fonts.json ui: runs-on: ubuntu-latest timeout-minutes: 60 diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 3da4a6e..a7892e6 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -34,12 +34,15 @@ android { lint { abortOnError = true } } val prepareBrand by tasks.registering(Exec::class) { - dependsOn("testBrandLinks") + dependsOn("testBrandLinks","testBrandFonts") inputs.files(brand.filterKeys {it.toString().startsWith("logo_")}.values.map {rootProject.file(it as String)}) inputs.file(rootProject.file("tokens/mobile-motion.json")) inputs.file(rootProject.file("scripts/brand_links.py")) + inputs.file(rootProject.file("scripts/brand_fonts.py")) + inputs.files(brand.filterKeys {it.toString().startsWith("font_")}.values.map {rootProject.file(it as String)}) inputs.files(brandFile, rootProject.file(brand["theme_tokens"] as String), rootProject.file(brand["app_icon"] as String), rootProject.file("scripts/prepare.py")) outputs.dirs(layout.buildDirectory.dir("generated/source/brand"),layout.buildDirectory.dir("generated/res/brand")) + outputs.file(layout.buildDirectory.file("generated/brand-fonts.json")) commandLine(if (System.getProperty("os.name").startsWith("Windows")) "python" else "python3", rootProject.file("scripts/prepare.py")) } val testContractSelection by tasks.registering(Exec::class) { @@ -82,6 +85,12 @@ val testMobileCopyGenerator by tasks.registering(Exec::class) { inputs.files(rootProject.file("scripts/generate_mobile_copy.py"),rootProject.file("scripts/tests/test_mobile_copy.py")) commandLine(if (System.getProperty("os.name").startsWith("Windows")) "python" else "python3","-m","unittest","discover","-s","scripts/tests","-p","test_mobile_copy.py","-v") } +val testBrandFonts by tasks.registering(Exec::class) { + workingDir(rootProject.projectDir) + inputs.files(rootProject.file("scripts/brand_fonts.py"),rootProject.file("scripts/tests/test_brand_fonts.py")) + inputs.files(brand.filterKeys {it.toString().startsWith("font_")}.values.map {rootProject.file(it as String)}) + commandLine(if (System.getProperty("os.name").startsWith("Windows")) "python" else "python3","-m","unittest","discover","-s","scripts/tests","-p","test_brand_fonts.py","-v") +} val testBrandLinks by tasks.registering(Exec::class) { workingDir(rootProject.projectDir) inputs.files(rootProject.file("scripts/brand_links.py"),rootProject.file("scripts/prepare.py"),rootProject.file("scripts/tests/test_brand_links.py")) diff --git a/app/src/androidTest/java/org/spaceworks/app/AccountManagementJourneyTest.kt b/app/src/androidTest/java/org/spaceworks/app/AccountManagementJourneyTest.kt index 133676f..84aebd5 100644 --- a/app/src/androidTest/java/org/spaceworks/app/AccountManagementJourneyTest.kt +++ b/app/src/androidTest/java/org/spaceworks/app/AccountManagementJourneyTest.kt @@ -26,7 +26,7 @@ import org.spaceworks.app.theme.LightScheme @Composable internal fun A7ComponentHost(largeText:Boolean=false,content:@Composable ()->Unit) { val density=LocalDensity.current CompositionLocalProvider(LocalDensity provides Density(density.density,if(largeText)3.2f else density.fontScale)) { - MaterialTheme(colorScheme=if(DeviceProfile.dark)org.spaceworks.app.theme.DarkScheme else LightScheme,shapes=Shapes(small=RoundedCornerShape(10.dp),medium=RoundedCornerShape(16.dp))) { + org.spaceworks.app.theme.SpaceWorksTheme(DeviceProfile.dark) { Surface(Modifier.fillMaxSize()){Box(Modifier.fillMaxSize().safeDrawingPadding()){content()}} } } diff --git a/app/src/androidTest/java/org/spaceworks/app/BrandTypographyTest.kt b/app/src/androidTest/java/org/spaceworks/app/BrandTypographyTest.kt new file mode 100644 index 0000000..da5494e --- /dev/null +++ b/app/src/androidTest/java/org/spaceworks/app/BrandTypographyTest.kt @@ -0,0 +1,44 @@ +package org.spaceworks.app + +import android.graphics.Paint +import android.graphics.Typeface +import androidx.compose.ui.text.font.FontSynthesis +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.font.createFontFamilyResolver +import androidx.core.content.res.ResourcesCompat +import androidx.test.platform.app.InstrumentationRegistry +import org.junit.Assert.* +import org.junit.Test +import org.spaceworks.app.theme.BrandFontFamily + +/** Real Android resource + Compose registration proof, using the supplied fonts' distinct M advances. */ +class BrandTypographyTest { + @Test fun suppliedWeightsResolveToTheirActualNativeGlyphMetricsAtMultipleScales() { + val context=InstrumentationRegistry.getInstrumentation().targetContext + val resolver=createFontFamilyResolver(context) + val faces=listOf( + Triple(R.font.gilroy_regular,FontWeight.Normal,.800f), + Triple(R.font.gilroy_medium,FontWeight.Medium,.805f), + Triple(R.font.gilroy_semibold,FontWeight.SemiBold,.810f), + Triple(R.font.gilroy_bold,FontWeight.Bold,.815f) + ) + faces.forEach {(resource,weight,advance) -> + val native=requireNotNull(ResourcesCompat.getFont(context,resource)) + val resolved=resolver.resolve(BrandFontFamily,weight,fontSynthesis=FontSynthesis.None).value as Typeface + listOf(16f,32f,51.2f).forEach {size -> + val paint=Paint().apply {textSize=size;typeface=native;isSubpixelText=true;isLinearText=true} + assertEquals("Supplied face $weight",advance*size,paint.measureText("M"),.03f) + paint.typeface=resolved + assertEquals("Compose must select supplied weight $weight",advance*size,paint.measureText("M"),.03f) + } + } + if(android.os.Build.VERSION.SDK_INT>=31) { + val configuration=android.content.res.Configuration(context.resources.configuration).apply {fontWeightAdjustment=300} + val boldContext=context.createConfigurationContext(configuration) + val boldResolver=createFontFamilyResolver(boldContext) + val bold=boldResolver.resolve(BrandFontFamily,FontWeight.Normal,fontSynthesis=FontSynthesis.None).value as Typeface + val paint=Paint().apply {textSize=100f;typeface=bold;isSubpixelText=true;isLinearText=true} + assertEquals("System bold-text adjustment selects the supplied Bold face",81.5f,paint.measureText("M"),.03f) + } + } +} diff --git a/app/src/androidTest/java/org/spaceworks/app/CheckoutRecoveryJourneyTest.kt b/app/src/androidTest/java/org/spaceworks/app/CheckoutRecoveryJourneyTest.kt index 6c042d0..fe73b40 100644 --- a/app/src/androidTest/java/org/spaceworks/app/CheckoutRecoveryJourneyTest.kt +++ b/app/src/androidTest/java/org/spaceworks/app/CheckoutRecoveryJourneyTest.kt @@ -21,7 +21,7 @@ class CheckoutRecoveryJourneyTest { compose.setContent { val density=LocalDensity.current CompositionLocalProvider(LocalDensity provides Density(density.density,3.2f)) { - MaterialTheme(colorScheme=if(DeviceProfile.dark)DarkScheme else LightScheme) { + org.spaceworks.app.theme.SpaceWorksTheme(DeviceProfile.dark) { CheckoutRecoveryScreen {refreshes++} } } diff --git a/app/src/androidTest/java/org/spaceworks/app/PaymentsJourneyTest.kt b/app/src/androidTest/java/org/spaceworks/app/PaymentsJourneyTest.kt index 1ecbb74..5784ad6 100644 --- a/app/src/androidTest/java/org/spaceworks/app/PaymentsJourneyTest.kt +++ b/app/src/androidTest/java/org/spaceworks/app/PaymentsJourneyTest.kt @@ -33,7 +33,7 @@ class PaymentsJourneyTest { compose.setContent { val density=LocalDensity.current CompositionLocalProvider(LocalDensity provides Density(density.density,if(largeText)3.2f else density.fontScale)){ - MaterialTheme(colorScheme=if(dark)DarkScheme else LightScheme,shapes=Shapes(small=RoundedCornerShape(10.dp),medium=RoundedCornerShape(16.dp))){ + org.spaceworks.app.theme.SpaceWorksTheme(dark){ Surface(Modifier.fillMaxSize()){Box(Modifier.fillMaxSize().safeDrawingPadding()){ PaymentsScreen(holder,true,{},launchStripe={launches.incrementAndGet();PaymentLaunchResult.DEMO_BLOCKED}) }} diff --git a/app/src/androidTest/java/org/spaceworks/app/StaffJourneyTest.kt b/app/src/androidTest/java/org/spaceworks/app/StaffJourneyTest.kt index 661d8bd..9937148 100644 --- a/app/src/androidTest/java/org/spaceworks/app/StaffJourneyTest.kt +++ b/app/src/androidTest/java/org/spaceworks/app/StaffJourneyTest.kt @@ -30,7 +30,7 @@ class StaffJourneyTest { val holder=StaffStateHolder(api,api.authority,api.uploads).apply{activate(MemberScope(7,"demo-makerspace"))} compose.setContent{val density=LocalDensity.current CompositionLocalProvider(LocalDensity provides Density(density.density,if(large)3.2f else density.fontScale)){ - MaterialTheme(colorScheme=if(dark)DarkScheme else LightScheme,shapes=Shapes(small=RoundedCornerShape(10.dp),medium=RoundedCornerShape(16.dp))){Surface(Modifier.fillMaxSize()){Box(Modifier.fillMaxSize().safeDrawingPadding()){StaffScreen(holder,true,{},previewScope=MemberScope(7,"demo-makerspace"))}}} + org.spaceworks.app.theme.SpaceWorksTheme(dark){Surface(Modifier.fillMaxSize()){Box(Modifier.fillMaxSize().safeDrawingPadding()){StaffScreen(holder,true,{},previewScope=MemberScope(7,"demo-makerspace"))}}} }} journey.systemBars(dark);waitText("Request #601");return holder } diff --git a/app/src/androidTest/java/org/spaceworks/app/UsageGuideJourneyTest.kt b/app/src/androidTest/java/org/spaceworks/app/UsageGuideJourneyTest.kt index c545e27..ef917e5 100644 --- a/app/src/androidTest/java/org/spaceworks/app/UsageGuideJourneyTest.kt +++ b/app/src/androidTest/java/org/spaceworks/app/UsageGuideJourneyTest.kt @@ -30,7 +30,7 @@ class UsageGuideJourneyTest { @Composable private fun Host(largeText: Boolean = false, content: @Composable () -> Unit) { val density = LocalDensity.current CompositionLocalProvider(LocalDensity provides Density(density.density, if (largeText) 3.2f else density.fontScale)) { - MaterialTheme(colorScheme = if (DeviceProfile.dark) DarkScheme else LightScheme, shapes = Shapes(small = RoundedCornerShape(10.dp), medium = RoundedCornerShape(16.dp))) { + org.spaceworks.app.theme.SpaceWorksTheme(DeviceProfile.dark) { Surface(Modifier.fillMaxSize()) { Box(Modifier.fillMaxSize().safeDrawingPadding()) { content() } } } } diff --git a/app/src/main/java/org/spaceworks/app/MainActivity.kt b/app/src/main/java/org/spaceworks/app/MainActivity.kt index 4e736f2..095ce8c 100644 --- a/app/src/main/java/org/spaceworks/app/MainActivity.kt +++ b/app/src/main/java/org/spaceworks/app/MainActivity.kt @@ -79,8 +79,7 @@ class MainActivity:ComponentActivity() { if(demo)demoFactory() else if(connection.connected)sessionFactory?.invoke(connection.url) else null } val identity=bundle?.holder?.state?.collectAsStateWithLifecycle()?.value?.user - MaterialTheme(colorScheme=if(dark)DarkScheme else LightScheme, - shapes=Shapes(small=androidx.compose.foundation.shape.RoundedCornerShape(10.dp),medium=androidx.compose.foundation.shape.RoundedCornerShape(16.dp))) { + SpaceWorksTheme(dark) { Surface(Modifier.fillMaxSize(),color=MaterialTheme.colorScheme.background) { Column(Modifier.safeDrawingPadding()) { Row(Modifier.fillMaxWidth().padding(horizontal=16.dp),horizontalArrangement=Arrangement.SpaceBetween) { diff --git a/app/src/main/java/org/spaceworks/app/platform/NativePayments.kt b/app/src/main/java/org/spaceworks/app/platform/NativePayments.kt index b11f550..31ce613 100644 --- a/app/src/main/java/org/spaceworks/app/platform/NativePayments.kt +++ b/app/src/main/java/org/spaceworks/app/platform/NativePayments.kt @@ -210,7 +210,7 @@ class RazorpayCheckoutActivity : ComponentActivity(), PaymentResultWithDataListe isAppearanceLightNavigationBars=!dark } setContent { - androidx.compose.material3.MaterialTheme(colorScheme=if(dark)org.spaceworks.app.theme.DarkScheme else org.spaceworks.app.theme.LightScheme) { + org.spaceworks.app.theme.SpaceWorksTheme(dark) { CheckoutRecoveryScreen { setResult(Activity.RESULT_CANCELED, Intent().putExtra("interrupted", true)); finish() } diff --git a/app/src/main/java/org/spaceworks/app/theme/BrandTheme.kt b/app/src/main/java/org/spaceworks/app/theme/BrandTheme.kt new file mode 100644 index 0000000..310fcf8 --- /dev/null +++ b/app/src/main/java/org/spaceworks/app/theme/BrandTheme.kt @@ -0,0 +1,47 @@ +package org.spaceworks.app.theme + +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Shapes +import androidx.compose.material3.Typography +import androidx.compose.runtime.Composable +import androidx.compose.ui.text.font.Font +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import org.spaceworks.app.R + +// The supplied faces carry legacy OS/2 weight=400 metadata. Declare each actual face's +// role explicitly, without rewriting the owner's name, outlines or metrics tables. +val BrandFontFamily = FontFamily( + Font(R.font.gilroy_regular, FontWeight.Normal), + Font(R.font.gilroy_medium, FontWeight.Medium), + Font(R.font.gilroy_semibold, FontWeight.SemiBold), + Font(R.font.gilroy_bold, FontWeight.Bold) +) + +/** Preserve Material's native role sizes, line heights and scalable sp units. */ +val BrandTypography = Typography().run { + copy( + displayLarge=displayLarge.copy(fontFamily=BrandFontFamily,fontWeight=FontWeight.Bold), + displayMedium=displayMedium.copy(fontFamily=BrandFontFamily,fontWeight=FontWeight.SemiBold), + displaySmall=displaySmall.copy(fontFamily=BrandFontFamily,fontWeight=FontWeight.SemiBold), + headlineLarge=headlineLarge.copy(fontFamily=BrandFontFamily,fontWeight=FontWeight.SemiBold), + headlineMedium=headlineMedium.copy(fontFamily=BrandFontFamily,fontWeight=FontWeight.SemiBold), + headlineSmall=headlineSmall.copy(fontFamily=BrandFontFamily,fontWeight=FontWeight.SemiBold), + titleLarge=titleLarge.copy(fontFamily=BrandFontFamily,fontWeight=FontWeight.SemiBold), + titleMedium=titleMedium.copy(fontFamily=BrandFontFamily,fontWeight=FontWeight.SemiBold), + titleSmall=titleSmall.copy(fontFamily=BrandFontFamily,fontWeight=FontWeight.SemiBold), + bodyLarge=bodyLarge.copy(fontFamily=BrandFontFamily), + bodyMedium=bodyMedium.copy(fontFamily=BrandFontFamily), + bodySmall=bodySmall.copy(fontFamily=BrandFontFamily), + labelLarge=labelLarge.copy(fontFamily=BrandFontFamily), + labelMedium=labelMedium.copy(fontFamily=BrandFontFamily), + labelSmall=labelSmall.copy(fontFamily=BrandFontFamily) + ) +} + +@Composable fun SpaceWorksTheme(dark:Boolean,content:@Composable ()->Unit) { + MaterialTheme(colorScheme=if(dark)DarkScheme else LightScheme,typography=BrandTypography, + shapes=Shapes(small=RoundedCornerShape(10.dp),medium=RoundedCornerShape(16.dp)),content=content) +} diff --git a/app/src/test/java/org/spaceworks/app/BrandTest.kt b/app/src/test/java/org/spaceworks/app/BrandTest.kt index 928edb2..df985c0 100644 --- a/app/src/test/java/org/spaceworks/app/BrandTest.kt +++ b/app/src/test/java/org/spaceworks/app/BrandTest.kt @@ -9,7 +9,21 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.luminance import org.spaceworks.app.theme.LightScheme import org.spaceworks.app.theme.DarkScheme +import org.spaceworks.app.theme.BrandTypography +import org.spaceworks.app.theme.BrandFontFamily +import androidx.compose.material3.Typography class BrandTest { + @Test fun allMaterialRolesUseGilroyWithoutChangingNativeTypeScale() { + fun roles(t:Typography)=listOf(t.displayLarge,t.displayMedium,t.displaySmall, + t.headlineLarge,t.headlineMedium,t.headlineSmall,t.titleLarge,t.titleMedium,t.titleSmall, + t.bodyLarge,t.bodyMedium,t.bodySmall,t.labelLarge,t.labelMedium,t.labelSmall) + roles(BrandTypography).zip(roles(Typography())).forEach {(brand,native) -> + assertEquals(BrandFontFamily,brand.fontFamily) + assertEquals(native.fontSize,brand.fontSize) + assertEquals(native.lineHeight,brand.lineHeight) + assertEquals(native.letterSpacing,brand.letterSpacing) + } + } @Test fun themeMatchesPinnedSource() { assertEquals(0xFFFFF4E8.toInt(),BrandTokens.Light.bg.toArgb()) assertEquals(0xFF142C2A.toInt(),BrandTokens.Dark.bg.toArgb()) diff --git a/branding/brand.json b/branding/brand.json index 492a5d7..01a7fd1 100644 --- a/branding/brand.json +++ b/branding/brand.json @@ -13,5 +13,9 @@ "logo_symbol_one_colour_ink": "design/logo/symbol-one-colour-ink.svg", "logo_stacked": "design/logo/lockup-stacked.svg", "logo_stacked_reversed": "design/logo/lockup-stacked-reversed.svg", - "logo_stacked_one_colour_ink": "design/logo/lockup-stacked-one-colour-ink.svg" + "logo_stacked_one_colour_ink": "design/logo/lockup-stacked-one-colour-ink.svg", + "font_regular": "design/fonts/Gilroy-Regular.woff", + "font_medium": "design/fonts/Gilroy-Medium.woff", + "font_semibold": "design/fonts/Gilroy-SemiBold.woff", + "font_bold": "design/fonts/Gilroy-Bold.woff" } diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index f57726f..4ce40e6 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,11 @@ # Phase notes +## B1 — complete native Material brand typography (2026-10-18) + +The owner requested full Space Works brand fidelity and the latest stable native Material theme. The exact existing BOM resolves Material 3 1.4.0, confirmed as Google's current stable release; the tested toolchain and native navigation bars/rails are retained. Supplied Gilroy Regular/Medium/Semibold/Bold now replace default Roboto across all 15 Material roles in the app and restored-checkout host. Native type sizes, font scaling, system bold-text behavior, touch targets, colors, supplied logos and short Unbounded accents remain intact. Earlier phase notes about pending Gilroy clearance describe their historical checkpoint and are superseded by this owner-authorized supplied-asset integration. + +Font conversion preserves every sfnt table except the container checksum and records source/output hashes. Python tests verify actual supplied table/metric preservation, deterministic four-face generation and failure safety; JVM checks cover all Material roles and native instrumentation verifies the registered fonts' distinct glyph metrics, scaling and bold-text resolution. Component journeys render the same production theme. Local lint, all 530 Debug / 498 Release JVM cases (zero failures/errors/skips), Debug/Release APK, Release AAB and all 58 native-case compilation passed. The three new real-font Python cases and existing ten brand-link cases passed; both APKs and the AAB contain byte-exact generated font resources and both APKs pass 16 KB/native-feature packaging checks. Fresh ten-profile device/visual evidence is pending; no new runtime SDK or major Compose/AGP migration is included. + ## A0 Base — foundation (2026-10-16) Scaffolded Kotlin/Compose Android app with min SDK 26 and compile/target 36, generated semantic light/dark theme, `brand.json` identity/name/icon/server configuration, pinned official design submodule, owner contract snapshot and a build-time generated Retrofit/kotlinx.serialization client. Networking includes deployment validation, auth/makerspace headers, no cookies or browser headers, no redirect credential forwarding, structured errors/Retry-After, safe next-page URL resolution, and serialized refresh rotation with atomic in-memory pair replacement. No signed-in session can be created in A0; Keystore persistence/real sign-in belong to A1. diff --git a/docs/WHITE-LABEL.md b/docs/WHITE-LABEL.md index dae1832..ff20c2b 100644 --- a/docs/WHITE-LABEL.md +++ b/docs/WHITE-LABEL.md @@ -8,8 +8,8 @@ 6. Create your own Firebase project and Android app matching the application ID. Enable/link Play Integrity to your own Play application, register the actual signing certificates and configure the backend app allowlist. Inject runtime Firebase configuration privately; token registration is gated and must not start from onboarding or demo. APNs applies to the companion iOS build and needs your own Apple account and key. 7. Complete privacy policy/Data safety details, reviewer demo account, closed testing and signing with your own accounts in A7/A8. Build a signed AAB (`bundleRelease`) after release signing is configured and publish through your Play Console. -No secrets, signing keys, `.p8` files, Firebase config or test credentials are committed. Ordinary interface text uses the platform font with font scaling. Gilroy app-embedding rights must be cleared before embedding. Debug APKs and unsigned CI release outputs are development/compile evidence. See [RELEASE-READINESS.md](RELEASE-READINESS.md) for the exact checks, owner inputs, privacy review and distribution evidence. The owner's batch workflow permits tested phases on `dev` before the final reviewed merge. +No secrets, signing keys, `.p8` files, Firebase config or test credentials are committed. Ordinary interface text uses the owner-supplied Gilroy Regular, Medium, Semibold and Bold faces with native Material typography and system font scaling. The latest owner instruction authorizes these provided assets; keep their provenance and use them under the applicable Gilroy license. Debug APKs and unsigned CI release outputs are development/compile evidence. See [RELEASE-READINESS.md](RELEASE-READINESS.md) for the exact checks, owner inputs, privacy review and distribution evidence. The owner's batch workflow permits tested phases on `dev` before the final reviewed merge. -Auth/intro branding also reads `logo_symbol`, `logo_symbol_reversed`, `logo_symbol_one_colour_ink` and the equivalent `logo_stacked` paths from `brand.json`. Supply native-vector-compatible SVG masters with their original view boxes; keep the dedicated symbol/stacked clear space and do not animate/recolor/tint the logo. Mobile motion comes from this app repository's `tokens/mobile-motion.json` and UX guidance from `docs/mobile-auth-ux-spec.md`; system animation-off settings suppress custom movement/opacity transitions. The existing Design submodule supplies brand assets and semantic colors; mobile-specific files are maintained in the app repositories. The default open-source Unbounded accent font and its conversion provenance/licence are in `docs/licenses/`; normal text uses the system font. +Auth/intro branding also reads `logo_symbol`, `logo_symbol_reversed`, `logo_symbol_one_colour_ink` and the equivalent `logo_stacked` paths from `brand.json`. Supply native-vector-compatible SVG masters with their original view boxes; keep the dedicated symbol/stacked clear space and do not animate/recolor/tint the logo. Mobile motion comes from this app repository's `tokens/mobile-motion.json` and UX guidance from `docs/mobile-auth-ux-spec.md`; system animation-off settings suppress custom movement/opacity transitions. The existing Design submodule supplies brand assets and semantic colors; mobile-specific files are maintained in the app repositories. The default open-source Unbounded accent font and its conversion provenance/licence are in `docs/licenses/`; normal text uses the supplied Gilroy family. The `font_regular`, `font_medium`, `font_semibold` and `font_bold` paths select the four WOFF1 inputs; `scripts/brand_fonts.py` losslessly repackages their sfnt tables into native Android TTF resources during `prepareBrand`. See [font provenance](licenses/Gilroy-native-fonts.md). Native Google acquisition uses Credential Manager 1.6.0 and the compiler-compatible GoogleID 1.1.1. Register your own package/signing fingerprints and server OAuth web client audience, and publish the documented `social_auth.google` configuration. Do not substitute an Android OAuth client ID for the server web audience. Missing native attestation/session contract still prevents production sign-in. The small Google G is Google's unchanged official sign-in asset ([source](https://developers.google.com/static/identity/images/g-logo.png), [branding requirements](https://developers.google.com/identity/branding-guidelines)); provider styling is intentionally independent of the app palette. No client secret is bundled. DEBUG preview providers never call Google/Apple/SSO/SMS SDKs or your backend; release omits their implementation and Explore demo entry. diff --git a/docs/licenses/Gilroy-native-fonts.md b/docs/licenses/Gilroy-native-fonts.md new file mode 100644 index 0000000..b8308a0 --- /dev/null +++ b/docs/licenses/Gilroy-native-fonts.md @@ -0,0 +1,9 @@ +# Owner-supplied Gilroy native fonts + +The pinned Design submodule (`fd28f825086a2cac7fa297881f1860b9d332db69`) contains the owner's Gilroy Regular, Medium, SemiBold and Bold WOFF files. The owner requested their use for the full mobile brand implementation. Their origin and license distinction remain documented in `design/fonts/README.md`; the legacy free Light/ExtraBold EULA does not license these four supplied faces. + +`scripts/brand_fonts.py` reconstructs a native sfnt/TTF container using Python's standard library. Every decompressed table is preserved byte for byte, including glyph outlines, character coverage, names, layout and metrics. Only the `head.checkSumAdjustment` changes to account for the native container directory. No timestamps, family names, weight metadata or license metadata are rewritten. The generated `app/build/generated/brand-fonts.json` records input/output SHA-256 hashes and explicit Android weight assignments. + +The supplied OS/2 tables report weight 400 for all four distinct faces. `BrandFontFamily` explicitly registers their actual intended weights 400/500/600/700. Material's complete type scale retains its native sizes, line heights and letter spacing; system text scaling and bold-text adjustment remain active. Unbounded stays limited to short accent phrases. + +No font is fetched at runtime. White-label owners replacing these assets must supply their own licensed WOFF1 faces and update the four `font_*` paths in `branding/brand.json`. diff --git a/scripts/brand_fonts.py b/scripts/brand_fonts.py new file mode 100644 index 0000000..33b14d1 --- /dev/null +++ b/scripts/brand_fonts.py @@ -0,0 +1,77 @@ +"""Repackage supplied WOFF1 sfnt tables as Android TTF; no font editing or dependencies.""" +from pathlib import Path +import hashlib +import json +import struct +import zlib + +FACES = {'regular': 400, 'medium': 500, 'semibold': 600, 'bold': 700} + + +def checksum(data): + padded = data + b'\0' * (-len(data) % 4) + return sum(struct.unpack('>' + 'I' * (len(padded) // 4), padded)) & 0xffffffff + + +def woff_tables(data): + if len(data) < 44 or data[:4] != b'wOFF': + raise ValueError('Brand font must be a WOFF1 sfnt') + _, flavor, length, count, reserved, total = struct.unpack('>4sIIHHI', data[:20]) + if length != len(data) or reserved or not count or 44 + count * 20 > length: + raise ValueError('Invalid WOFF directory') + tables = {} + for i in range(count): + tag, offset, compressed, original, expected = struct.unpack('>4sIIII', data[44+i*20:64+i*20]) + if tag in tables or offset + compressed > length or compressed > original: + raise ValueError('Invalid WOFF table') + raw = data[offset:offset+compressed] + if compressed != original: + raw = zlib.decompress(raw) + verified = raw[:8] + b'\0' * 4 + raw[12:] if tag == b'head' else raw + if len(raw) != original or checksum(verified) != expected: + raise ValueError('WOFF table checksum mismatch') + tables[tag] = raw + return flavor, total, tables + + +def native_font(data): + flavor, total, tables = woff_tables(data) + count = len(tables) + selector = count.bit_length() - 1 + search = (1 << selector) * 16 + header = struct.pack('>IHHHH', flavor, count, search, selector, count*16-search) + directory = bytearray() + body = bytearray() + head_offset = None + for tag, raw in sorted(tables.items()): + offset = 12 + count*16 + len(body) + if tag == b'head': + raw = raw[:8] + b'\0'*4 + raw[12:] + head_offset = offset + directory.extend(struct.pack('>4sIII', tag, checksum(raw), offset, len(raw))) + body.extend(raw + b'\0' * (-len(raw) % 4)) + result = bytearray(header + directory + body) + if head_offset is None or len(result) != total: + raise ValueError('Invalid sfnt size or missing head table') + struct.pack_into('>I', result, head_offset+8, (0xb1b0afba-checksum(result)) & 0xffffffff) + return bytes(result) + + +def generate_brand_fonts(root, brand): + root = Path(root) + prepared = {} + manifest = {} + for face, weight in FACES.items(): + source = root / brand['font_' + face] + original = source.read_bytes() + prepared[face] = native_font(original) + manifest[face] = {'source': brand['font_' + face], 'weight': weight, + 'source_sha256': hashlib.sha256(original).hexdigest(), + 'ttf_sha256': hashlib.sha256(prepared[face]).hexdigest()} + output = root/'app/build/generated/res/brand/font' + output.mkdir(parents=True, exist_ok=True) + for face, data in prepared.items(): + (output/('gilroy_' + face + '.ttf')).write_bytes(data) + report = root/'app/build/generated/brand-fonts.json' + report.write_text(json.dumps(manifest, indent=2)+'\n', encoding='utf-8') + return manifest diff --git a/scripts/prepare.py b/scripts/prepare.py index 2498dc3..e1b92f7 100644 --- a/scripts/prepare.py +++ b/scripts/prepare.py @@ -2,9 +2,11 @@ from pathlib import Path import json,xml.etree.ElementTree as ET,re from brand_links import generate_brand_links +from brand_fonts import generate_brand_fonts root=Path(__file__).resolve().parents[1] brand=json.loads((root/'branding/brand.json').read_text(encoding='utf-8')) generate_brand_links(root, brand) +generate_brand_fonts(root, brand) tokens=json.loads((root/brand['theme_tokens']).read_text(encoding='utf-8')) out=root/'app/build/generated/source/brand/org/spaceworks/app/theme';out.mkdir(parents=True,exist_ok=True) lines=['package org.spaceworks.app.theme','', 'import androidx.compose.ui.graphics.Color','import androidx.compose.material3.*','', 'object BrandTokens {'] diff --git a/scripts/tests/test_brand_fonts.py b/scripts/tests/test_brand_fonts.py new file mode 100644 index 0000000..78110ad --- /dev/null +++ b/scripts/tests/test_brand_fonts.py @@ -0,0 +1,63 @@ +import importlib.util +import json +from pathlib import Path +import struct +import tempfile +import unittest + +ROOT = Path(__file__).resolve().parents[2] +SPEC = importlib.util.spec_from_file_location('brand_fonts', ROOT/'scripts/brand_fonts.py') +FONTS = importlib.util.module_from_spec(SPEC) +SPEC.loader.exec_module(FONTS) +BRAND = json.loads((ROOT/'branding/brand.json').read_text()) + + +class BrandFontsTest(unittest.TestCase): + def test_all_supplied_tables_names_outlines_and_metrics_survive_native_conversion(self): + for face in FONTS.FACES: + source = (ROOT/BRAND['font_'+face]).read_bytes() + flavor, total, original = FONTS.woff_tables(source) + converted = FONTS.native_font(source) + self.assertEqual(len(converted), total) + self.assertEqual(FONTS.checksum(converted), 0xb1b0afba) + self.assertEqual(struct.unpack('>I', converted[:4])[0], flavor) + count = struct.unpack('>H', converted[4:6])[0] + self.assertEqual(count, len(original)) + for index in range(count): + tag, expected, offset, length = struct.unpack('>4sIII', converted[12+16*index:28+16*index]) + actual = converted[offset:offset+length] + before = original[tag] + if tag == b'head': + # The sfnt container's only changed table bytes: its whole-file checksum. + actual = actual[:8] + b'\0'*4 + actual[12:] + before = before[:8] + b'\0'*4 + before[12:] + self.assertEqual(actual, before, (face, tag)) + self.assertEqual(FONTS.checksum(actual), expected) + self.assertTrue({b'name', b'cmap', b'glyf', b'hmtx', b'OS/2'} <= original.keys()) + + def test_generated_four_weights_and_manifest_are_deterministic(self): + with tempfile.TemporaryDirectory() as directory: + brand = {key: str((ROOT/value).resolve()) for key,value in BRAND.items() if key.startswith('font_')} + first = FONTS.generate_brand_fonts(directory, brand) + second = FONTS.generate_brand_fonts(directory, brand) + self.assertEqual(first, second) + self.assertEqual([first[face]['weight'] for face in FONTS.FACES], [400,500,600,700]) + self.assertEqual(len(list(Path(directory).rglob('*.ttf'))), 4) + self.assertEqual(len({record['ttf_sha256'] for record in first.values()}), 4) + + def test_invalid_font_cannot_replace_an_existing_native_font_set(self): + with tempfile.TemporaryDirectory() as directory: + brand = {key: str((ROOT/value).resolve()) for key,value in BRAND.items() if key.startswith('font_')} + FONTS.generate_brand_fonts(directory, brand) + output = Path(directory)/'app/build/generated/res/brand/font/gilroy_regular.ttf' + before = output.read_bytes() + bad = Path(directory)/'broken.woff' + bad.write_bytes(b'not a font') + brand['font_bold'] = str(bad) + with self.assertRaises(ValueError): + FONTS.generate_brand_fonts(directory, brand) + self.assertEqual(before, output.read_bytes()) + + +if __name__ == '__main__': + unittest.main() diff --git a/scripts/tests/test_brand_links.py b/scripts/tests/test_brand_links.py index 4f42429..7386aa7 100644 --- a/scripts/tests/test_brand_links.py +++ b/scripts/tests/test_brand_links.py @@ -94,7 +94,7 @@ def test_actual_prepare_script_emits_links_and_rejects_invalid_brand_before_outp with tempfile.TemporaryDirectory() as folder: root = Path(folder) (root / 'scripts').mkdir() - for name in ('prepare.py', 'brand_links.py'): + for name in ('prepare.py', 'brand_links.py', 'brand_fonts.py'): shutil.copyfile(SCRIPTS / name, root / 'scripts' / name) (root / 'branding').mkdir() (root / 'branding/icon.svg').write_text('') @@ -109,6 +109,11 @@ def test_actual_prepare_script_emits_links_and_rejects_invalid_brand_before_outp for key in ('logo_symbol', 'logo_symbol_reversed', 'logo_symbol_one_colour_ink', 'logo_stacked', 'logo_stacked_reversed', 'logo_stacked_one_colour_ink'): brand[key] = 'branding/icon.svg' + for face, filename in [('regular', 'Regular'), ('medium', 'Medium'), ('semibold', 'SemiBold'), ('bold', 'Bold')]: + source = SCRIPTS.parent / 'design/fonts' / ('Gilroy-' + filename + '.woff') + target = root / ('branding/gilroy_' + face + '.woff') + shutil.copyfile(source, target) + brand['font_' + face] = str(target.relative_to(root)) config = root / 'branding/brand.json' config.write_text(json.dumps(brand)) command = [sys.executable, str(root / 'scripts/prepare.py')] From d96480b8f488a68510896f7d1874d6573fbdae3c Mon Sep 17 00:00:00 2001 From: Shaan Shoukath <147940963+Shaan-Shoukath@users.noreply.github.com> Date: Sun, 18 Oct 2026 03:29:27 +0530 Subject: [PATCH 02/11] feat(android): brand native payment SDK appearance Apply supported Stripe appearance tokens and weighted Gilroy XML family. Set only the documented Razorpay accent, preserving native provider layouts and payment authority. Co-Authored-By: Codex --- .../org/spaceworks/app/BrandTypographyTest.kt | 5 +++ .../spaceworks/app/platform/NativePayments.kt | 2 + .../app/platform/PaymentBrandAppearance.kt | 44 +++++++++++++++++++ .../platform/PaymentBrandAppearanceTest.kt | 25 +++++++++++ docs/CHANGELOG.md | 6 +++ docs/WHITE-LABEL.md | 4 ++ scripts/brand_fonts.py | 12 +++++ scripts/tests/test_brand_fonts.py | 7 +++ 8 files changed, 105 insertions(+) create mode 100644 app/src/main/java/org/spaceworks/app/platform/PaymentBrandAppearance.kt create mode 100644 app/src/test/java/org/spaceworks/app/platform/PaymentBrandAppearanceTest.kt diff --git a/app/src/androidTest/java/org/spaceworks/app/BrandTypographyTest.kt b/app/src/androidTest/java/org/spaceworks/app/BrandTypographyTest.kt index da5494e..6372896 100644 --- a/app/src/androidTest/java/org/spaceworks/app/BrandTypographyTest.kt +++ b/app/src/androidTest/java/org/spaceworks/app/BrandTypographyTest.kt @@ -16,6 +16,7 @@ class BrandTypographyTest { @Test fun suppliedWeightsResolveToTheirActualNativeGlyphMetricsAtMultipleScales() { val context=InstrumentationRegistry.getInstrumentation().targetContext val resolver=createFontFamilyResolver(context) + val xmlFamily=requireNotNull(ResourcesCompat.getFont(context,R.font.gilroy)) val faces=listOf( Triple(R.font.gilroy_regular,FontWeight.Normal,.800f), Triple(R.font.gilroy_medium,FontWeight.Medium,.805f), @@ -30,6 +31,10 @@ class BrandTypographyTest { assertEquals("Supplied face $weight",advance*size,paint.measureText("M"),.03f) paint.typeface=resolved assertEquals("Compose must select supplied weight $weight",advance*size,paint.measureText("M"),.03f) + if(android.os.Build.VERSION.SDK_INT>=28) { + paint.typeface=Typeface.create(xmlFamily,weight.weight,false) + assertEquals("SDK XML family must resolve the actual weight $weight",advance*size,paint.measureText("M"),.03f) + } } } if(android.os.Build.VERSION.SDK_INT>=31) { diff --git a/app/src/main/java/org/spaceworks/app/platform/NativePayments.kt b/app/src/main/java/org/spaceworks/app/platform/NativePayments.kt index 31ce613..030935d 100644 --- a/app/src/main/java/org/spaceworks/app/platform/NativePayments.kt +++ b/app/src/main/java/org/spaceworks/app/platform/NativePayments.kt @@ -153,6 +153,7 @@ class StripeSheetAdapter(private val activity: ComponentActivity, } else null sheet.presentWithPaymentIntent(input.clientSecret, PaymentSheet.Configuration( merchantDisplayName = input.merchantName, customer = customer, allowsDelayedPaymentMethods = false, + appearance = stripeBrandAppearance(), )) } catch (_: Exception) { callbacks.finish(NativePaymentProvider.STRIPE, SheetCloseReason.FAILED, text(org.spaceworks.app.payments.PaymentStrings.PAYMENT_SDK_CHECKOUT_UNAVAILABLE)) @@ -225,6 +226,7 @@ class RazorpayCheckoutActivity : ComponentActivity(), PaymentResultWithDataListe try { val options = JSONObject().put("name", input.merchantName).put("order_id", input.orderId) .put("amount", input.amountMinor).put("currency", input.currency) + .put("theme.color",razorpayBrandColor()) Checkout().apply { setKeyID(input.keyId) }.open(this, options) } catch (_: Exception) { fail() } } diff --git a/app/src/main/java/org/spaceworks/app/platform/PaymentBrandAppearance.kt b/app/src/main/java/org/spaceworks/app/platform/PaymentBrandAppearance.kt new file mode 100644 index 0000000..43eaed3 --- /dev/null +++ b/app/src/main/java/org/spaceworks/app/platform/PaymentBrandAppearance.kt @@ -0,0 +1,44 @@ +package org.spaceworks.app.platform + +import androidx.compose.material3.ColorScheme +import androidx.compose.ui.graphics.toArgb +import com.stripe.android.paymentsheet.PaymentSheet +import org.spaceworks.app.R +import org.spaceworks.app.theme.BrandTokens +import org.spaceworks.app.theme.DarkScheme +import org.spaceworks.app.theme.LightScheme +import java.util.Locale + +/** SDK appearance only. Stripe retains native layout, type sizes, weights and system appearance. */ +internal fun stripeBrandAppearance():PaymentSheet.Appearance { + fun colors(scheme:ColorScheme)=PaymentSheet.Colors( + // SDK primary also colors links/checkmarks. Keep these accessible on dark surfaces; + // the independently configured primary button below retains the exact teal fill. + primary=scheme.onPrimaryContainer.toArgb(),surface=scheme.background.toArgb(), + component=scheme.surfaceContainer.toArgb(),componentBorder=scheme.outline.toArgb(), + componentDivider=scheme.outlineVariant.toArgb(),onComponent=scheme.onSurface.toArgb(), + onSurface=scheme.onBackground.toArgb(),subtitle=scheme.onSurfaceVariant.toArgb(), + placeholderText=scheme.onSurfaceVariant.toArgb(),appBarIcon=scheme.onSurface.toArgb(), + error=scheme.error.toArgb() + ) + return PaymentSheet.Appearance( + colorsLight=colors(LightScheme),colorsDark=colors(DarkScheme), + shapes=PaymentSheet.Shapes(cornerRadiusDp=10f,borderStrokeWidthDp=1f), + typography=PaymentSheet.Typography(sizeScaleFactor=1f,fontResId=R.font.gilroy), + primaryButton=PaymentSheet.PrimaryButton( + colorsLight=PaymentSheet.PrimaryButtonColors( + background=LightScheme.primary.toArgb(),onBackground=LightScheme.onPrimary.toArgb(), + border=LightScheme.primary.toArgb(),successBackgroundColor=BrandTokens.Light.success.toArgb(), + onSuccessBackgroundColor=BrandTokens.Light.onSuccess.toArgb()), + colorsDark=PaymentSheet.PrimaryButtonColors( + background=DarkScheme.primary.toArgb(),onBackground=DarkScheme.onPrimary.toArgb(), + border=DarkScheme.primary.toArgb(),successBackgroundColor=BrandTokens.Dark.success.toArgb(), + onSuccessBackgroundColor=BrandTokens.Dark.onSuccess.toArgb()), + shape=PaymentSheet.PrimaryButtonShape(cornerRadiusDp=10f,borderStrokeWidthDp=1f), + typography=PaymentSheet.PrimaryButtonTypography(fontResId=R.font.gilroy) + ) + ) +} + +/** Android Standard Checkout documents theme.color, but no supported custom-font API. */ +internal fun razorpayBrandColor():String = String.format(Locale.ROOT,"#%06X",LightScheme.primary.toArgb() and 0xffffff) diff --git a/app/src/test/java/org/spaceworks/app/platform/PaymentBrandAppearanceTest.kt b/app/src/test/java/org/spaceworks/app/platform/PaymentBrandAppearanceTest.kt new file mode 100644 index 0000000..c15c156 --- /dev/null +++ b/app/src/test/java/org/spaceworks/app/platform/PaymentBrandAppearanceTest.kt @@ -0,0 +1,25 @@ +package org.spaceworks.app.platform + +import com.stripe.android.paymentsheet.PaymentSheet +import org.junit.Assert.* +import org.junit.Test + +class PaymentBrandAppearanceTest { + @Test fun actualSdkConfigurationKeepsExactBrandSurfacesInBothNativeModes() { + val appearance=stripeBrandAppearance() + assertEquals(PaymentSheet.Colors( + primary=0xFF006E63.toInt(),surface=0xFFFFF4E8.toInt(),component=0xFFFFFFFF.toInt(), + componentBorder=0xFF828A83.toInt(),componentDivider=0xFFD5D0C6.toInt(), + onComponent=0xFF142C2A.toInt(),onSurface=0xFF142C2A.toInt(), + subtitle=0xFF5B6863.toInt(),placeholderText=0xFF5B6863.toInt(), + appBarIcon=0xFF142C2A.toInt(),error=0xFFB91C1C.toInt()),appearance.getColors(false)) + assertEquals(PaymentSheet.Colors( + primary=0xFFABC8BC.toInt(),surface=0xFF142C2A.toInt(),component=0xFF1F433F.toInt(), + componentBorder=0xFF93A198.toInt(),componentDivider=0xFF4D6D67.toInt(), + onComponent=0xFFFFF4E8.toInt(),onSurface=0xFFFFF4E8.toInt(), + subtitle=0xFFC7C4BA.toInt(),placeholderText=0xFFC7C4BA.toInt(), + appBarIcon=0xFFFFF4E8.toInt(),error=0xFFFCA5A5.toInt()),appearance.getColors(true)) + assertNotEquals(appearance.getColors(false),appearance.getColors(true)) + assertEquals("#006E63",razorpayBrandColor()) + } +} diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 4ce40e6..3c209ff 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,11 @@ # Phase notes +## B2 — native payment SDK brand appearance (2026-10-18) + +The pinned Stripe 22.8.1 public Appearance API now receives the semantic light/dark brand colors, a table-preserving Gilroy XML family with explicit weights, 10 dp controls and branded primary/success colors. SDK sizing, accessibility, native layout and system appearance selection remain unchanged. Razorpay Android Standard Checkout receives its documented brand accent only; unsupported font/dark-palette options are not invented, and the merchant's provider logo is retained. No payment intent, authority, callback, retry or server-status behavior changes. + +Actual SDK color configuration has a JVM contract check; native font-resolution coverage now checks all four weights through the XML family used by Stripe. The no-monospace audit found no app-owned monospaced text in main/Debug sources, so identifiers and secret values are unchanged. Local lint, 531 Debug / 499 Release JVM cases (zero failures/errors/skips), all 58 native-case compilation, APK/AAB assembly and 16 KB/native-feature packaging checks passed. Fresh device font-family proof remains pending; live payment/provider visual proof still requires the owner's backend/provider setup. + ## B1 — complete native Material brand typography (2026-10-18) The owner requested full Space Works brand fidelity and the latest stable native Material theme. The exact existing BOM resolves Material 3 1.4.0, confirmed as Google's current stable release; the tested toolchain and native navigation bars/rails are retained. Supplied Gilroy Regular/Medium/Semibold/Bold now replace default Roboto across all 15 Material roles in the app and restored-checkout host. Native type sizes, font scaling, system bold-text behavior, touch targets, colors, supplied logos and short Unbounded accents remain intact. Earlier phase notes about pending Gilroy clearance describe their historical checkpoint and are superseded by this owner-authorized supplied-asset integration. diff --git a/docs/WHITE-LABEL.md b/docs/WHITE-LABEL.md index ff20c2b..34d15c1 100644 --- a/docs/WHITE-LABEL.md +++ b/docs/WHITE-LABEL.md @@ -13,3 +13,7 @@ No secrets, signing keys, `.p8` files, Firebase config or test credentials are c Auth/intro branding also reads `logo_symbol`, `logo_symbol_reversed`, `logo_symbol_one_colour_ink` and the equivalent `logo_stacked` paths from `brand.json`. Supply native-vector-compatible SVG masters with their original view boxes; keep the dedicated symbol/stacked clear space and do not animate/recolor/tint the logo. Mobile motion comes from this app repository's `tokens/mobile-motion.json` and UX guidance from `docs/mobile-auth-ux-spec.md`; system animation-off settings suppress custom movement/opacity transitions. The existing Design submodule supplies brand assets and semantic colors; mobile-specific files are maintained in the app repositories. The default open-source Unbounded accent font and its conversion provenance/licence are in `docs/licenses/`; normal text uses the supplied Gilroy family. The `font_regular`, `font_medium`, `font_semibold` and `font_bold` paths select the four WOFF1 inputs; `scripts/brand_fonts.py` losslessly repackages their sfnt tables into native Android TTF resources during `prepareBrand`. See [font provenance](licenses/Gilroy-native-fonts.md). Native Google acquisition uses Credential Manager 1.6.0 and the compiler-compatible GoogleID 1.1.1. Register your own package/signing fingerprints and server OAuth web client audience, and publish the documented `social_auth.google` configuration. Do not substitute an Android OAuth client ID for the server web audience. Missing native attestation/session contract still prevents production sign-in. The small Google G is Google's unchanged official sign-in asset ([source](https://developers.google.com/static/identity/images/g-logo.png), [branding requirements](https://developers.google.com/identity/branding-guidelines)); provider styling is intentionally independent of the app palette. No client secret is bundled. DEBUG preview providers never call Google/Apple/SSO/SMS SDKs or your backend; release omits their implementation and Explore demo entry. + +Payment SDK styling uses their documented native appearance interfaces. Stripe receives both semantic brand palettes, 10 dp control corners, standard SDK text sizing, and a native Gilroy XML family with explicit 400/500/600/700 weights. Stripe retains its native layout, accessible controls and system light/dark selection. Razorpay Android Standard Checkout receives only the documented `theme.color` accent; merchant identity/logo remain deployment/provider supplied. Its current Android API does not document a custom font or complete dark palette. The app does not inject unsupported options or restyle provider verification screens. These appearance settings do not confirm payment: existing server refetch and callback ownership checks remain authoritative. + +Supported provider appearance references: [Stripe Android Appearance API](https://docs.stripe.com/elements/appearance-api/mobile?platform=android), [Razorpay Android Standard integration options](https://razorpay.com/docs/payments/payment-gateway/android-integration/standard/integration-steps/). diff --git a/scripts/brand_fonts.py b/scripts/brand_fonts.py index 33b14d1..7852a6f 100644 --- a/scripts/brand_fonts.py +++ b/scripts/brand_fonts.py @@ -4,6 +4,7 @@ import json import struct import zlib +import xml.etree.ElementTree as ET FACES = {'regular': 400, 'medium': 500, 'semibold': 600, 'bold': 700} @@ -72,6 +73,17 @@ def generate_brand_fonts(root, brand): output.mkdir(parents=True, exist_ok=True) for face, data in prepared.items(): (output/('gilroy_' + face + '.ttf')).write_bytes(data) + # Both platform and AndroidX parsers must see actual weights; the supplied OS/2 + # metadata is intentionally preserved and reports 400 for every source face. + family = ET.Element('font-family', {'xmlns:android': 'http://schemas.android.com/apk/res/android', + 'xmlns:app': 'http://schemas.android.com/apk/res-auto'}) + for face, weight in FACES.items(): + attributes = {} + for namespace in ('android', 'app'): + attributes.update({namespace+':font': '@font/gilroy_'+face, + namespace+':fontWeight': str(weight), namespace+':fontStyle': 'normal'}) + ET.SubElement(family, 'font', attributes) + ET.ElementTree(family).write(output/'gilroy.xml', encoding='utf-8', xml_declaration=True) report = root/'app/build/generated/brand-fonts.json' report.write_text(json.dumps(manifest, indent=2)+'\n', encoding='utf-8') return manifest diff --git a/scripts/tests/test_brand_fonts.py b/scripts/tests/test_brand_fonts.py index 78110ad..630b714 100644 --- a/scripts/tests/test_brand_fonts.py +++ b/scripts/tests/test_brand_fonts.py @@ -44,6 +44,13 @@ def test_generated_four_weights_and_manifest_are_deterministic(self): self.assertEqual([first[face]['weight'] for face in FONTS.FACES], [400,500,600,700]) self.assertEqual(len(list(Path(directory).rglob('*.ttf'))), 4) self.assertEqual(len({record['ttf_sha256'] for record in first.values()}), 4) + from xml.etree import ElementTree as ET + family=ET.parse(Path(directory)/'app/build/generated/res/brand/font/gilroy.xml').getroot() + self.assertEqual(len(family),4) + for node,(face,weight) in zip(family,FONTS.FACES.items()): + for namespace in ('http://schemas.android.com/apk/res/android','http://schemas.android.com/apk/res-auto'): + self.assertEqual(node.get('{'+namespace+'}fontWeight'),str(weight)) + self.assertEqual(node.get('{'+namespace+'}font'),'@font/gilroy_'+face) def test_invalid_font_cannot_replace_an_existing_native_font_set(self): with tempfile.TemporaryDirectory() as directory: From 644bd93fe6f9a225ccc3c911c64ac6f47011d6b4 Mon Sep 17 00:00:00 2001 From: Shaan Shoukath <147940963+Shaan-Shoukath@users.noreply.github.com> Date: Sun, 18 Oct 2026 03:47:28 +0530 Subject: [PATCH 03/11] Add owned native feedback and system-aware motion Keep feedback tied to guarded auth completions and fresh member/staff actions. Respect native settings, screen ownership and animation-off preferences. Co-Authored-By: Codex --- .../org/spaceworks/app/NativeFeedbackTest.kt | 48 +++++++++++++++++++ .../spaceworks/app/UsageGuideJourneyTest.kt | 11 ++++- .../app/auth/AuthOperationOutcome.kt | 18 +++++++ .../spaceworks/app/auth/AuthStateHolder.kt | 27 +++++++++-- .../org/spaceworks/app/guidance/UsageGuide.kt | 9 +++- .../spaceworks/app/platform/NativeFeedback.kt | 41 ++++++++++++++++ .../spaceworks/app/platform/NativeMotion.kt | 24 ++++++++++ .../app/platform/OutcomeFeedback.kt | 17 +++++++ .../org/spaceworks/app/staff/StaffScreen.kt | 31 +++++++++++- .../org/spaceworks/app/theme/BrandTheme.kt | 6 +++ .../java/org/spaceworks/app/ui/AuthScreen.kt | 22 +++++++-- .../spaceworks/app/ui/MemberActionsScreen.kt | 3 +- .../org/spaceworks/app/ui/OnboardingScreen.kt | 28 ++++------- .../test/java/org/spaceworks/app/AuthTest.kt | 40 ++++++++++++++++ .../app/platform/OutcomeFeedbackTest.kt | 48 +++++++++++++++++++ docs/CHANGELOG.md | 8 ++++ docs/WHITE-LABEL.md | 2 + 17 files changed, 347 insertions(+), 36 deletions(-) create mode 100644 app/src/androidTest/java/org/spaceworks/app/NativeFeedbackTest.kt create mode 100644 app/src/main/java/org/spaceworks/app/auth/AuthOperationOutcome.kt create mode 100644 app/src/main/java/org/spaceworks/app/platform/NativeFeedback.kt create mode 100644 app/src/main/java/org/spaceworks/app/platform/NativeMotion.kt create mode 100644 app/src/main/java/org/spaceworks/app/platform/OutcomeFeedback.kt create mode 100644 app/src/test/java/org/spaceworks/app/platform/OutcomeFeedbackTest.kt diff --git a/app/src/androidTest/java/org/spaceworks/app/NativeFeedbackTest.kt b/app/src/androidTest/java/org/spaceworks/app/NativeFeedbackTest.kt new file mode 100644 index 0000000..e85452d --- /dev/null +++ b/app/src/androidTest/java/org/spaceworks/app/NativeFeedbackTest.kt @@ -0,0 +1,48 @@ +package org.spaceworks.app + +import android.content.Context +import android.view.View +import androidx.activity.ComponentActivity +import androidx.compose.foundation.layout.size +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.compose.ui.viewinterop.AndroidView +import androidx.compose.ui.test.junit4.createAndroidComposeRule +import androidx.lifecycle.Lifecycle +import org.junit.Assert.* +import org.junit.Rule +import org.junit.Test +import org.spaceworks.app.platform.FeedbackKind +import org.spaceworks.app.platform.NativeActionFeedback + +/** Proves native dispatch/settings gates, not the physical tactile quality of emulator hardware. */ +class NativeFeedbackTest { + @get:Rule val compose=createAndroidComposeRule() + private class FeedbackView(context:Context):View(context) { + var calls=0 + override fun performHapticFeedback(feedbackConstant:Int):Boolean {calls++;return true} + } + @Test fun attachedNativeViewDispatchesFreshOutcomeOnlyAndRespectsViewDisablement() { + lateinit var view:FeedbackView + compose.setContent {AndroidView(factory={FeedbackView(it).also {created->view=created}},modifier=Modifier.size(48.dp))} + compose.runOnIdle { + assertTrue(view.isAttachedToWindow) + var owner="account-a" + val feedback=NativeActionFeedback(view,{owner},{compose.activity.lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED)}) + assertEquals(0,view.calls) + val first=feedback.begin() + feedback.finish(first,FeedbackKind.CONFIRM) + feedback.finish(first,FeedbackKind.CONFIRM) + assertEquals(1,view.calls) + view.isHapticFeedbackEnabled=false + feedback.finish(feedback.begin(),FeedbackKind.REJECT) + assertEquals(1,view.calls) + view.isHapticFeedbackEnabled=true + val stale=feedback.begin();owner="account-b" + feedback.finish(stale,FeedbackKind.CONFIRM) + assertEquals(1,view.calls) + feedback.finish(feedback.begin(),FeedbackKind.SELECTION) + assertEquals(2,view.calls) + } + } +} diff --git a/app/src/androidTest/java/org/spaceworks/app/UsageGuideJourneyTest.kt b/app/src/androidTest/java/org/spaceworks/app/UsageGuideJourneyTest.kt index ef917e5..2bdf522 100644 --- a/app/src/androidTest/java/org/spaceworks/app/UsageGuideJourneyTest.kt +++ b/app/src/androidTest/java/org/spaceworks/app/UsageGuideJourneyTest.kt @@ -68,10 +68,11 @@ class UsageGuideJourneyTest { @Test fun guideRemainsReadableAndActionsReachableAtLargestTextWithoutStartingAnotherFlow() { var replayed = 0; var reset = 0; var back = 0 - compose.setContent { Host(largeText = true) { + var reducedMotion by mutableStateOf(false) + compose.setContent { Host(largeText = true) { CompositionLocalProvider(org.spaceworks.app.platform.LocalReducedMotion provides reducedMotion) { UsageGuideScreen(demo = true, staffAvailable = false, onBack = { back++ }, onReplayIntro = { replayed++ }, onResetTips = { reset++ }) - } } + } } } journey.systemBars(DeviceProfile.dark) journey.visible(compose.onNodeWithTag("usage-guide-heading")) compose.onNodeWithText("Staff handovers").assertDoesNotExist() @@ -89,6 +90,12 @@ class UsageGuideJourneyTest { inventory.assert(SemanticsMatcher.keyIsDefined(SemanticsActions.Expand)) compose.onNodeWithTag("usage-section-inventory-body-0").assertDoesNotExist() compose.onNodeWithTag("usage-section-inventory-body-5").assertDoesNotExist() + // Reduced motion keeps one immediate semantic body and the same native controls. + compose.runOnIdle { reducedMotion = true } + journey.click(inventory) + compose.onAllNodesWithTag("usage-section-inventory-body-0").assertCountEquals(1) + journey.click(inventory) + compose.onNodeWithTag("usage-section-inventory-body-0").assertDoesNotExist() journey.clickTag("usage-replay-intro"); assertEquals(1, replayed) journey.clickTag("usage-reset-tips"); assertEquals(1, reset) journey.visible(compose.onNodeWithTag("usage-reset-notice")) diff --git a/app/src/main/java/org/spaceworks/app/auth/AuthOperationOutcome.kt b/app/src/main/java/org/spaceworks/app/auth/AuthOperationOutcome.kt new file mode 100644 index 0000000..63c3cae --- /dev/null +++ b/app/src/main/java/org/spaceworks/app/auth/AuthOperationOutcome.kt @@ -0,0 +1,18 @@ +package org.spaceworks.app.auth + +enum class AuthOperationKind { PROGRESSED, ACCEPTED, REJECTED } + +/** Nonsecret, operation-owned completion proof. Contains no credentials, recovery codes or user data. */ +class AuthOperationOutcome internal constructor(internal val owner:Any,internal val revision:Long, + internal val epoch:Long,val kind:AuthOperationKind) + +internal fun authOperationKind(before:AuthState,after:AuthState,accepted:Boolean):AuthOperationKind? = when { + after.busy -> null + after.error!=null && after.error!=before.error -> AuthOperationKind.REJECTED + after.gate!=null && after.gate!=before.gate -> AuthOperationKind.REJECTED + after.user!=null && before.user==null && accepted -> + if(after.user.mustChangePassword)AuthOperationKind.PROGRESSED else AuthOperationKind.ACCEPTED + after.mfa!=null && before.mfa==null -> AuthOperationKind.PROGRESSED + after.recoveryCodes.isNotEmpty() && before.recoveryCodes.isEmpty() -> AuthOperationKind.PROGRESSED + else -> null +} diff --git a/app/src/main/java/org/spaceworks/app/auth/AuthStateHolder.kt b/app/src/main/java/org/spaceworks/app/auth/AuthStateHolder.kt index 051751f..d77a7c1 100644 --- a/app/src/main/java/org/spaceworks/app/auth/AuthStateHolder.kt +++ b/app/src/main/java/org/spaceworks/app/auth/AuthStateHolder.kt @@ -64,6 +64,9 @@ class AuthStateHolder(private val api:AuthGateway,private val tokens:TokenStore, private var endingLocalSession=false private var removedMembershipEpoch:Long?=null private val removedMembershipIds=mutableSetOf() + private val outcomeOwner=Any() + fun isCurrentOutcome(outcome:AuthOperationOutcome)=outcome.owner===outcomeOwner && + outcome.revision==localIdentityRevision && outcome.epoch==tokens.snapshot().epoch private var retryAt=0L private var challengeExpiresAt=0L val nativeSocialReady get()=api.nativeSocialReady @@ -73,7 +76,8 @@ class AuthStateHolder(private val api:AuthGateway,private val tokens:TokenStore, val restored=withContext(Dispatchers.IO){tokens.snapshot()} if(restored.pair!=null){installedEpoch=restored.epoch;refreshIdentity()} } - suspend fun signIn(username:String,password:String)=runOperation { + suspend fun signIn(username:String,password:String)=signInWithOutcome(username,password,null) + suspend fun signInWithOutcome(username:String,password:String,onOutcome:((AuthOperationOutcome)->Unit)?)=runOperation(onOutcome=onOutcome) { mutable.value=state.value.copy(gate=null) ensure(username.trim().isNotBlank() && password.isNotEmpty(),text(CoreStrings.CORE_ENTER_YOUR_EMAIL_OR_USERNAME_AND_PASSWORD)) ensure(state.value.config!=null && state.value.passwordEnabled,text(CoreStrings.CORE_PASSWORD_SIGN_IN_IS_UNAVAILABLE_ON_THIS_SERVER)) @@ -90,7 +94,8 @@ class AuthStateHolder(private val api:AuthGateway,private val tokens:TokenStore, } } } - suspend fun googleSignIn(credential:suspend(String,String)->String)=runOperation { + suspend fun googleSignIn(credential:suspend(String,String)->String)=googleSignInWithOutcome(credential,null) + suspend fun googleSignInWithOutcome(credential:suspend(String,String)->String,onOutcome:((AuthOperationOutcome)->Unit)?)=runOperation(onOutcome=onOutcome) { mutable.value=state.value.copy(gate=null) val client=state.value.googleClientId ?: throw AuthMessage(text(CoreStrings.CORE_GOOGLE_SIGN_IN_IS_NOT_CONFIGURED_FOR_THIS_SERVER)) ensure(api.nativeSocialReady,text(CoreStrings.CORE_DEVICE_SIGN_IN_IS_NOT_CONFIGURED_FOR_THIS_BUILD_CONTACT_YOUR)) @@ -105,7 +110,8 @@ class AuthStateHolder(private val api:AuthGateway,private val tokens:TokenStore, ensureOperationCurrent() mutable.value=state.value.copy(enrollment=enrollment) } - suspend fun verify(code:String)=runOperation { + suspend fun verify(code:String)=verifyWithOutcome(code,null) + suspend fun verifyWithOutcome(code:String,onOutcome:((AuthOperationOutcome)->Unit)?)=runOperation(onOutcome=onOutcome) { val challenge=requireChallenge() ensure(code.trim().length in 6..64,text(CoreStrings.CORE_ENTER_YOUR_AUTHENTICATOR_OR_RECOVERY_CODE)) val result=api.verify(challenge.challenge,code.trim(),challenge.enrollmentRequired) @@ -116,7 +122,8 @@ class AuthStateHolder(private val api:AuthGateway,private val tokens:TokenStore, if (result.recoveryCodes.orEmpty().isNotEmpty()) mutable.value=state.value.copy(recoveryCodes=result.recoveryCodes.orEmpty()) else finishMfaInternal() } - suspend fun finishMfa()=runOperation { finishMfaInternal() } + suspend fun finishMfa()=finishMfaWithOutcome(null) + suspend fun finishMfaWithOutcome(onOutcome:((AuthOperationOutcome)->Unit)?)=runOperation(onOutcome=onOutcome) { finishMfaInternal() } private suspend fun finishMfaInternal() { val expected=installedEpoch try { refreshIdentity();mutable.value=state.value.copy(mfa=null,enrollment=null,recoveryCodes=emptyList()) } @@ -359,9 +366,16 @@ class AuthStateHolder(private val api:AuthGateway,private val tokens:TokenStore, val id=(grant?.get("id") as? JsonPrimitive)?.contentOrNull return try {id!=null && java.util.UUID.fromString(id).toString()==id.lowercase()}catch(_:IllegalArgumentException){false} } - private suspend fun runOperation(ignoreThrottle:Boolean=false,block:suspend()->Unit) { + private suspend fun runOperation(ignoreThrottle:Boolean=false,onOutcome:((AuthOperationOutcome)->Unit)?=null,block:suspend()->Unit) { if(endingLocalSession || !operation.tryLock()) return val revision=localIdentityRevision + val before=state.value + var completion:AuthOperationOutcome?=null + fun capture(kind:AuthOperationKind?) { + val epoch=operationEpoch ?: return + if(onOutcome!=null && kind!=null && localIdentityRevision==revision && tokens.snapshot().epoch==epoch) + completion=AuthOperationOutcome(outcomeOwner,revision,epoch,kind) + } operationRevision=revision operationEpoch=tokens.snapshot().epoch try { @@ -369,6 +383,7 @@ class AuthStateHolder(private val api:AuthGateway,private val tokens:TokenStore, if(state.value.user!=null)requireInstalledEpoch() mutable.value=state.value.copy(busy=true,error=null,notice=null) block() + capture(authOperationKind(before,state.value.copy(busy=false),acceptedInstallationEpoch!=null)) } catch(cancelled:CancellationException) {throw cancelled} catch(_:AuthCancelled) {if(localIdentityRevision!=revision)return;mutable.value=state.value.copy(error=null,notice=text(CoreStrings.CORE_SIGN_IN_CANCELLED))} catch(f:Exception) { @@ -377,6 +392,8 @@ class AuthStateHolder(private val api:AuthGateway,private val tokens:TokenStore, mutable.value=state.value.copy(retryAtMillis=retryAt, gate=if(f is ApiFailure && f.code=="device_superadmin_not_supported")AuthGate.WEB_CONSOLE else state.value.gate, error=when(f){is MobileCopyException->text.failure(f);is ApiFailure->text.apiFailure(f);is AuthMessage->f.message ?: text(CoreStrings.CORE_COULDN_T_CONNECT_TRY_AGAIN);else->text(CoreStrings.CORE_COULDN_T_CONNECT_TRY_AGAIN)}) + capture(AuthOperationKind.REJECTED) } finally {operationRevision=null;operationEpoch=null;mutable.value=state.value.copy(busy=endingLocalSession);operation.unlock()} + completion?.takeIf(::isCurrentOutcome)?.let {onOutcome?.invoke(it)} } } diff --git a/app/src/main/java/org/spaceworks/app/guidance/UsageGuide.kt b/app/src/main/java/org/spaceworks/app/guidance/UsageGuide.kt index 85f40a4..dde9cc0 100644 --- a/app/src/main/java/org/spaceworks/app/guidance/UsageGuide.kt +++ b/app/src/main/java/org/spaceworks/app/guidance/UsageGuide.kt @@ -1,5 +1,11 @@ package org.spaceworks.app.guidance +import androidx.compose.animation.animateContentSize +import androidx.compose.animation.core.snap +import androidx.compose.animation.core.tween +import org.spaceworks.app.platform.LocalReducedMotion +import org.spaceworks.app.theme.BrandMotion + import android.content.Context import androidx.compose.foundation.layout.* import androidx.compose.foundation.rememberScrollState @@ -115,7 +121,8 @@ private data class GuideTopic(val id: String, val title: MobileCopyKey, val body val copy = rememberMobileText() var expanded by rememberSaveable(topic.id) { mutableStateOf(false) } val isExpanded = expanded - Card(Modifier.fillMaxWidth(), shape = RoundedCornerShape(16.dp), colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.surfaceContainer)) { + val reduced=LocalReducedMotion.current + Card(Modifier.fillMaxWidth().animateContentSize(animationSpec=if(reduced)snap()else tween(BrandMotion.EXPAND)), shape = RoundedCornerShape(16.dp), colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.surfaceContainer)) { Column(Modifier.padding(20.dp), verticalArrangement = Arrangement.spacedBy(12.dp)) { TextButton(onClick = { expanded = !isExpanded }, colors = ButtonDefaults.textButtonColors(contentColor = MaterialTheme.colorScheme.onSurface), contentPadding = PaddingValues(horizontal = 12.dp, vertical = 8.dp), diff --git a/app/src/main/java/org/spaceworks/app/platform/NativeFeedback.kt b/app/src/main/java/org/spaceworks/app/platform/NativeFeedback.kt new file mode 100644 index 0000000..2de7d20 --- /dev/null +++ b/app/src/main/java/org/spaceworks/app/platform/NativeFeedback.kt @@ -0,0 +1,41 @@ +package org.spaceworks.app.platform + +import android.os.Build +import android.view.HapticFeedbackConstants +import android.view.View +import androidx.compose.runtime.* +import androidx.compose.ui.platform.LocalView +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.compose.LocalLifecycleOwner + +internal class NativeActionFeedback(private val view:View,private val owner:()->Any, + private val active:()->Boolean) { + private val gate=FeedbackTicketGate() + fun begin()=gate.begin(owner()) + fun cancel()=gate.cancel() + fun perform(kind:FeedbackKind)=finish(begin(),kind) + fun finish(ticket:FeedbackTicket,kind:FeedbackKind?) { + if(!gate.finish(ticket,owner(),kind!=null && active() && view.isAttachedToWindow && view.isHapticFeedbackEnabled))return + val constant=when(kind) { + FeedbackKind.SELECTION->HapticFeedbackConstants.CLOCK_TICK + FeedbackKind.CONFIRM->if(Build.VERSION.SDK_INT>=30)HapticFeedbackConstants.CONFIRM else HapticFeedbackConstants.CONTEXT_CLICK + FeedbackKind.REJECT->if(Build.VERSION.SDK_INT>=30)HapticFeedbackConstants.REJECT else HapticFeedbackConstants.CONTEXT_CLICK + null->return + } + // The one-argument native API respects system touch-feedback settings and device support. + // No IGNORE flags, custom vibration waveform or VIBRATE permission. + view.performHapticFeedback(constant) + } +} + +@Composable internal fun rememberActionFeedback(owner:Any):NativeActionFeedback { + val view=LocalView.current + val lifecycle=LocalLifecycleOwner.current.lifecycle + val currentOwner by rememberUpdatedState(owner) + var mounted by remember(view,lifecycle){mutableStateOf(true)} + val feedback=remember(view,lifecycle) {NativeActionFeedback(view,{currentOwner}, + {mounted && lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED)})} + DisposableEffect(feedback,owner) {onDispose {feedback.cancel()}} + DisposableEffect(feedback) {onDispose {mounted=false;feedback.cancel()}} + return feedback +} diff --git a/app/src/main/java/org/spaceworks/app/platform/NativeMotion.kt b/app/src/main/java/org/spaceworks/app/platform/NativeMotion.kt new file mode 100644 index 0000000..8f79e69 --- /dev/null +++ b/app/src/main/java/org/spaceworks/app/platform/NativeMotion.kt @@ -0,0 +1,24 @@ +package org.spaceworks.app.platform + +import android.database.ContentObserver +import android.os.Handler +import android.os.Looper +import android.provider.Settings +import androidx.compose.runtime.* +import androidx.compose.ui.platform.LocalContext + +val LocalReducedMotion=staticCompositionLocalOf {false} + +@Composable fun rememberReducedMotion():Boolean { + val context=LocalContext.current + fun read()=Settings.Global.getFloat(context.contentResolver,Settings.Global.ANIMATOR_DURATION_SCALE,1f)==0f + var reduced by remember(context){mutableStateOf(read())} + DisposableEffect(context) { + val observer=object:ContentObserver(Handler(Looper.getMainLooper())) { + override fun onChange(selfChange:Boolean){reduced=read()} + } + context.contentResolver.registerContentObserver(Settings.Global.getUriFor(Settings.Global.ANIMATOR_DURATION_SCALE),false,observer) + onDispose {context.contentResolver.unregisterContentObserver(observer)} + } + return reduced +} diff --git a/app/src/main/java/org/spaceworks/app/platform/OutcomeFeedback.kt b/app/src/main/java/org/spaceworks/app/platform/OutcomeFeedback.kt new file mode 100644 index 0000000..a28da8b --- /dev/null +++ b/app/src/main/java/org/spaceworks/app/platform/OutcomeFeedback.kt @@ -0,0 +1,17 @@ +package org.spaceworks.app.platform + +internal enum class FeedbackKind { SELECTION, CONFIRM, REJECT } +internal class FeedbackTicket internal constructor(internal val owner:Any) + +/** One explicit UI action, consumed once; disposal/owner changes discard pending feedback. */ +internal class FeedbackTicketGate { + private var pending:FeedbackTicket?=null + fun begin(owner:Any)=FeedbackTicket(owner).also {pending=it} + fun cancel(){pending=null} + fun finish(ticket:FeedbackTicket,owner:Any,eligible:Boolean):Boolean { + if(pending!==ticket)return false + pending=null + return ticket.owner==owner && eligible + } +} + diff --git a/app/src/main/java/org/spaceworks/app/staff/StaffScreen.kt b/app/src/main/java/org/spaceworks/app/staff/StaffScreen.kt index 33dc870..4b128fa 100644 --- a/app/src/main/java/org/spaceworks/app/staff/StaffScreen.kt +++ b/app/src/main/java/org/spaceworks/app/staff/StaffScreen.kt @@ -4,6 +4,8 @@ import org.spaceworks.app.network.retrySecondsRemaining import org.spaceworks.app.platform.MobileText import org.spaceworks.app.platform.rememberMobileText +import org.spaceworks.app.platform.rememberActionFeedback +import org.spaceworks.app.platform.FeedbackKind import android.content.Context import android.graphics.Bitmap @@ -63,6 +65,7 @@ private data class StaffConfirmation(val title:String,val detail:String,val acti val text=rememberMobileText() val s by holder.state.collectAsStateWithLifecycle();val work=rememberCoroutineScope() + val feedback=rememberActionFeedback(holder to (s.scope to s.section)) val focus=LocalFocusManager.current;val keyboard=LocalSoftwareKeyboardController.current val scroll=rememberScrollState();var confirmation by remember(s.scope,s.section){mutableStateOf(null)} var previewOptionsOpen by remember(holder){mutableStateOf(false)} @@ -73,7 +76,19 @@ private data class StaffConfirmation(val title:String,val detail:String,val acti LaunchedEffect(s.scope,s.section){when(s.section){StaffSection.QUEUE->holder.loadQueue();StaffSection.DIRECT->holder.loadDirect();StaffSection.EVENTS->holder.loadEvents();StaffSection.SPACES->holder.loadSpaces();else->Unit}} LaunchedEffect(s.error){if(s.error!=null){focus.clearFocus();keyboard?.hide();scroll.scrollTo(0)}} val enabled=!s.busy&&clock>=s.retryAtMillis - fun launch(action:suspend()->Unit){focus.clearFocus();keyboard?.hide();work.launch{action()}} + fun launch(action:suspend()->Unit){ + focus.clearFocus();keyboard?.hide() + val before=holder.state.value + val ticket=feedback.begin() + work.launch { + action() + val after=holder.state.value + val recorded=after.scope==before.scope && after.error==null && + ((after.handover?.receipt!=null && before.handover?.receipt==null) || + (after.attendanceNotice!=null && before.attendanceNotice==null)) + feedback.finish(ticket,if(recorded)FeedbackKind.CONFIRM else null) + } + } fun close(){if(!s.busy){if(s.section in setOf(StaffSection.QUEUE,StaffSection.DIRECT,StaffSection.EVENTS,StaffSection.SPACES))onBack()else holder.close()}} BackHandler{close()} confirmation?.let{pending-> @@ -271,6 +286,7 @@ if(s.nextPages[key]!=null)BrandTextButton(text(StaffStrings.STAFF_LOAD_MORE),mor @Composable private fun StaffScanInput(holder:StaffStateHolder,kind:StaffScanKind,label:String,demo:Boolean,enabled:Boolean,tag:String,demoPayload:String){ val text=rememberMobileText();val work=rememberCoroutineScope() val observed by holder.state.collectAsStateWithLifecycle() + val feedback=rememberActionFeedback(holder to (observed.scope to kind)) val target=if(observed.scope==null)null else holder.scanTarget(kind) var code by remember(holder,tag,target){mutableStateOf("")} var camera by remember(holder,tag,target){mutableStateOf(null)} @@ -284,7 +300,18 @@ if(s.nextPages[key]!=null)BrandTextButton(text(StaffStrings.STAFF_LOAD_MORE),mor fun resolve(raw:String,owner:StaffScanTarget){ if(!mounted||currentHolder!==holder||currentTarget!=owner||!holder.acceptsScanTarget(owner))return code="";camera=null;failure=null - work.launch(start=kotlinx.coroutines.CoroutineStart.UNDISPATCHED){holder.resolveScan(owner,raw)} + val before=holder.state.value + val ticket=feedback.begin() + work.launch(start=kotlinx.coroutines.CoroutineStart.UNDISPATCHED){ + val accepted=holder.resolveScan(owner,raw) + val after=holder.state.value + val resolved=accepted && after.scope==before.scope && after.error==null && when(kind) { + StaffScanKind.CHECK_IN->after.person!=null && after.person!=before.person + StaffScanKind.CONTAINER->!after.handover?.boxCode.isNullOrBlank() && after.handover?.boxCode!=before.handover?.boxCode + StaffScanKind.EQUIPMENT->!after.handover?.scans.isNullOrEmpty() && after.handover?.scans!=before.handover?.scans + } + feedback.finish(ticket,if(resolved)FeedbackKind.SELECTION else null) + } } BrandField(code,{code=it.take(2048)},label,Modifier.testTag(tag),enabled) BrandError(failure) diff --git a/app/src/main/java/org/spaceworks/app/theme/BrandTheme.kt b/app/src/main/java/org/spaceworks/app/theme/BrandTheme.kt index 310fcf8..cd29ef9 100644 --- a/app/src/main/java/org/spaceworks/app/theme/BrandTheme.kt +++ b/app/src/main/java/org/spaceworks/app/theme/BrandTheme.kt @@ -5,11 +5,14 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Shapes import androidx.compose.material3.Typography import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.text.font.Font import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import org.spaceworks.app.R +import org.spaceworks.app.platform.LocalReducedMotion +import org.spaceworks.app.platform.rememberReducedMotion // The supplied faces carry legacy OS/2 weight=400 metadata. Declare each actual face's // role explicitly, without rewriting the owner's name, outlines or metrics tables. @@ -42,6 +45,9 @@ val BrandTypography = Typography().run { } @Composable fun SpaceWorksTheme(dark:Boolean,content:@Composable ()->Unit) { + val reduced=rememberReducedMotion() + CompositionLocalProvider(LocalReducedMotion provides reduced) { MaterialTheme(colorScheme=if(dark)DarkScheme else LightScheme,typography=BrandTypography, shapes=Shapes(small=RoundedCornerShape(10.dp),medium=RoundedCornerShape(16.dp)),content=content) + } } diff --git a/app/src/main/java/org/spaceworks/app/ui/AuthScreen.kt b/app/src/main/java/org/spaceworks/app/ui/AuthScreen.kt index fe23884..70fba80 100644 --- a/app/src/main/java/org/spaceworks/app/ui/AuthScreen.kt +++ b/app/src/main/java/org/spaceworks/app/ui/AuthScreen.kt @@ -30,6 +30,18 @@ import org.spaceworks.app.platform.GoogleIdentity val state by holder.state.collectAsStateWithLifecycle() val account=bundle.accounts?.state?.collectAsStateWithLifecycle()?.value val scope=rememberCoroutineScope() + val feedback=rememberActionFeedback(bundle) + fun launchAuth(action:suspend((AuthOperationOutcome)->Unit)->Unit) { + val ticket=feedback.begin() + scope.launch {action {outcome-> + val kind=if(!holder.isCurrentOutcome(outcome))null else when(outcome.kind) { + AuthOperationKind.PROGRESSED->FeedbackKind.SELECTION + AuthOperationKind.ACCEPTED->FeedbackKind.CONFIRM + AuthOperationKind.REJECTED->FeedbackKind.REJECT + } + feedback.finish(ticket,kind) + }} + } val context=LocalContext.current val focus=LocalFocusManager.current val keyboard=LocalSoftwareKeyboardController.current @@ -62,8 +74,8 @@ import org.spaceworks.app.platform.GoogleIdentity val submit:()->Unit={ usernameError=if(username.isBlank())copyText(UiStrings.MOBILE_ENTER_YOUR_EMAIL_OR_USERNAME) else null passwordError=if(password.isEmpty())copyText(UiStrings.MOBILE_ENTER_YOUR_PASSWORD) else null - when {usernameError!=null->usernameFocus.requestFocus();passwordError!=null->passwordFocus.requestFocus();else->{ - focus.clearFocus();keyboard?.hide();scope.launch {holder.signIn(username,password);if(holder.state.value.mfa!=null || holder.state.value.user!=null)password=""} + when {usernameError!=null->{feedback.perform(FeedbackKind.REJECT);usernameFocus.requestFocus()};passwordError!=null->{feedback.perform(FeedbackKind.REJECT);passwordFocus.requestFocus()};else->{ + focus.clearFocus();keyboard?.hide();launchAuth {outcome->holder.signInWithOutcome(username,password,outcome);if(holder.state.value.mfa!=null || holder.state.value.user!=null)password=""} }} } LaunchedEffect(holder) {if(!state.initialized)holder.initialize()} @@ -84,7 +96,7 @@ import org.spaceworks.app.platform.GoogleIdentity Text(copyText(UiStrings.MOBILE_I_VE_SAVED_MY_RECOVERY_CODES)) } BrandError(state.error) - BrandButton(copyText(UiStrings.MOBILE_CONTINUE),{scope.launch {holder.finishMfa()}},!state.busy && acknowledged) + BrandButton(copyText(UiStrings.MOBILE_CONTINUE),{launchAuth {outcome->holder.finishMfaWithOutcome(outcome)}},!state.busy && acknowledged) } state.mfa!=null -> { val mfa=requireNotNull(state.mfa) @@ -111,7 +123,7 @@ import org.spaceworks.app.platform.GoogleIdentity if(!enrollment || state.enrollment!=null) { BrandField(code,{code=if(recoveryEntry)it.take(64) else it.filter {c->c in '0'..'9'}.take(6)},if(recoveryEntry)copyText(UiStrings.MOBILE_RECOVERY_CODE) else copyText(UiStrings.MOBILE_AUTHENTICATION_CODE),Modifier.testTag("mfaCode"),!state.busy,role=if(recoveryEntry)FieldRole.TEXT else FieldRole.CODE) BrandButton(if(state.busy)copyText(UiStrings.MOBILE_VERIFYING) else if(enrollment)copyText(UiStrings.MOBILE_VERIFY_AND_CONTINUE) else copyText(UiStrings.MOBILE_VERIFY),{ - focus.clearFocus();keyboard?.hide();scope.launch {holder.verify(code);code=""} + focus.clearFocus();keyboard?.hide();launchAuth {outcome->holder.verifyWithOutcome(code,outcome);code=""} },!state.busy && if(recoveryEntry)code.trim().length in 6..64 else code.length==6) } if(!enrollment)BrandTextButton(if(recoveryEntry)copyText(UiStrings.MOBILE_USE_AUTHENTICATOR_INSTEAD) else copyText(UiStrings.MOBILE_USE_A_RECOVERY_CODE),{recoveryEntry=!recoveryEntry;code=""},!state.busy) @@ -128,7 +140,7 @@ import org.spaceworks.app.platform.GoogleIdentity } else { state.googleClientId?.let { if(holder.nativeSocialReady && !bundle.demo)GoogleSignInButton(!state.busy && retrySeconds==0L) { - scope.launch {holder.googleSignIn {client,nonce->GoogleIdentity.credential(context.activity() ?: throw AuthMessage(copyText(UiStrings.MOBILE_THIS_SIGN_IN_OPTION_ISN_T_AVAILABLE_ON_THIS_DEVICE)),client,nonce)}} + launchAuth {outcome->holder.googleSignInWithOutcome({client,nonce->GoogleIdentity.credential(context.activity() ?: throw AuthMessage(copyText(UiStrings.MOBILE_THIS_SIGN_IN_OPTION_ISN_T_AVAILABLE_ON_THIS_DEVICE)),client,nonce)},outcome)} } else if(!bundle.demo)Text(copyText(UiStrings.MOBILE_GOOGLE_DEVICE_SIGN_IN_IS_NOT_CONFIGURED_FOR_THIS_BUILD_CONTACT_Y),style=MaterialTheme.typography.bodySmall) if(state.passwordEnabled && holder.nativeSocialReady)Text(copyText(UiStrings.MOBILE_OR_SIGN_IN_WITH_A_PASSWORD),style=MaterialTheme.typography.labelLarge) diff --git a/app/src/main/java/org/spaceworks/app/ui/MemberActionsScreen.kt b/app/src/main/java/org/spaceworks/app/ui/MemberActionsScreen.kt index 3f3add0..264c223 100644 --- a/app/src/main/java/org/spaceworks/app/ui/MemberActionsScreen.kt +++ b/app/src/main/java/org/spaceworks/app/ui/MemberActionsScreen.kt @@ -46,6 +46,7 @@ val LocalMemberActionScope=staticCompositionLocalOfAlertDialog(onDismissRequest={if(!s.busy)confirm=null},title={Text(when(action){"renew"->copyText(UiStrings.MOBILE_RENEW_THIS_LOAN);"cancelBooking"->copyText(UiStrings.MOBILE_CANCEL_THIS_BOOKING);"reschedule"->copyText(UiStrings.MOBILE_CHANGE_THIS_BOOKING);"cancelRegistration"->copyText(UiStrings.MOBILE_CANCEL_THIS_REGISTRATION);else->copyText(UiStrings.MOBILE_SUBMIT_YOUR_REQUEST)})},text={Text(when(action){"renew"->copyText(UiStrings.MOBILE_YOUR_MAKERSPACE_WILL_DECIDE_THE_NEW_DUE_DATE_AND_WHETHER_RENEWAL);"cancelBooking"->copyText(UiStrings.MOBILE_YOUR_MAKERSPACE_S_CANCELLATION_RULES_APPLY_THIS_CANNOT_BE_UNDONE);"reschedule"->copyText(UiStrings.MOBILE_THE_SERVER_WILL_CHECK_THE_NEW_TIME_BEFORE_CHANGING_YOUR_BOOKING);"cancelRegistration"->copyText(UiStrings.MOBILE_YOUR_PLACE_MAY_BE_OFFERED_TO_SOMEONE_ELSE_CANCELLATION_RULES_APP);else->copyText(UiStrings.MOBILE_CHECK_YOUR_ITEMS_AND_QUANTITIES_YOUR_MAKERSPACE_WILL_REVIEW_THE)})},confirmButton={BrandTextButton(copyText(UiStrings.MOBILE_CONFIRM),{confirm=null;work.launch {when(action){"renew"->holder.renew();"cancelBooking"->holder.cancelBooking();"reschedule"->holder.reschedule();"cancelRegistration"->holder.cancelRegistration();else->holder.submitRequest()}}},enabled)},dismissButton={BrandTextButton(when(action){"cancelBooking"->copyText(UiStrings.MOBILE_KEEP_BOOKING);"cancelRegistration"->copyText(UiStrings.MOBILE_KEEP_REGISTRATION);else->copyText(UiStrings.MOBILE_KEEP_REVIEWING)},{confirm=null},!s.busy)})} + confirm?.let {action->AlertDialog(onDismissRequest={if(!s.busy)confirm=null},title={Text(when(action){"renew"->copyText(UiStrings.MOBILE_RENEW_THIS_LOAN);"cancelBooking"->copyText(UiStrings.MOBILE_CANCEL_THIS_BOOKING);"reschedule"->copyText(UiStrings.MOBILE_CHANGE_THIS_BOOKING);"cancelRegistration"->copyText(UiStrings.MOBILE_CANCEL_THIS_REGISTRATION);else->copyText(UiStrings.MOBILE_SUBMIT_YOUR_REQUEST)})},text={Text(when(action){"renew"->copyText(UiStrings.MOBILE_YOUR_MAKERSPACE_WILL_DECIDE_THE_NEW_DUE_DATE_AND_WHETHER_RENEWAL);"cancelBooking"->copyText(UiStrings.MOBILE_YOUR_MAKERSPACE_S_CANCELLATION_RULES_APPLY_THIS_CANNOT_BE_UNDONE);"reschedule"->copyText(UiStrings.MOBILE_THE_SERVER_WILL_CHECK_THE_NEW_TIME_BEFORE_CHANGING_YOUR_BOOKING);"cancelRegistration"->copyText(UiStrings.MOBILE_YOUR_PLACE_MAY_BE_OFFERED_TO_SOMEONE_ELSE_CANCELLATION_RULES_APP);else->copyText(UiStrings.MOBILE_CHECK_YOUR_ITEMS_AND_QUANTITIES_YOUR_MAKERSPACE_WILL_REVIEW_THE)})},confirmButton={BrandTextButton(copyText(UiStrings.MOBILE_CONFIRM),{confirm=null;val ticket=feedback.begin();val before=holder.state.value;work.launch {val recorded=when(action){"renew"->holder.renew();"cancelBooking"->holder.cancelBooking();"reschedule"->holder.reschedule();"cancelRegistration"->holder.cancelRegistration();else->holder.submitRequest()};val after=holder.state.value;feedback.finish(ticket,if(recorded && after.scope==before.scope && after.error==null && before.receipt==null && after.receipt!=null)FeedbackKind.CONFIRM else null)}},enabled)},dismissButton={BrandTextButton(when(action){"cancelBooking"->copyText(UiStrings.MOBILE_KEEP_BOOKING);"cancelRegistration"->copyText(UiStrings.MOBILE_KEEP_REGISTRATION);else->copyText(UiStrings.MOBILE_KEEP_REVIEWING)},{confirm=null},!s.busy)})} Box(Modifier.fillMaxSize(),contentAlignment=androidx.compose.ui.Alignment.TopCenter) { Column(Modifier.widthIn(max=640.dp).fillMaxWidth().imePadding().verticalScroll(scroll).padding(24.dp),verticalArrangement=Arrangement.spacedBy(20.dp)) { BrandTextButton(copyText(UiStrings.MOBILE_BACK),{close()},!s.busy) diff --git a/app/src/main/java/org/spaceworks/app/ui/OnboardingScreen.kt b/app/src/main/java/org/spaceworks/app/ui/OnboardingScreen.kt index 68f4f60..6670754 100644 --- a/app/src/main/java/org/spaceworks/app/ui/OnboardingScreen.kt +++ b/app/src/main/java/org/spaceworks/app/ui/OnboardingScreen.kt @@ -2,10 +2,6 @@ package org.spaceworks.app.ui import org.spaceworks.app.platform.* -import android.database.ContentObserver -import android.os.Handler -import android.os.Looper -import android.provider.Settings import androidx.compose.animation.* import androidx.compose.animation.core.* import androidx.compose.foundation.Image @@ -21,6 +17,7 @@ import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.painterResource import androidx.compose.ui.semantics.* import androidx.compose.ui.unit.dp @@ -28,17 +25,6 @@ import org.spaceworks.app.* import org.spaceworks.app.R import org.spaceworks.app.theme.BrandMotion -@Composable fun rememberReducedMotion():Boolean { - val context=LocalContext.current - fun read()=Settings.Global.getFloat(context.contentResolver,Settings.Global.ANIMATOR_DURATION_SCALE,1f)==0f - var reduced by remember(context){mutableStateOf(read())} - DisposableEffect(context) { - val observer=object:ContentObserver(Handler(Looper.getMainLooper())){override fun onChange(selfChange:Boolean){reduced=read()}} - context.contentResolver.registerContentObserver(Settings.Global.getUriFor(Settings.Global.ANIMATOR_DURATION_SCALE),false,observer) - onDispose {context.contentResolver.unregisterContentObserver(observer)} - } - return reduced -} private data class IntroPage(val title:MobileCopyKey,val body:MobileCopyKey,val action:MobileCopyKey) private val introPages=listOf( IntroPage(UiStrings.MOBILE_MAKE_ROOM,UiStrings.MOBILE_FIND_TOOLS_BOOK_A_SPACE_AND_SEE_WHAT_S_NEXT_AT_YOUR_MAKERSPACE,UiStrings.MOBILE_FIND_THE_RIGHT_TOOLS), @@ -49,20 +35,22 @@ private val introPages=listOf( val copyText=rememberMobileText() var step by rememberSaveable {mutableIntStateOf(0)} - val reduced=rememberReducedMotion() + val reduced=LocalReducedMotion.current + val feedback=rememberActionFeedback(Unit) + val slideOffset=with(LocalDensity.current){12.dp.roundToPx()} val easing=CubicBezierEasing(BrandMotion.easing[0],BrandMotion.easing[1],BrandMotion.easing[2],BrandMotion.easing[3]) Box(Modifier.fillMaxSize(),contentAlignment=Alignment.TopCenter) { Column(Modifier.widthIn(max=620.dp).fillMaxWidth().verticalScroll(rememberScrollState()).padding(24.dp),verticalArrangement=Arrangement.spacedBy(24.dp)) { Row(Modifier.fillMaxWidth(),horizontalArrangement=Arrangement.SpaceBetween,verticalAlignment=Alignment.CenterVertically) { // The master logo stays static. Only the surrounding content below transitions. BrandLogo(compact=true) - BrandTextButton(copyText(UiStrings.MOBILE_SKIP_INTRODUCTION),onFinish) + BrandTextButton(copyText(UiStrings.MOBILE_SKIP_INTRODUCTION),{feedback.perform(FeedbackKind.SELECTION);onFinish()}) } val stepDescription=copyText(UiStrings.MOBILE_STEP_VALUE_OF_3,step+1) Text(stepDescription,style=MaterialTheme.typography.labelLarge,modifier=Modifier.semantics {stateDescription=stepDescription}) AnimatedContent(targetState=step,label=copyText(UiStrings.MOBILE_INTRODUCTION_PANEL),transitionSpec={ if(reduced)EnterTransition.None togetherWith ExitTransition.None - else (fadeIn(tween(BrandMotion.EXPAND,easing=easing))+slideInVertically(tween(BrandMotion.EXPAND,easing=easing)){12}) togetherWith fadeOut(tween(BrandMotion.OVERLAY_EXIT,easing=easing)) + else (fadeIn(tween(BrandMotion.EXPAND,easing=easing))+slideInVertically(tween(BrandMotion.EXPAND,easing=easing)){slideOffset}) togetherWith fadeOut(tween(BrandMotion.OVERLAY_EXIT,easing=easing)) }) {index -> val page=introPages[index] Column(verticalArrangement=Arrangement.spacedBy(24.dp)) { @@ -77,8 +65,8 @@ private val introPages=listOf( } } } - BrandButton(if(step==2)copyText(UiStrings.MOBILE_GET_STARTED) else copyText(UiStrings.MOBILE_NEXT),{if(step==2)onFinish()else step++}) - if(step>0)BrandTextButton(copyText(UiStrings.MOBILE_BACK),{step--}) + BrandButton(if(step==2)copyText(UiStrings.MOBILE_GET_STARTED) else copyText(UiStrings.MOBILE_NEXT),{if(step==2){feedback.perform(FeedbackKind.CONFIRM);onFinish()}else{feedback.perform(FeedbackKind.SELECTION);step++}}) + if(step>0)BrandTextButton(copyText(UiStrings.MOBILE_BACK),{feedback.perform(FeedbackKind.SELECTION);step--}) if(step==2)onDemo?.let {BrandTextButton(copyText(UiStrings.MOBILE_EXPLORE_DEMO),it)} } } diff --git a/app/src/test/java/org/spaceworks/app/AuthTest.kt b/app/src/test/java/org/spaceworks/app/AuthTest.kt index 8add9b3..67a1c29 100644 --- a/app/src/test/java/org/spaceworks/app/AuthTest.kt +++ b/app/src/test/java/org/spaceworks/app/AuthTest.kt @@ -49,6 +49,46 @@ private class FakeAuth:AuthGateway { override suspend fun changePassword(current:String,replacement:String){changed=true} } class AuthTest { + @Test fun delayedVerificationCannotEmitFeedbackForReplacementInstallation()=runTest { + val api=FakeAuth();val store=MemoryTokenStore();val holder=AuthStateHolder(api,store) + holder.initialize();holder.signIn("member","pass") + api.verifyGate=CompletableDeferred() + val outcomes=mutableListOf() + val old=launch {holder.verifyWithOutcome("123456",outcomes::add)};runCurrent() + val replacement=TokenPair("new-account-access","new-account-refresh") + store.replace(replacement) + api.verifyGate!!.complete(Unit);old.join() + assertTrue(outcomes.isEmpty());assertEquals(replacement,store.read()) + assertNull(holder.state.value.user) + } + @Test fun acceptedOutcomeBelongsToExactHolderAndInstallationNotLaterAcceptedAccount()=runTest { + val api=FakeAuth();val store=MemoryTokenStore();val holder=AuthStateHolder(api,store) + val outcomes=mutableListOf() + holder.initialize();holder.signInWithOutcome("member","pass",outcomes::add) + assertEquals(AuthOperationKind.PROGRESSED,outcomes.single().kind) + holder.verifyWithOutcome("123456",outcomes::add) + val accepted=outcomes.last() + assertEquals(AuthOperationKind.ACCEPTED,accepted.kind);assertTrue(holder.isCurrentOutcome(accepted)) + val otherHolder=AuthStateHolder(api,store) + assertFalse(otherHolder.isCurrentOutcome(accepted)) + holder.signOut();api.who=api.who.copy(id=2,username="replacement") + holder.signIn("replacement","pass");holder.verifyWithOutcome("123456",outcomes::add) + assertEquals(2,holder.state.value.user!!.id) + assertFalse(holder.isCurrentOutcome(accepted));assertTrue(holder.isCurrentOutcome(outcomes.last())) + } + @Test fun cancelledVerificationNeverEmitsCompletionButFreshOwnedActionCan()=runTest { + val api=FakeAuth();val store=MemoryTokenStore();val holder=AuthStateHolder(api,store) + holder.initialize();holder.signIn("member","pass") + api.verifyGate=CompletableDeferred() + val outcomes=mutableListOf() + val cancelled=launch {holder.verifyWithOutcome("123456",outcomes::add)};runCurrent() + cancelled.cancelAndJoin() + assertTrue(outcomes.isEmpty());assertFalse(holder.state.value.busy);assertNull(store.read()) + api.verifyGate=null + holder.verifyWithOutcome("123456",outcomes::add) + assertEquals(AuthOperationKind.ACCEPTED,outcomes.single().kind) + assertTrue(holder.isCurrentOutcome(outcomes.single())) + } @Test fun delayedLogoutInvalidatesPrivateFlowsBeforeAwaitingServerRevocation()=runTest { val api=FakeAuth();val store=MemoryTokenStore();var privateScopeAccessible=true val holder=AuthStateHolder(api,store,onSessionEnded={privateScopeAccessible=false}) diff --git a/app/src/test/java/org/spaceworks/app/platform/OutcomeFeedbackTest.kt b/app/src/test/java/org/spaceworks/app/platform/OutcomeFeedbackTest.kt new file mode 100644 index 0000000..44978ed --- /dev/null +++ b/app/src/test/java/org/spaceworks/app/platform/OutcomeFeedbackTest.kt @@ -0,0 +1,48 @@ +package org.spaceworks.app.platform + +import org.junit.Assert.* +import org.junit.Test +import org.spaceworks.app.auth.AuthState +import org.spaceworks.app.auth.AuthOperationKind +import org.spaceworks.app.auth.authOperationKind +import org.spaceworks.generated.model.AuthUserPayload +import org.spaceworks.generated.model.MFAChallengeResponse + +class OutcomeFeedbackTest { + @Test fun replacementActionOwnerOrDisposedScreenCannotReplayOldFeedback() { + val gate=FeedbackTicketGate() + val first=gate.begin("account-a") + val second=gate.begin("account-a") + assertFalse(gate.finish(first,"account-a",true)) + assertTrue(gate.finish(second,"account-a",true)) + assertFalse(gate.finish(second,"account-a",true)) + val replaced=gate.begin("account-a") + assertFalse(gate.finish(replaced,"account-b",true)) + val disposed=gate.begin("account-a") + gate.cancel() + assertFalse(gate.finish(disposed,"account-a",true)) + } + @Test fun backgroundOrDisabledCompletionIsConsumedRatherThanReplayedOnResume() { + val gate=FeedbackTicketGate() + val ticket=gate.begin("scope") + assertFalse(gate.finish(ticket,"scope",false)) + assertFalse(gate.finish(ticket,"scope",true)) + assertTrue(gate.finish(gate.begin("scope"),"scope",true)) + } + @Test fun mfaAndRequiredPasswordAreProgressionRatherThanCompletedAuthentication() { + val before=AuthState(initialized=true) + val user=AuthUserPayload(1,"member","member@example.invalid","Member","",true,"member",false,false,emptyList()) + assertEquals(AuthOperationKind.PROGRESSED,authOperationKind(before,before.copy(mfa=MFAChallengeResponse(true,false,"challenge",300)),false)) + assertEquals(AuthOperationKind.PROGRESSED,authOperationKind(before,before.copy(user=user.copy(mustChangePassword=true)),true)) + assertNull(authOperationKind(before,before.copy(user=user),false)) + assertEquals(AuthOperationKind.ACCEPTED,authOperationKind(before,before.copy(user=user),true)) + assertNull(authOperationKind(before.copy(user=user),before.copy(user=user),true)) + } + @Test fun oldErrorsAndBusyOrUnchangedReadsDoNotCreateNewOutcomeFeedback() { + val before=AuthState(initialized=true,error="Check your sign-in details") + assertNull(authOperationKind(before,before,false)) + assertNull(authOperationKind(before,before.copy(busy=true,error="New error"),false)) + assertEquals(AuthOperationKind.REJECTED,authOperationKind(before,before.copy(error="Verification expired"),false)) + assertNull(authOperationKind(AuthState(),AuthState(initialized=true),false)) + } +} diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 3c209ff..e37d6c9 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,13 @@ # Phase notes +## B3 — native motion and owned tactile feedback (2026-10-18) + +Onboarding retains its static supplied logo while content uses the existing short brand transitions and density-aware offsets. App guide disclosures animate their existing single content body; the shared production theme observes Android's animation-duration setting and removes custom motion when it is off. Component hosts use the same production theme. + +Explicit onboarding progression, owned authentication progression/acceptance or rejection, successful QR resolution and newly server-confirmed member/staff receipts receive settings-aware native feedback. Authentication feedback carries a nonsecret completion stamp from the existing guarded operation; canceled or replaced operations cannot borrow a later account's accepted state. Screen disposal, owner replacement, background lifecycle, disabled view feedback and duplicate completions suppress dispatch. No polling, session restoration, payment SDK submission, generic navigation or every-button vibration is added. Android controls the actual tactile effect and respects system settings; no custom waveform, ignore-setting flag or vibration permission is introduced. + +Regression coverage includes real delayed/canceled authentication and replacement-account ownership, feedback consumption and native view dispatch/settings gates. Existing large-text guide journeys also exercise animation-off expansion with a single accessible body. Local and fresh ten-profile runtime/visual validation are recorded with the final source gate; native dispatch checks do not establish physical tactile quality on emulator hardware. + ## B2 — native payment SDK brand appearance (2026-10-18) The pinned Stripe 22.8.1 public Appearance API now receives the semantic light/dark brand colors, a table-preserving Gilroy XML family with explicit weights, 10 dp controls and branded primary/success colors. SDK sizing, accessibility, native layout and system appearance selection remain unchanged. Razorpay Android Standard Checkout receives its documented brand accent only; unsupported font/dark-palette options are not invented, and the merchant's provider logo is retained. No payment intent, authority, callback, retry or server-status behavior changes. diff --git a/docs/WHITE-LABEL.md b/docs/WHITE-LABEL.md index 34d15c1..ccdb01d 100644 --- a/docs/WHITE-LABEL.md +++ b/docs/WHITE-LABEL.md @@ -17,3 +17,5 @@ Native Google acquisition uses Credential Manager 1.6.0 and the compiler-compati Payment SDK styling uses their documented native appearance interfaces. Stripe receives both semantic brand palettes, 10 dp control corners, standard SDK text sizing, and a native Gilroy XML family with explicit 400/500/600/700 weights. Stripe retains its native layout, accessible controls and system light/dark selection. Razorpay Android Standard Checkout receives only the documented `theme.color` accent; merchant identity/logo remain deployment/provider supplied. Its current Android API does not document a custom font or complete dark palette. The app does not inject unsupported options or restyle provider verification screens. These appearance settings do not confirm payment: existing server refetch and callback ownership checks remain authoritative. Supported provider appearance references: [Stripe Android Appearance API](https://docs.stripe.com/elements/appearance-api/mobile?platform=android), [Razorpay Android Standard integration options](https://razorpay.com/docs/payments/payment-gateway/android-integration/standard/integration-steps/). + +Native motion uses the existing mobile motion tokens and observes Android's animation-duration setting through the shared production theme. The supplied logo stays static. Onboarding panel transitions and guide disclosures suppress custom motion when system animation is off. Outcome feedback uses the one-argument `View.performHapticFeedback` API only for explicit progression, guarded auth outcomes and fresh server-recorded member/staff actions. Lifecycle, current owner and duplicate-completion gates suppress stale or background effects; Android retains control of touch-feedback settings and hardware support. No vibration permission or setting-bypass flags are required. From c8f493e9dd9dbf16d995180c60500d1248119c6b Mon Sep 17 00:00:00 2001 From: Shaan Shoukath <147940963+Shaan-Shoukath@users.noreply.github.com> Date: Sun, 18 Oct 2026 04:21:04 +0530 Subject: [PATCH 04/11] Fix scaled native controls and font metric proof Use fractional native glyph advances, preserve fully scaled guide words and prevent multiline capsule clipping. Strengthen native PDF and control capture evidence and align delivery instructions with tested dev-to-main integration. Co-Authored-By: Codex --- AGENTS.md | 10 +++++----- README.md | 6 +++--- .../org/spaceworks/app/BrandTypographyTest.kt | 9 +++++---- .../org/spaceworks/app/PaymentsJourneyTest.kt | 16 +++++++++++++--- .../java/org/spaceworks/app/StaffJourneyTest.kt | 10 +++++++++- .../org/spaceworks/app/UsageGuideJourneyTest.kt | 14 ++++++++++++++ .../org/spaceworks/app/guidance/UsageGuide.kt | 10 +++++----- .../app/platform/NativeDocumentPreview.kt | 12 ++++++------ .../org/spaceworks/app/ui/BrandComponents.kt | 2 +- docs/CHANGELOG.md | 4 ++++ docs/IMPLEMENTATION-PLAN.md | 2 +- docs/RELEASE-READINESS.md | 9 ++++++--- docs/STORE-LISTING.md | 2 +- 13 files changed, 73 insertions(+), 33 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index e4c1b38..e2f7b4c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -19,16 +19,16 @@ ## Branch delivery workflow -The owner merged the A0 foundation and requested this workflow on 2026-10-16: +The owner's latest delivery instruction, updated 2026-10-18, supersedes the earlier PR workflow: -- Start ongoing work from `dev`, commit there, and push to `origin/dev`. -- Finish the phase's implementation and validation before opening its final `dev` → `main` pull request. -- Keep `main` for reviewed merges. Preserve the owner's configured commit identity and the required Codex co-author trailer. +- Consolidate ongoing mobile work on `dev`, commit there, and push tested progress to `origin/dev`; do not create feature branches or pull requests. +- Complete exact-source local/CI checks, the required full device matrix and actual screenshot review, then merge tested `dev` directly to `main`. +- Preserve the owner's configured commit identity, the required Codex co-author trailer and all immutable inputs. A failed or skipped required gate cannot establish acceptance. ## Owner execution extension — 2026-10-16 -The owner's latest complete-build instruction extends the original PRD: implement remaining phases on `dev`, commit and push tested progress there, and prepare the final `dev` → `main` PR after the batch. Intermediate merge gates are superseded; green CI remains mandatory before proceeding between phases. Phone AND tablet layouts are now in scope, including 320/360dp phones, common/large phones, 600/840dp tablets, portrait/landscape, light/dark and 2× font scale. Keep `docs/PRD.md` byte-identical to its owner source; record extensions here and in `docs/IMPLEMENTATION-PLAN.md`. Preserve Shaan's GitHub identity plus the Codex co-author trailer. Use the local Docker API for integration, contract/generated models only, no backend implementation edits or provider/attestation bypasses. Document precise backend-request issues for unavailable native capabilities; continue independent supported work. +The owner's complete-build extension adds remaining phases on `dev` with tested progress committed and pushed there. The latest delivery instruction removes PR/feature-branch steps: consolidate and validate `dev`, then merge that tested source directly to `main`. Intermediate merge waits are superseded; green CI remains mandatory for phase acceptance. Phone AND tablet layouts are now in scope, including 320/360dp phones, common/large phones, 600/840dp tablets, portrait/landscape, light/dark and 2× font scale. Keep `docs/PRD.md` byte-identical to its owner source; record extensions here and in `docs/IMPLEMENTATION-PLAN.md`. Preserve Shaan's GitHub identity plus the Codex co-author trailer. Use the local Docker API for integration, contract/generated models only, no backend implementation edits or provider/attestation bypasses. Document precise backend-request issues for unavailable native capabilities; continue independent supported work. Owner backend deferment: complete and test the full native flow using an explicit DEBUG-only, isolated in-memory demo. The backend will be supplied later. Never infer live success or invent production routes/models; missing native contract/provider configuration stays visibly unavailable outside demo. diff --git a/README.md b/README.md index 3fa9437..47f8861 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Native Kotlin/Compose app for Android 8+ (API 26), targeting API 36, for phones ## Development workflow -Use `dev` for ongoing changes and push commits to `origin/dev`. After implementation and CI validation finish, open the final pull request from `dev` to `main`. The A0 foundation is already merged into `main`. +Consolidate ongoing mobile changes on `dev` and push tested commits to `origin/dev`. Do not create feature branches or pull requests. After exact-source CI, the full device matrix and actual screenshot review pass, merge tested `dev` directly to `main`. ## Build @@ -22,7 +22,7 @@ Open this repository in Android Studio and run `app`. Choose a server on launch The backend and owner provisioning are deferred. Unsupported native contracts remain unavailable; see [backend dependencies](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/issues/3). Real integrity, providers, push, checkout, account deletion and store distribution require the deployment inputs and verification in the release guide. The Debug APK can be installed for development and the isolated preview. Play distribution uses an owner-signed release build; CI release outputs are unsigned. -Gradle regenerates native semantic colors and branding from the pinned Design submodule, motion from local `tokens/mobile-motion.json`, and the API client from the [contract](api/README.md). Generated sources stay out of Git. Never replace the pinned schema with a local server's schema or hand-write API payload models. See [WHITE-LABEL.md](docs/WHITE-LABEL.md) for configuration. Space Works uses static logo masters, native system text and licensed Unbounded accent text. Gilroy is not embedded without app-embedding permission. Never commit signing material, provider secrets or test credentials. +Gradle regenerates native semantic colors and branding from the pinned Design submodule, motion from local `tokens/mobile-motion.json`, and the API client from the [contract](api/README.md). Generated sources stay out of Git. Never replace the pinned schema with a local server's schema or hand-write API payload models. See [WHITE-LABEL.md](docs/WHITE-LABEL.md) for configuration. Space Works uses static logo masters, supplied Gilroy native text and one short Unbounded accent per layout; font provenance and license metadata are retained in `docs/licenses/`. Never commit signing material, provider secrets or test credentials. ## Use and review the app @@ -33,6 +33,6 @@ guidance appears only in an authorized staff context. See [USER-GUIDE.md](docs/U Prepared store copy, screenshot selection and private reviewer-access notes are in [STORE-LISTING.md](docs/STORE-LISTING.md). -Build and device evidence is linked from the [dev → main pull request](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/pull/2). +Record the final tested commit, successful dev-push/full-matrix runs and reviewed artifacts in the release handoff before merging to `main`. [PR #2](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/pull/2) is historical A8 evidence, not final proof of later changes. Keep simulator/demo checks separate from live provider and physical-device acceptance; the [release handoff](docs/RELEASE-READINESS.md) records those deployment inputs. diff --git a/app/src/androidTest/java/org/spaceworks/app/BrandTypographyTest.kt b/app/src/androidTest/java/org/spaceworks/app/BrandTypographyTest.kt index 6372896..d5e22d1 100644 --- a/app/src/androidTest/java/org/spaceworks/app/BrandTypographyTest.kt +++ b/app/src/androidTest/java/org/spaceworks/app/BrandTypographyTest.kt @@ -23,17 +23,18 @@ class BrandTypographyTest { Triple(R.font.gilroy_semibold,FontWeight.SemiBold,.810f), Triple(R.font.gilroy_bold,FontWeight.Bold,.815f) ) + // measureText deliberately ceils widths; compare fractional native runs to supplied hmtx. faces.forEach {(resource,weight,advance) -> val native=requireNotNull(ResourcesCompat.getFont(context,resource)) val resolved=resolver.resolve(BrandFontFamily,weight,fontSynthesis=FontSynthesis.None).value as Typeface listOf(16f,32f,51.2f).forEach {size -> val paint=Paint().apply {textSize=size;typeface=native;isSubpixelText=true;isLinearText=true} - assertEquals("Supplied face $weight",advance*size,paint.measureText("M"),.03f) + assertEquals("Supplied face $weight",advance*size,paint.getRunAdvance("M",0,1,0,1,false,1),.03f) paint.typeface=resolved - assertEquals("Compose must select supplied weight $weight",advance*size,paint.measureText("M"),.03f) + assertEquals("Compose must select supplied weight $weight",advance*size,paint.getRunAdvance("M",0,1,0,1,false,1),.03f) if(android.os.Build.VERSION.SDK_INT>=28) { paint.typeface=Typeface.create(xmlFamily,weight.weight,false) - assertEquals("SDK XML family must resolve the actual weight $weight",advance*size,paint.measureText("M"),.03f) + assertEquals("SDK XML family must resolve the actual weight $weight",advance*size,paint.getRunAdvance("M",0,1,0,1,false,1),.03f) } } } @@ -43,7 +44,7 @@ class BrandTypographyTest { val boldResolver=createFontFamilyResolver(boldContext) val bold=boldResolver.resolve(BrandFontFamily,FontWeight.Normal,fontSynthesis=FontSynthesis.None).value as Typeface val paint=Paint().apply {textSize=100f;typeface=bold;isSubpixelText=true;isLinearText=true} - assertEquals("System bold-text adjustment selects the supplied Bold face",81.5f,paint.measureText("M"),.03f) + assertEquals("System bold-text adjustment selects the supplied Bold face",81.5f,paint.getRunAdvance("M",0,1,0,1,false,1),.03f) } } } diff --git a/app/src/androidTest/java/org/spaceworks/app/PaymentsJourneyTest.kt b/app/src/androidTest/java/org/spaceworks/app/PaymentsJourneyTest.kt index 5784ad6..52c216f 100644 --- a/app/src/androidTest/java/org/spaceworks/app/PaymentsJourneyTest.kt +++ b/app/src/androidTest/java/org/spaceworks/app/PaymentsJourneyTest.kt @@ -69,11 +69,21 @@ class PaymentsJourneyTest { assertNull(session.payments!!.state.value.selectedId);assertEquals(0,launches.get());shot("a5-app-maker-payment-isolation") } + private fun documentAction(label:String) { + val action=journey.visible(compose.onNodeWithText(label)).assertIsEnabled() + val viewport=action.onAncestors().filter(hasScrollAction()).onFirst().fetchSemanticsNode().boundsInRoot + val actual=action.fetchSemanticsNode().boundsInRoot + assertTrue("Full $label action must fit the actual document scroll viewport",actual.width>0 && actual.height>0 && + actual.left>=viewport.left && actual.right<=viewport.right && actual.top>=viewport.top && actual.bottom<=viewport.bottom) + } @Test fun serverConfirmedPreviewCheckoutOpensNativeReceiptWithoutAnySDKCharge(){ - val holder=start();openDeposit();shot("a5-payment-review");click("Continue to payment");waitText("Preview checkout");click("Server confirms payment");waitText("Paid online");shot("a5-server-confirmed-payment") + val holder=start(largeText=true);openDeposit();shot("a5-payment-review");click("Continue to payment");waitText("Preview checkout");click("Server confirms payment");waitText("Paid online");shot("a5-server-confirmed-payment") click("Receipts and credit notes");waitText("Receipt DEMO-RECEIPT-001");journey.click(compose.onNodeWithContentDescription("Open PDF DEMO-RECEIPT-001"));waitText("Save PDF") compose.waitUntil(10000){compose.onAllNodesWithContentDescription("DEMO-RECEIPT-001, page 1 of 1").fetchSemanticsNodes().isNotEmpty()} - val file=holder.state.value.preview!!.file;assertTrue(file.exists());shot("a5-native-pdf-receipt");click("Done");compose.waitForIdle();assertNull(holder.state.value.preview);assertFalse(file.exists());assertEquals(0,launches.get()) + val file=holder.state.value.preview!!.file;assertTrue(file.exists());shot("a5-native-pdf-receipt") + documentAction("Save PDF");shot("a5-native-pdf-save-action") + documentAction("Share document");shot("a5-native-pdf-share-action") + documentAction("Done");shot("a5-native-pdf-done-action");click("Done");compose.waitForIdle();assertNull(holder.state.value.preview);assertFalse(file.exists());assertEquals(0,launches.get()) } @Test fun delayedConfirmationStaysPendingUntilALaterServerRefresh(){ val holder=start();openDeposit();click("Continue to payment");click("Confirmation delayed");waitText("Your payment is awaiting server confirmation. Check its status again shortly.") @@ -83,6 +93,6 @@ class PaymentsJourneyTest { @Test fun cancelledAndFailedCheckoutAreReadableAtLargestTextInDarkMode(){ val holder=start(dark=true,largeText=true);openDeposit();click("Continue to payment");click("Checkout cancelled");waitText("Checkout closed. Check the current payment status before trying again.") assertEquals("pending",holder.record("501")!!.status);click("Continue to payment");click("Checkout failed");waitText("Checkout could not finish. Check the payment status and try again.") - assertEquals("pending",holder.record("501")!!.status);assertFalse(holder.state.value.busy);shot("a5-payment-failed-dark-large-text");assertEquals(0,launches.get()) + assertEquals("pending",holder.record("501")!!.status);assertFalse(holder.state.value.busy);journey.visible(compose.onNodeWithText("Check payment status")).assertIsEnabled();shot("a5-payment-failed-dark-large-text");assertEquals(0,launches.get()) } } diff --git a/app/src/androidTest/java/org/spaceworks/app/StaffJourneyTest.kt b/app/src/androidTest/java/org/spaceworks/app/StaffJourneyTest.kt index 9937148..ed5371b 100644 --- a/app/src/androidTest/java/org/spaceworks/app/StaffJourneyTest.kt +++ b/app/src/androidTest/java/org/spaceworks/app/StaffJourneyTest.kt @@ -91,7 +91,15 @@ class StaffJourneyTest { replace("staff-product-901","1");tag("staff-handover-next");photoAndConfirm();waitText("Issue #702 recorded");assertEquals(StaffHandoverMode.DIRECT_ISSUE,holder.state.value.handover!!.mode);shot("a6-direct-receipt") } @Test fun checkInRequiresConfirmationAndBookingApprovalIsReadableInLargeDarkLayout(){ - val holder=start(dark=true,large=true);tag("staff-tab-events");waitText("Sample repair workshop");tag("staff-event-801");tag("staff-checkin-code-demo");waitText("Confirm attendance") + val holder=start(dark=true,large=true);tag("staff-tab-events");waitText("Sample repair workshop");tag("staff-event-801") + val sample=journey.visible(compose.onNodeWithTag("staff-checkin-code-demo")).assertIsEnabled() + val label=compose.onNodeWithText("Use sample code",useUnmergedTree=true) + label.assertIsDisplayed() + val actionBounds=sample.fetchSemanticsNode().boundsInRoot;val labelBounds=label.fetchSemanticsNode().boundsInRoot + assertTrue("Whole sample-code label must fit its action",labelBounds.left>=actionBounds.left && labelBounds.right<=actionBounds.right && labelBounds.top>=actionBounds.top && labelBounds.bottom<=actionBounds.bottom) + // Full-OS review verifies the rendered leading glyphs against the actual native corner clip. + shot("a6-checkin-code-action-large") + tag("staff-checkin-code-demo");waitText("Confirm attendance") compose.onAllNodesWithTag("staff-attendance-receipt").assertCountEquals(0);assertNotNull(holder.state.value.person);shot("a6-checkin-review-dark-large") tag("staff-checkin-confirm");waitText("Confirm attendance?");tag("staff-confirm-action");waitText("Attendance recorded for Meera Nair.");shot("a6-attendance-receipt") click("Back");tag("staff-tab-spaces");waitText("Sample project room");tag("staff-space-901");tag("staff-booking-approve-1001");waitText("Approve booking?");tag("staff-confirm-action");waitText("Booking approved.") diff --git a/app/src/androidTest/java/org/spaceworks/app/UsageGuideJourneyTest.kt b/app/src/androidTest/java/org/spaceworks/app/UsageGuideJourneyTest.kt index 2bdf522..e1602b3 100644 --- a/app/src/androidTest/java/org/spaceworks/app/UsageGuideJourneyTest.kt +++ b/app/src/androidTest/java/org/spaceworks/app/UsageGuideJourneyTest.kt @@ -9,6 +9,8 @@ import androidx.compose.runtime.* import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.semantics.SemanticsActions +import androidx.compose.ui.semantics.SemanticsProperties +import androidx.compose.ui.text.TextLayoutResult import androidx.compose.ui.test.* import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.unit.Density @@ -66,6 +68,16 @@ class UsageGuideJourneyTest { journey.shot("a8-usage-start-here-reset") } + private fun assertWordBoundaries(node: SemanticsNodeInteraction) { + val text=node.fetchSemanticsNode().config[SemanticsProperties.Text].single().text + val layouts=mutableListOf() + node.performSemanticsAction(SemanticsActions.GetTextLayoutResult) {it(layouts)} + val layout=layouts.single() + for(line in 0 until layout.lineCount-1) { + val end=layout.getLineEnd(line,visibleEnd=true) + assertTrue("Guide text must wrap between complete words: $text",end>=text.length || text[end].isWhitespace() || (end>0 && text[end-1].isWhitespace())) + } + } @Test fun guideRemainsReadableAndActionsReachableAtLargestTextWithoutStartingAnotherFlow() { var replayed = 0; var reset = 0; var back = 0 var reducedMotion by mutableStateOf(false) @@ -85,6 +97,7 @@ class UsageGuideJourneyTest { .assertTextEquals("Search Inventory or choose a category.") journey.visible(compose.onNodeWithTag("usage-section-inventory-body-5")) .assertTextEquals("Use its renewal action when available.") + assertWordBoundaries(compose.onNodeWithTag("usage-section-inventory-body-5")) journey.shot("a8-usage-inventory-large-text") journey.click(inventory) inventory.assert(SemanticsMatcher.keyIsDefined(SemanticsActions.Expand)) @@ -100,6 +113,7 @@ class UsageGuideJourneyTest { journey.clickTag("usage-reset-tips"); assertEquals(1, reset) journey.visible(compose.onNodeWithTag("usage-reset-notice")) .assertTextEquals("Tips reset for this account and makerspace.") + assertWordBoundaries(compose.onNodeWithTag("usage-reset-notice")) journey.shot("a8-usage-guide-large-text") journey.clickTag("usage-guide-back"); assertEquals(1, back) } diff --git a/app/src/main/java/org/spaceworks/app/guidance/UsageGuide.kt b/app/src/main/java/org/spaceworks/app/guidance/UsageGuide.kt index dde9cc0..89b0152 100644 --- a/app/src/main/java/org/spaceworks/app/guidance/UsageGuide.kt +++ b/app/src/main/java/org/spaceworks/app/guidance/UsageGuide.kt @@ -59,7 +59,7 @@ import org.spaceworks.app.platform.rememberMobileText GuideButton(copy(UsageStrings.USAGE_BROWSE_INVENTORY), "usage-browse-inventory", onInventory) if (onBookings != null) GuideButton(copy(UsageStrings.USAGE_VIEW_BOOKINGS), "usage-view-bookings", onBookings) else if (onProfile != null) GuideButton(copy(UsageStrings.USAGE_VIEW_PROFILE), "usage-view-profile", onProfile) - TextButton(onClick = progress::dismiss, modifier = Modifier.heightIn(min = 48.dp).testTag("usage-dismiss-tip"), + TextButton(shape = MaterialTheme.shapes.small, onClick = progress::dismiss, modifier = Modifier.heightIn(min = 48.dp).testTag("usage-dismiss-tip"), colors = ButtonDefaults.textButtonColors(contentColor = MaterialTheme.colorScheme.onPrimaryContainer)) { Text(copy(UsageStrings.USAGE_DISMISS_TIP)) } @@ -82,7 +82,7 @@ import org.spaceworks.app.platform.rememberMobileText Box(Modifier.fillMaxSize(), contentAlignment = Alignment.TopCenter) { Column(Modifier.widthIn(max = 960.dp).fillMaxWidth().verticalScroll(rememberScrollState()) .padding(24.dp).testTag("usage-guide-scroll"), verticalArrangement = Arrangement.spacedBy(20.dp)) { - TextButton(onClick = onBack, modifier = Modifier.heightIn(min = 48.dp).testTag("usage-guide-back"), + TextButton(shape = MaterialTheme.shapes.small, onClick = onBack, modifier = Modifier.heightIn(min = 48.dp).testTag("usage-guide-back"), colors = ButtonDefaults.textButtonColors(contentColor = MaterialTheme.colorScheme.onPrimaryContainer)) { Text(copy(UsageStrings.USAGE_BACK)) } @@ -93,7 +93,7 @@ import org.spaceworks.app.platform.rememberMobileText GuideButton(copy(UsageStrings.USAGE_RESET_HELPFUL_TIPS), "usage-reset-tips") { onResetTips(); resetNotice = true } - if (resetNotice) Text(copy(UsageStrings.USAGE_TIPS_RESET), modifier = Modifier.testTag("usage-reset-notice") + if (resetNotice) Text(copy(UsageStrings.USAGE_TIPS_RESET), style = MaterialTheme.typography.bodySmall, modifier = Modifier.testTag("usage-reset-notice") .semantics { liveRegion = LiveRegionMode.Polite }) } if (demo) Text(copy(UsageStrings.USAGE_DEMO), color = MaterialTheme.colorScheme.onSurfaceVariant) @@ -124,7 +124,7 @@ private data class GuideTopic(val id: String, val title: MobileCopyKey, val body val reduced=LocalReducedMotion.current Card(Modifier.fillMaxWidth().animateContentSize(animationSpec=if(reduced)snap()else tween(BrandMotion.EXPAND)), shape = RoundedCornerShape(16.dp), colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.surfaceContainer)) { Column(Modifier.padding(20.dp), verticalArrangement = Arrangement.spacedBy(12.dp)) { - TextButton(onClick = { expanded = !isExpanded }, colors = ButtonDefaults.textButtonColors(contentColor = MaterialTheme.colorScheme.onSurface), + TextButton(shape = MaterialTheme.shapes.small, onClick = { expanded = !isExpanded }, colors = ButtonDefaults.textButtonColors(contentColor = MaterialTheme.colorScheme.onSurface), contentPadding = PaddingValues(horizontal = 12.dp, vertical = 8.dp), modifier = Modifier.fillMaxWidth().heightIn(min = 48.dp).testTag("usage-section-${topic.id}").semantics { heading() @@ -137,7 +137,7 @@ private data class GuideTopic(val id: String, val title: MobileCopyKey, val body } } if (isExpanded) for ((index, paragraph) in copy(topic.body).split("\n\n").withIndex()) { - Text(paragraph, modifier = Modifier.fillMaxWidth().testTag("usage-section-${topic.id}-body-$index")) + Text(paragraph, style = MaterialTheme.typography.bodyMedium, modifier = Modifier.fillMaxWidth().testTag("usage-section-${topic.id}-body-$index")) } } } diff --git a/app/src/main/java/org/spaceworks/app/platform/NativeDocumentPreview.kt b/app/src/main/java/org/spaceworks/app/platform/NativeDocumentPreview.kt index 78aad74..88c07ea 100644 --- a/app/src/main/java/org/spaceworks/app/platform/NativeDocumentPreview.kt +++ b/app/src/main/java/org/spaceworks/app/platform/NativeDocumentPreview.kt @@ -115,15 +115,15 @@ class NativeDocumentFiles(private val directory:File,private val now:()->Long=Sy if(file.kind==NativeDocumentKind.PDF){ Text(text(DocumentStrings.DOCUMENT_PAGE_1_S_OF_2_S, page+1, pages)) if(pages>1)Column(verticalArrangement=Arrangement.spacedBy(8.dp)) { - TextButton(onClick={page--},enabled=page>0&&!rendering,colors=textColors,modifier=Modifier.fillMaxWidth().heightIn(min=48.dp)){Text(text(DocumentStrings.DOCUMENT_PREVIOUS_PAGE))} - TextButton(onClick={page++},enabled=page+10&&!rendering,colors=textColors,modifier=Modifier.fillMaxWidth().heightIn(min=48.dp)){Text(text(DocumentStrings.DOCUMENT_PREVIOUS_PAGE))} + TextButton(shape=MaterialTheme.shapes.small,onClick={page++},enabled=page+1Unit,enabled:Boolean=true,modifier:Modifier=Modifier) { - TextButton(onClick=onClick,enabled=enabled,modifier=modifier.heightIn(min=48.dp), + TextButton(onClick=onClick,enabled=enabled,shape=MaterialTheme.shapes.small,modifier=modifier.heightIn(min=48.dp), colors=ButtonDefaults.textButtonColors(contentColor=MaterialTheme.colorScheme.onPrimaryContainer)) {Text(text)} } @Composable fun BrandButton(text:String,onClick:()->Unit,enabled:Boolean=true,modifier:Modifier=Modifier) { diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index e37d6c9..3e3f689 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -2,6 +2,10 @@ ## B3 — native motion and owned tactile feedback (2026-10-18) +The first fresh ten-profile run exposed a new test-only font measurement mismatch: on the large tablet all 57 prior UI cases and the native feedback case passed, while `measureText` returned the integral ceiling in Android’s Paint implementation (13.0) for a 12.8 fractional glyph advance. The font registration test now uses the public fractional `getRunAdvance` API with the same subpixel/linear flags, all four faces, three sizes, Compose/XML resolution, system bold-text check and unchanged .03 tolerance. App rendering and supplied font tables are unchanged. Fresh exact-source device validation is required after this correction. + +Actual compact 3.2× full-OS review also found leading glyphs clipped inside default capsule text buttons and long guide words fragmented. Text/document controls now use the existing native brand 10 dp shape; expanded guide paragraphs use fully scaled native bodyMedium and the auxiliary reset notice bodySmall. Existing journeys add word-boundary checks and a full sample-action capture for manual corner inspection. The wide-tablet PDF frame showed a partially offscreen Save control within its existing scrollable dialog, not an established inaccessible action: the existing case now uses 3.2× text, reveals and verifies complete Save/Share/Done action frames in the actual document viewport and captures each, without changing the PDF layout or private-file behavior. All 59 cases and prior outcomes remain. + Onboarding retains its static supplied logo while content uses the existing short brand transitions and density-aware offsets. App guide disclosures animate their existing single content body; the shared production theme observes Android's animation-duration setting and removes custom motion when it is off. Component hosts use the same production theme. Explicit onboarding progression, owned authentication progression/acceptance or rejection, successful QR resolution and newly server-confirmed member/staff receipts receive settings-aware native feedback. Authentication feedback carries a nonsecret completion stamp from the existing guarded operation; canceled or replaced operations cannot borrow a later account's accepted state. Screen disposal, owner replacement, background lifecycle, disabled view feedback and duplicate completions suppress dispatch. No polling, session restoration, payment SDK submission, generic navigation or every-button vibration is added. Android controls the actual tactile effect and respects system settings; no custom waveform, ignore-setting flag or vibration permission is introduced. diff --git a/docs/IMPLEMENTATION-PLAN.md b/docs/IMPLEMENTATION-PLAN.md index 443b91d..e5d3cac 100644 --- a/docs/IMPLEMENTATION-PLAN.md +++ b/docs/IMPLEMENTATION-PLAN.md @@ -1,6 +1,6 @@ # Remaining mobile implementation plan -Owner extension (2026-10-16): complete the apps in tested phases on `dev`, including adaptive phone and tablet layouts. Push phase commits under Shaan's configured GitHub identity with Codex attribution. Intermediate PR/merge waits are replaced by green phase CI; the final PR is prepared after the batch. The supplied PRD remains unchanged. +Owner extension (2026-10-16): complete the apps in tested phases on `dev`, including adaptive phone and tablet layouts. Push phase commits under Shaan's configured GitHub identity with Codex attribution. Intermediate merge waits are replaced by green phase CI. The latest owner delivery update requires no feature branches or PRs: consolidate/test/push `dev`, complete exact-source device and visual gates, then merge tested `dev` directly to `main`. The supplied PRD remains unchanged. 1. **A1 identity and secure sessions:** generated challenge/password login/MFA/config/me/logout; Android Keystore atomic token storage; single-flight refresh; selected membership, foreground identity refresh; native attestation where configured. Inspect contract/provider configuration before exposing social methods. A missing native provider/version/authority contract becomes a precise backend-request, never fabricated behavior. 2. **A2 member read:** implement generated inventory, requests/loans, bookings/events, dashboard/card and inbox read flows using authoritative data and pagination. diff --git a/docs/RELEASE-READINESS.md b/docs/RELEASE-READINESS.md index b94ef81..4e79de2 100644 --- a/docs/RELEASE-READINESS.md +++ b/docs/RELEASE-READINESS.md @@ -2,7 +2,8 @@ Prepared 16 October 2026. This procedure is not a claim of store submission. Phase implementation and passing checks are recorded in `docs/CHANGELOG.md`. The owner requested phones/tablets and -deferred backend setup; work stays on `dev` until final review of the `dev` to `main` pull request. +deferred backend setup. The owner now requires all mobile work consolidated on `dev`, exact-source +checks and artifact/visual review, then a direct tested `dev` to `main` merge without a new pull request. ## Reproduce the app @@ -164,9 +165,11 @@ Record distribution evidence after owner provisioning; do not put credentials in | Evidence | Value | |---|---| -| Accepted app / Design commits | Exact tested source SHA and pinned Design input are recorded in the final [dev → main PR](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/pull/2) and matching CI artifacts | -| Full device-matrix CI run | The final PR validation section links the accepted ten-profile run and reviewed artifacts; check that run before acceptance | +| Accepted app / Design commits | Record the exact tested `dev` SHA, pinned Design input and direct `dev` to `main` delivery in the final handoff, with matching CI artifacts | +| Full device-matrix CI run | The final handoff must link successful exact-source dev-push and ten-profile runs, observed profile evidence and actually reviewed full-OS images; fresh brand/motion validation remains required | | Signed bundle / versionCode / certificate fingerprint | Owner signing environment required | | Real-device provider test record | Owner backend/configuration required | | Whole-account deletion and web resource verification | Updated owner contract/site required | | Play test-track build / tester acceptance | Owner Play Console access required | + +[PR #2](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/pull/2) records the historical A8 checkpoint. It does not substitute for final proof of later brand, SDK appearance, motion or accessibility corrections. diff --git a/docs/STORE-LISTING.md b/docs/STORE-LISTING.md index f7661ec..77906d3 100644 --- a/docs/STORE-LISTING.md +++ b/docs/STORE-LISTING.md @@ -65,7 +65,7 @@ final submitted build against the owner's supported backend with a synthetic rev Retain original dimensions and current console device slots; never stretch a phone image into a tablet image. Keep recovery codes, verification codes and QR payloads out of store assets; do not weaken secure-window protections to capture them. Optional staff images must show a -verified authorized staff deployment. The final PR links the accepted layout-proof artifacts. +verified authorized staff deployment. The final release handoff links the exact tested commit, successful CI runs and actually reviewed layout-proof artifacts. ## Reviewer access and review notes From e51ed8d078382befc41e7176a31336e929133d2f Mon Sep 17 00:00:00 2001 From: Shaan Shoukath <147940963+Shaan-Shoukath@users.noreply.github.com> Date: Sun, 18 Oct 2026 04:47:28 +0530 Subject: [PATCH 05/11] Verify configuration-backed native PDF text scale Use a scoped test configuration and real ComposeView only in the existing PDF journey so the Dialog's native owner receives 3.2x text. Verify its context, owner and text-layout scale plus measured character boxes and lines before full action captures; reveal a meaningful rendered page region without requiring an entire tall page to fit. Production code, OS settings, all 59 cases and their payment/file-cleanup outcomes remain unchanged. Local lint, 538 Debug / 506 Release unit cases, native compilation, assemblies and 16 KB/font packaging passed; fresh device execution remains required. Co-Authored-By: Codex --- .../org/spaceworks/app/PaymentsJourneyTest.kt | 66 +++++++++++++++++-- docs/CHANGELOG.md | 2 + 2 files changed, 63 insertions(+), 5 deletions(-) diff --git a/app/src/androidTest/java/org/spaceworks/app/PaymentsJourneyTest.kt b/app/src/androidTest/java/org/spaceworks/app/PaymentsJourneyTest.kt index 52c216f..0879783 100644 --- a/app/src/androidTest/java/org/spaceworks/app/PaymentsJourneyTest.kt +++ b/app/src/androidTest/java/org/spaceworks/app/PaymentsJourneyTest.kt @@ -5,9 +5,15 @@ import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.* import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.asAndroidBitmap import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.platform.ComposeView +import androidx.compose.ui.platform.ViewCompositionStrategy +import androidx.compose.ui.viewinterop.AndroidView +import androidx.compose.ui.text.TextLayoutResult +import androidx.compose.ui.semantics.SemanticsActions import androidx.compose.ui.test.* import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.unit.Density @@ -27,18 +33,38 @@ class PaymentsJourneyTest { @get:Rule val compose=createComposeRule() private val journey by lazy {NativeJourney(compose,"a5")} private val launches=AtomicInteger() - private fun start(dark:Boolean=DeviceProfile.dark,largeText:Boolean=false):PaymentsStateHolder { + private var documentContextScale:Float?=null + private val documentTextProofs=org.json.JSONArray() + @OptIn(ExperimentalTestApi::class) + private fun start(dark:Boolean=DeviceProfile.dark,largeText:Boolean=false,configurationBackedDocument:Boolean=false):PaymentsStateHolder { val context=InstrumentationRegistry.getInstrumentation().targetContext val holder=PaymentsStateHolder(DemoPaymentsGateway(),CachedPaymentFiles(File(context.cacheDir,"native-documents")),pause={}).apply{activate(MemberScope(7,"demo-makerspace"))} compose.setContent { - val density=LocalDensity.current - CompositionLocalProvider(LocalDensity provides Density(density.density,if(largeText)3.2f else density.fontScale)){ + @Composable fun paymentContent() { org.spaceworks.app.theme.SpaceWorksTheme(dark){ Surface(Modifier.fillMaxSize()){Box(Modifier.fillMaxSize().safeDrawingPadding()){ PaymentsScreen(holder,true,{},launchStripe={launches.incrementAndGet();PaymentLaunchResult.DEMO_BLOCKED}) }} } } + val density=LocalDensity.current + if(configurationBackedDocument) { + // Dialog creates a new native owner from LocalView.context; a density-only + // override on the parent composition cannot configure that window. + DeviceConfigurationOverride(DeviceConfigurationOverride.FontScale(3.2f)) { + AndroidView(modifier=Modifier.fillMaxSize(),factory={scopedContext -> + documentContextScale=scopedContext.resources.configuration.fontScale + ComposeView(scopedContext).apply { + setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed) + setContent {paymentContent()} + } + },onRelease={it.disposeComposition()}) + } + } else { + CompositionLocalProvider(LocalDensity provides Density(density.density,if(largeText)3.2f else density.fontScale)){ + paymentContent() + } + } } journey.systemBars(dark);waitText("Sample equipment deposit");return holder } @@ -71,16 +97,46 @@ class PaymentsJourneyTest { private fun documentAction(label:String) { val action=journey.visible(compose.onNodeWithText(label)).assertIsEnabled() + assertEquals("Native bridge context must carry the configuration-backed scale",3.2f,requireNotNull(documentContextScale),.001f) + val textNode=compose.onNodeWithText(label,useUnmergedTree=true) + val ownerScale=textNode.fetchSemanticsNode().layoutInfo.density.fontScale + assertEquals("The actual dialog text owner must retain that scale",3.2f,ownerScale,.001f) + val layouts=mutableListOf() + textNode.performSemanticsAction(SemanticsActions.GetTextLayoutResult){it(layouts)} + val layout=layouts.single();val input=layout.layoutInput + assertEquals("Actual dialog text layout must use the overridden configuration",3.2f,input.density.fontScale,.001f) + assertTrue(input.style.fontSize.isSp && input.style.fontSize.value>0) + val unscaledPx=input.style.fontSize.value*input.density.density + val scaledPx=with(input.density){input.style.fontSize.toPx()} + val characterHeight=layout.getBoundingBox(0).height + val lineHeight=layout.getLineBottom(0)-layout.getLineTop(0) + assertTrue("Actual dialog character boxes and line metrics must be enlarged",scaledPx>unscaledPx*1.5f && characterHeight>unscaledPx*1.5f && lineHeight>unscaledPx*1.5f) + documentTextProofs.put(org.json.JSONObject().put("action",label).put("context_font_scale",documentContextScale) + .put("owner_font_scale",ownerScale).put("dialog_font_scale",input.density.fontScale) + .put("font_size_sp",input.style.fontSize.value).put("unscaled_font_pixels",unscaledPx) + .put("scaled_font_pixels",scaledPx).put("character_box_height_pixels",characterHeight).put("line_height_pixels",lineHeight)) + val output=InstrumentationRegistry.getInstrumentation().targetContext.getExternalFilesDir("validation")!! + output.mkdirs();File(output,"a5-native-pdf-action-scale.json").writeText(documentTextProofs.toString(2),Charsets.UTF_8) val viewport=action.onAncestors().filter(hasScrollAction()).onFirst().fetchSemanticsNode().boundsInRoot val actual=action.fetchSemanticsNode().boundsInRoot assertTrue("Full $label action must fit the actual document scroll viewport",actual.width>0 && actual.height>0 && actual.left>=viewport.left && actual.right<=viewport.right && actual.top>=viewport.top && actual.bottom<=viewport.bottom) } @Test fun serverConfirmedPreviewCheckoutOpensNativeReceiptWithoutAnySDKCharge(){ - val holder=start(largeText=true);openDeposit();shot("a5-payment-review");click("Continue to payment");waitText("Preview checkout");click("Server confirms payment");waitText("Paid online");shot("a5-server-confirmed-payment") + val holder=start(largeText=true,configurationBackedDocument=true);openDeposit();shot("a5-payment-review");click("Continue to payment");waitText("Preview checkout");click("Server confirms payment");waitText("Paid online");shot("a5-server-confirmed-payment") click("Receipts and credit notes");waitText("Receipt DEMO-RECEIPT-001");journey.click(compose.onNodeWithContentDescription("Open PDF DEMO-RECEIPT-001"));waitText("Save PDF") compose.waitUntil(10000){compose.onAllNodesWithContentDescription("DEMO-RECEIPT-001, page 1 of 1").fetchSemanticsNodes().isNotEmpty()} - val file=holder.state.value.preview!!.file;assertTrue(file.exists());shot("a5-native-pdf-receipt") + val file=holder.state.value.preview!!.file;assertTrue(file.exists()) + val page=compose.onNodeWithContentDescription("DEMO-RECEIPT-001, page 1 of 1") + page.performScrollTo();compose.waitForIdle();page.assertIsDisplayed() + val pageBounds=page.fetchSemanticsNode().boundsInRoot + val fullPage=page.getUnclippedBoundsInRoot();val pixelsPerDp=compose.density.density + val pageViewport=page.onAncestors().filter(hasScrollAction()).onFirst().fetchSemanticsNode().boundsInRoot + val visiblePage=pageBounds.intersect(pageViewport) + assertTrue("A meaningful rendered PDF region must be visible inside its document viewport",visiblePage.width>0 && + fullPage.left.value*pixelsPerDp>=pageViewport.left && fullPage.right.value*pixelsPerDp<=pageViewport.right && + visiblePage.height>=minOf(96f*compose.density.density,pageViewport.height/2)) + shot("a5-native-pdf-receipt") documentAction("Save PDF");shot("a5-native-pdf-save-action") documentAction("Share document");shot("a5-native-pdf-share-action") documentAction("Done");shot("a5-native-pdf-done-action");click("Done");compose.waitForIdle();assertNull(holder.state.value.preview);assertFalse(file.exists());assertEquals(0,launches.get()) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 3e3f689..ad64011 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -2,6 +2,8 @@ ## B3 — native motion and owned tactile feedback (2026-10-18) +Fresh c8 device checks passed the font/native-feedback cases, but actual PDF images exposed a coverage gap: the outer composition's synthetic 3.2× density did not configure the Dialog's separate native view, so those images proved only the device-profile scale. The existing PDF case now uses the supported test configuration override and a real scoped ComposeView host, without changing app code or OS settings. It verifies the actual dialog text owner's configuration, text-layout density and enlarged character-box/line metrics for all three actions before the existing full-viewport checks and captures. Configuration-backed native-dialog 3.2× proof remains pending its fresh exact-source device run; all 59 cases and outcomes remain. + The first fresh ten-profile run exposed a new test-only font measurement mismatch: on the large tablet all 57 prior UI cases and the native feedback case passed, while `measureText` returned the integral ceiling in Android’s Paint implementation (13.0) for a 12.8 fractional glyph advance. The font registration test now uses the public fractional `getRunAdvance` API with the same subpixel/linear flags, all four faces, three sizes, Compose/XML resolution, system bold-text check and unchanged .03 tolerance. App rendering and supplied font tables are unchanged. Fresh exact-source device validation is required after this correction. Actual compact 3.2× full-OS review also found leading glyphs clipped inside default capsule text buttons and long guide words fragmented. Text/document controls now use the existing native brand 10 dp shape; expanded guide paragraphs use fully scaled native bodyMedium and the auxiliary reset notice bodySmall. Existing journeys add word-boundary checks and a full sample-action capture for manual corner inspection. The wide-tablet PDF frame showed a partially offscreen Save control within its existing scrollable dialog, not an established inaccessible action: the existing case now uses 3.2× text, reveals and verifies complete Save/Share/Done action frames in the actual document viewport and captures each, without changing the PDF layout or private-file behavior. All 59 cases and prior outcomes remain. From a523ad9925a705731231e9a3cf4107a8a82428bd Mon Sep 17 00:00:00 2001 From: Shaan Shoukath <147940963+Shaan-Shoukath@users.noreply.github.com> Date: Sun, 18 Oct 2026 05:08:48 +0530 Subject: [PATCH 06/11] Keep demo checkout choices reachable at native large text Use one bounded native dialog scroll for the fully scaled heading, existing no-provider disclaimer, six outcome choices and Keep reviewing. Compact native 3.2x evidence showed the fixed alert slots consumed the choice viewport. The existing payment journey now verifies all seven controls fit the actual viewport before its unchanged confirmed-payment, native PDF and cleanup checks. All 59 native cases remain; fresh device and visual proof is required. Local lint, 538 Debug / 506 Release unit cases, native compilation, assemblies, fonts and 16 KB packaging passed. Co-Authored-By: Codex --- .../org/spaceworks/app/PaymentsJourneyTest.kt | 12 +++++++++++- .../spaceworks/app/payments/PaymentsScreen.kt | 18 ++++++++++++++---- docs/CHANGELOG.md | 2 ++ 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/app/src/androidTest/java/org/spaceworks/app/PaymentsJourneyTest.kt b/app/src/androidTest/java/org/spaceworks/app/PaymentsJourneyTest.kt index 0879783..7555245 100644 --- a/app/src/androidTest/java/org/spaceworks/app/PaymentsJourneyTest.kt +++ b/app/src/androidTest/java/org/spaceworks/app/PaymentsJourneyTest.kt @@ -122,8 +122,18 @@ class PaymentsJourneyTest { assertTrue("Full $label action must fit the actual document scroll viewport",actual.width>0 && actual.height>0 && actual.left>=viewport.left && actual.right<=viewport.right && actual.top>=viewport.top && actual.bottom<=viewport.bottom) } + private fun demoAction(label:String) { + val action=journey.visible(compose.onNodeWithText(label)).assertIsEnabled() + val viewport=compose.onNodeWithTag("demo-payment-outcome-scroll").fetchSemanticsNode().boundsInRoot + val actual=action.fetchSemanticsNode().boundsInRoot + assertTrue("Full $label action must fit the actual demo scroll viewport",viewport.width>0 && viewport.height>0 && + actual.width>0 && actual.height>0 && actual.left>=viewport.left && actual.right<=viewport.right && + actual.top>=viewport.top && actual.bottom<=viewport.bottom) + } @Test fun serverConfirmedPreviewCheckoutOpensNativeReceiptWithoutAnySDKCharge(){ - val holder=start(largeText=true,configurationBackedDocument=true);openDeposit();shot("a5-payment-review");click("Continue to payment");waitText("Preview checkout");click("Server confirms payment");waitText("Paid online");shot("a5-server-confirmed-payment") + val holder=start(largeText=true,configurationBackedDocument=true);openDeposit();shot("a5-payment-review");click("Continue to payment");waitText("Preview checkout") + listOf("Server confirms payment","Checkout cancelled","Checkout failed","Confirmation delayed","Offline","Payment unavailable","Keep reviewing").forEach(::demoAction) + demoAction("Server confirms payment");shot("a5-demo-checkout-confirm-action");click("Server confirms payment");waitText("Paid online");shot("a5-server-confirmed-payment") click("Receipts and credit notes");waitText("Receipt DEMO-RECEIPT-001");journey.click(compose.onNodeWithContentDescription("Open PDF DEMO-RECEIPT-001"));waitText("Save PDF") compose.waitUntil(10000){compose.onAllNodesWithContentDescription("DEMO-RECEIPT-001, page 1 of 1").fetchSemanticsNodes().isNotEmpty()} val file=holder.state.value.preview!!.file;assertTrue(file.exists()) diff --git a/app/src/main/java/org/spaceworks/app/payments/PaymentsScreen.kt b/app/src/main/java/org/spaceworks/app/payments/PaymentsScreen.kt index ad78c80..aa66754 100644 --- a/app/src/main/java/org/spaceworks/app/payments/PaymentsScreen.kt +++ b/app/src/main/java/org/spaceworks/app/payments/PaymentsScreen.kt @@ -13,8 +13,11 @@ import androidx.compose.material3.* import androidx.compose.runtime.* import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.testTag import androidx.compose.ui.semantics.* import androidx.compose.ui.unit.dp +import androidx.compose.ui.window.Dialog +import androidx.compose.ui.window.DialogProperties import androidx.lifecycle.compose.collectAsStateWithLifecycle import kotlinx.coroutines.launch import org.spaceworks.app.platform.* @@ -48,10 +51,17 @@ import org.spaceworks.app.ui.* val row=s.selectedId?.let(holder::record) val enabled=hostAvailable && !s.busy && clock>=s.retryAtMillis val providerBusy=!demo && nativeState !is NativePaymentState.Idle - if(demoCheckout!=null && demo)AlertDialog(onDismissRequest={demoCheckout=null},title={Text(text(PaymentStrings.PAYMENT_PREVIEW_CHECKOUT))},text={Column(Modifier.heightIn(max=420.dp).verticalScroll(rememberScrollState())){ - Text(text(PaymentStrings.PAYMENT_SAMPLE_PAYMENTS_ONLY_NO_PAYMENT_PROVIDER_OPENS_AND_NO_MONEY)) - DemoPaymentScenario.entries.forEach{scenario->BrandTextButton(demoPaymentLabel(scenario,text),{val id=demoCheckout;demoCheckout=null;if(id!=null)work.launch{holder.simulate(id,scenario)}})} - }},confirmButton={BrandTextButton(text(PaymentStrings.PAYMENT_KEEP_REVIEWING),{demoCheckout=null})}) + if(demoCheckout!=null && demo)Dialog(onDismissRequest={demoCheckout=null},properties=DialogProperties(usePlatformDefaultWidth=false)) { + Surface(Modifier.widthIn(max=560.dp).fillMaxWidth(.94f).fillMaxHeight(.94f),shape=MaterialTheme.shapes.large) { + Column(Modifier.testTag("demo-payment-outcome-scroll").verticalScroll(rememberScrollState()).padding(24.dp), + verticalArrangement=Arrangement.spacedBy(16.dp)) { + Text(text(PaymentStrings.PAYMENT_PREVIEW_CHECKOUT),style=MaterialTheme.typography.titleMedium,modifier=Modifier.semantics{heading()}) + Text(text(PaymentStrings.PAYMENT_SAMPLE_PAYMENTS_ONLY_NO_PAYMENT_PROVIDER_OPENS_AND_NO_MONEY),style=MaterialTheme.typography.bodyMedium) + DemoPaymentScenario.entries.forEach{scenario->BrandTextButton(demoPaymentLabel(scenario,text),{val id=demoCheckout;demoCheckout=null;if(id!=null)work.launch{holder.simulate(id,scenario)}},modifier=Modifier.fillMaxWidth())} + BrandTextButton(text(PaymentStrings.PAYMENT_KEEP_REVIEWING),{demoCheckout=null},modifier=Modifier.fillMaxWidth()) + } + } + } Box(Modifier.fillMaxSize(),contentAlignment=androidx.compose.ui.Alignment.TopCenter){ Column(Modifier.widthIn(max=800.dp).fillMaxWidth().verticalScroll(rememberScrollState()).padding(24.dp),verticalArrangement=Arrangement.spacedBy(20.dp)) { BrandTextButton(text(PaymentStrings.PAYMENT_BACK),{back()},!s.busy) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index ad64011..c53d2c1 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -2,6 +2,8 @@ ## B3 — native motion and owned tactile feedback (2026-10-18) +The first configuration-backed e51 phone run reached a real demo-preview layout failure before PDF: at 3.2× the fixed AlertDialog title and Keep reviewing slot consumed its compact height, leaving no visible outcome viewport. The demo-only preview now puts its fully scaled native title, unchanged no-provider/no-money disclaimer, six outcomes and Keep reviewing in one bounded native dialog scroll. The existing case verifies complete reachability of every choice and cancel control before its unchanged server-confirmed payment/PDF outcome; live checkout and callback authority are unchanged. Fresh exact-source validation is required; this is not a font-scale cap or a relaxed action-bound assertion. + Fresh c8 device checks passed the font/native-feedback cases, but actual PDF images exposed a coverage gap: the outer composition's synthetic 3.2× density did not configure the Dialog's separate native view, so those images proved only the device-profile scale. The existing PDF case now uses the supported test configuration override and a real scoped ComposeView host, without changing app code or OS settings. It verifies the actual dialog text owner's configuration, text-layout density and enlarged character-box/line metrics for all three actions before the existing full-viewport checks and captures. Configuration-backed native-dialog 3.2× proof remains pending its fresh exact-source device run; all 59 cases and outcomes remain. The first fresh ten-profile run exposed a new test-only font measurement mismatch: on the large tablet all 57 prior UI cases and the native feedback case passed, while `measureText` returned the integral ceiling in Android’s Paint implementation (13.0) for a 12.8 fractional glyph advance. The font registration test now uses the public fractional `getRunAdvance` API with the same subpixel/linear flags, all four faces, three sizes, Compose/XML resolution, system bold-text check and unchanged .03 tolerance. App rendering and supplied font tables are unchanged. Fresh exact-source device validation is required after this correction. From 11cc205c39294baeb3116038a5eb525519813eab Mon Sep 17 00:00:00 2001 From: Shaan Shoukath <147940963+Shaan-Shoukath@users.noreply.github.com> Date: Sun, 18 Oct 2026 05:33:52 +0530 Subject: [PATCH 07/11] Keep native document action words intact at large text Co-Authored-By: Codex --- .../java/org/spaceworks/app/PaymentsJourneyTest.kt | 5 ++++- .../org/spaceworks/app/platform/NativeDocumentPreview.kt | 6 +++--- docs/CHANGELOG.md | 2 ++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/androidTest/java/org/spaceworks/app/PaymentsJourneyTest.kt b/app/src/androidTest/java/org/spaceworks/app/PaymentsJourneyTest.kt index 7555245..9448d87 100644 --- a/app/src/androidTest/java/org/spaceworks/app/PaymentsJourneyTest.kt +++ b/app/src/androidTest/java/org/spaceworks/app/PaymentsJourneyTest.kt @@ -111,12 +111,15 @@ class PaymentsJourneyTest { val characterHeight=layout.getBoundingBox(0).height val lineHeight=layout.getLineBottom(0)-layout.getLineTop(0) assertTrue("Actual dialog character boxes and line metrics must be enlarged",scaledPx>unscaledPx*1.5f && characterHeight>unscaledPx*1.5f && lineHeight>unscaledPx*1.5f) + val lineEnds=(0 until layout.lineCount).map{layout.getLineEnd(it,visibleEnd=true)} documentTextProofs.put(org.json.JSONObject().put("action",label).put("context_font_scale",documentContextScale) .put("owner_font_scale",ownerScale).put("dialog_font_scale",input.density.fontScale) .put("font_size_sp",input.style.fontSize.value).put("unscaled_font_pixels",unscaledPx) - .put("scaled_font_pixels",scaledPx).put("character_box_height_pixels",characterHeight).put("line_height_pixels",lineHeight)) + .put("scaled_font_pixels",scaledPx).put("character_box_height_pixels",characterHeight).put("line_height_pixels",lineHeight) + .put("line_end_offsets",org.json.JSONArray(lineEnds))) val output=InstrumentationRegistry.getInstrumentation().targetContext.getExternalFilesDir("validation")!! output.mkdirs();File(output,"a5-native-pdf-action-scale.json").writeText(documentTextProofs.toString(2),Charsets.UTF_8) + lineEnds.dropLast(1).forEach{end->assertTrue("$label must wrap between complete words",end>=label.length || label[end].isWhitespace() || (end>0 && label[end-1].isWhitespace()))} val viewport=action.onAncestors().filter(hasScrollAction()).onFirst().fetchSemanticsNode().boundsInRoot val actual=action.fetchSemanticsNode().boundsInRoot assertTrue("Full $label action must fit the actual document scroll viewport",actual.width>0 && actual.height>0 && diff --git a/app/src/main/java/org/spaceworks/app/platform/NativeDocumentPreview.kt b/app/src/main/java/org/spaceworks/app/platform/NativeDocumentPreview.kt index 88c07ea..529078b 100644 --- a/app/src/main/java/org/spaceworks/app/platform/NativeDocumentPreview.kt +++ b/app/src/main/java/org/spaceworks/app/platform/NativeDocumentPreview.kt @@ -119,10 +119,10 @@ class NativeDocumentFiles(private val directory:File,private val now:()->Long=Sy TextButton(shape=MaterialTheme.shapes.small,onClick={page++},enabled=page+1 Date: Sun, 18 Oct 2026 11:25:35 +0530 Subject: [PATCH 08/11] docs: add branded README and verified app screenshots Document setup, app flows and the accepted native validation baseline. Keep original logo and screenshot bytes with immutable source provenance. Co-Authored-By: Codex --- README.md | 80 ++++++++---- docs/images/PROVENANCE.json | 116 ++++++++++++++++++ docs/images/brand/space-works-dark.png | Bin 0 -> 25198 bytes docs/images/brand/space-works-light.png | Bin 0 -> 29455 bytes docs/images/screenshots/account-devices.png | Bin 0 -> 62140 bytes docs/images/screenshots/introduction.png | Bin 0 -> 92147 bytes docs/images/screenshots/request-receipt.png | Bin 0 -> 87131 bytes docs/images/screenshots/sign-in-dark.png | Bin 0 -> 176212 bytes .../images/screenshots/staff-confirmation.png | Bin 0 -> 119143 bytes docs/images/screenshots/tablet-home.png | Bin 0 -> 111050 bytes 10 files changed, 175 insertions(+), 21 deletions(-) create mode 100644 docs/images/PROVENANCE.json create mode 100644 docs/images/brand/space-works-dark.png create mode 100644 docs/images/brand/space-works-light.png create mode 100644 docs/images/screenshots/account-devices.png create mode 100644 docs/images/screenshots/introduction.png create mode 100644 docs/images/screenshots/request-receipt.png create mode 100644 docs/images/screenshots/sign-in-dark.png create mode 100644 docs/images/screenshots/staff-confirmation.png create mode 100644 docs/images/screenshots/tablet-home.png diff --git a/README.md b/README.md index 47f8861..105e2f0 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,76 @@ -# Space Works Android +

+
+ + + Space Works + +

+

-Native Kotlin/Compose app for Android 8+ (API 26), targeting API 36, for phones and tablets. [The PRD](docs/PRD.md) defines the flows; the owner's extensions in [AGENTS.md](AGENTS.md) add tablets, shared onboarding/auth UX and completion of the remaining phases on `dev`. [CHANGELOG.md](docs/CHANGELOG.md) records actual phase implementation, tests and parity. Only recorded passing phases count as complete. +# Space Works for Android -## Development workflow +Find tools. Book a space. Keep your making moving. -Consolidate ongoing mobile changes on `dev` and push tested commits to `origin/dev`. Do not create feature branches or pull requests. After exact-source CI, the full device matrix and actual screenshot review pass, merge tested `dev` directly to `main`. +A native **Kotlin + Jetpack Compose** app for makerspace members and staff, with Material 3 controls, adaptive phone/tablet navigation, supplied Gilroy typography, light/dark themes and accessible text scaling. Runs on **Android 8+ (API 26)** and targets **API 36**. -## Build +Also available as a native [iOS app](https://github.com/SpaceWorks-HQ/SpaceWorks-iOS). -Install Java 21, Python 3 and Android SDK 36. Clone with `--recurse-submodules`, set `ANDROID_HOME` or untracked `local.properties`, then run: +The backend will be supplied later. Debug includes an explicitly labelled, isolated demo; live provider, payment, push and store acceptance remain separate deployment gates. + +## Screenshots + +Original full-OS emulator captures from tested app commit [`11cc205`](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/commit/11cc205c39294baeb3116038a5eb525519813eab). The gallery includes labelled Debug sample flows. Open any image for its full size; [capture provenance](docs/images/PROVENANCE.json) records the source, artifact and original-byte hashes. + +| Introduction | Sign in · dark | Tablet Home | +| --- | --- | --- | +| [First-use introduction with the supplied Space Works symbol](docs/images/screenshots/introduction.png) | [Dark native sign-in with password visibility and account actions](docs/images/screenshots/sign-in-dark.png) | [Tablet navigation rail, Home guidance and quick actions](docs/images/screenshots/tablet-home.png) | +| Request receipt | Account devices | Staff confirmation | +| [Demo request received with pending status](docs/images/screenshots/request-receipt.png) | [Global account device controls without a makerspace membership](docs/images/screenshots/account-devices.png) | [Native confirmation before accepting demo staff request quantities](docs/images/screenshots/staff-confirmation.png) | + +## What’s inside + +- Inventory search, equipment requests, bookings, events, membership cards and inbox updates. +- Account/profile settings, security and device sessions, membership actions and export journeys. +- Authorized staff issue, return and check-in flows with explicit review and evidence steps. +- Replayable introduction, scoped Home tips and **Profile → App guide**. +- Native document previews, notification routing, system-aware motion and owned haptic feedback. + +Production uses the generated [OpenAPI client](api/README.md). Features without the required native contract or deployment configuration remain honestly unavailable; demo success never establishes a live session, charge or deletion. See [backend dependencies](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/issues/3) and the [release handoff](docs/RELEASE-READINESS.md). + +## Build and run + +Install **Java 21**, **Python 3**, Android Studio and **Android SDK 36**. Clone with submodules and configure `ANDROID_HOME` or an untracked `local.properties`: ```sh +git clone --recurse-submodules https://github.com/SpaceWorks-HQ/SpaceWorks-Android.git +cd SpaceWorks-Android +git switch dev git submodule update --init --recursive ./gradlew lint test assembleDebug assembleRelease bundleRelease -./gradlew connectedDebugAndroidTest ``` -Use `gradlew.bat` on Windows. Instrumented tests need an emulator/device. CI builds both variants, runs lint/unit tests, validates native-library and APK 16 KB alignment, and exercises phone/tablet journeys. Manually dispatch the workflow for the full ten-profile matrix: compact through large phones, 600/800/840/1024dp tablets, and tablet landscape. The tests record the app’s actual logical width, appearance, text scale and window orientation. Inspect actual display sizes, configuration and full-screen screenshots; the matrix does not represent every Android device. See [RELEASE-READINESS.md](docs/RELEASE-READINESS.md) for evidence and the separate 16 KB runtime-device requirement. +Use `gradlew.bat` on Windows. Open the repository in Android Studio and run `app`; choose **Explore demo** in Debug to try the member and staff flows without a backend. Release omits demo entry points and implementations. Debug APKs are installable for development; CI Release outputs are unsigned and Play distribution requires owner signing/provisioning. + +For instrumented journeys, start an emulator/device and run `./gradlew connectedDebugAndroidTest`. Gradle generates branding, motion, copy and API sources from the repository inputs; generated output stays outside Git. + +## Verified app baseline + +Evidence below is bound to app commit **`11cc205`**, separately from any later README-only commit. -Open this repository in Android Studio and run `app`. Choose a server on launch or lock one HTTPS origin in `branding/brand.json`. Debug builds allow documented local Docker origins and an explicitly labelled, isolated in-memory demo. Demo authentication, notifications and checkout previews do not establish a live session, push delivery or payment. Release builds omit demo implementations and entry points. [LOCAL-DOCKER-VALIDATION.md](docs/LOCAL-DOCKER-VALIDATION.md) separates local API evidence from fixtures. +| Gate | Accepted result | +| --- | --- | +| [Canonical dev CI](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/actions/runs/39081399951) | Build, lint, Debug/Release validation and default device jobs passed | +| [Full device matrix](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/actions/runs/39081400622) | 59 UI tests × 10 profiles = **590**, zero failures or skips | +| Unit tests | **538 Debug + 506 Release**, zero failures or skips | +| Native/UI proof | Supplied font resolution, haptic dispatch/settings, measured profiles, real keyboard insets and configuration-backed 3.2× PDF dialog layout | +| Packaging and review | 16 KB APK/ELF alignment checks; **210 original full-OS screenshots** manually reviewed | -The backend and owner provisioning are deferred. Unsupported native contracts remain unavailable; see [backend dependencies](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/issues/3). Real integrity, providers, push, checkout, account deletion and store distribution require the deployment inputs and verification in the release guide. The Debug APK can be installed for development and the isolated preview. Play distribution uses an owner-signed release build; CI release outputs are unsigned. +The matrix covers compact through large phones, 600/800/840/1024dp tablets and tablet landscape, across light/dark and large text. Emulators do not establish tactile quality, live provider/backend operation or the separate physical 16 KB runtime-device gate. -Gradle regenerates native semantic colors and branding from the pinned Design submodule, motion from local `tokens/mobile-motion.json`, and the API client from the [contract](api/README.md). Generated sources stay out of Git. Never replace the pinned schema with a local server's schema or hand-write API payload models. See [WHITE-LABEL.md](docs/WHITE-LABEL.md) for configuration. Space Works uses static logo masters, supplied Gilroy native text and one short Unbounded accent per layout; font provenance and license metadata are retained in `docs/licenses/`. Never commit signing material, provider secrets or test credentials. +## Configuration and documentation -## Use and review the app +Set deployment branding and an optional locked HTTPS origin in [`branding/brand.json`](branding/brand.json). Keep provider keys, signing files and credentials untracked. The supplied logo masters and font provenance are retained; use the [white-label guide](docs/WHITE-LABEL.md) for supported replacements. -In Debug, choose **Explore demo** to use isolated member and staff journeys without a backend. -Open **Profile → App guide** for task instructions, introduction replay and helpful-tip reset. -The first-use Home tip is dismissible and scoped to the actual account and makerspace. Staff -guidance appears only in an authorized staff context. See [USER-GUIDE.md](docs/USER-GUIDE.md). -Prepared store copy, screenshot selection and private reviewer-access notes are in -[STORE-LISTING.md](docs/STORE-LISTING.md). +[User guide](docs/USER-GUIDE.md) · [Release readiness](docs/RELEASE-READINESS.md) · [Store listing](docs/STORE-LISTING.md) · [Local API evidence](docs/LOCAL-DOCKER-VALIDATION.md) · [Changelog](docs/CHANGELOG.md) · [PRD](docs/PRD.md) -Record the final tested commit, successful dev-push/full-matrix runs and reviewed artifacts in the release handoff before merging to `main`. [PR #2](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/pull/2) is historical A8 evidence, not final proof of later changes. -Keep simulator/demo checks separate from live provider and physical-device acceptance; the -[release handoff](docs/RELEASE-READINESS.md) records those deployment inputs. +Ongoing work stays on `dev`: commit and push tested progress, complete exact-source CI and visual gates, then merge tested `dev` directly to `main`. Do not create feature branches or pull requests for this batch. Keep the PRD, API contract and pinned Design inputs unchanged. diff --git a/docs/images/PROVENANCE.json b/docs/images/PROVENANCE.json new file mode 100644 index 0000000..bb155d0 --- /dev/null +++ b/docs/images/PROVENANCE.json @@ -0,0 +1,116 @@ +{ + "schema_version": 1, + "tested_app_sha": "11cc205c39294baeb3116038a5eb525519813eab", + "assets": [ + { + "destination": "docs/images/brand/space-works-light.png", + "sha256": "63ef979f162a89b1526a908683781b434e3db92b1795bee6d5137e788b44dc6a", + "type": "logo", + "source": { + "repository": "design", + "commit": "fd28f825086a2cac7fa297881f1860b9d332db69", + "path": "logo/lockup-horizontal.png" + } + }, + { + "destination": "docs/images/brand/space-works-dark.png", + "sha256": "d83768eddb190d9cbed7afd7f22b79ad5e3ff53ef4ec6cf3590545fdc3f454b3", + "type": "logo", + "source": { + "repository": "design", + "commit": "fd28f825086a2cac7fa297881f1860b9d332db69", + "path": "logo/lockup-horizontal-reversed.png" + } + }, + { + "destination": "docs/images/screenshots/introduction.png", + "sha256": "ad48fcbe6a66d1954144870e0b51dbd0d41c1eb93aba37bbe0332dbe5016a025", + "type": "screenshot", + "source": { + "source_sha": "11cc205c39294baeb3116038a5eb525519813eab", + "run": 39081400622, + "artifact_id": 12119480990, + "profile": "phone", + "test": "OnboardingAuthTest", + "prefix": "ux-introduction-first", + "artifact_path": "validation/phone/screenshots/ux-introduction-first-screen.png", + "review_sha256": "49b29adb90c1e6b1b1822ee288da0083f5cbc17d73b1daded8949c64d07954d6" + } + }, + { + "destination": "docs/images/screenshots/sign-in-dark.png", + "sha256": "115110374215080ede0c37a304de3082b5600cce65c8dd6bc235a421f603ff5b", + "type": "screenshot", + "source": { + "source_sha": "11cc205c39294baeb3116038a5eb525519813eab", + "run": 39081400622, + "artifact_id": 12118982735, + "profile": "large", + "test": "ShellTest", + "prefix": "a1-sign-in", + "artifact_path": "validation/large/screenshots/a1-sign-in-screen.png", + "review_sha256": "28c904d299a31c1a912900c8596ce19f8dec7ce930830230a419bf6631267510" + } + }, + { + "destination": "docs/images/screenshots/tablet-home.png", + "sha256": "6b0f70940cbf2460a147e2f4ab22470ba69b307a5029e1ccf8a84faf80e542b8", + "type": "screenshot", + "source": { + "source_sha": "11cc205c39294baeb3116038a5eb525519813eab", + "run": 39081400622, + "artifact_id": 12119556424, + "profile": "small-tablet", + "test": "ShellTest", + "prefix": "a1-home", + "artifact_path": "validation/small-tablet/screenshots/a1-home-screen.png", + "review_sha256": "c52458a3be68f2aa53bd7138b6bad7353ddf228b761b27b4f49dc24dc782c9bf" + } + }, + { + "destination": "docs/images/screenshots/request-receipt.png", + "sha256": "b0d404a2d652217ba29ebfb3a4c79db1001a55cdc5433379ab3c4bc04dcb102f", + "type": "screenshot", + "source": { + "source_sha": "11cc205c39294baeb3116038a5eb525519813eab", + "run": 39081400622, + "artifact_id": 12119480990, + "profile": "phone", + "test": "MemberActionsJourneyTest", + "prefix": "a3-request-receipt", + "artifact_path": "validation/phone/screenshots/a3-request-receipt-screen.png", + "review_sha256": "49b29adb90c1e6b1b1822ee288da0083f5cbc17d73b1daded8949c64d07954d6" + } + }, + { + "destination": "docs/images/screenshots/account-devices.png", + "sha256": "fa54dbf09281ab6b311743af6e67e07cb460f6994727233d58d5790cec9600e2", + "type": "screenshot", + "source": { + "source_sha": "11cc205c39294baeb3116038a5eb525519813eab", + "run": 39081400622, + "artifact_id": 12119480990, + "profile": "phone", + "test": "AccountManagementJourneyTest", + "prefix": "a7-global-devices-no-membership", + "artifact_path": "validation/phone/screenshots/a7-global-devices-no-membership-screen.png", + "review_sha256": "49b29adb90c1e6b1b1822ee288da0083f5cbc17d73b1daded8949c64d07954d6" + } + }, + { + "destination": "docs/images/screenshots/staff-confirmation.png", + "sha256": "700badbb262c825c63632e3cf1453ab6613792e47ffefe1864f5e835db090ef3", + "type": "screenshot", + "source": { + "source_sha": "11cc205c39294baeb3116038a5eb525519813eab", + "run": 39081400622, + "artifact_id": 12119480990, + "profile": "phone", + "test": "StaffJourneyTest", + "prefix": "a6-app-staff-request-confirmation", + "artifact_path": "validation/phone/screenshots/a6-app-staff-request-confirmation-screen.png", + "review_sha256": "49b29adb90c1e6b1b1822ee288da0083f5cbc17d73b1daded8949c64d07954d6" + } + } + ] +} diff --git a/docs/images/brand/space-works-dark.png b/docs/images/brand/space-works-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..a407cb090639bef4b0cb02fc859607dfb37d773d GIT binary patch literal 25198 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 C_~#;`}Yg~*t1VEE3N2FKG= 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 PKc^_CDqA9L9Q6MHdSMr1 literal 0 HcmV?d00001 diff --git a/docs/images/screenshots/account-devices.png b/docs/images/screenshots/account-devices.png new file mode 100644 index 0000000000000000000000000000000000000000..071cf0af64af2f86fdfaf427b4d655a86a02f699 GIT binary patch literal 62140 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 literal 0 HcmV?d00001 diff --git a/docs/images/screenshots/introduction.png b/docs/images/screenshots/introduction.png new file mode 100644 index 0000000000000000000000000000000000000000..8acbb31927c437dd52db56bbee8b87d3223602d1 GIT binary patch literal 92147 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 z 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 TTQCrnA$Nb%yIG>~d(i&@?a{Xa literal 0 HcmV?d00001 diff --git a/docs/images/screenshots/request-receipt.png b/docs/images/screenshots/request-receipt.png new file mode 100644 index 0000000000000000000000000000000000000000..314efaea5233d2d0dd8a6fbf6869070ba4956d0b GIT binary patch literal 87131 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 literal 0 HcmV?d00001 diff --git a/docs/images/screenshots/sign-in-dark.png b/docs/images/screenshots/sign-in-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..edd894a04258d8dd12d6800f143a3acd09512df5 GIT binary patch literal 176212 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 fF*V6%{s$BtZ_dt{l9#T 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 literal 0 HcmV?d00001 diff --git a/docs/images/screenshots/tablet-home.png b/docs/images/screenshots/tablet-home.png new file mode 100644 index 0000000000000000000000000000000000000000..b963114cffc43083644a8dd023bf4e4801bd67aa GIT binary patch literal 111050 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 literal 0 HcmV?d00001 From 3732c3dcc7e085e5d6fe7b5f0e035e663dad16ed Mon Sep 17 00:00:00 2001 From: Shaan Shoukath <147940963+Shaan-Shoukath@users.noreply.github.com> Date: Sun, 18 Oct 2026 11:48:47 +0530 Subject: [PATCH 09/11] docs: align delivery policy with authorized PR 4 Retain dev and phase history, require exact-source checks and reviewed-head merge, and preserve accepted app evidence and presentation assets. Co-Authored-By: Codex --- AGENTS.md | 8 ++++---- README.md | 2 +- docs/IMPLEMENTATION-PLAN.md | 2 +- docs/RELEASE-READINESS.md | 4 ++-- docs/STORE-LISTING.md | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index e2f7b4c..44405ac 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -19,16 +19,16 @@ ## Branch delivery workflow -The owner's latest delivery instruction, updated 2026-10-18, supersedes the earlier PR workflow: +The owner's latest delivery instruction, updated 2026-10-18, authorizes the existing PR #4 delivery workflow: -- Consolidate ongoing mobile work on `dev`, commit there, and push tested progress to `origin/dev`; do not create feature branches or pull requests. -- Complete exact-source local/CI checks, the required full device matrix and actual screenshot review, then merge tested `dev` directly to `main`. +- Consolidate ongoing mobile work on `dev`, retain phase commits, and push tested progress to `origin/dev`; do not create other pull requests or feature branches. +- Complete exact-source local/CI checks, the required full device matrix and actual screenshot review, then merge only the reviewed head of existing [PR #4](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/pull/4) into `main`. Keep `dev` and preserve phase commits. - Preserve the owner's configured commit identity, the required Codex co-author trailer and all immutable inputs. A failed or skipped required gate cannot establish acceptance. ## Owner execution extension — 2026-10-16 -The owner's complete-build extension adds remaining phases on `dev` with tested progress committed and pushed there. The latest delivery instruction removes PR/feature-branch steps: consolidate and validate `dev`, then merge that tested source directly to `main`. Intermediate merge waits are superseded; green CI remains mandatory for phase acceptance. Phone AND tablet layouts are now in scope, including 320/360dp phones, common/large phones, 600/840dp tablets, portrait/landscape, light/dark and 2× font scale. Keep `docs/PRD.md` byte-identical to its owner source; record extensions here and in `docs/IMPLEMENTATION-PLAN.md`. Preserve Shaan's GitHub identity plus the Codex co-author trailer. Use the local Docker API for integration, contract/generated models only, no backend implementation edits or provider/attestation bypasses. Document precise backend-request issues for unavailable native capabilities; continue independent supported work. +The owner's complete-build extension adds remaining phases on `dev` with tested progress committed and pushed there. The latest delivery instruction authorizes only existing PR #4: consolidate and validate `dev`, then merge its reviewed head into `main`, retaining `dev` and phase commits. Do not create other pull requests or feature branches. Intermediate merge waits are superseded; green CI remains mandatory for phase acceptance. Phone AND tablet layouts are now in scope, including 320/360dp phones, common/large phones, 600/840dp tablets, portrait/landscape, light/dark and 2× font scale. Keep `docs/PRD.md` byte-identical to its owner source; record extensions here and in `docs/IMPLEMENTATION-PLAN.md`. Preserve Shaan's GitHub identity plus the Codex co-author trailer. Use the local Docker API for integration, contract/generated models only, no backend implementation edits or provider/attestation bypasses. Document precise backend-request issues for unavailable native capabilities; continue independent supported work. Owner backend deferment: complete and test the full native flow using an explicit DEBUG-only, isolated in-memory demo. The backend will be supplied later. Never infer live success or invent production routes/models; missing native contract/provider configuration stays visibly unavailable outside demo. diff --git a/README.md b/README.md index 105e2f0..c8f6802 100644 --- a/README.md +++ b/README.md @@ -73,4 +73,4 @@ Set deployment branding and an optional locked HTTPS origin in [`branding/brand. [User guide](docs/USER-GUIDE.md) · [Release readiness](docs/RELEASE-READINESS.md) · [Store listing](docs/STORE-LISTING.md) · [Local API evidence](docs/LOCAL-DOCKER-VALIDATION.md) · [Changelog](docs/CHANGELOG.md) · [PRD](docs/PRD.md) -Ongoing work stays on `dev`: commit and push tested progress, complete exact-source CI and visual gates, then merge tested `dev` directly to `main`. Do not create feature branches or pull requests for this batch. Keep the PRD, API contract and pinned Design inputs unchanged. +Ongoing work stays on `dev`, with tested phase commits pushed there. The owner authorized the existing [PR #4](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/pull/4) for delivery to `main`: merge only its reviewed head after exact-source CI and visual gates pass. Preserve `dev` and phase commits; do not create other pull requests or feature branches. Keep the PRD, API contract and pinned Design inputs unchanged. diff --git a/docs/IMPLEMENTATION-PLAN.md b/docs/IMPLEMENTATION-PLAN.md index e5d3cac..90ca0b3 100644 --- a/docs/IMPLEMENTATION-PLAN.md +++ b/docs/IMPLEMENTATION-PLAN.md @@ -1,6 +1,6 @@ # Remaining mobile implementation plan -Owner extension (2026-10-16): complete the apps in tested phases on `dev`, including adaptive phone and tablet layouts. Push phase commits under Shaan's configured GitHub identity with Codex attribution. Intermediate merge waits are replaced by green phase CI. The latest owner delivery update requires no feature branches or PRs: consolidate/test/push `dev`, complete exact-source device and visual gates, then merge tested `dev` directly to `main`. The supplied PRD remains unchanged. +Owner extension (2026-10-16): complete the apps in tested phases on `dev`, including adaptive phone and tablet layouts. Push phase commits under Shaan's configured GitHub identity with Codex attribution. Intermediate merge waits are replaced by green phase CI. The latest owner delivery update authorizes existing [PR #4](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/pull/4): consolidate/test/push `dev`, complete exact-source device and visual gates, then merge only its reviewed head into `main`, retaining `dev` and phase commits. Do not create other pull requests or feature branches. The supplied PRD remains unchanged. 1. **A1 identity and secure sessions:** generated challenge/password login/MFA/config/me/logout; Android Keystore atomic token storage; single-flight refresh; selected membership, foreground identity refresh; native attestation where configured. Inspect contract/provider configuration before exposing social methods. A missing native provider/version/authority contract becomes a precise backend-request, never fabricated behavior. 2. **A2 member read:** implement generated inventory, requests/loans, bookings/events, dashboard/card and inbox read flows using authoritative data and pagination. diff --git a/docs/RELEASE-READINESS.md b/docs/RELEASE-READINESS.md index 4e79de2..dbf2169 100644 --- a/docs/RELEASE-READINESS.md +++ b/docs/RELEASE-READINESS.md @@ -3,7 +3,7 @@ Prepared 16 October 2026. This procedure is not a claim of store submission. Phase implementation and passing checks are recorded in `docs/CHANGELOG.md`. The owner requested phones/tablets and deferred backend setup. The owner now requires all mobile work consolidated on `dev`, exact-source -checks and artifact/visual review, then a direct tested `dev` to `main` merge without a new pull request. +checks and artifact/visual review, then a guarded merge of only the reviewed head of existing [PR #4](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/pull/4) into `main`. Retain `dev` and phase commits; do not create other pull requests or feature branches. ## Reproduce the app @@ -165,7 +165,7 @@ Record distribution evidence after owner provisioning; do not put credentials in | Evidence | Value | |---|---| -| Accepted app / Design commits | Record the exact tested `dev` SHA, pinned Design input and direct `dev` to `main` delivery in the final handoff, with matching CI artifacts | +| Accepted app / Design commits | Record the exact tested `dev` SHA, pinned Design input and reviewed PR #4 merge into `main` in the final handoff, with matching CI artifacts; retain `dev` and phase commits | | Full device-matrix CI run | The final handoff must link successful exact-source dev-push and ten-profile runs, observed profile evidence and actually reviewed full-OS images; fresh brand/motion validation remains required | | Signed bundle / versionCode / certificate fingerprint | Owner signing environment required | | Real-device provider test record | Owner backend/configuration required | diff --git a/docs/STORE-LISTING.md b/docs/STORE-LISTING.md index 77906d3..9b9a805 100644 --- a/docs/STORE-LISTING.md +++ b/docs/STORE-LISTING.md @@ -65,7 +65,7 @@ final submitted build against the owner's supported backend with a synthetic rev Retain original dimensions and current console device slots; never stretch a phone image into a tablet image. Keep recovery codes, verification codes and QR payloads out of store assets; do not weaken secure-window protections to capture them. Optional staff images must show a -verified authorized staff deployment. The final release handoff links the exact tested commit, successful CI runs and actually reviewed layout-proof artifacts. +verified authorized staff deployment. The final release handoff links the exact tested commit, successful CI runs and actually reviewed layout-proof artifacts. Deliver only through the owner-authorized existing [PR #4](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/pull/4) after those gates pass; retain `dev` and phase commits, and create no other pull requests or feature branches. ## Reviewer access and review notes From 3a400c7bcf7c16164393ea493983a4bd173a710b Mon Sep 17 00:00:00 2001 From: Shaan Shoukath <147940963+Shaan-Shoukath@users.noreply.github.com> Date: Sun, 18 Oct 2026 12:13:35 +0530 Subject: [PATCH 10/11] chore: harden Android repository and build provenance Pin existing CI actions and the Gradle distribution, restrict checkout credentials, package the complete existing font license, and document safe contribution, security and dependency maintenance. Keep production backend, legal, signing and store gates explicit. Co-Authored-By: Codex --- .github/workflows/android.yml | 25 +++-- .gitignore | 11 ++ CONTRIBUTING.md | 53 +++++++++ README.md | 2 + SECURITY.md | 46 ++++++++ .../main/assets/licenses/OFL-Unbounded.txt | 93 ++++++++++++++++ docs/DEPENDENCIES.md | 103 ++++++++++++++++++ docs/RELEASE-READINESS.md | 22 ++++ docs/licenses/FONT-PROVENANCE.md | 2 +- docs/mobile-auth-ux-spec.md | 2 +- gradle/wrapper/gradle-wrapper.properties | 1 + scripts/check_native_packaging.py | 12 +- scripts/tests/test_native_packaging.py | 28 +++++ 13 files changed, 386 insertions(+), 14 deletions(-) create mode 100644 CONTRIBUTING.md create mode 100644 SECURITY.md create mode 100644 app/src/main/assets/licenses/OFL-Unbounded.txt create mode 100644 docs/DEPENDENCIES.md diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 27d509e..6ced5d9 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -13,18 +13,19 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 30 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 with: submodules: recursive - - uses: actions/setup-java@v4 + persist-credentials: false + - uses: actions/setup-java@cf277c60eb25467037889841efdb72551f06f6c3 # v4 with: distribution: temurin java-version: '21' - - uses: android-actions/setup-android@v3 + - uses: android-actions/setup-android@9fc6c4e9069bf8d3d10b2204b1fb8f6ef7065407 # v3 with: packages: platform-tools log-accepted-android-sdk-licenses: false - - uses: gradle/actions/setup-gradle@v4 + - uses: gradle/actions/setup-gradle@ed408507eac070d1f99cc633dbcf757c94c7933a # v4 with: cache-read-only: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name != github.repository }} - run: chmod +x gradlew @@ -34,7 +35,7 @@ jobs: # Generator-template tests run in :app:verifyNativeTemplates with Gradle's exact JAR. python3 -m unittest discover -s scripts/tests -p 'test_native_packaging.py' -v python3 scripts/check_native_packaging.py app/build/outputs/apk/debug/app-debug.apk app/build/outputs/apk/release/app-release-unsigned.apk - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 if: always() with: name: android-reports @@ -55,18 +56,19 @@ jobs: device: ${{ fromJSON(github.event_name == 'workflow_dispatch' && '["compact","small-phone","common-phone","phone","large","small-tablet","tablet","wide-tablet","tablet-landscape","large-tablet"]' || '["phone","tablet"]') }} name: UI (${{ matrix.device }}) steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 with: submodules: recursive - - uses: actions/setup-java@v4 + persist-credentials: false + - uses: actions/setup-java@cf277c60eb25467037889841efdb72551f06f6c3 # v4 with: distribution: temurin java-version: '21' - - uses: android-actions/setup-android@v3 + - uses: android-actions/setup-android@9fc6c4e9069bf8d3d10b2204b1fb8f6ef7065407 # v3 with: packages: platform-tools log-accepted-android-sdk-licenses: false - - uses: gradle/actions/setup-gradle@v4 + - uses: gradle/actions/setup-gradle@ed408507eac070d1f99cc633dbcf757c94c7933a # v4 with: cache-read-only: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name != github.repository }} - name: Enable KVM @@ -75,14 +77,15 @@ jobs: sudo udevadm control --reload-rules sudo udevadm trigger --name-match=kvm - run: chmod +x gradlew - - uses: reactivecircus/android-emulator-runner@v2 + - name: Run native UI journeys + uses: reactivecircus/android-emulator-runner@a421e43855164a8197daf9d8d40fe71c6996bb0d # v2 with: api-level: 35 arch: x86_64 target: google_apis profile: ${{ contains(matrix.device, 'tablet') && 'pixel_tablet' || 'pixel_6' }} script: bash scripts/device-matrix.sh ${{ matrix.device }} - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 if: always() with: name: android-ui-${{ matrix.device }} diff --git a/.gitignore b/.gitignore index 990a4fa..610d0d4 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,14 @@ google-services.json /validation/ __pycache__/ *.pyc + +# Local deployment credentials; public branding and synthetic test fixtures stay tracked. +.env +.env.* +!.env.example +*.p12 +*.pfx +*.pem +*.key +keystore.properties +signing.properties diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..429a758 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,53 @@ +# Contributing and maintenance + +This is a native Kotlin/Jetpack Compose application. Read [AGENTS.md](AGENTS.md) +and the unchanged [PRD](docs/PRD.md) before changing behavior. The owner currently +authorizes the existing [PR #4](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/pull/4) +for final delivery: work on `dev`, preserve tested phase commits and `dev`, and +merge only the reviewed head after its required gates pass. Do not create other +pull requests or feature branches for this batch. + +## Local checks + +Use JDK 21, Python 3 and Android SDK platform 36/build tools. Clone recursively, +switch to `dev`, and retain the pinned Design submodule. Keep SDK paths in ignored +`local.properties` or `ANDROID_HOME`; never commit local credentials. + +```sh +git submodule update --init --recursive +./gradlew lint test assembleDebug assembleRelease bundleRelease assembleDebugAndroidTest +python3 -m unittest discover -s scripts/tests -p 'test_native_packaging.py' -v +python3 scripts/check_native_packaging.py app/build/outputs/apk/debug/app-debug.apk app/build/outputs/apk/release/app-release-unsigned.apk +``` + +Use `gradlew.bat` and `python` on Windows. Run `connectedDebugAndroidTest` with a +ready emulator/device for native journeys. The manually dispatched Android +workflow runs every case across the ten profiles in +[release readiness](docs/RELEASE-READINESS.md). Do not skip failing cases or infer +actual layout quality from compilation or a screenshot listing. + +## Change boundaries + +- Use only the generated API client and authoritative schema. Do not invent + endpoints, models, production successes or backend behavior. +- Generated API, theme, typography and copy output belongs under build directories; + change the reviewed inputs/generators instead. Keep `docs/PRD.md`, + `api/openapi.json` and the Design gitlink unchanged unless explicitly authorized. +- Retain source-generation, unit/transport, lint, native packaging and relevant + instrumented checks. Review original full-OS captures for affected phone/tablet, + theme, orientation and text-scale states. Keep secrets and recovery codes out + of logs, issues and evidence. +- Preserve the configured Shaan commit identity and required Codex attribution + for Codex-authored commits. Record concrete behavior, tests and remaining owner + gates; do not claim live backend/provider or store acceptance from demo tests. +- Dependency/toolchain changes require a separate reviewed phase and a resolved + graph/provenance comparison; see [dependency maintenance](docs/DEPENDENCIES.md). + Do not automatically update SDKs, generate update PRs or trust new checksum + metadata without review. + +The backend is deferred. Debug's labelled in-memory demo is isolated; Release +does not acquire production authority from it. Signing, legal/privacy inputs, +physical-device/provider verification and store distribution remain owner gates. + +Report vulnerabilities through the [security policy](SECURITY.md), not a public +issue containing credentials or private account data. diff --git a/README.md b/README.md index c8f6802..b45f92d 100644 --- a/README.md +++ b/README.md @@ -73,4 +73,6 @@ Set deployment branding and an optional locked HTTPS origin in [`branding/brand. [User guide](docs/USER-GUIDE.md) · [Release readiness](docs/RELEASE-READINESS.md) · [Store listing](docs/STORE-LISTING.md) · [Local API evidence](docs/LOCAL-DOCKER-VALIDATION.md) · [Changelog](docs/CHANGELOG.md) · [PRD](docs/PRD.md) +[Contributing](CONTRIBUTING.md) · [Security policy](SECURITY.md) · [Dependency provenance](docs/DEPENDENCIES.md) + Ongoing work stays on `dev`, with tested phase commits pushed there. The owner authorized the existing [PR #4](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/pull/4) for delivery to `main`: merge only its reviewed head after exact-source CI and visual gates pass. Preserve `dev` and phase commits; do not create other pull requests or feature branches. Keep the PRD, API contract and pinned Design inputs unchanged. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..2664d22 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,46 @@ +# Security policy + +## Reporting + +Use GitHub's private **Report a vulnerability** entry in this repository's +[Security tab](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/security). +The [private reporting form](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/security/advisories/new) +is usable only when the owner has enabled private vulnerability reporting. If it +is unavailable, open an issue asking only for a private reporting channel; do not +include the vulnerability details or sensitive evidence publicly. No reporting +email, response deadline or bounty is asserted here. + +Include the exact commit/build, Android version/device, a minimal reproduction, +expected versus actual behavior and the affected trust boundary. Redact tokens, +passwords, verification/recovery codes, private document URLs, account data and +signing/provider configuration. Do not access other people's accounts or run +destructive checks against a live makerspace. Use local fixtures or an explicitly +authorized test deployment. Never commit a discovered secret; notify the owner +privately so it can be revoked at its actual issuer. + +## Scope and support + +`dev` contains the current reviewed work; `main` receives the owner-authorized +delivery. There is no declared production support window or published security +release SLA. Report issues against the exact source, including the generated +client, native storage, request ownership, links, document handling and build +supply chain. A dependency alert or package checksum check is not a complete +security assessment. + +The backend, production attestation/provider setup, signing and store deployment +are separate owner gates. Labelled Debug fixtures do not establish a live session, +settled charge, deletion or successful provider setup. Preserve honest unavailable +states when the generated native contract or deployment configuration is absent. + +## Maintainer handling + +Keep reports and reproductions private until the owner agrees on disclosure. +Confirm affected versions and ownership boundaries, add meaningful regression +coverage and validate the exact corrected source before delivery. Do not disable +TLS, attestation, authorization or secure-window protections to make a test pass. + +Use the existing owner-authorized delivery workflow and preserve phase commits. +Store credentials, signing material and incident artifacts outside Git. Review +the current GitHub protection/reporting/scanning settings and the +[release checklist](docs/RELEASE-READINESS.md); this policy does not enable those +settings by itself. diff --git a/app/src/main/assets/licenses/OFL-Unbounded.txt b/app/src/main/assets/licenses/OFL-Unbounded.txt new file mode 100644 index 0000000..deb478a --- /dev/null +++ b/app/src/main/assets/licenses/OFL-Unbounded.txt @@ -0,0 +1,93 @@ +Copyright 2022 The Unbounded Project Authors (https://github.com/googlefonts/unbounded) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/docs/DEPENDENCIES.md b/docs/DEPENDENCIES.md new file mode 100644 index 0000000..9585687 --- /dev/null +++ b/docs/DEPENDENCIES.md @@ -0,0 +1,103 @@ +# Dependency and build provenance + +This inventory describes the declarations in `build.gradle.kts`, +`app/build.gradle.kts` and the Gradle wrapper. It is not an SBOM, a complete list of +transitive licenses, a vulnerability clearance or a grant to redistribute the app +and supplied assets. Preserve the currently tested versions until a reviewed +maintenance phase validates a replacement. + +## Tools and repositories + +| Input | Declared version/source | +|---|---| +| Gradle | 8.13 binary distribution through the checked-in wrapper | +| Android Gradle Plugin | 8.13.0 | +| Kotlin Android / Compose / serialization plugins | 2.2.21 | +| OpenAPI Generator | 7.26.0; generated Kotlin Retrofit/serialization client | +| Google Services plugin | 4.5.0; applied only when private configuration exists | +| Build environment | JDK 21, Python 3, Android SDK 36; JVM target 17 | +| Dependency repositories | Google Maven and Maven Central; plugin portal for plugins | + +The wrapper's `distributionSha256Sum` is +`20f1b1176237254a6fc204d8434196fa11a4cfb387567519c61556e8710aed78`, verified against +the [official 8.13 binary ZIP checksum](https://services.gradle.org/distributions/gradle-8.13-bin.zip.sha256) +and [Gradle checksum reference](https://gradle.org/release-checksums/). The wrapper +JAR is unchanged; CI's Gradle setup action also validates wrapper JARs. + +## Direct SDK and test inputs + +| Group | Exact declarations | +|---|---| +| Compose | BOM 2025.10.01; Material 3, Material icons core, UI test JUnit4/test manifest | +| AndroidX | Activity 1.11.0; Navigation 2.9.5; Lifecycle 2.9.4; Credentials and Play Services adapter 1.6.0 | +| Google identity / integrity | GoogleID 1.1.1; Play Integrity 1.6.0 | +| Firebase | BOM 34.4.0; Messaging | +| Camera / images / scans | CameraX core/camera2/lifecycle/view 1.5.3; ExifInterface 1.4.2; ML Kit barcode scanning 17.3.0 | +| Kotlin libraries | Coroutines Android/test 1.10.2; serialization JSON 1.9.0 | +| HTTP / serialization | Retrofit and serialization converter 2.11.0; OkHttp / MockWebServer 4.12.0 | +| Payments | Stripe Android 22.8.1; Razorpay Checkout 1.6.41; standard-core strictly 1.7.20 | +| Tests | JUnit 4.13.2; AndroidX test extension JUnit 1.3.0; Compose test modules use the same BOM | + +The generator consumes this repository's authoritative OpenAPI input and reviewed +operation filter/templates. Providers retain their supported native behavior; +adding an SDK does not supply backend authority or deployment configuration. + +Review the resolved POM/module metadata and licenses at the actual artifact +sources, not just this table: [Google Maven](https://maven.google.com/), +[Maven Central](https://central.sonatype.com/), +[AndroidX](https://android.googlesource.com/platform/frameworks/support/), +[Kotlin libraries](https://github.com/Kotlin), +[Square libraries](https://github.com/square), +[Firebase Android](https://github.com/firebase/firebase-android-sdk), +[Stripe Android](https://github.com/stripe/stripe-android), and +[Razorpay Android integration](https://razorpay.com/docs/payments/payment-gateway/android-integration/standard/). +Their licenses and applicable provider terms remain independent of the app's code +and brand assets. No root application-code license is declared in this repository; +do not infer an MIT/Apache grant from an individual dependency or the Design repo. + +## Fonts and assets + +Gilroy uses the owner-supplied four faces and explicit native weight mapping; retain +[its conversion and license distinction](licenses/Gilroy-native-fonts.md). Separate +owner confirmation of app-embedding/distribution rights remains a release input; +the old free Light/ExtraBold EULA does not license those four supplied faces. +Unbounded is limited to short accent copy. Its existing copyright and full OFL +text are copied unchanged into `app/src/main/assets/licenses/OFL-Unbounded.txt`; +the packaging gate requires those exact source bytes in each APK. See +[font provenance](licenses/FONT-PROVENANCE.md) and [the full OFL](licenses/OFL-Unbounded.txt). +Logo masters stay pinned to Design, and README screenshot provenance stays bound +to its recorded tested app commit. Do not rewrite third-party notices or invent +rights for replacement assets. + +## Immutable CI action inputs + +These are the original major refs resolved through each upstream repository's Git +API on 18 October 2026, peeling annotated tags to commits. No action major was +upgraded. The workflow pins the full commits; review upstream changes deliberately +before replacing them. + +| Action | Original ref | Pinned upstream commit | +|---|---|---| +| actions/checkout | v4 | [11d5960a326750d5838078e36cf38b85af677262](https://github.com/actions/checkout/commit/11d5960a326750d5838078e36cf38b85af677262) | +| actions/setup-java | v4 | [cf277c60eb25467037889841efdb72551f06f6c3](https://github.com/actions/setup-java/commit/cf277c60eb25467037889841efdb72551f06f6c3) | +| android-actions/setup-android | v3 | [9fc6c4e9069bf8d3d10b2204b1fb8f6ef7065407](https://github.com/android-actions/setup-android/commit/9fc6c4e9069bf8d3d10b2204b1fb8f6ef7065407) | +| gradle/actions/setup-gradle | v4 (v4.4.3) | [ed408507eac070d1f99cc633dbcf757c94c7933a](https://github.com/gradle/actions/commit/ed408507eac070d1f99cc633dbcf757c94c7933a) | +| actions/upload-artifact | v4 | [ea165f8d65b6e75b540449e92b4886f43607fa02](https://github.com/actions/upload-artifact/commit/ea165f8d65b6e75b540449e92b4886f43607fa02) | +| reactivecircus/android-emulator-runner | v2 | [a421e43855164a8197daf9d8d40fe71c6996bb0d](https://github.com/ReactiveCircus/android-emulator-runner/commit/a421e43855164a8197daf9d8d40fe71c6996bb0d) | + +## Maintenance and remaining reproducibility work + +Direct versions/BOMs are fixed, but the project does not yet claim a fully locked, +independently checksum-reviewed transitive graph or byte-identical APKs across +different host environments. A finite follow-up must record the current resolved +Debug/Release/test graph, review exact metadata/artifact provenance, then enable +supported Gradle dependency locking and strict verification without silently +changing that graph. Do not treat generated bootstrap checksums as independent +trust evidence or bypass a checksum failure. + +For an approved update, record the original and proposed graphs, upstream release +and license information, changed native libraries/permissions, and meaningful +tests. Re-run generator/catalog checks, lint, both unit variants, package/font +checks and the appropriate exact-source native/visual matrix. Preserve signed +release owner checks separately. Use phase commits on `dev` and the existing +authorized PR; do not add automatic dependency-update PRs under this delivery policy. diff --git a/docs/RELEASE-READINESS.md b/docs/RELEASE-READINESS.md index dbf2169..0f3ae6e 100644 --- a/docs/RELEASE-READINESS.md +++ b/docs/RELEASE-READINESS.md @@ -22,6 +22,28 @@ The unsigned Release APK is under `app/build/outputs/apk/release/` and the unsig `app/build/outputs/bundle/release/`; these artifacts prove compilation/packaging, not Play distribution readiness. +## Repository and supply-chain handoff + +Use the checked-in Gradle 8.13 distribution checksum and immutable upstream action +commits recorded in [dependency provenance](DEPENDENCIES.md). Checkout credentials +are not persisted, CI permissions remain read-only and no publishing/signing job +is configured. Changes to these inputs require new exact-head CI evidence; the +historical app proof linked in README is not relabelled as a new-source test run. + +Review current GitHub main protection, private reporting and secret-scanning/push +protection settings with the owner. Repository policy files do not enable those +settings. Follow [SECURITY.md](../SECURITY.md) for private reporting and +[CONTRIBUTING.md](../CONTRIBUTING.md) for maintenance. Preserve `dev`, phase history +and the existing authorized PR #4; do not introduce automatic update PRs. + +Retain SDK/transitive license and provider-term review as a distribution input, +including separate owner confirmation of supplied Gilroy app-embedding rights. +The current packaged Unbounded font includes the unchanged existing copyright +and full OFL text under `assets/licenses/OFL-Unbounded.txt`; the APK packaging +gate verifies those exact source bytes. This does not grant a license to the +application code or to unrelated supplied assets. Signing, backend/provider, +privacy/legal and store checks below remain separate owner gates. + CI additionally validates every arm64/x86_64 native library's LOAD segments and runs the Android SDK's `zipalign -c -P 16 4` on debug and release APKs. Evidence is in `validation/native-packaging.json`. This verifies binary/ZIP alignment; a 16 KB runtime device diff --git a/docs/licenses/FONT-PROVENANCE.md b/docs/licenses/FONT-PROVENANCE.md index b9f5ff3..329b713 100644 --- a/docs/licenses/FONT-PROVENANCE.md +++ b/docs/licenses/FONT-PROVENANCE.md @@ -1,3 +1,3 @@ # Unbounded native font provenance -`app/src/main/res/font/unbounded.ttf` was converted without outlines/name/glyph changes from `design/fonts/Unbounded-Variable.woff2`, pinned design commit fd28f825086a2cac7fa297881f1860b9d332db69. Isolated build tooling: fontTools 4.67.0, WOFF2 decompression only; wght 200–900. TTF SHA256 87526b420190c9008a880bbf1780ab8c1563d55abb772a9cc6ed7e7b81306c3d. The bundled SIL OFL permits app embedding. Use weight500–600 for a short brand accent phrase only; platform Roboto remains body/UI pending Gilroy app-embedding clearance. +`app/src/main/res/font/unbounded.ttf` was converted without outlines/name/glyph changes from `design/fonts/Unbounded-Variable.woff2`, pinned design commit fd28f825086a2cac7fa297881f1860b9d332db69. Isolated build tooling: fontTools 4.67.0, WOFF2 decompression only; wght 200–900. TTF SHA256 87526b420190c9008a880bbf1780ab8c1563d55abb772a9cc6ed7e7b81306c3d. The bundled SIL OFL permits app embedding. Use weight500–600 for a short brand accent phrase only; body/UI now uses the owner-supplied Gilroy family with explicit native weights and system scaling. Separate owner confirmation of Gilroy app-embedding/distribution rights remains a release input; see `Gilroy-native-fonts.md`. The complete existing Unbounded copyright/OFL text is also copied unchanged into `app/src/main/assets/licenses/OFL-Unbounded.txt`, and APK packaging checks compare its exact bytes with `docs/licenses/OFL-Unbounded.txt`. diff --git a/docs/mobile-auth-ux-spec.md b/docs/mobile-auth-ux-spec.md index 85ee35f..c42a968 100644 --- a/docs/mobile-auth-ux-spec.md +++ b/docs/mobile-auth-ux-spec.md @@ -10,7 +10,7 @@ The original mobile PRD remains the scope owner: `SpaceWorks/docs/mobile/MOBILE- Contract reference: the apps' `api/openapi.json`, SHA-256 `d5ec904eb2a52ca948ee38dae7840c8859a43e034a22f3b8dc478fd8851cbb9b`. Paths below include `/api/v1`, as do the generated operations. Configure the server origin without duplicating that prefix. A different schema in a local backend worktree is not a replacement contract. -Brand inputs: `design/tokens/tokens.json` is authoritative for color; `tokens/mobile-motion.json` is the shared machine-readable mobile motion contract generated into each app; `design/docs/ui-brand-spec.md` supplies the logo, spacing, motion provenance and voice; `design/docs/ux-yuyu-spec.md` and `design/docs/ux-screens-longtail.md` supply task-based layouts and states; `design/brand/space-works-brand-guidelines-v1.pdf` and its supplied page exports support visual verification. System fonts remain the mobile default until an app-embedding license for Gilroy is confirmed. The supplied WOFF files do not establish that license. +Brand inputs: `design/tokens/tokens.json` is authoritative for color; `tokens/mobile-motion.json` is the shared machine-readable mobile motion contract generated into each app; `design/docs/ui-brand-spec.md` supplies the logo, spacing, motion provenance and voice; `design/docs/ux-yuyu-spec.md` and `design/docs/ux-screens-longtail.md` supply task-based layouts and states; `design/brand/space-works-brand-guidelines-v1.pdf` and its supplied page exports support visual verification. The owner subsequently requested the supplied Gilroy Regular/Medium/SemiBold/Bold faces for native content, with explicit native weight mapping and full system text scaling; Unbounded remains a short accent only. Preserve each font’s provenance. The owner’s asset-use instruction does not itself establish app-embedding/distribution rights: that separate legal release input must be confirmed, and the old free Light/ExtraBold EULA does not license these four supplied faces. ## 2. Shared visual language diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f57a814..2efbeaa 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1 +1,2 @@ distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +distributionSha256Sum=20f1b1176237254a6fc204d8434196fa11a4cfb387567519c61556e8710aed78 diff --git a/scripts/check_native_packaging.py b/scripts/check_native_packaging.py index 1c95e4f..7e7d2ef 100644 --- a/scripts/check_native_packaging.py +++ b/scripts/check_native_packaging.py @@ -4,6 +4,7 @@ This is binary/package validation, not a claim of runtime testing on a 16 KB device. """ import argparse +import hashlib import json import os import pathlib @@ -13,6 +14,8 @@ import zipfile PAGE = 16 * 1024 +FONT_LICENSE_PATH = 'assets/licenses/OFL-Unbounded.txt' +FONT_LICENSE_SOURCE = pathlib.Path(__file__).resolve().parents[1] / 'docs/licenses/OFL-Unbounded.txt' def elf_load_alignments(data): @@ -41,6 +44,11 @@ def elf_load_alignments(data): def inspect_apk(path): libraries = [] with zipfile.ZipFile(path) as apk: + if apk.namelist().count(FONT_LICENSE_PATH) != 1: + raise ValueError('APK must contain exactly one full Unbounded copyright/OFL license') + license_bytes = apk.read(FONT_LICENSE_PATH) + if license_bytes != FONT_LICENSE_SOURCE.read_bytes(): + raise ValueError('Packaged Unbounded copyright/OFL license must match the existing source bytes') for item in apk.infolist(): if not item.filename.startswith(('lib/arm64-v8a/', 'lib/x86_64/')) or not item.filename.endswith('.so'): continue @@ -49,7 +57,9 @@ def inspect_apk(path): except ValueError as error: raise ValueError(f'{item.filename}: {error}') from error libraries.append({'path': item.filename, 'load_alignments': alignments}) - return {'apk': str(path), 'elf64_libraries': libraries, 'elf64_count': len(libraries)} + return {'apk': str(path), 'elf64_libraries': libraries, 'elf64_count': len(libraries), + 'font_license': {'path': FONT_LICENSE_PATH, 'sha256': hashlib.sha256(license_bytes).hexdigest(), + 'source': 'docs/licenses/OFL-Unbounded.txt', 'exact_source_bytes': True}} def find_zipalign(): diff --git a/scripts/tests/test_native_packaging.py b/scripts/tests/test_native_packaging.py index ef23bb6..49f515c 100644 --- a/scripts/tests/test_native_packaging.py +++ b/scripts/tests/test_native_packaging.py @@ -1,7 +1,9 @@ import importlib.util import pathlib import struct +import tempfile import unittest +import zipfile spec = importlib.util.spec_from_file_location('packaging_check', pathlib.Path(__file__).parents[1] / 'check_native_packaging.py') check = importlib.util.module_from_spec(spec) @@ -39,6 +41,32 @@ def test_truncated_invalid_or_empty_program_headers_fail(self): check.elf_load_alignments(data) +class BundledFontLicenseTests(unittest.TestCase): + def inspect(self, license_bytes): + with tempfile.TemporaryDirectory() as directory: + apk = pathlib.Path(directory) / 'fixture.apk' + with zipfile.ZipFile(apk, 'w') as archive: + archive.writestr('lib/arm64-v8a/libfixture.so', elf([(0, 0, 16384)])) + if license_bytes is not None: + archive.writestr(check.FONT_LICENSE_PATH, license_bytes) + return check.inspect_apk(apk) + + def test_full_existing_font_license_is_packaged_alongside_native_checks(self): + result = self.inspect(check.FONT_LICENSE_SOURCE.read_bytes()) + self.assertEqual(result['elf64_count'], 1) + self.assertEqual(result['elf64_libraries'][0]['load_alignments'], [16384]) + self.assertTrue(result['font_license']['exact_source_bytes']) + + def test_missing_full_font_license_cannot_pass_with_valid_native_library(self): + with self.assertRaisesRegex(ValueError, 'exactly one full Unbounded'): + self.inspect(None) + + def test_url_only_or_changed_license_cannot_replace_the_complete_text(self): + for content in [b'https://openfontlicense.org/', check.FONT_LICENSE_SOURCE.read_bytes()[:-1]]: + with self.subTest(content_bytes=len(content)), self.assertRaisesRegex(ValueError, 'source bytes'): + self.inspect(content) + + class DeviceFeatureTests(unittest.TestCase): BASE = "uses-feature-not-required: name='android.hardware.camera.any'\nsupports-screens: 'small' 'normal' 'large' 'xlarge'\n" From e739b915ea03cd48273f2e46cf11b2039f734f71 Mon Sep 17 00:00:00 2001 From: Shaan Shoukath <147940963+Shaan-Shoukath@users.noreply.github.com> Date: Sun, 18 Oct 2026 12:48:33 +0530 Subject: [PATCH 11/11] docs(c1): record validated repository handoff Co-Authored-By: Codex --- README.md | 12 ++++++------ docs/CHANGELOG.md | 8 ++++++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index b45f92d..f5caa29 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ The backend will be supplied later. Debug includes an explicitly labelled, isola ## Screenshots -Original full-OS emulator captures from tested app commit [`11cc205`](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/commit/11cc205c39294baeb3116038a5eb525519813eab). The gallery includes labelled Debug sample flows. Open any image for its full size; [capture provenance](docs/images/PROVENANCE.json) records the source, artifact and original-byte hashes. +Historical gallery: original full-OS emulator captures from tested app commit [`11cc205`](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/commit/11cc205c39294baeb3116038a5eb525519813eab). The gallery includes labelled Debug sample flows. Open any image for its full size; [capture provenance](docs/images/PROVENANCE.json) records the source, artifact and original-byte hashes. | Introduction | Sign in · dark | Tablet Home | | --- | --- | --- | @@ -55,15 +55,15 @@ For instrumented journeys, start an emulator/device and run `./gradlew connected ## Verified app baseline -Evidence below is bound to app commit **`11cc205`**, separately from any later README-only commit. +Current evidence is bound to tested source commit [`3a400c7`](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/commit/3a400c7bcf7c16164393ea493983a4bd173a710b), including the C1 repository-hardening inputs. Later Markdown-only handoff commits are separate from that tested source. The gallery above retains its historical `11cc205` captures and unchanged provenance. | Gate | Accepted result | | --- | --- | -| [Canonical dev CI](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/actions/runs/39081399951) | Build, lint, Debug/Release validation and default device jobs passed | -| [Full device matrix](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/actions/runs/39081400622) | 59 UI tests × 10 profiles = **590**, zero failures or skips | -| Unit tests | **538 Debug + 506 Release**, zero failures or skips | +| [Canonical CI](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/actions/runs/39105105315) | Build, lint, Debug/Release validation and phone/tablet jobs passed | +| [Full device matrix](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/actions/runs/39105109733) | 59 UI tests × 10 profiles = **590**, zero failures, errors or skips | +| Unit tests | **538 Debug + 506 Release = 1,044**, zero failures or skips | | Native/UI proof | Supplied font resolution, haptic dispatch/settings, measured profiles, real keyboard insets and configuration-backed 3.2× PDF dialog layout | -| Packaging and review | 16 KB APK/ELF alignment checks; **210 original full-OS screenshots** manually reviewed | +| Packaging and review | 16 KB APK/ELF alignment and exact bundled Unbounded OFL checks; **210 original full-OS screenshots** manually reviewed | The matrix covers compact through large phones, 600/800/840/1024dp tablets and tablet landscape, across light/dark and large text. Emulators do not establish tactile quality, live provider/backend operation or the separate physical 16 KB runtime-device gate. diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 0a247d1..709cea5 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,13 @@ # Phase notes +## C1 — repository hardening and validated handoff (2026-10-18) + +Tested source [`3a400c7`](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/commit/3a400c7bcf7c16164393ea493983a4bd173a710b) pins the existing CI actions to full upstream commits, disables checkout credential persistence and verifies the unchanged Gradle 8.13 distribution checksum. Existing read-only workflow permissions, fork-cache protections, native commands, profiles and timeouts remain intact. Narrow private-configuration ignores, contribution/security/dependency guidance and supplied-font provenance document the supported handoff; the exact existing Unbounded OFL is now packaged and verified in each APK. No SDK/toolchain version, app behavior or backend contract changes are included, and a fully locked, independently verified transitive dependency graph remains follow-up work. + +[Canonical CI 39105105315](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/actions/runs/39105105315) and [full ten-profile CI 39105109733](https://github.com/SpaceWorks-HQ/SpaceWorks-Android/actions/runs/39105109733) completed successfully at that exact source: 538 Debug + 506 Release = 1,044 unit executions and 59 UI cases on each of ten profiles = 590, with zero failures, errors or skips. All 210 selected original full-OS screenshots were actually reviewed. Font resolution, native feedback/settings, observed profile and keyboard geometry, configuration-backed 3.2× PDF text metrics/word boundaries, 16 KB packaging and exact bundled OFL checks passed. README validation now points to this source; its six-image gallery and asset provenance remain historical `11cc205` evidence, unchanged. + +Parity checklist: member, account/security/global-no-membership, staff, introduction/replay/guide, light/dark and scalable phone/tablet flows retain the accepted behavior. This Android handoff does not establish separate iOS acceptance. Live backend/provider operation, owner signing/store distribution, supplied-font embedding rights and physical tactile/runtime-device checks remain deployment gates. The documentation-only handoff preserves the tested app/build/test/resource tree; the current existing-PR CI guards still apply before the authorized final merge. + ## B3 — native motion and owned tactile feedback (2026-10-18) Actual a523 compact 3.2× PDF review found a complete Share document button whose default horizontal padding still forced the last letter of document onto a separate line. Only the existing Open/Save/Share outlined document actions now use 16 dp horizontal content padding, retaining 8 dp vertical padding, fully scaled 14 sp labels, 10 dp corners, minimum touch targets and the native scroll. The same existing PDF case checks actual text-layout word boundaries and records line ends as well as scale/metrics before its unchanged full-action, file-cleanup and no-SDK assertions. Fresh exact-source native and visual validation remains required; no label is shortened or truncated.