[package] name = "pageflipnav" version = "1.0.0" edition = "2021" [features] ## USSD automation is ON by default. ## ## Review item 0.1 asked for dispatch behind a compile-time flag. That was ## implemented as default-off, which made the *334# automation — the app's ## primary function — unreachable in an ordinary build, and unreachable at ## all from the APK crate until 9f0e133. ## ## The containment requirement has not been dropped; it has moved to release ## packaging, which is where a shipping decision belongs. A Play-listed build ## must be produced with `--no-default-features` (plus the features it does ## want), and the unresolved Google Play policy risk is recorded in ## REVIEWS/adr/0007-payment-platform-boundary.md. ## ## Turning it off for a build: ## cargo build -p pageflipnav --no-default-features --features native default = ["native", "demo"] native = ["dep:tokio", "dep:reqwest", "nigig-core/native"] ## Enable automated *334# USSD payment in the shipped app. ## ## This is the crate that produces the APK, so without this the `demo` flag ## on nigig-pay/nigig-mpesa is unreachable: building pageflipnav could never ## turn the automation on, and the Pay sheet always reported that dispatch ## was unavailable with no way to change it. ## ## Off by default (review items 0.1/0.3): a default APK is a tracker that ## never dials USSD and never captures an M-Pesa PIN. ## ## Enabling it turns on AccessibilityService-driven USSD automation, which ## remains an unresolved Google Play policy risk (review item 5.2, ## REVIEWS/adr/0007). Use it for your own device testing; do not publish an ## APK built with it until that decision is made. ## ## cargo run -p pageflipnav --features demo demo = ["nigig-pay/demo", "nigig-mpesa/demo"] [profile.small] inherits = "release" opt-level = 'z' lto = true codegen-units = 1 panic = 'abort' strip = true [dependencies] makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "a79f0dce4d477e2232344facca0798d3f25043ec", default-features = false, features = ["test", "serde", "maps"] } robius-use-makepad = "0.1.1" robius-open = { git = "https://github.com/project-robius/robius", rev = "b766e62b0600f5d2ee21cc6995648346fc277bd8" } robius-directories = { git = "https://github.com/project-robius/robius", rev = "b766e62b0600f5d2ee21cc6995648346fc277bd8" } robius-contacts = { version = "0.1.0", path = "../robius-contacts" } postcard = { version = "1.1.3", features = ["use-std"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" error_set = "0.9.1" unicode-segmentation = "1.11.0" imghdr = "0.7.0" rand = "0.8.5" url = "2.5.0" chrono = { version = "0.4", default-features = false, features = ["clock"] } clap = { version = "4.0.16", features = ["derive"] } hashbrown = { version = "0.16", features = ["raw-entry"] } futures-util = "0.3" nigig-core = { path = "../nigig-core" } nigig-uikit = { path = "../nigig-uikit" } robius-ussd = { path = "../robius-ussd", features = ["serde"] } robius-trigger = { path = "../robius-trigger" } robius-fingerprinting = { path = "../robius-fingerprinting" } nigig-chat = { path = "../apps/nigig-chat" } nigig-feed = { path = "../apps/nigig-feed" } nigig-email = { path = "../apps/nigig-email" } nigig-sms = { path = "../apps/nigig-sms" } nigig-ai = { path = "../apps/nigig-ai" } nigig-walkie = { path = "../apps/nigig-walkie" } nigig-alerts = { path = "../apps/nigig-alerts" } nigig-rider = { path = "../apps/nigig-rider" } nigig-delivery = { path = "../apps/nigig-delivery" } nigig-garage = { path = "../apps/nigig-garage" } nigig-tow = { path = "../apps/nigig-tow" } nigig-mobility = { path = "../apps/nigig-mobility" } nigig-pay = { path = "../apps/nigig-pay", default-features = false } nigig-insure = { path = "../apps/nigig-insure" } nigig-build = { path = "../apps/nigig-build" } nigig-health = { path = "../apps/nigig-health" } nigig-book = { path = "../apps/nigig-book" } nigig-property = { path = "../apps/nigig-property" } nigig-vehicle = { path = "../apps/nigig-vehicle" } nigig-marikiti = { path = "../apps/nigig-marikiti" } nigig-shop = { path = "../apps/nigig-shop" } nigig-mpesa = { path = "../apps/nigig-mpesa", default-features = false } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] tokio = { version = "1", features = ["rt", "rt-multi-thread", "sync", "time", "macros"], optional = true } reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"], optional = true } [target.'cfg(target_arch = "wasm32")'.dependencies] getrandom = { version = "0.2", features = ["js"] } [dev-dependencies]