Supporting public types
The types below are in tech.graffity.android.arcloud.publicapi, except the view-host types noted at the end.
GraffityARMode
Sealed class with ARContent and Navigation object cases. Both use VPS. Navigation is the default and opens the destination picker; ARContent starts directly without destination UI. Collection requires a configured player ID and collectible content.
GraffityAREnvironment
Enum: Production (default) and Staging. External apps use production; staging requires Graffity QA credentials.
GraffityARDeepLink
Data class constructor: GraffityARDeepLink(poiId: String? = null, placeId: String? = null, sectionId: String? = null).
All properties are read-only. Applied to the first picker presentation. See app links and QR codes.
GraffityARDestination
Data class: GraffityARDestination(id: String, displayName: String, category: String?), with no defaults. Returned in navigation callbacks. POI IDs use default: or console: source prefixes.
GraffityARActivity
Collection result with a public constructor taking these fields, in order, with no defaults:
GraffityARActivity(id, projectId, playerId, isFinished, collectedContentIds, maxCollectionSize, bannerImageUrl, collectionEmptyImageUrl, collectionActiveImageUrl, lastModified)
See activity field types.
GraffityAROpenUrlSource
Sealed class with ARContent(contentId: String) and Map. Supplied to onRequestOpenUrl; see URL interception.
GraffityARTheme
Data class with Int ARGB colors, annotated @ColorInt. Its constructor accepts primary, secondary, surface, onSurface, onSurfaceSecondary, and danger, all defaulting to their corresponding constants.
Companion values: DEFAULT_PRIMARY, DEFAULT_SECONDARY, DEFAULT_SURFACE, DEFAULT_ON_SURFACE, DEFAULT_ON_SURFACE_SECONDARY, DEFAULT_DANGER, and the assembled DEFAULT palette. See palette values.
GraffityARLogLevel
Enum: DEBUG, INFO, WARNING, ERROR, ordered lowest to highest.
GraffityARLogger
Functional interface:
fun log(level: GraffityARLogLevel, message: String, throwable: Throwable?)
Implement with a lambda or class. Sinks must be thread-safe. See logging examples.
GraffityARLogging
Data class constructor: GraffityARLogging(logger: GraffityARLogger?, minimumLevel: GraffityARLogLevel).
| Companion factory/value | Behavior |
|---|---|
Default | Null consumer sink and INFO setting; uses Logcat, whose current fallback path does not filter debug output. |
Disabled | Null sink and ERROR setting; selects a no-op internal logger. |
custom(logger: GraffityARLogger, minimum: GraffityARLogLevel = INFO) | Consumer sink with threshold. Warnings/errors are also mirrored to fallback Logcat. |
GraffityARTelemetry
Enum: Enabled and Disabled. Disabled by default. Change at construction or through setTelemetryEnabled.
GraffityARStringsProvider
Functional interface: fun localizedString(key: String, locale: Locale): String?.
Install with Builder.stringsProvider(provider). Return null for bundled copy. Implementations must be thread-safe. See language customization.
GraffityARCloudHost
In tech.graffity.android.arcloud.presentation.view. Optional host Activity interface:
val graffityARCloudSDK: GraffityARCloudSDK
Used when a factory surface’s registry ID no longer resolves. Supply a valid SDK before a restored fragment needs it; it is not serialization or automatic process-death recovery.
ARCloudFragment and ARCloudView
Public classes in tech.graffity.android.arcloud.presentation.view. Use sdk.createFragment() and sdk.createView(context) to install session binding. Host the returned Fragment or View through standard Android UI APIs. Compose uses AndroidView.
See AR scene integration for lifecycle behavior.