Android has a richer read surface than just getCustomerInfo() and offerings(). Use the extra helpers when you need fast local decisions or store-specific capability checks.

Offerings

Use:
  • offerings()
  • offerings(fetchPolicy)
  • cachedOfferings
  • setFallbackOfferings(jsonData)
ReturnCachedThenRefresh is useful when you want fast paywall paint followed by background refresh.

Customer state

Important read surfaces:
  • getCustomerInfo()
  • customerInfo
  • activeEntitlementKeysOffline()
When the network path fails transiently, AppActor can still build an offline-derived entitlement view instead of leaving the app blind.

Cached and local helpers

You can also read:
  • cachedRemoteConfigs
  • cachedOfferings
  • getStorefront()
  • getStoreCapabilities()
  • canMakePurchases(...)
These are especially useful when paywall presentation depends on current store support or storefront country.

Model shape

AppActorCustomerInfo on Android includes:
  • entitlements
  • subscriptions
  • non-subscriptions
  • consumable balances and token balance
  • product-to-entitlement mapping
  • verification status
  • isComputedOffline when the snapshot was derived locally
That is the layer your app should trust for access gating, not the previous button tap or purchase dialog state.