1- # OneSignal Sample App V2 - Build Guide
1+ # OneSignal Sample App - Build Guide
22
33This document contains all the prompts and requirements needed to build the OneSignal Sample App V2 from scratch. Give these prompts to an AI assistant or follow them manually to recreate the app.
44
@@ -405,7 +405,7 @@ Create app/src/main/assets/tooltip_content.json:
405405 "description": "Aliases are alternative identifiers for the user. Use them to reference users by your own IDs (e.g., database ID, username)."
406406 },
407407 "push": {
408- "title": "Push Subscription",
408+ "title": "Push Subscription",
409409 "description": "The push subscription ID for this device. Used to send targeted push notifications."
410410 },
411411 "emails": {
@@ -470,24 +470,24 @@ Create TooltipHelper.kt:
470470object TooltipHelper {
471471 private var tooltips: Map<String, TooltipData> = emptyMap()
472472 private var initialized = false
473-
473+
474474 fun init(context: Context) {
475475 if (initialized) return
476-
476+
477477 // IMPORTANT: Load on background thread to avoid blocking app startup
478478 CoroutineScope(Dispatchers.IO).launch {
479479 // Load tooltip_content.json from assets
480480 // Parse JSON into tooltips map
481-
481+
482482 withContext(Dispatchers.Main) {
483483 // Update tooltips map on main thread
484484 initialized = true
485485 }
486486 }
487487 }
488-
488+
489489 fun getTooltip(key: String): TooltipData?
490-
490+
491491 fun showTooltip(context: Context, key: String) {
492492 // Show AlertDialog with tooltip title, description, and options if present
493493 }
@@ -515,7 +515,7 @@ For each section header in activity_main.xml:
515515Example layout for section header:
516516<LinearLayout orientation="horizontal">
517517 <TextView text="@string/aliases" />
518- <ImageButton
518+ <ImageButton
519519 android:id="@+id/btn_info_aliases"
520520 android:src="@drawable/ic_info"
521521 android:background="?selectableItemBackgroundBorderless" />
@@ -585,7 +585,7 @@ The test automation framework (Appium) will enter these values:
585585## Key Files Structure
586586
587587```
588- Examples/OneSignalDemoV2 /
588+ Examples/OneSignalDemo /
589589├── buildSrc/
590590│ └── src/main/kotlin/
591591│ ├── Versions.kt # Version constants
@@ -661,6 +661,7 @@ Note: REST API key is NOT required for the fetchUser endpoint.
661661### Package Name
662662
663663The package name MUST be ` com.onesignal.sdktest ` to work with the existing:
664+
664665- ` google-services.json ` (Firebase configuration)
665666- ` agconnect-services.json ` (Huawei configuration)
666667
@@ -698,6 +699,7 @@ Notification permission is automatically requested when MainActivity loads:
698699## Summary
699700
700701This app demonstrates all OneSignal Android SDK features:
702+
701703- User management (login/logout, aliases)
702704- Push notifications (subscription, sending, auto-permission prompt)
703705- Email and SMS subscriptions
@@ -710,6 +712,7 @@ This app demonstrates all OneSignal Android SDK features:
710712- Privacy consent management
711713
712714The app is designed to be:
715+
7137161 . ** Testable** - Empty dialogs for Appium automation
7147172 . ** Comprehensive** - All SDK features demonstrated
7157183 . ** Clean** - MVVM architecture with centralized OneSignal code
0 commit comments