From b72914e453a3d686fffc012c4812c01f9bd2215a Mon Sep 17 00:00:00 2001 From: AR Abdul Azeez Date: Wed, 4 Feb 2026 18:10:16 -0500 Subject: [PATCH 01/50] example app --- .../app/agconnect-services.json | 96 ++ Examples/OneSignalDemoV2/app/build.gradle.kts | 124 +++ .../OneSignalDemoV2/app/google-services.json | 30 + .../OneSignalDemoV2/app/proguard-rules.pro | 21 + .../app/src/huawei/AndroidManifest.xml | 17 + .../notification/HmsMessageServiceAppLevel.kt | 68 ++ .../app/src/main/AndroidManifest.xml | 77 ++ .../sdktest/application/MainApplication.kt | 131 +++ .../sdktest/data/model/InAppMessageType.kt | 38 + .../sdktest/data/model/NotificationType.kt | 62 ++ .../network/OneSignalNotificationSender.kt | 147 +++ .../data/repository/OneSignalRepository.kt | 191 ++++ .../sdktest/ui/adapter/InAppMessageAdapter.kt | 41 + .../ui/adapter/NotificationGridAdapter.kt | 41 + .../sdktest/ui/adapter/PairListAdapter.kt | 49 + .../sdktest/ui/adapter/SingleListAdapter.kt | 48 + .../onesignal/sdktest/ui/main/MainActivity.kt | 393 ++++++++ .../sdktest/ui/main/MainViewModel.kt | 429 +++++++++ .../sdktest/ui/secondary/SecondaryActivity.kt | 33 + .../sdktest/ui/splash/SplashActivity.kt | 37 + .../sdktest/util/SharedPreferenceUtil.kt | 63 ++ .../ic_alert_octagon_white_48dp.png | Bin 0 -> 763 bytes .../res/drawable-hdpi/ic_alert_white_48dp.png | Bin 0 -> 1178 bytes .../res/drawable-hdpi/ic_bell_white_24dp.png | Bin 0 -> 635 bytes .../ic_brightness_percent_white_24dp.png | Bin 0 -> 772 bytes .../res/drawable-hdpi/ic_cart_white_24dp.png | Bin 0 -> 714 bytes .../ic_checkbox_marked_circle_white_48dp.png | Bin 0 -> 1525 bytes .../ic_chevron_down_white_48dp.png | Bin 0 -> 588 bytes .../ic_chevron_up_white_48dp.png | Bin 0 -> 578 bytes .../res/drawable-hdpi/ic_email_white_48dp.png | Bin 0 -> 1017 bytes .../ic_gesture_tap_white_24dp.png | Bin 0 -> 798 bytes .../ic_human_greeting_white_24dp.png | Bin 0 -> 751 bytes .../res/drawable-hdpi/ic_image_white_24dp.png | Bin 0 -> 649 bytes .../ic_information_white_48dp.png | Bin 0 -> 1352 bytes .../ic_map_marker_white_24dp.png | Bin 0 -> 793 bytes .../drawable-hdpi/ic_message_white_48dp.png | Bin 0 -> 675 bytes .../drawable-hdpi/ic_newspaper_white_24dp.png | Bin 0 -> 576 bytes .../res/drawable-hdpi/ic_star_white_24dp.png | Bin 0 -> 764 bytes .../ic_alert_octagon_white_48dp.png | Bin 0 -> 621 bytes .../res/drawable-mdpi/ic_alert_white_48dp.png | Bin 0 -> 902 bytes .../res/drawable-mdpi/ic_bell_white_24dp.png | Bin 0 -> 508 bytes .../ic_brightness_percent_white_24dp.png | Bin 0 -> 646 bytes .../res/drawable-mdpi/ic_cart_white_24dp.png | Bin 0 -> 544 bytes .../ic_checkbox_marked_circle_white_48dp.png | Bin 0 -> 994 bytes .../ic_chevron_down_white_48dp.png | Bin 0 -> 510 bytes .../ic_chevron_up_white_48dp.png | Bin 0 -> 500 bytes .../res/drawable-mdpi/ic_email_white_48dp.png | Bin 0 -> 757 bytes .../ic_gesture_tap_white_24dp.png | Bin 0 -> 578 bytes .../ic_human_greeting_white_24dp.png | Bin 0 -> 588 bytes .../res/drawable-mdpi/ic_image_white_24dp.png | Bin 0 -> 506 bytes .../ic_information_white_48dp.png | Bin 0 -> 940 bytes .../ic_map_marker_white_24dp.png | Bin 0 -> 604 bytes .../drawable-mdpi/ic_message_white_48dp.png | Bin 0 -> 537 bytes .../drawable-mdpi/ic_newspaper_white_24dp.png | Bin 0 -> 472 bytes .../res/drawable-mdpi/ic_star_white_24dp.png | Bin 0 -> 609 bytes .../drawable-nodpi/onesignal_rectangle.png | Bin 0 -> 18638 bytes .../res/drawable-nodpi/onesignal_square.png | Bin 0 -> 99328 bytes .../ic_alert_octagon_white_48dp.png | Bin 0 -> 994 bytes .../drawable-xhdpi/ic_alert_white_48dp.png | Bin 0 -> 1402 bytes .../res/drawable-xhdpi/ic_bell_white_24dp.png | Bin 0 -> 698 bytes .../ic_brightness_percent_white_24dp.png | Bin 0 -> 932 bytes .../res/drawable-xhdpi/ic_cart_white_24dp.png | Bin 0 -> 867 bytes .../ic_checkbox_marked_circle_white_48dp.png | Bin 0 -> 1994 bytes .../ic_chevron_down_white_48dp.png | Bin 0 -> 668 bytes .../ic_chevron_up_white_48dp.png | Bin 0 -> 687 bytes .../drawable-xhdpi/ic_email_white_48dp.png | Bin 0 -> 1319 bytes .../ic_gesture_tap_white_24dp.png | Bin 0 -> 911 bytes .../ic_human_greeting_white_24dp.png | Bin 0 -> 873 bytes .../drawable-xhdpi/ic_image_white_24dp.png | Bin 0 -> 731 bytes .../ic_information_white_48dp.png | Bin 0 -> 1716 bytes .../ic_map_marker_white_24dp.png | Bin 0 -> 921 bytes .../drawable-xhdpi/ic_message_white_48dp.png | Bin 0 -> 786 bytes .../ic_newspaper_white_24dp.png | Bin 0 -> 621 bytes .../res/drawable-xhdpi/ic_star_white_24dp.png | Bin 0 -> 924 bytes .../ic_alert_octagon_white_48dp.png | Bin 0 -> 1504 bytes .../drawable-xxhdpi/ic_alert_white_48dp.png | Bin 0 -> 1860 bytes .../drawable-xxhdpi/ic_bell_white_24dp.png | Bin 0 -> 979 bytes .../ic_brightness_percent_white_24dp.png | Bin 0 -> 1213 bytes .../drawable-xxhdpi/ic_cart_white_24dp.png | Bin 0 -> 1218 bytes .../ic_checkbox_marked_circle_white_48dp.png | Bin 0 -> 3041 bytes .../ic_chevron_down_white_48dp.png | Bin 0 -> 793 bytes .../ic_chevron_up_white_48dp.png | Bin 0 -> 813 bytes .../drawable-xxhdpi/ic_email_white_48dp.png | Bin 0 -> 1788 bytes .../ic_gesture_tap_white_24dp.png | Bin 0 -> 1319 bytes .../ic_human_greeting_white_24dp.png | Bin 0 -> 1248 bytes .../drawable-xxhdpi/ic_image_white_24dp.png | Bin 0 -> 975 bytes .../ic_information_white_48dp.png | Bin 0 -> 2625 bytes .../ic_map_marker_white_24dp.png | Bin 0 -> 1436 bytes .../drawable-xxhdpi/ic_message_white_48dp.png | Bin 0 -> 1024 bytes .../ic_newspaper_white_24dp.png | Bin 0 -> 736 bytes .../drawable-xxhdpi/ic_star_white_24dp.png | Bin 0 -> 1346 bytes .../ic_alert_octagon_white_48dp.png | Bin 0 -> 1848 bytes .../drawable-xxxhdpi/ic_alert_white_48dp.png | Bin 0 -> 2329 bytes .../drawable-xxxhdpi/ic_bell_white_24dp.png | Bin 0 -> 1269 bytes .../ic_brightness_percent_white_24dp.png | Bin 0 -> 1630 bytes .../drawable-xxxhdpi/ic_cart_white_24dp.png | Bin 0 -> 1571 bytes .../ic_checkbox_marked_circle_white_48dp.png | Bin 0 -> 4124 bytes .../ic_chevron_down_white_48dp.png | Bin 0 -> 999 bytes .../ic_chevron_up_white_48dp.png | Bin 0 -> 1032 bytes .../drawable-xxxhdpi/ic_email_white_48dp.png | Bin 0 -> 2257 bytes .../ic_gesture_tap_white_24dp.png | Bin 0 -> 1624 bytes .../ic_human_greeting_white_24dp.png | Bin 0 -> 1620 bytes .../drawable-xxxhdpi/ic_image_white_24dp.png | Bin 0 -> 1210 bytes .../ic_information_white_48dp.png | Bin 0 -> 3520 bytes .../ic_map_marker_white_24dp.png | Bin 0 -> 1809 bytes .../ic_message_white_48dp.png | Bin 0 -> 1304 bytes .../ic_newspaper_white_24dp.png | Bin 0 -> 921 bytes .../drawable-xxxhdpi/ic_star_white_24dp.png | Bin 0 -> 1795 bytes .../app/src/main/res/drawable/divider.xml | 6 + .../main/res/drawable/ic_bottom_banner.xml | 10 + .../src/main/res/drawable/ic_center_modal.xml | 10 + .../app/src/main/res/drawable/ic_close.xml | 10 + .../src/main/res/drawable/ic_full_screen.xml | 10 + .../res/drawable/ic_launcher_background.xml | 170 ++++ .../res/drawable/ic_launcher_foreground.xml | 34 + .../src/main/res/drawable/ic_top_banner.xml | 10 + .../app/src/main/res/drawable/no_divider.xml | 6 + .../drawable/ripple_selector_red_white.xml | 10 + .../drawable/ripple_selector_white_red.xml | 11 + .../app/src/main/res/layout/activity_main.xml | 895 ++++++++++++++++++ .../main/res/layout/activity_secondary.xml | 28 + .../src/main/res/layout/activity_splash.xml | 30 + .../src/main/res/layout/dialog_add_pair.xml | 45 + .../app/src/main/res/layout/dialog_login.xml | 26 + .../src/main/res/layout/dialog_outcome.xml | 68 ++ .../main/res/layout/dialog_single_input.xml | 26 + .../res/layout/item_notification_grid.xml | 38 + .../app/src/main/res/layout/item_pair.xml | 44 + .../app/src/main/res/layout/item_single.xml | 29 + .../res/mipmap-hdpi/ic_onesignal_launcher.png | Bin 0 -> 5972 bytes .../res/mipmap-mdpi/ic_onesignal_launcher.png | Bin 0 -> 3989 bytes .../mipmap-xhdpi/ic_onesignal_launcher.png | Bin 0 -> 8639 bytes .../mipmap-xxhdpi/ic_onesignal_launcher.png | Bin 0 -> 13885 bytes .../mipmap-xxxhdpi/ic_onesignal_launcher.png | Bin 0 -> 20157 bytes .../app/src/main/res/values/colors.xml | 21 + .../app/src/main/res/values/strings.xml | 96 ++ .../app/src/main/res/values/styles.xml | 24 + Examples/OneSignalDemoV2/build.gradle.kts | 30 + .../OneSignalDemoV2/buildSrc/build.gradle.kts | 8 + .../buildSrc/src/main/kotlin/Dependencies.kt | 40 + .../buildSrc/src/main/kotlin/Versions.kt | 44 + Examples/OneSignalDemoV2/gradle.properties | 21 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59536 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 + Examples/OneSignalDemoV2/gradlew | 234 +++++ Examples/OneSignalDemoV2/gradlew.bat | 89 ++ Examples/OneSignalDemoV2/settings.gradle.kts | 2 + 147 files changed, 4266 insertions(+) create mode 100644 Examples/OneSignalDemoV2/app/agconnect-services.json create mode 100644 Examples/OneSignalDemoV2/app/build.gradle.kts create mode 100644 Examples/OneSignalDemoV2/app/google-services.json create mode 100644 Examples/OneSignalDemoV2/app/proguard-rules.pro create mode 100644 Examples/OneSignalDemoV2/app/src/huawei/AndroidManifest.xml create mode 100644 Examples/OneSignalDemoV2/app/src/huawei/java/com/onesignal/sdktest/notification/HmsMessageServiceAppLevel.kt create mode 100644 Examples/OneSignalDemoV2/app/src/main/AndroidManifest.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/application/MainApplication.kt create mode 100644 Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/data/model/InAppMessageType.kt create mode 100644 Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/data/model/NotificationType.kt create mode 100644 Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/data/network/OneSignalNotificationSender.kt create mode 100644 Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/data/repository/OneSignalRepository.kt create mode 100644 Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/adapter/InAppMessageAdapter.kt create mode 100644 Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/adapter/NotificationGridAdapter.kt create mode 100644 Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/adapter/PairListAdapter.kt create mode 100644 Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/adapter/SingleListAdapter.kt create mode 100644 Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/main/MainActivity.kt create mode 100644 Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/main/MainViewModel.kt create mode 100644 Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/secondary/SecondaryActivity.kt create mode 100644 Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/splash/SplashActivity.kt create mode 100644 Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/util/SharedPreferenceUtil.kt create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_alert_octagon_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_alert_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_bell_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_brightness_percent_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_cart_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_checkbox_marked_circle_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_chevron_down_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_chevron_up_white_48dp.png create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_email_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_gesture_tap_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_human_greeting_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_image_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_information_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_map_marker_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_message_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_newspaper_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_star_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_alert_octagon_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_alert_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_bell_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_brightness_percent_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_cart_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_checkbox_marked_circle_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_chevron_down_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_chevron_up_white_48dp.png create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_email_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_gesture_tap_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_human_greeting_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_image_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_information_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_map_marker_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_message_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_newspaper_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_star_white_24dp.png create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/drawable-nodpi/onesignal_rectangle.png create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/drawable-nodpi/onesignal_square.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_alert_octagon_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_alert_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_bell_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_brightness_percent_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_cart_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_checkbox_marked_circle_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_chevron_down_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_chevron_up_white_48dp.png create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_email_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_gesture_tap_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_human_greeting_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_image_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_information_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_map_marker_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_message_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_newspaper_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_star_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_alert_octagon_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_alert_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_bell_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_brightness_percent_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_cart_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_checkbox_marked_circle_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_chevron_down_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_chevron_up_white_48dp.png create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_email_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_gesture_tap_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_human_greeting_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_image_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_information_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_map_marker_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_message_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_newspaper_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_star_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_alert_octagon_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_alert_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_bell_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_brightness_percent_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_cart_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_checkbox_marked_circle_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_chevron_down_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_chevron_up_white_48dp.png create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_email_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_gesture_tap_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_human_greeting_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_image_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_information_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_map_marker_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_message_white_48dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_newspaper_white_24dp.png create mode 100755 Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_star_white_24dp.png create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/drawable/divider.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_bottom_banner.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_center_modal.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_close.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_full_screen.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_top_banner.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/drawable/no_divider.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/drawable/ripple_selector_red_white.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/drawable/ripple_selector_white_red.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/layout/activity_main.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/layout/activity_secondary.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/layout/activity_splash.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/layout/dialog_add_pair.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/layout/dialog_login.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/layout/dialog_outcome.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/layout/dialog_single_input.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/layout/item_notification_grid.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/layout/item_pair.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/layout/item_single.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/mipmap-hdpi/ic_onesignal_launcher.png create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/mipmap-mdpi/ic_onesignal_launcher.png create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/mipmap-xhdpi/ic_onesignal_launcher.png create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/mipmap-xxhdpi/ic_onesignal_launcher.png create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/mipmap-xxxhdpi/ic_onesignal_launcher.png create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/values/colors.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/values/strings.xml create mode 100644 Examples/OneSignalDemoV2/app/src/main/res/values/styles.xml create mode 100644 Examples/OneSignalDemoV2/build.gradle.kts create mode 100644 Examples/OneSignalDemoV2/buildSrc/build.gradle.kts create mode 100644 Examples/OneSignalDemoV2/buildSrc/src/main/kotlin/Dependencies.kt create mode 100644 Examples/OneSignalDemoV2/buildSrc/src/main/kotlin/Versions.kt create mode 100644 Examples/OneSignalDemoV2/gradle.properties create mode 100644 Examples/OneSignalDemoV2/gradle/wrapper/gradle-wrapper.jar create mode 100644 Examples/OneSignalDemoV2/gradle/wrapper/gradle-wrapper.properties create mode 100755 Examples/OneSignalDemoV2/gradlew create mode 100644 Examples/OneSignalDemoV2/gradlew.bat create mode 100644 Examples/OneSignalDemoV2/settings.gradle.kts diff --git a/Examples/OneSignalDemoV2/app/agconnect-services.json b/Examples/OneSignalDemoV2/app/agconnect-services.json new file mode 100644 index 0000000000..965d4a0f6c --- /dev/null +++ b/Examples/OneSignalDemoV2/app/agconnect-services.json @@ -0,0 +1,96 @@ +{ + "agcgw":{ + "backurl":"connect-dre.hispace.hicloud.com", + "url":"connect-dre.dbankcloud.cn", + "websocketbackurl":"connect-ws-dre.hispace.dbankcloud.com", + "websocketurl":"connect-ws-dre.hispace.dbankcloud.cn" + }, + "agcgw_all":{ + "CN":"connect-drcn.dbankcloud.cn", + "CN_back":"connect-drcn.hispace.hicloud.com", + "DE":"connect-dre.dbankcloud.cn", + "DE_back":"connect-dre.hispace.hicloud.com", + "RU":"connect-drru.hispace.dbankcloud.ru", + "RU_back":"connect-drru.hispace.dbankcloud.cn", + "SG":"connect-dra.dbankcloud.cn", + "SG_back":"connect-dra.hispace.hicloud.com" + }, + "websocketgw_all":{ + "CN":"connect-ws-drcn.hispace.dbankcloud.cn", + "CN_back":"connect-ws-drcn.hispace.dbankcloud.com", + "DE":"connect-ws-dre.hispace.dbankcloud.cn", + "DE_back":"connect-ws-dre.hispace.dbankcloud.com", + "RU":"connect-ws-drru.hispace.dbankcloud.ru", + "RU_back":"connect-ws-drru.hispace.dbankcloud.cn", + "SG":"connect-ws-dra.hispace.dbankcloud.cn", + "SG_back":"connect-ws-dra.hispace.dbankcloud.com" + }, + "client":{ + "cp_id":"5190001000034239317", + "product_id":"388421841221340564", + "client_id":"1103097158011211392", + "client_secret":"14843C60CAFDCFD5E50025C14864697AFF55886BCF00558E8C817F141E0B4704", + "project_id":"388421841221340564", + "app_id":"107780279", + "api_key":"DAEDAN06wwm3fsiHbQaQzugegFDUc6lpsR9VZGRNoWEbjHpDphR5rSbobUr5/ohT1WlRTyIykjr4GzzEJ/jSxlziFmXF/8e56HAYiw==", + "package_name":"com.onesignal.sdktest" + }, + "oauth_client":{ + "client_id":"107780279", + "client_type":1 + }, + "app_info":{ + "app_id":"107780279", + "package_name":"com.onesignal.sdktest" + }, + "service":{ + "analytics":{ + "collector_url":"datacollector-dre.dt.hicloud.com,datacollector-dre.dt.dbankcloud.cn", + "collector_url_ru":"datacollector-drru.dt.dbankcloud.ru,datacollector-drru.dt.hicloud.com", + "collector_url_sg":"datacollector-dra.dt.hicloud.com,datacollector-dra.dt.dbankcloud.cn", + "collector_url_de":"datacollector-dre.dt.hicloud.com,datacollector-dre.dt.dbankcloud.cn", + "collector_url_cn":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn", + "resource_id":"p1", + "channel_id":"" + }, + "edukit":{ + "edu_url":"edukit.edu.cloud.huawei.com.cn", + "dh_url":"edukit.edu.cloud.huawei.com.cn" + }, + "search":{ + "url":"https://search-dre.cloud.huawei.com" + }, + "cloudstorage":{ + "storage_url_sg_back":"https://agc-storage-dra.cloud.huawei.asia", + "storage_url_ru_back":"https://agc-storage-drru.cloud.huawei.ru", + "storage_url_ru":"https://agc-storage-drru.cloud.huawei.ru", + "storage_url_de_back":"https://agc-storage-dre.cloud.huawei.eu", + "storage_url_de":"https://ops-dre.agcstorage.link", + "storage_url":"https://agc-storage-drcn.platform.dbankcloud.cn", + "storage_url_sg":"https://ops-dra.agcstorage.link", + "storage_url_cn_back":"https://agc-storage-drcn.cloud.huawei.com.cn", + "storage_url_cn":"https://agc-storage-drcn.platform.dbankcloud.cn" + }, + "ml":{ + "mlservice_url":"ml-api-dre.ai.dbankcloud.com,ml-api-dre.ai.dbankcloud.cn" + } + }, + "region":"DE", + "configuration_version":"3.0", + "appInfos":[ + { + "package_name":"com.onesignal.sdktest", + "client":{ + "app_id":"107780279" + }, + "app_info":{ + "package_name":"com.onesignal.sdktest", + "app_id":"107780279" + }, + "oauth_client":{ + "client_type":1, + "client_id":"107780279" + } + } + ] +} \ No newline at end of file diff --git a/Examples/OneSignalDemoV2/app/build.gradle.kts b/Examples/OneSignalDemoV2/app/build.gradle.kts new file mode 100644 index 0000000000..76451eba1c --- /dev/null +++ b/Examples/OneSignalDemoV2/app/build.gradle.kts @@ -0,0 +1,124 @@ +plugins { + id(Plugins.androidApplication) + id(Plugins.kotlinAndroid) +} + +// Apply GMS or Huawei plugin based on build variant +// Check at configuration time, not when task graph is ready +val taskRequests = gradle.startParameter.taskRequests.toString().lowercase() +if (taskRequests.contains("gms")) { + apply(plugin = Plugins.googleServices) +} else if (taskRequests.contains("huawei")) { + apply(plugin = Plugins.huaweiAgconnect) +} + +// OneSignal SDK version - can be overridden via gradle property SDK_VERSION +val sdkVersion: String = rootProject.findProperty("SDK_VERSION") as? String ?: Versions.oneSignalSdk + +android { + namespace = AppConfig.applicationId + compileSdk = Versions.compileSdk + + defaultConfig { + minSdk = Versions.minSdk + targetSdk = Versions.targetSdk + versionCode = Versions.versionCode + versionName = Versions.versionName + multiDexEnabled = true + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildFeatures { + viewBinding = true + } + + flavorDimensions += "default" + + productFlavors { + create("gms") { + dimension = "default" + applicationId = AppConfig.applicationId + } + create("huawei") { + dimension = "default" + minSdk = Versions.minSdk + applicationId = AppConfig.applicationId + } + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + debug { + isDebuggable = true + } + create("profileable") { + initWith(getByName("release")) + isDebuggable = false + isProfileable = true + isMinifyEnabled = false + signingConfig = signingConfigs.getByName("debug") + matchingFallbacks += listOf("release") + } + } + + kotlinOptions { + jvmTarget = "1.8" + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + packaging { + resources { + excludes += "androidsupportmultidexversion.txt" + } + } +} + +dependencies { + // Kotlin + implementation(Dependencies.kotlinStdlib) + implementation(Dependencies.coroutinesAndroid) + + // AndroidX + implementation(Dependencies.multidex) + implementation(Dependencies.cardview) + implementation(Dependencies.appcompat) + implementation(Dependencies.vectorDrawable) + implementation(Dependencies.coreKtx) + implementation(Dependencies.constraintLayout) + implementation(Dependencies.activityKtx) + + // Lifecycle (MVVM) + implementation(Dependencies.lifecycleViewModelKtx) + implementation(Dependencies.lifecycleLiveDataKtx) + implementation(Dependencies.lifecycleRuntimeKtx) + + // Material Design + implementation(Dependencies.material) + + // Google Play Services + implementation(Dependencies.playServicesLocation) + + // OneSignal - Google Play Builds + "gmsImplementation"("com.onesignal:OneSignal:$sdkVersion") + + // OneSignal - Huawei Builds + "huaweiImplementation"("com.onesignal:OneSignal:$sdkVersion") { + exclude(group = "com.google.android.gms", module = "play-services-gcm") + exclude(group = "com.google.android.gms", module = "play-services-analytics") + exclude(group = "com.google.android.gms", module = "play-services-location") + exclude(group = "com.google.firebase", module = "firebase-messaging") + } + "huaweiImplementation"(Dependencies.huaweiPush) + "huaweiImplementation"(Dependencies.huaweiLocation) +} diff --git a/Examples/OneSignalDemoV2/app/google-services.json b/Examples/OneSignalDemoV2/app/google-services.json new file mode 100644 index 0000000000..42c6c4e5cc --- /dev/null +++ b/Examples/OneSignalDemoV2/app/google-services.json @@ -0,0 +1,30 @@ +{ + "project_info": { + "project_number": "249481192614", + "firebase_url": "https://onesignaltest-e7802.firebaseio.com", + "project_id": "onesignaltest-e7802", + "storage_bucket": "onesignaltest-e7802.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:249481192614:android:9d39e24e24034b14", + "android_client_info": { + "package_name": "com.onesignal.sdktest" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyC2H_Z5NRhKVJsoG6dLwzSrH3aLNm7p3sw" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/Examples/OneSignalDemoV2/app/proguard-rules.pro b/Examples/OneSignalDemoV2/app/proguard-rules.pro new file mode 100644 index 0000000000..f1b424510d --- /dev/null +++ b/Examples/OneSignalDemoV2/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/Examples/OneSignalDemoV2/app/src/huawei/AndroidManifest.xml b/Examples/OneSignalDemoV2/app/src/huawei/AndroidManifest.xml new file mode 100644 index 0000000000..4cf0999869 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/huawei/AndroidManifest.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + diff --git a/Examples/OneSignalDemoV2/app/src/huawei/java/com/onesignal/sdktest/notification/HmsMessageServiceAppLevel.kt b/Examples/OneSignalDemoV2/app/src/huawei/java/com/onesignal/sdktest/notification/HmsMessageServiceAppLevel.kt new file mode 100644 index 0000000000..eed818c155 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/huawei/java/com/onesignal/sdktest/notification/HmsMessageServiceAppLevel.kt @@ -0,0 +1,68 @@ +package com.onesignal.sdktest.notification + +import android.os.Bundle +import android.util.Log +import com.huawei.hms.push.HmsMessageService +import com.huawei.hms.push.RemoteMessage +import com.onesignal.notifications.bridges.OneSignalHmsEventBridge + +/** + * HMS Message Service for handling Huawei Push notifications. + * This service forwards all push events to the OneSignal SDK. + * + * Note: This is the Huawei flavor-specific implementation. + */ +class HmsMessageServiceAppLevel : HmsMessageService() { + + companion object { + private const val TAG = "OneSignalHMS" + } + + /** + * When an app calls the getToken method to apply for a token from the server, + * if the server does not return the token during current method calling, + * the server can return the token through this method later. + * This method callback must be completed in 10 seconds. + * Otherwise, you need to start a new Job for callback processing. + */ + override fun onNewToken(token: String, bundle: Bundle) { + Log.d(TAG, "HmsMessageServiceAppLevel onNewToken refresh token: $token bundle: $bundle") + + // Forward event on to OneSignal SDK + OneSignalHmsEventBridge.onNewToken(this, token, bundle) + } + + @Deprecated("Deprecated in Java") + override fun onNewToken(token: String) { + Log.d(TAG, "HmsMessageServiceAppLevel onNewToken refresh token: $token") + + // Forward event on to OneSignal SDK + OneSignalHmsEventBridge.onNewToken(this, token) + } + + /** + * This method is called in the following cases: + * 1. "Data messages" - App process is alive when received. + * 2. "Notification Message" - foreground_show = false and app is in focus + * This method callback must be completed in 10 seconds. + * Start a new Job if more time is needed. + */ + override fun onMessageReceived(message: RemoteMessage) { + Log.d(TAG, "HMS onMessageReceived: $message") + Log.d(TAG, "HMS onMessageReceived.ttl: ${message.ttl}") + Log.d(TAG, "HMS onMessageReceived.data: ${message.data}") + + message.notification?.let { notification -> + Log.d(TAG, "HMS onMessageReceived.title: ${notification.title}") + Log.d(TAG, "HMS onMessageReceived.body: ${notification.body}") + Log.d(TAG, "HMS onMessageReceived.icon: ${notification.icon}") + Log.d(TAG, "HMS onMessageReceived.color: ${notification.color}") + Log.d(TAG, "HMS onMessageReceived.channelId: ${notification.channelId}") + Log.d(TAG, "HMS onMessageReceived.imageURL: ${notification.imageUrl}") + Log.d(TAG, "HMS onMessageReceived.tag: ${notification.tag}") + } + + // Forward event on to OneSignal SDK + OneSignalHmsEventBridge.onMessageReceived(this, message) + } +} diff --git a/Examples/OneSignalDemoV2/app/src/main/AndroidManifest.xml b/Examples/OneSignalDemoV2/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..dbc2019934 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/AndroidManifest.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/application/MainApplication.kt b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/application/MainApplication.kt new file mode 100644 index 0000000000..c9c146dee4 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/application/MainApplication.kt @@ -0,0 +1,131 @@ +package com.onesignal.sdktest.application + +import android.os.StrictMode +import android.util.Log +import androidx.multidex.MultiDexApplication +import com.onesignal.OneSignal +import com.onesignal.debug.LogLevel +import com.onesignal.inAppMessages.IInAppMessageClickEvent +import com.onesignal.inAppMessages.IInAppMessageClickListener +import com.onesignal.inAppMessages.IInAppMessageDidDismissEvent +import com.onesignal.inAppMessages.IInAppMessageDidDisplayEvent +import com.onesignal.inAppMessages.IInAppMessageLifecycleListener +import com.onesignal.inAppMessages.IInAppMessageWillDismissEvent +import com.onesignal.inAppMessages.IInAppMessageWillDisplayEvent +import com.onesignal.notifications.IDisplayableNotification +import com.onesignal.notifications.INotificationClickEvent +import com.onesignal.notifications.INotificationClickListener +import com.onesignal.notifications.INotificationLifecycleListener +import com.onesignal.notifications.INotificationWillDisplayEvent +import com.onesignal.sdktest.R +import com.onesignal.sdktest.data.network.OneSignalNotificationSender +import com.onesignal.sdktest.util.SharedPreferenceUtil +import com.onesignal.user.state.IUserStateObserver +import com.onesignal.user.state.UserChangedState +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.SupervisorJob +import kotlinx.coroutines.launch + +class MainApplication : MultiDexApplication() { + + private val applicationScope = CoroutineScope(SupervisorJob() + Dispatchers.Main) + + companion object { + private const val TAG = "OneSignalExample" + private const val SLEEP_TIME_TO_MIMIC_ASYNC_OPERATION = 2000L + } + + init { + // Run strict mode to surface any potential issues easier + StrictMode.enableDefaults() + } + + override fun onCreate() { + super.onCreate() + + OneSignal.Debug.logLevel = LogLevel.VERBOSE + + // Get or set the OneSignal App ID + var appId = SharedPreferenceUtil.getOneSignalAppId(this) + if (appId == null) { + appId = getString(R.string.onesignal_app_id) + SharedPreferenceUtil.cacheOneSignalAppId(this, appId) + } + + // Initialize notification sender with app ID + OneSignalNotificationSender.setAppId(appId) + + // Initialize OneSignal on main thread (required) + OneSignal.initWithContext(this, appId) + Log.d(TAG, "OneSignal init completed") + + // Set up all OneSignal listeners + setupOneSignalListeners() + + // Note: Permission is requested via the "PROMPT PUSH" button in MainActivity + // when the user has not yet granted notification permission. + // This avoids showing the prompt before the user sees the app UI. + } + + private fun setupOneSignalListeners() { + OneSignal.InAppMessages.addLifecycleListener(object : IInAppMessageLifecycleListener { + override fun onWillDisplay(event: IInAppMessageWillDisplayEvent) { + Log.v(TAG, "onWillDisplayInAppMessage") + } + + override fun onDidDisplay(event: IInAppMessageDidDisplayEvent) { + Log.v(TAG, "onDidDisplayInAppMessage") + } + + override fun onWillDismiss(event: IInAppMessageWillDismissEvent) { + Log.v(TAG, "onWillDismissInAppMessage") + } + + override fun onDidDismiss(event: IInAppMessageDidDismissEvent) { + Log.v(TAG, "onDidDismissInAppMessage") + } + }) + + OneSignal.InAppMessages.addClickListener(object : IInAppMessageClickListener { + override fun onClick(event: IInAppMessageClickEvent) { + Log.v(TAG, "IInAppMessageClickListener.onClick") + } + }) + + OneSignal.Notifications.addClickListener(object : INotificationClickListener { + override fun onClick(event: INotificationClickEvent) { + Log.v(TAG, "INotificationClickListener.onClick fired with event: $event") + } + }) + + OneSignal.Notifications.addForegroundLifecycleListener(object : INotificationLifecycleListener { + override fun onWillDisplay(event: INotificationWillDisplayEvent) { + Log.v(TAG, "INotificationLifecycleListener.onWillDisplay fired with event: $event") + + val notification: IDisplayableNotification = event.notification + + // Prevent OneSignal from displaying the notification immediately on return. + // Spin up a new thread to mimic some asynchronous behavior. + event.preventDefault() + Thread { + try { + Thread.sleep(SLEEP_TIME_TO_MIMIC_ASYNC_OPERATION) + } catch (ignored: InterruptedException) { + } + notification.display() + }.start() + } + }) + + OneSignal.User.addObserver(object : IUserStateObserver { + override fun onUserStateChange(state: UserChangedState) { + Log.v(TAG, "onUserStateChange fired: ${state.current.toJSONObject()}") + } + }) + + // Set default states + OneSignal.InAppMessages.paused = true + OneSignal.Location.isShared = false + } +} diff --git a/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/data/model/InAppMessageType.kt b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/data/model/InAppMessageType.kt new file mode 100644 index 0000000000..9786358457 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/data/model/InAppMessageType.kt @@ -0,0 +1,38 @@ +package com.onesignal.sdktest.data.model + +import com.onesignal.sdktest.R + +/** + * Enum representing different types of in-app messages that can be triggered. + */ +enum class InAppMessageType( + val title: String, + val iconResId: Int, + val triggerKey: String, + val triggerValue: String +) { + TOP_BANNER( + title = "Top Banner", + iconResId = R.drawable.ic_top_banner, + triggerKey = "iam_type", + triggerValue = "top_banner" + ), + BOTTOM_BANNER( + title = "Bottom Banner", + iconResId = R.drawable.ic_bottom_banner, + triggerKey = "iam_type", + triggerValue = "bottom_banner" + ), + CENTER_MODAL( + title = "Center Modal", + iconResId = R.drawable.ic_center_modal, + triggerKey = "iam_type", + triggerValue = "center_modal" + ), + FULL_SCREEN( + title = "Full Screen", + iconResId = R.drawable.ic_full_screen, + triggerKey = "iam_type", + triggerValue = "full_screen" + ) +} diff --git a/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/data/model/NotificationType.kt b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/data/model/NotificationType.kt new file mode 100644 index 0000000000..91d04e0193 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/data/model/NotificationType.kt @@ -0,0 +1,62 @@ +package com.onesignal.sdktest.data.model + +import com.onesignal.sdktest.R + +/** + * Enum representing different types of push notifications that can be sent. + */ +enum class NotificationType( + val title: String, + val iconResId: Int, + val notificationTitle: String, + val notificationBody: String +) { + GENERAL( + title = "General", + iconResId = R.drawable.ic_bell_white_24dp, + notificationTitle = "General Notification", + notificationBody = "This is a general notification" + ), + GREETINGS( + title = "Greetings", + iconResId = R.drawable.ic_human_greeting_white_24dp, + notificationTitle = "Hello!", + notificationBody = "Welcome to our app" + ), + PROMOTIONS( + title = "Promotions", + iconResId = R.drawable.ic_brightness_percent_white_24dp, + notificationTitle = "Special Offer!", + notificationBody = "Check out our latest promotions" + ), + BREAKING_NEWS( + title = "Breaking News", + iconResId = R.drawable.ic_newspaper_white_24dp, + notificationTitle = "Breaking News", + notificationBody = "Important news update" + ), + ABANDONED_CART( + title = "Abandoned Cart", + iconResId = R.drawable.ic_cart_white_24dp, + notificationTitle = "You left something behind!", + notificationBody = "Complete your purchase" + ), + NEW_POST( + title = "New Post", + iconResId = R.drawable.ic_image_white_24dp, + notificationTitle = "New Post Available", + notificationBody = "Check out the latest content" + ), + RE_ENGAGEMENT( + title = "Re-Engagement", + iconResId = R.drawable.ic_gesture_tap_white_24dp, + notificationTitle = "We miss you!", + notificationBody = "Come back and explore" + ), + RATING( + title = "Rating", + iconResId = R.drawable.ic_star_white_24dp, + notificationTitle = "Rate Us", + notificationBody = "Please rate our app" + ) +} diff --git a/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/data/network/OneSignalNotificationSender.kt b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/data/network/OneSignalNotificationSender.kt new file mode 100644 index 0000000000..72d9d05e81 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/data/network/OneSignalNotificationSender.kt @@ -0,0 +1,147 @@ +package com.onesignal.sdktest.data.network + +import android.util.Log +import com.onesignal.OneSignal +import com.onesignal.sdktest.data.model.NotificationType +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext +import org.json.JSONObject +import java.net.HttpURLConnection +import java.net.URL + +/** + * Sends push notifications to the current device via the OneSignal REST API. + * + * Note: This approach is for testing purposes only. In production, notifications + * should be sent from your backend server which can securely provide the API key. + */ +object OneSignalNotificationSender { + + private const val TAG = "OneSignalNotificationSender" + private const val ONESIGNAL_API_URL = "https://onesignal.com/api/v1/notifications" + + private var appId: String = "" + + fun setAppId(appId: String) { + this.appId = appId + } + + /** + * Send a notification to this device. + */ + suspend fun sendNotification(type: NotificationType): Boolean = withContext(Dispatchers.IO) { + val subscription = OneSignal.User.pushSubscription + + if (!subscription.optedIn) { + Log.w(TAG, "Cannot send notification - user not opted in") + return@withContext false + } + + val subscriptionId = subscription.id + if (subscriptionId.isNullOrEmpty()) { + Log.w(TAG, "Cannot send notification - no subscription ID") + return@withContext false + } + + try { + val notificationJson = JSONObject().apply { + put("app_id", appId) + put("include_player_ids", org.json.JSONArray().put(subscriptionId)) + put("headings", JSONObject().put("en", type.notificationTitle)) + put("contents", JSONObject().put("en", type.notificationBody)) + put("android_group", type.title) + put("android_led_color", "FFE9444E") + put("android_accent_color", "FFE9444E") + } + + val connection = (URL(ONESIGNAL_API_URL).openConnection() as HttpURLConnection).apply { + useCaches = false + connectTimeout = 30000 + readTimeout = 30000 + setRequestProperty("Accept", "application/vnd.onesignal.v1+json") + setRequestProperty("Content-Type", "application/json; charset=UTF-8") + requestMethod = "POST" + doOutput = true + doInput = true + } + + val outputBytes = notificationJson.toString().toByteArray(Charsets.UTF_8) + connection.setFixedLengthStreamingMode(outputBytes.size) + connection.outputStream.write(outputBytes) + + val responseCode = connection.responseCode + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_ACCEPTED) { + val response = connection.inputStream.bufferedReader().use { it.readText() } + Log.d(TAG, "Notification sent successfully: $response") + return@withContext true + } else { + val errorResponse = connection.errorStream?.bufferedReader()?.use { it.readText() } ?: "Unknown error" + Log.e(TAG, "Failed to send notification (HTTP $responseCode): $errorResponse") + return@withContext false + } + } catch (e: Exception) { + Log.e(TAG, "Error sending notification", e) + return@withContext false + } + } + + /** + * Send a custom notification with title and body. + */ + suspend fun sendCustomNotification(title: String, body: String): Boolean = withContext(Dispatchers.IO) { + val subscription = OneSignal.User.pushSubscription + + if (!subscription.optedIn) { + Log.w(TAG, "Cannot send notification - user not opted in") + return@withContext false + } + + val subscriptionId = subscription.id + if (subscriptionId.isNullOrEmpty()) { + Log.w(TAG, "Cannot send notification - no subscription ID") + return@withContext false + } + + try { + val notificationJson = JSONObject().apply { + put("app_id", appId) + put("include_player_ids", org.json.JSONArray().put(subscriptionId)) + put("headings", JSONObject().put("en", title)) + put("contents", JSONObject().put("en", body)) + put("android_led_color", "FFE9444E") + put("android_accent_color", "FFE9444E") + } + + val connection = (URL(ONESIGNAL_API_URL).openConnection() as HttpURLConnection).apply { + useCaches = false + connectTimeout = 30000 + readTimeout = 30000 + setRequestProperty("Accept", "application/vnd.onesignal.v1+json") + setRequestProperty("Content-Type", "application/json; charset=UTF-8") + requestMethod = "POST" + doOutput = true + doInput = true + } + + val outputBytes = notificationJson.toString().toByteArray(Charsets.UTF_8) + connection.setFixedLengthStreamingMode(outputBytes.size) + connection.outputStream.write(outputBytes) + + val responseCode = connection.responseCode + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_ACCEPTED) { + val response = connection.inputStream.bufferedReader().use { it.readText() } + Log.d(TAG, "Custom notification sent successfully: $response") + return@withContext true + } else { + val errorResponse = connection.errorStream?.bufferedReader()?.use { it.readText() } ?: "Unknown error" + Log.e(TAG, "Failed to send custom notification (HTTP $responseCode): $errorResponse") + return@withContext false + } + } catch (e: Exception) { + Log.e(TAG, "Error sending custom notification", e) + return@withContext false + } + } +} diff --git a/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/data/repository/OneSignalRepository.kt b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/data/repository/OneSignalRepository.kt new file mode 100644 index 0000000000..b3fc4de77b --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/data/repository/OneSignalRepository.kt @@ -0,0 +1,191 @@ +package com.onesignal.sdktest.data.repository + +import android.util.Log +import com.onesignal.OneSignal +import com.onesignal.sdktest.data.model.NotificationType +import com.onesignal.sdktest.data.network.OneSignalNotificationSender +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext + +/** + * Repository for all OneSignal SDK operations. + * All methods are suspend functions to be called from coroutines on background threads. + */ +class OneSignalRepository { + + companion object { + private const val TAG = "OneSignalRepository" + } + + // User operations + suspend fun loginUser(externalUserId: String) = withContext(Dispatchers.IO) { + Log.d(TAG, "Logging in user with externalUserId: $externalUserId") + OneSignal.login(externalUserId) + } + + suspend fun logoutUser() = withContext(Dispatchers.IO) { + Log.d(TAG, "Logging out user") + OneSignal.logout() + } + + // Alias operations + fun addAlias(label: String, id: String) { + Log.d(TAG, "Adding alias: $label -> $id") + OneSignal.User.addAlias(label, id) + } + + fun removeAlias(label: String) { + Log.d(TAG, "Removing alias: $label") + OneSignal.User.removeAlias(label) + } + + fun getAliases(): Map { + return OneSignal.User.onesignalId?.let { + // Return current aliases + mapOf() + } ?: mapOf() + } + + // Email operations + fun addEmail(email: String) { + Log.d(TAG, "Adding email: $email") + OneSignal.User.addEmail(email) + } + + fun removeEmail(email: String) { + Log.d(TAG, "Removing email: $email") + OneSignal.User.removeEmail(email) + } + + // SMS operations + fun addSms(smsNumber: String) { + Log.d(TAG, "Adding SMS: $smsNumber") + OneSignal.User.addSms(smsNumber) + } + + fun removeSms(smsNumber: String) { + Log.d(TAG, "Removing SMS: $smsNumber") + OneSignal.User.removeSms(smsNumber) + } + + // Tag operations + fun addTag(key: String, value: String) { + Log.d(TAG, "Adding tag: $key -> $value") + OneSignal.User.addTag(key, value) + } + + fun removeTag(key: String) { + Log.d(TAG, "Removing tag: $key") + OneSignal.User.removeTag(key) + } + + fun getTags(): Map { + return OneSignal.User.getTags() + } + + // Trigger operations + fun addTrigger(key: String, value: String) { + Log.d(TAG, "Adding trigger: $key -> $value") + OneSignal.InAppMessages.addTrigger(key, value) + } + + fun removeTrigger(key: String) { + Log.d(TAG, "Removing trigger: $key") + OneSignal.InAppMessages.removeTrigger(key) + } + + // Outcome operations + fun sendOutcome(name: String) { + Log.d(TAG, "Sending outcome: $name") + OneSignal.Session.addOutcome(name) + } + + fun sendUniqueOutcome(name: String) { + Log.d(TAG, "Sending unique outcome: $name") + OneSignal.Session.addUniqueOutcome(name) + } + + fun sendOutcomeWithValue(name: String, value: Float) { + Log.d(TAG, "Sending outcome with value: $name -> $value") + OneSignal.Session.addOutcomeWithValue(name, value) + } + + // Push subscription + fun getPushSubscriptionId(): String? { + return OneSignal.User.pushSubscription.id + } + + fun isPushEnabled(): Boolean { + return OneSignal.User.pushSubscription.optedIn + } + + fun setPushEnabled(enabled: Boolean) { + Log.d(TAG, "Setting push enabled: $enabled") + if (enabled) { + OneSignal.User.pushSubscription.optIn() + } else { + OneSignal.User.pushSubscription.optOut() + } + } + + // In-App Messaging + fun isInAppMessagesPaused(): Boolean { + return OneSignal.InAppMessages.paused + } + + fun setInAppMessagesPaused(paused: Boolean) { + Log.d(TAG, "Setting in-app messages paused: $paused") + OneSignal.InAppMessages.paused = paused + } + + // Location + fun isLocationShared(): Boolean { + return OneSignal.Location.isShared + } + + fun setLocationShared(shared: Boolean) { + Log.d(TAG, "Setting location shared: $shared") + OneSignal.Location.isShared = shared + } + + suspend fun promptLocation() = withContext(Dispatchers.IO) { + Log.d(TAG, "Prompting for location permission") + OneSignal.Location.requestPermission() + } + + // Notifications + suspend fun promptPushPermission() = withContext(Dispatchers.IO) { + Log.d(TAG, "Prompting for push permission") + OneSignal.Notifications.requestPermission(true) + } + + fun hasNotificationPermission(): Boolean { + return OneSignal.Notifications.permission + } + + // Send notifications + suspend fun sendNotification(type: NotificationType): Boolean { + Log.d(TAG, "Sending notification: ${type.title}") + return OneSignalNotificationSender.sendNotification(type) + } + + suspend fun sendCustomNotification(title: String, body: String): Boolean { + Log.d(TAG, "Sending custom notification: $title") + return OneSignalNotificationSender.sendCustomNotification(title, body) + } + + // Privacy consent + fun setPrivacyConsent(granted: Boolean) { + Log.d(TAG, "Setting privacy consent: $granted") + OneSignal.consentGiven = granted + } + + fun getPrivacyConsent(): Boolean { + return OneSignal.consentGiven + } + + // OneSignal ID + fun getOneSignalId(): String? { + return OneSignal.User.onesignalId + } +} diff --git a/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/adapter/InAppMessageAdapter.kt b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/adapter/InAppMessageAdapter.kt new file mode 100644 index 0000000000..a03cfef7b7 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/adapter/InAppMessageAdapter.kt @@ -0,0 +1,41 @@ +package com.onesignal.sdktest.ui.adapter + +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.onesignal.sdktest.data.model.InAppMessageType +import com.onesignal.sdktest.databinding.ItemNotificationGridBinding + +class InAppMessageAdapter( + private val items: List, + private val onItemClick: (InAppMessageType) -> Unit +) : RecyclerView.Adapter() { + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val binding = ItemNotificationGridBinding.inflate( + LayoutInflater.from(parent.context), + parent, + false + ) + return ViewHolder(binding) + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + holder.bind(items[position]) + } + + override fun getItemCount(): Int = items.size + + inner class ViewHolder( + private val binding: ItemNotificationGridBinding + ) : RecyclerView.ViewHolder(binding.root) { + + fun bind(item: InAppMessageType) { + binding.tvTitle.text = item.title + binding.ivIcon.setImageResource(item.iconResId) + binding.itemContainer.setOnClickListener { + onItemClick(item) + } + } + } +} diff --git a/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/adapter/NotificationGridAdapter.kt b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/adapter/NotificationGridAdapter.kt new file mode 100644 index 0000000000..94645a65a0 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/adapter/NotificationGridAdapter.kt @@ -0,0 +1,41 @@ +package com.onesignal.sdktest.ui.adapter + +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.onesignal.sdktest.data.model.NotificationType +import com.onesignal.sdktest.databinding.ItemNotificationGridBinding + +class NotificationGridAdapter( + private val items: List, + private val onItemClick: (NotificationType) -> Unit +) : RecyclerView.Adapter() { + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val binding = ItemNotificationGridBinding.inflate( + LayoutInflater.from(parent.context), + parent, + false + ) + return ViewHolder(binding) + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + holder.bind(items[position]) + } + + override fun getItemCount(): Int = items.size + + inner class ViewHolder( + private val binding: ItemNotificationGridBinding + ) : RecyclerView.ViewHolder(binding.root) { + + fun bind(item: NotificationType) { + binding.tvTitle.text = item.title + binding.ivIcon.setImageResource(item.iconResId) + binding.itemContainer.setOnClickListener { + onItemClick(item) + } + } + } +} diff --git a/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/adapter/PairListAdapter.kt b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/adapter/PairListAdapter.kt new file mode 100644 index 0000000000..584544af55 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/adapter/PairListAdapter.kt @@ -0,0 +1,49 @@ +package com.onesignal.sdktest.ui.adapter + +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.DiffUtil +import androidx.recyclerview.widget.ListAdapter +import androidx.recyclerview.widget.RecyclerView +import com.onesignal.sdktest.databinding.ItemPairBinding + +class PairListAdapter( + private val onRemoveClick: (String) -> Unit +) : ListAdapter, PairListAdapter.ViewHolder>(PairDiffCallback()) { + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val binding = ItemPairBinding.inflate( + LayoutInflater.from(parent.context), + parent, + false + ) + return ViewHolder(binding) + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + holder.bind(getItem(position)) + } + + inner class ViewHolder( + private val binding: ItemPairBinding + ) : RecyclerView.ViewHolder(binding.root) { + + fun bind(item: Pair) { + binding.tvKey.text = item.first + binding.tvValue.text = item.second + binding.btnRemove.setOnClickListener { + onRemoveClick(item.first) + } + } + } + + class PairDiffCallback : DiffUtil.ItemCallback>() { + override fun areItemsTheSame(oldItem: Pair, newItem: Pair): Boolean { + return oldItem.first == newItem.first + } + + override fun areContentsTheSame(oldItem: Pair, newItem: Pair): Boolean { + return oldItem == newItem + } + } +} diff --git a/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/adapter/SingleListAdapter.kt b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/adapter/SingleListAdapter.kt new file mode 100644 index 0000000000..443e269fe2 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/adapter/SingleListAdapter.kt @@ -0,0 +1,48 @@ +package com.onesignal.sdktest.ui.adapter + +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.DiffUtil +import androidx.recyclerview.widget.ListAdapter +import androidx.recyclerview.widget.RecyclerView +import com.onesignal.sdktest.databinding.ItemSingleBinding + +class SingleListAdapter( + private val onRemoveClick: (String) -> Unit +) : ListAdapter(StringDiffCallback()) { + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val binding = ItemSingleBinding.inflate( + LayoutInflater.from(parent.context), + parent, + false + ) + return ViewHolder(binding) + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + holder.bind(getItem(position)) + } + + inner class ViewHolder( + private val binding: ItemSingleBinding + ) : RecyclerView.ViewHolder(binding.root) { + + fun bind(item: String) { + binding.tvValue.text = item + binding.btnRemove.setOnClickListener { + onRemoveClick(item) + } + } + } + + class StringDiffCallback : DiffUtil.ItemCallback() { + override fun areItemsTheSame(oldItem: String, newItem: String): Boolean { + return oldItem == newItem + } + + override fun areContentsTheSame(oldItem: String, newItem: String): Boolean { + return oldItem == newItem + } + } +} diff --git a/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/main/MainActivity.kt b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/main/MainActivity.kt new file mode 100644 index 0000000000..0c71b5ddbb --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/main/MainActivity.kt @@ -0,0 +1,393 @@ +package com.onesignal.sdktest.ui.main + +import android.content.Intent +import android.os.Bundle +import android.view.View +import android.widget.AdapterView +import android.widget.ArrayAdapter +import android.widget.EditText +import android.widget.Spinner +import android.widget.TextView +import android.widget.Toast +import androidx.activity.viewModels +import androidx.appcompat.app.AlertDialog +import androidx.appcompat.app.AppCompatActivity +import androidx.recyclerview.widget.GridLayoutManager +import androidx.recyclerview.widget.LinearLayoutManager +import com.onesignal.sdktest.R +import com.onesignal.sdktest.data.model.InAppMessageType +import com.onesignal.sdktest.data.model.NotificationType +import com.onesignal.sdktest.databinding.ActivityMainBinding +import com.onesignal.sdktest.ui.adapter.InAppMessageAdapter +import com.onesignal.sdktest.ui.adapter.NotificationGridAdapter +import com.onesignal.sdktest.ui.adapter.PairListAdapter +import com.onesignal.sdktest.ui.adapter.SingleListAdapter +import com.onesignal.sdktest.ui.secondary.SecondaryActivity + +class MainActivity : AppCompatActivity() { + + private lateinit var binding: ActivityMainBinding + private val viewModel: MainViewModel by viewModels() + + // Adapters + private lateinit var aliasesAdapter: PairListAdapter + private lateinit var emailsAdapter: SingleListAdapter + private lateinit var smsAdapter: SingleListAdapter + private lateinit var tagsAdapter: PairListAdapter + private lateinit var triggersAdapter: PairListAdapter + private lateinit var notificationsAdapter: NotificationGridAdapter + private lateinit var inAppMessagesAdapter: InAppMessageAdapter + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = ActivityMainBinding.inflate(layoutInflater) + setContentView(binding.root) + + setupToolbar() + setupAdapters() + setupRecyclerViews() + setupClickListeners() + setupObservers() + } + + private fun setupToolbar() { + setSupportActionBar(binding.toolbar) + supportActionBar?.setDisplayShowTitleEnabled(false) + } + + private fun setupAdapters() { + aliasesAdapter = PairListAdapter { key -> viewModel.removeAlias(key) } + emailsAdapter = SingleListAdapter { email -> viewModel.removeEmail(email) } + smsAdapter = SingleListAdapter { sms -> viewModel.removeSms(sms) } + tagsAdapter = PairListAdapter { key -> viewModel.removeTag(key) } + triggersAdapter = PairListAdapter { key -> viewModel.removeTrigger(key) } + + notificationsAdapter = NotificationGridAdapter(NotificationType.values().toList()) { type -> + viewModel.sendNotification(type) + } + + inAppMessagesAdapter = InAppMessageAdapter(InAppMessageType.values().toList()) { type -> + viewModel.sendInAppMessage(type.triggerKey, type.triggerValue) + } + } + + private fun setupRecyclerViews() { + // Aliases + binding.rvAliases.apply { + layoutManager = LinearLayoutManager(this@MainActivity) + adapter = aliasesAdapter + } + + // Emails + binding.rvEmails.apply { + layoutManager = LinearLayoutManager(this@MainActivity) + adapter = emailsAdapter + } + + // SMS + binding.rvSms.apply { + layoutManager = LinearLayoutManager(this@MainActivity) + adapter = smsAdapter + } + + // Tags + binding.rvTags.apply { + layoutManager = LinearLayoutManager(this@MainActivity) + adapter = tagsAdapter + } + + // Triggers + binding.rvTriggers.apply { + layoutManager = LinearLayoutManager(this@MainActivity) + adapter = triggersAdapter + } + + // Notifications Grid (2 columns) + binding.rvNotifications.apply { + layoutManager = GridLayoutManager(this@MainActivity, 2) + adapter = notificationsAdapter + } + + // In-App Messages Grid (2 columns) + binding.rvInAppMessages.apply { + layoutManager = GridLayoutManager(this@MainActivity, 2) + adapter = inAppMessagesAdapter + } + } + + private fun setupClickListeners() { + // Consent buttons + binding.btnAllowConsent.setOnClickListener { + viewModel.setPrivacyConsent(true) + } + + binding.btnRevokeConsent.setOnClickListener { + viewModel.revokeConsent() + } + + // Login/Logout + binding.btnLoginUser.setOnClickListener { + showLoginDialog() + } + + binding.btnLogoutUser.setOnClickListener { + viewModel.logoutUser() + } + + // Add buttons + binding.btnAddAlias.setOnClickListener { + showAddPairDialog(getString(R.string.add_alias_title)) { key, value -> + viewModel.addAlias(key, value) + } + } + + binding.btnAddEmail.setOnClickListener { + showSingleInputDialog(getString(R.string.new_email)) { email -> + viewModel.addEmail(email) + } + } + + binding.btnAddSms.setOnClickListener { + showSingleInputDialog(getString(R.string.new_sms)) { sms -> + viewModel.addSms(sms) + } + } + + binding.btnAddTag.setOnClickListener { + showAddPairDialog(getString(R.string.add_tag_title)) { key, value -> + viewModel.addTag(key, value) + } + } + + binding.btnAddTrigger.setOnClickListener { + showAddPairDialog(getString(R.string.add_trigger_title)) { key, value -> + viewModel.addTrigger(key, value) + } + } + + binding.btnSendOutcome.setOnClickListener { + showOutcomeDialog() + } + + // Switches + binding.switchPushEnabled.setOnCheckedChangeListener { _, isChecked -> + viewModel.setPushEnabled(isChecked) + } + + binding.switchPauseIam.setOnCheckedChangeListener { _, isChecked -> + viewModel.setInAppMessagesPaused(isChecked) + } + + binding.switchLocationShared.setOnCheckedChangeListener { _, isChecked -> + viewModel.setLocationShared(isChecked) + } + + // Location prompt + binding.btnPromptLocation.setOnClickListener { + viewModel.promptLocation() + } + + // Prompt Push + binding.btnPromptPush.setOnClickListener { + viewModel.promptPush() + } + + // Next Activity + binding.btnNextActivity.setOnClickListener { + startActivity(Intent(this, SecondaryActivity::class.java)) + } + } + + private fun setupObservers() { + // App ID + viewModel.appId.observe(this) { appId -> + binding.tvAppId.text = appId + } + + // Push Subscription + viewModel.pushSubscriptionId.observe(this) { pushId -> + binding.tvPushId.text = pushId ?: "Not Available" + } + + viewModel.pushEnabled.observe(this) { enabled -> + binding.switchPushEnabled.isChecked = enabled + } + + // Notification Permission - show/hide prompt push button + viewModel.hasNotificationPermission.observe(this) { hasPermission -> + binding.layoutPromptPush.visibility = if (hasPermission) View.GONE else View.VISIBLE + binding.switchPushEnabled.isEnabled = hasPermission + } + + // Privacy Consent + viewModel.privacyConsentGiven.observe(this) { granted -> + binding.privacyConsentLayout.visibility = if (granted) View.GONE else View.VISIBLE + binding.nestedScrollView.visibility = if (granted) View.VISIBLE else View.GONE + } + + // Aliases + viewModel.aliases.observe(this) { aliases -> + aliasesAdapter.submitList(aliases) + binding.rvAliases.visibility = if (aliases.isNotEmpty()) View.VISIBLE else View.GONE + binding.tvNoAliases.visibility = if (aliases.isEmpty()) View.VISIBLE else View.GONE + } + + // Emails + viewModel.emails.observe(this) { emails -> + emailsAdapter.submitList(emails) + binding.rvEmails.visibility = if (emails.isNotEmpty()) View.VISIBLE else View.GONE + binding.tvNoEmails.visibility = if (emails.isEmpty()) View.VISIBLE else View.GONE + } + + // SMS + viewModel.smsNumbers.observe(this) { smsNumbers -> + smsAdapter.submitList(smsNumbers) + binding.rvSms.visibility = if (smsNumbers.isNotEmpty()) View.VISIBLE else View.GONE + binding.tvNoSms.visibility = if (smsNumbers.isEmpty()) View.VISIBLE else View.GONE + } + + // Tags + viewModel.tags.observe(this) { tags -> + tagsAdapter.submitList(tags) + binding.rvTags.visibility = if (tags.isNotEmpty()) View.VISIBLE else View.GONE + binding.tvNoTags.visibility = if (tags.isEmpty()) View.VISIBLE else View.GONE + } + + // Triggers + viewModel.triggers.observe(this) { triggers -> + triggersAdapter.submitList(triggers) + binding.rvTriggers.visibility = if (triggers.isNotEmpty()) View.VISIBLE else View.GONE + binding.tvNoTriggers.visibility = if (triggers.isEmpty()) View.VISIBLE else View.GONE + } + + // In-App Messages Paused + viewModel.inAppMessagesPaused.observe(this) { paused -> + binding.switchPauseIam.isChecked = paused + } + + // Location Shared + viewModel.locationShared.observe(this) { shared -> + binding.switchLocationShared.isChecked = shared + } + + // Toast messages + viewModel.toastMessage.observe(this) { message -> + message?.let { + Toast.makeText(this, it, Toast.LENGTH_SHORT).show() + viewModel.clearToast() + } + } + } + + private fun showLoginDialog() { + val dialogView = layoutInflater.inflate(R.layout.dialog_login, null) + val etExternalUserId = dialogView.findViewById(R.id.et_external_user_id) + + AlertDialog.Builder(this, R.style.AlertDialogTheme) + .setTitle(R.string.external_user_id) + .setView(dialogView) + .setPositiveButton(R.string.login) { _, _ -> + val externalUserId = etExternalUserId.text.toString().trim() + if (externalUserId.isNotEmpty()) { + viewModel.loginUser(externalUserId) + } + } + .setNegativeButton(R.string.cancel, null) + .show() + } + + private fun showAddPairDialog(title: String, onAdd: (String, String) -> Unit) { + val dialogView = layoutInflater.inflate(R.layout.dialog_add_pair, null) + val etKey = dialogView.findViewById(R.id.et_key) + val etValue = dialogView.findViewById(R.id.et_value) + + AlertDialog.Builder(this, R.style.AlertDialogTheme) + .setTitle(title) + .setView(dialogView) + .setPositiveButton(R.string.add) { _, _ -> + val key = etKey.text.toString().trim() + val value = etValue.text.toString().trim() + if (key.isNotEmpty()) { + onAdd(key, value) + } + } + .setNegativeButton(R.string.cancel, null) + .show() + } + + private fun showSingleInputDialog(label: String, onAdd: (String) -> Unit) { + val dialogView = layoutInflater.inflate(R.layout.dialog_single_input, null) + val etInput = dialogView.findViewById(R.id.et_input) + + AlertDialog.Builder(this, R.style.AlertDialogTheme) + .setTitle(label) + .setView(dialogView) + .setPositiveButton(R.string.add) { _, _ -> + val input = etInput.text.toString().trim() + if (input.isNotEmpty()) { + onAdd(input) + } + } + .setNegativeButton(R.string.cancel, null) + .show() + } + + private fun showOutcomeDialog() { + val dialogView = layoutInflater.inflate(R.layout.dialog_outcome, null) + val spinnerType = dialogView.findViewById(R.id.spinner_outcome_type) + val etName = dialogView.findViewById(R.id.et_outcome_name) + val tvValueLabel = dialogView.findViewById(R.id.tv_outcome_value_label) + val etValue = dialogView.findViewById(R.id.et_outcome_value) + + // Outcome types + val outcomeTypes = arrayOf( + getString(R.string.select_outcome_type), + getString(R.string.normal_outcome), + getString(R.string.unique_outcome), + getString(R.string.outcome_with_value) + ) + + val adapter = ArrayAdapter(this, android.R.layout.simple_spinner_item, outcomeTypes) + adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) + spinnerType.adapter = adapter + + // Show/hide value field based on selection + spinnerType.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { + override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) { + val showValue = position == 3 // "Outcome with Value" + tvValueLabel.visibility = if (showValue) View.VISIBLE else View.GONE + etValue.visibility = if (showValue) View.VISIBLE else View.GONE + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + tvValueLabel.visibility = View.GONE + etValue.visibility = View.GONE + } + } + + AlertDialog.Builder(this, R.style.AlertDialogTheme) + .setTitle(R.string.outcome_events) + .setView(dialogView) + .setPositiveButton(R.string.send) { _, _ -> + val name = etName.text.toString().trim() + if (name.isEmpty()) return@setPositiveButton + + when (spinnerType.selectedItemPosition) { + 1 -> viewModel.sendOutcome(name) // Normal Outcome + 2 -> viewModel.sendUniqueOutcome(name) // Unique Outcome + 3 -> { // Outcome with Value + val valueStr = etValue.text.toString().trim() + val value = valueStr.toFloatOrNull() ?: 0f + viewModel.sendOutcomeWithValue(name, value) + } + } + } + .setNegativeButton(R.string.cancel, null) + .show() + } + + override fun onResume() { + super.onResume() + viewModel.refreshPushSubscription() + } +} diff --git a/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/main/MainViewModel.kt b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/main/MainViewModel.kt new file mode 100644 index 0000000000..881adb21ea --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/main/MainViewModel.kt @@ -0,0 +1,429 @@ +package com.onesignal.sdktest.ui.main + +import android.app.Application +import androidx.lifecycle.AndroidViewModel +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.viewModelScope +import com.onesignal.OneSignal +import com.onesignal.notifications.IPermissionObserver +import com.onesignal.sdktest.data.model.NotificationType +import com.onesignal.sdktest.data.repository.OneSignalRepository +import com.onesignal.sdktest.util.SharedPreferenceUtil +import com.onesignal.user.subscriptions.IPushSubscriptionObserver +import com.onesignal.user.subscriptions.PushSubscriptionChangedState +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext + +class MainViewModel(application: Application) : AndroidViewModel(application), IPushSubscriptionObserver, IPermissionObserver { + + private val repository = OneSignalRepository() + + // App ID + private val _appId = MutableLiveData() + val appId: LiveData = _appId + + // Push Subscription + private val _pushSubscriptionId = MutableLiveData() + val pushSubscriptionId: LiveData = _pushSubscriptionId + + private val _pushEnabled = MutableLiveData() + val pushEnabled: LiveData = _pushEnabled + + // Notification Permission + private val _hasNotificationPermission = MutableLiveData() + val hasNotificationPermission: LiveData = _hasNotificationPermission + + // Privacy Consent + private val _privacyConsentGiven = MutableLiveData() + val privacyConsentGiven: LiveData = _privacyConsentGiven + + // Aliases + private val _aliases = MutableLiveData>>() + val aliases: LiveData>> = _aliases + + // Emails + private val _emails = MutableLiveData>() + val emails: LiveData> = _emails + + // SMS numbers + private val _smsNumbers = MutableLiveData>() + val smsNumbers: LiveData> = _smsNumbers + + // Tags + private val _tags = MutableLiveData>>() + val tags: LiveData>> = _tags + + // Triggers + private val _triggers = MutableLiveData>>() + val triggers: LiveData>> = _triggers + + // In-App Messages Paused + private val _inAppMessagesPaused = MutableLiveData() + val inAppMessagesPaused: LiveData = _inAppMessagesPaused + + // Location Shared + private val _locationShared = MutableLiveData() + val locationShared: LiveData = _locationShared + + // Toast messages + private val _toastMessage = MutableLiveData() + val toastMessage: LiveData = _toastMessage + + // Local lists to track added items + private val aliasesList = mutableListOf>() + private val emailsList = mutableListOf() + private val smsNumbersList = mutableListOf() + private val tagsList = mutableListOf>() + private val triggersList = mutableListOf>() + + init { + loadInitialState() + OneSignal.User.pushSubscription.addObserver(this) + OneSignal.Notifications.addPermissionObserver(this) + } + + // IPermissionObserver + override fun onNotificationPermissionChange(permission: Boolean) { + _hasNotificationPermission.postValue(permission) + } + + private fun loadInitialState() { + val context = getApplication() + + _appId.value = SharedPreferenceUtil.getOneSignalAppId(context) ?: "" + _privacyConsentGiven.value = SharedPreferenceUtil.getUserPrivacyConsent(context) + _inAppMessagesPaused.value = SharedPreferenceUtil.getCachedInAppMessagingPausedStatus(context) + _locationShared.value = SharedPreferenceUtil.getCachedLocationSharedStatus(context) + + refreshPushSubscription() + refreshAliases() + refreshEmails() + refreshSmsNumbers() + refreshTags() + refreshTriggers() + } + + fun refreshPushSubscription() { + _pushSubscriptionId.value = repository.getPushSubscriptionId() + _pushEnabled.value = repository.isPushEnabled() + _hasNotificationPermission.value = repository.hasNotificationPermission() + } + + private fun refreshAliases() { + _aliases.value = aliasesList.toList() + } + + private fun refreshEmails() { + _emails.value = emailsList.toList() + } + + private fun refreshSmsNumbers() { + _smsNumbers.value = smsNumbersList.toList() + } + + private fun refreshTags() { + _tags.value = tagsList.toList() + } + + private fun refreshTriggers() { + _triggers.value = triggersList.toList() + } + + // User operations + fun loginUser(externalUserId: String) { + viewModelScope.launch(Dispatchers.IO) { + repository.loginUser(externalUserId) + withContext(Dispatchers.Main) { + SharedPreferenceUtil.cacheUserExternalUserId(getApplication(), externalUserId) + showToast("Logged in as: $externalUserId") + refreshPushSubscription() + } + } + } + + fun logoutUser() { + viewModelScope.launch(Dispatchers.IO) { + repository.logoutUser() + withContext(Dispatchers.Main) { + SharedPreferenceUtil.cacheUserExternalUserId(getApplication(), "") + showToast("Logged out") + refreshPushSubscription() + // Clear local lists + aliasesList.clear() + emailsList.clear() + smsNumbersList.clear() + tagsList.clear() + triggersList.clear() + refreshAliases() + refreshEmails() + refreshSmsNumbers() + refreshTags() + refreshTriggers() + } + } + } + + // Privacy consent + fun setPrivacyConsent(granted: Boolean) { + repository.setPrivacyConsent(granted) + SharedPreferenceUtil.cacheUserPrivacyConsent(getApplication(), granted) + _privacyConsentGiven.value = granted + showToast(if (granted) "Consent granted" else "Consent revoked") + } + + fun revokeConsent() { + setPrivacyConsent(false) + } + + // Alias operations + fun addAlias(label: String, id: String) { + viewModelScope.launch(Dispatchers.IO) { + repository.addAlias(label, id) + withContext(Dispatchers.Main) { + aliasesList.add(Pair(label, id)) + refreshAliases() + showToast("Alias added: $label") + } + } + } + + fun removeAlias(label: String) { + viewModelScope.launch(Dispatchers.IO) { + repository.removeAlias(label) + withContext(Dispatchers.Main) { + aliasesList.removeAll { it.first == label } + refreshAliases() + showToast("Alias removed: $label") + } + } + } + + // Email operations + fun addEmail(email: String) { + viewModelScope.launch(Dispatchers.IO) { + repository.addEmail(email) + withContext(Dispatchers.Main) { + if (!emailsList.contains(email)) { + emailsList.add(email) + refreshEmails() + } + showToast("Email added: $email") + } + } + } + + fun removeEmail(email: String) { + viewModelScope.launch(Dispatchers.IO) { + repository.removeEmail(email) + withContext(Dispatchers.Main) { + emailsList.remove(email) + refreshEmails() + showToast("Email removed: $email") + } + } + } + + // SMS operations + fun addSms(smsNumber: String) { + viewModelScope.launch(Dispatchers.IO) { + repository.addSms(smsNumber) + withContext(Dispatchers.Main) { + if (!smsNumbersList.contains(smsNumber)) { + smsNumbersList.add(smsNumber) + refreshSmsNumbers() + } + showToast("SMS added: $smsNumber") + } + } + } + + fun removeSms(smsNumber: String) { + viewModelScope.launch(Dispatchers.IO) { + repository.removeSms(smsNumber) + withContext(Dispatchers.Main) { + smsNumbersList.remove(smsNumber) + refreshSmsNumbers() + showToast("SMS removed: $smsNumber") + } + } + } + + // Tag operations + fun addTag(key: String, value: String) { + viewModelScope.launch(Dispatchers.IO) { + repository.addTag(key, value) + withContext(Dispatchers.Main) { + tagsList.removeAll { it.first == key } + tagsList.add(Pair(key, value)) + refreshTags() + showToast("Tag added: $key") + } + } + } + + fun removeTag(key: String) { + viewModelScope.launch(Dispatchers.IO) { + repository.removeTag(key) + withContext(Dispatchers.Main) { + tagsList.removeAll { it.first == key } + refreshTags() + showToast("Tag removed: $key") + } + } + } + + // Trigger operations + fun addTrigger(key: String, value: String) { + viewModelScope.launch(Dispatchers.IO) { + repository.addTrigger(key, value) + withContext(Dispatchers.Main) { + triggersList.removeAll { it.first == key } + triggersList.add(Pair(key, value)) + refreshTriggers() + showToast("Trigger added: $key") + } + } + } + + fun removeTrigger(key: String) { + viewModelScope.launch(Dispatchers.IO) { + repository.removeTrigger(key) + withContext(Dispatchers.Main) { + triggersList.removeAll { it.first == key } + refreshTriggers() + showToast("Trigger removed: $key") + } + } + } + + // Outcome operations + fun sendOutcome(name: String) { + viewModelScope.launch(Dispatchers.IO) { + repository.sendOutcome(name) + withContext(Dispatchers.Main) { + showToast("Outcome sent: $name") + } + } + } + + fun sendUniqueOutcome(name: String) { + viewModelScope.launch(Dispatchers.IO) { + repository.sendUniqueOutcome(name) + withContext(Dispatchers.Main) { + showToast("Unique outcome sent: $name") + } + } + } + + fun sendOutcomeWithValue(name: String, value: Float) { + viewModelScope.launch(Dispatchers.IO) { + repository.sendOutcomeWithValue(name, value) + withContext(Dispatchers.Main) { + showToast("Outcome with value sent: $name = $value") + } + } + } + + // Push subscription + fun setPushEnabled(enabled: Boolean) { + viewModelScope.launch(Dispatchers.IO) { + repository.setPushEnabled(enabled) + withContext(Dispatchers.Main) { + _pushEnabled.value = enabled + showToast(if (enabled) "Push enabled" else "Push disabled") + } + } + } + + fun promptPush() { + viewModelScope.launch(Dispatchers.Main) { + // Request permission on main thread (required for showing system dialog) + OneSignal.Notifications.requestPermission(true) + refreshPushSubscription() + } + } + + // In-App Messages + fun setInAppMessagesPaused(paused: Boolean) { + repository.setInAppMessagesPaused(paused) + SharedPreferenceUtil.cacheInAppMessagingPausedStatus(getApplication(), paused) + _inAppMessagesPaused.value = paused + showToast(if (paused) "In-app messages paused" else "In-app messages resumed") + } + + // Location + fun setLocationShared(shared: Boolean) { + repository.setLocationShared(shared) + SharedPreferenceUtil.cacheLocationSharedStatus(getApplication(), shared) + _locationShared.value = shared + showToast(if (shared) "Location sharing enabled" else "Location sharing disabled") + } + + fun promptLocation() { + viewModelScope.launch(Dispatchers.IO) { + repository.promptLocation() + withContext(Dispatchers.Main) { + showToast("Location permission requested") + } + } + } + + // Send notification + fun sendNotification(type: NotificationType) { + viewModelScope.launch(Dispatchers.IO) { + val success = repository.sendNotification(type) + withContext(Dispatchers.Main) { + if (success) { + showToast("Notification sent: ${type.title}") + } else { + showToast("Failed to send notification") + } + } + } + } + + fun sendCustomNotification(title: String, body: String) { + viewModelScope.launch(Dispatchers.IO) { + val success = repository.sendCustomNotification(title, body) + withContext(Dispatchers.Main) { + if (success) { + showToast("Notification sent: $title") + } else { + showToast("Failed to send notification") + } + } + } + } + + // Send In-App Message (via trigger) + // Note: In-app messages must be configured in the OneSignal dashboard. + // This only adds a trigger - the message shows only if a matching campaign exists. + fun sendInAppMessage(triggerKey: String, triggerValue: String) { + viewModelScope.launch(Dispatchers.IO) { + repository.addTrigger(triggerKey, triggerValue) + withContext(Dispatchers.Main) { + showToast("Trigger added: $triggerKey=$triggerValue (IAM must be configured in dashboard)") + } + } + } + + private fun showToast(message: String) { + _toastMessage.value = message + } + + fun clearToast() { + _toastMessage.value = null + } + + override fun onPushSubscriptionChange(state: PushSubscriptionChangedState) { + _pushSubscriptionId.postValue(state.current.id) + _pushEnabled.postValue(state.current.optedIn) + } + + override fun onCleared() { + super.onCleared() + OneSignal.User.pushSubscription.removeObserver(this) + } +} diff --git a/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/secondary/SecondaryActivity.kt b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/secondary/SecondaryActivity.kt new file mode 100644 index 0000000000..c1a48a6f03 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/secondary/SecondaryActivity.kt @@ -0,0 +1,33 @@ +package com.onesignal.sdktest.ui.secondary + +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import com.onesignal.sdktest.R +import com.onesignal.sdktest.databinding.ActivitySecondaryBinding + +class SecondaryActivity : AppCompatActivity() { + + private lateinit var binding: ActivitySecondaryBinding + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = ActivitySecondaryBinding.inflate(layoutInflater) + setContentView(binding.root) + + setupToolbar() + } + + private fun setupToolbar() { + setSupportActionBar(binding.toolbar) + supportActionBar?.apply { + setDisplayHomeAsUpEnabled(true) + setDisplayShowHomeEnabled(true) + title = getString(R.string.secondary_activity) + } + } + + override fun onSupportNavigateUp(): Boolean { + onBackPressed() + return true + } +} diff --git a/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/splash/SplashActivity.kt b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/splash/SplashActivity.kt new file mode 100644 index 0000000000..e55a0a3fd8 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/ui/splash/SplashActivity.kt @@ -0,0 +1,37 @@ +package com.onesignal.sdktest.ui.splash + +import android.annotation.SuppressLint +import android.content.Intent +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import androidx.lifecycle.lifecycleScope +import com.onesignal.sdktest.databinding.ActivitySplashBinding +import com.onesignal.sdktest.ui.main.MainActivity +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch + +@SuppressLint("CustomSplashScreen") +class SplashActivity : AppCompatActivity() { + + private lateinit var binding: ActivitySplashBinding + + companion object { + private const val SPLASH_DELAY_MS = 1500L + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = ActivitySplashBinding.inflate(layoutInflater) + setContentView(binding.root) + + lifecycleScope.launch { + delay(SPLASH_DELAY_MS) + navigateToMain() + } + } + + private fun navigateToMain() { + startActivity(Intent(this, MainActivity::class.java)) + finish() + } +} diff --git a/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/util/SharedPreferenceUtil.kt b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/util/SharedPreferenceUtil.kt new file mode 100644 index 0000000000..fb5bf01b01 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/java/com/onesignal/sdktest/util/SharedPreferenceUtil.kt @@ -0,0 +1,63 @@ +package com.onesignal.sdktest.util + +import android.content.Context +import android.content.SharedPreferences + +object SharedPreferenceUtil { + + private const val APP_SHARED_PREFS = "com.onesignal.sdktest" + private const val OS_APP_ID_SHARED_PREF = "OS_APP_ID_SHARED_PREF" + private const val PRIVACY_CONSENT_SHARED_PREF = "PRIVACY_CONSENT_SHARED_PREF" + private const val USER_EXTERNAL_USER_ID_SHARED_PREF = "USER_EXTERNAL_USER_ID_SHARED_PREF" + private const val LOCATION_SHARED_PREF = "LOCATION_SHARED_PREF" + private const val IN_APP_MESSAGING_PAUSED_PREF = "IN_APP_MESSAGING_PAUSED_PREF" + + private fun getSharedPreference(context: Context): SharedPreferences { + return context.getSharedPreferences(APP_SHARED_PREFS, Context.MODE_PRIVATE) + } + + fun exists(context: Context, key: String): Boolean { + return getSharedPreference(context).contains(key) + } + + fun getOneSignalAppId(context: Context): String? { + val defaultAppId = "77e32082-ea27-42e3-a898-c72e141824ef" + return getSharedPreference(context).getString(OS_APP_ID_SHARED_PREF, defaultAppId) + } + + fun getUserPrivacyConsent(context: Context): Boolean { + return getSharedPreference(context).getBoolean(PRIVACY_CONSENT_SHARED_PREF, false) + } + + fun getCachedUserExternalUserId(context: Context): String { + return getSharedPreference(context).getString(USER_EXTERNAL_USER_ID_SHARED_PREF, "") ?: "" + } + + fun getCachedLocationSharedStatus(context: Context): Boolean { + return getSharedPreference(context).getBoolean(LOCATION_SHARED_PREF, false) + } + + fun getCachedInAppMessagingPausedStatus(context: Context): Boolean { + return getSharedPreference(context).getBoolean(IN_APP_MESSAGING_PAUSED_PREF, true) + } + + fun cacheOneSignalAppId(context: Context, appId: String) { + getSharedPreference(context).edit().putString(OS_APP_ID_SHARED_PREF, appId).apply() + } + + fun cacheUserPrivacyConsent(context: Context, privacyConsent: Boolean) { + getSharedPreference(context).edit().putBoolean(PRIVACY_CONSENT_SHARED_PREF, privacyConsent).apply() + } + + fun cacheUserExternalUserId(context: Context, userId: String) { + getSharedPreference(context).edit().putString(USER_EXTERNAL_USER_ID_SHARED_PREF, userId).apply() + } + + fun cacheLocationSharedStatus(context: Context, shared: Boolean) { + getSharedPreference(context).edit().putBoolean(LOCATION_SHARED_PREF, shared).apply() + } + + fun cacheInAppMessagingPausedStatus(context: Context, paused: Boolean) { + getSharedPreference(context).edit().putBoolean(IN_APP_MESSAGING_PAUSED_PREF, paused).apply() + } +} diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_alert_octagon_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_alert_octagon_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..d4673106b213b703d28616a951c2fb312cea34e4 GIT binary patch literal 763 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Ea{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3MyH2$4jE?g!S;H9~A zO306>i=PzivsY=isGA`3c#At% z!(~2AfpZ5vGUa6$_!*Xk)=xcL%~~)w=$D?E(@N#^(-nDrOVTW+HkP?rojU4x=5kiB zFvIzs9+3_VaUaYJ>Si-kocft?&9&-wrh$v*(%#P*rth+Lx?kAu>)^&@Bs5`SLk~-e zih?quBPTnU^aLcZ~nLX?B@diD$WN+OTX+idnVby z+Hg6^TK>trFL$l{?0@nzd|#_Ro%@RDoWsAT<>s>p4$~9&CKJd(G);=UEeFCht+G zlom>7)x5FROLmMeVf3_;a0$35x_WR!j$E^K)sew=Yq{hT(B!U8FUqlZ^^ zh={v`g4^rpJNC7=Pl literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_alert_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_alert_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..91e6b537ebcdbda130c1865a64640bc3f6f94324 GIT binary patch literal 1178 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Ea{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3apG7>2+*sQczhjTg>!#k?c*ijENqr6F8!_2y7|)$^XLs!J)Yx-2ol~C*^g!n$}#s z;D7AW@vE-6?`Brl?YaMZ-sT);YdI7^HQ_ob#>aq6?Lok1yuE)Xt?)Y z;9Q6B((fHy>4AS$ogMbC()Z7Pm-%mYJbO_MV=R;1%tv=VuF!s!*7mJu$NF{C?rEnx zh#R*VKMH!ex2Scq7*KbCt@JP7$hqu!41vcVRzKJ}&U#NJ3svwYzHkmdFAxJ>oaoC`0_9L%$_ZTl=3 z{JbH*;o5v>Bl(Sj*BhHPm$JuxJ6(9>-fJO0h2M?kyYDRtZocCBz)aRRF`${DjyWvY zOFB3I!dA!Ev4=UAZJw8VSD}=32j`v$t5(iG+;6-!@8*4erpNoM>0dju0e{WSZ)evs z1zm42_s+l9V4kxwU0UAov1yjb+Ale?*<7=)Xhgld>Bd`BC1u)mtZG|kvy(~IDg}iF zK=wC*SBwv|Cj7lF+9)q_{G))yl%QQ<&mXDrS_upKF+OY9T>3RA%qtRkh8p*$ZfX*2|l@(pOv;pW_hz`eq5+SJ%aEhJok9%sgy) zVibRfE7(4a@Ot@ahxjVFzPYBadJ5-q*+!Qh`L!x=@eTjhd3P@@h>u3s4 zg9gZk;<9wBq{QM>-O{2=hP2F_R4aXb{gT`Q{oKU#%;ap{>~QlSH)qdmy`ue$Ks^ke Lu6{1-oD!M|k1|%Oc%$NbBSkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?skwBzpw;GB8xBF)%c=FfjZA3N^f7U???UV0e|lz+eS5K)hhiu0R{01Y44~ zy9wy$!fk$L9koEv$x0Bg+K;vyZT^vIq4!^x_=y%vaP_f!d)b)@%gg~EL?&8qj$)zvpG zRr{~$z`lcZ+5zJU40C5JXxZRvn8SKL59u8&VN=psV;J5B%&;@q z-jI{V_U8Aol15inpK0z3UJIAJZ#Zf6wN;YwzMMn+fy~JL(^_9fP5QWDTUgX;gVx@L zeM`(etK*L8)_O@vB;Q-@_u`DQTjtupi`=OTg!?5{&q`g;%&?%5TjNOlwhhb9hKFTK z1u$nhY;<&ItO{Grd8fjn=t=7K*`5h!@-z~HnAJ`nN#mDgzhPdva&!1r3t8VrZO_@| zKlzi-#7?=&;2-_%s1lbND{tdh{WDS$yRMY%^JQqCbnfzT_T)3!TR2-!@N>@5a6fdn zvWt@QQvOL7bJa}(1ule2Y;Ork1+ XTq6wjg#Pyf>S6G7^>bP0l+XkKV+Pw0 literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_brightness_percent_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_brightness_percent_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..2203ae978f20a5f8b049b48af38f74596d0dd743 GIT binary patch literal 772 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBSkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?skwBzpw;GB8xBF)%c=FfjZA3N^f7U???UV0e|lz+eS5K)hhiu0R{01Y44~ zy9wy$!fk$L9koEv$x0Bg+K;w^kx;TbJ9DX}(w->XcNZWs27VhS*^@-YI zN-i71Sq>gIh!b$U;=+=zk@ZkGB3o6g%WTr2=@--@sx|jG*l};(act(?v+s^|JZaBO zJNNJN*)ubZmH)akem>x|+OlRw=Dsa|rYF>_-NLo3Ay#@nuW@Vi#szyOIA(s@Q)P3$ zdPV*jlgbNiSJ}LzIXuND^{Ir)YBm)) z*CDy_AWPDw1F0bkdRUhwWbEs|@J%oC(&s&s9d0jJ!gzT9GQ%E&Wv>|)FqK?As&^}F z*|quX^PIcVFR~iHUa{}#Ewisz6XJvq{Ls3Ykf!t}XA)-`M@80whZtvZT79DW&uJA?oC)Paj^RS!;dpw z`7|VXxb}xNUY@pe(R-D0Kenw>4LAMX&EUHtwc%b?-?A6X>3eO&{C}xG2F9#viEBhj zN@7W>RdP`(kYX@0FtpS)Fw-?O4KXmVGO@HWFxLh$3=C|e()v*}ZtQajI@|k1|%Oc%$NbBSkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?skwBzpw;GB8xBF)%c=FfjZA3N^f7U???UV0e|lz+eS5K)hhiu0R{01Y44~ zy9wy$!fk$L9koEv$x0Bg+K;yeTT^vIq4!@mdtIrZB(sqAyj?%=O7i*k0 zbJ;g6y~Hu~YPO13pr+|2*1*+MxIW5v+zoisrC}n~>asjQK+$AVf11kVxi@Cc-D#Zj zDEHapb330~zCXFQd`bP+MGabxvj5n;*B!oL6!6R2p>~qlCN?gP8OqXk86Pj?n;98< zDU@yNbd^x2Mw_>33|A(F^nX!JIN*Cq*ZKvQe1xaqGg*n(VjBE+ma}Y;U48OE6_-K3 zgQDIAh7S)UGIYgy__Ho6p3$A)&lSQjPnI!M=-`h9WikimST}xbNE1G^rNMK$!*R~W zZHu05;xOQzh-;jEKW_jwyo=IEp-jdbPY{I3=FJHjjRkzw1Er*1JgSZswf(A^HVa@DsgLYX?!pfs6hi{LvdNU zRZ?Pcs%~jfCPP|gPO6o@zJ5t=fqrgcdS-IAZiH!-M~+EVDEF4kYd}2=p00i_>zopr E0QQ3ku>b%7 literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_checkbox_marked_circle_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_checkbox_marked_circle_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..47c5c85a99325677f6f7f45d03712629b4e53d3f GIT binary patch literal 1525 zcmZ{kdpOg39LIldBO+p5Tw2Lo=CYYf*}6@%jf}B~qZ(st2Voo49LGqB<5CMVM2~}9 zLY}l5tyYJ|8kI|rYt#{Ta;v99E;;8{|D8Y1`+2^f*Yo*&p7-+{X@BjI(mjkN&) z&?OQ){6P}FKP?DYPt4uJgHUJSd~g8JoTsxMrUCXUY=68v(AZ1)*M;Q9-O;|vjq`E)NFr)ngtVjH6P zqk|6AE~`-;YINNpx}Hid5oI<~{1!DtKA~T&`RWamU42a_A7IrX@VP?HZZRy@~BA+1}jdvsLc5cP#QMm&5TPe9i7zv+-wd(|ESpAHGgL?~MGl+-0UqULF3o!t3XvAz?N;czea2 z`v@3S>txPBPj@;Ay+J3L)Jy#WO)fgk>>--SVKZ{!4d+4^Hm|xevoz6_FueVMHkTd0 zF+PCsA*C*nuE=+)7t%&f;-R+(xP|fKEiLemMr{GT&nJ{Y2gN$*U%|1fSL;EKR}IZM zEhsDIsG=v(j*-)UGt&;&riv+E;FXfPO9Rgl)^2&>G(XVCqB~g6G5gu>v;uzpW#mgy ze;Z_fz|*t?nxO)x=M_3E|4_Mq+_;V)9l+#bmS8xk;3PH4_V}!nR*Y~M;+7);*QgEj4rClf7 z@7q+sVA3CUU7cL#L=JTEYLjX0L~eypf>hogG$@?7CNy&}V!z%MSK9*Xip*IuEGM+S zR0L*Gw0$g|9PiCvwF+7_5qo^@sDNH_o$H=O5|`ywE6bQOUahtsxs>-mM|F0qyV;q4N+Z{ApwKgdjOEGrdnFWi`Bs$1tW5H0Fg|?Uxr0}U zo#Zz(3SP_`^Eu*5dt&pG54#X4f;DDV`Q$upa&p& Lk~|vSscHWLpsku2 literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_chevron_down_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_chevron_down_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..2e435ce0c1dcc661b20eef680c5aae5858110964 GIT binary patch literal 588 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Ea{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3oabiQ=YWs*qLo<-=_UOQ>br0N$gbh3$@-ImXp53?RK8(F)41oo!?52 zpUaO9}F(VEb|_;iRHLkh62S@ zOI#yLQW8s2t&)pUffR$0fuW_Yp`oskS%{ILm7$T9iKVuIft7&)XExh86b-rgDVb@N zxHVLm?JELm&;Z#`T$XN?lvtdqTUwOKkd~Q~YNfBQUy@s(pPQJTnVhX_9vqlk9N^=0 S*y6YZ$fcgHelF{r5}E+nOwI}b literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_chevron_up_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_chevron_up_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..96e1891eae3223341f802cf95b41149607202b57 GIT binary patch literal 578 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Ea{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3;=;WNKgV!uA0vu~{=$WSn7SU)Mm`___skJU{Jqg+0f zJ`y@`jL z%4;nrwjI;d3QCw$dH(NDw<>c#^-GGYJ?3{kwq1WpEy!Wc=Lr^(u3e()-5whsFX=M* zm9RMa{LaNQb>|jOFK@SazAkN>$>zJ=yO$_uetnSrPBm08%~vH?{!H}pcLpk#;x3sy zT9dcre&6Lz5z{{N)xBTj3-=s7Zh4Lg<^zU+1=hb+x^g1R)|djtR7+eVN>UO_QmvAU zQh^kMk%6J5uA!l>ky(h5p_QSLm8q$=fq|8Q0aId*3W|o@{FKbJO57TXZLR?0hd~2m zLvdNURZ?Pcs%~jfCPP|gPO6o@zJ5t=fqrgcdS-IAZnj0FsbQsOU~onHYLH7kUHx3v IIVCg!0FRo!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3}28WR?tSIc_0(|WhaYbSBNuJaG%TUbP{i*;6K@7fSiuUFKpn3DEx z@60=%hkhyu%-Fg7dCm88CsSWEBucbF&_xqHGsjDr59Btm#xS0H=2zv#*QkF$Z^Pp` zzhk2(EHV2awqx4vRgxE3&E^!_-e+0A;L*vSCqA8$yu`ZB`gxxk?>ZK}J?B52W{hCo zR@9EeEhFXMswK~Np7ppjxkNEE_9RPh%y!L}(QJmcp62PH;V&JI%I=cb`K@P( z`=oy+3eO@g8GEkv@LN48&Q#HZYt6@v5}WfL$@ZE)0dhVgwlfJEH%Xhl)Le>wc!{lM5 zkjm26g0iYvhd!&V@M~P`yXRy4$(W`k2aT#0{SeCZt_rTXHF4)!rL;}o*UV{Zo09cN z_0y`WE#i(BCS(YIe_|Xe9H-(KbW$$($;2g``m+`&%CgSdA$2GJ)6;-TcSFPM1J=EJ zJ6BiuGubh|E^S_}uq8A8@5b4E?+-LT`W?K$)^*J*r8%=-B+X+fSw(dUC*AKopRk=;8vgw>z?!t`FqZk ztSlB;Xu-NUkR>8)7Z2ZNnV)J?Ecr?&9gJ+deIQiq|Ni&C52Qa(ZGIf!9(>H0=db|; z34P{YB(eOEjU3ZMV3JlXag8WRNi0dVN-jzTQVd20hL*YpX1WHJA%+%K#^zQ=hS~-O zRt5%Vu105|Xvob^$xN%ntzmD+<10W78Xy~r%hIiq5{pxHON%lY(lT>Wt@QQvOL7bJ ja}(1ule2X*A`A`7vkP-p`n3B4^)Pt4`njxgN@xNA3`Ct< literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_gesture_tap_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_gesture_tap_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..358bbf760083fccc9385abff9e5f9a20a65eb513 GIT binary patch literal 798 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBSkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?skwBzpw;GB8xBF)%c=FfjZA3N^f7U???UV0e|lz+eS5K)hhiu0R{01Y44~ zy9wy$!fk$L9koEv$x0Bg+K;!Rwx;TbJ9DX}(W44H+Nc;Z4GmV*xmI(Sd z_;GI(W^&_hUaO>$v9z^g>5XNbaf|oN@v3y&bp1 zO)pHnq5ZX|+&g!bx$(V!9lK*pFXX7KO5JnyLtV{SNE~6 z+wX;03s@KM#=H?MXZ*oxqt7(OyYT#$D=S~D*Zvh;c#22*v@{)bc z9iSo`oW6_U?37l`Kf13O*7{EgTDjBe)aI4d2W^AjuUdXZcec5{i}~Kr^(z-QGhMmZ zRTVu~LS#W-*wyM+2OSw-tyn2{Bj?=yTQ%$cetvVK$+U+l-HUPM^G4AJbE`b>#tCJm zKUBZ!`So|(ru`xQ$14O)xxzJ;Zef|jJWKMozz2_5jmVXM92mc{Sa9j&N?3jKZ(w@G zYQU=##yC-0W5Kk>#|IuaGH|UBD-hcetn~c4SJwo@coTO|**UjoCOa_BRZCnWN>UO_QmvAUQh^kMk%6J5u7R1Zp=pSL zft9I|m9eQdkYQjTs}fR#q9HdwB{QuOw}za`H|KyFG(a{Km!(@JB^IaZmKJ3)q-Ex$ rTIuWSm*f`c=O(6SCTHuKltlRWmHQS6G7^>bP0l+XkKT9-eE literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_human_greeting_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_human_greeting_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..a14b71f59f933da0866c23520aca5349d609452c GIT binary patch literal 751 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBSkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?skwBzpw;GB8xBF)%c=FfjZA3N^f7U???UV0e|lz+eS5K)hhiu0R{01Y44~ zy9wy$!fk$L9koEv$x0Bg+K;t)fx;TbJ9DX}>ueWlbh{sK$ zSwEgkKfCk#{7*^-j42KLU%!~HV@Ytmv`Q;|S~t6=`J{C!eK)XR)kH zuDPezb-?JtWsa3G%q{nJuug0E_R7w#f8oRu&s!5pBL1G+JN<%m@T6z^bc0Wx|9H`zslfc_x}MI!uWMMxttoYeY#(Vo9o1a#1RfVlXl=wA3{)(={{= zF)*+)HL@}_)dn&Q3~qbJenruco1c=IR*74~DzT@YKn)ro8;Z-)t&$RpQ*}#=G8xh` tb5gDJ_4P|~3-ogn(=(H^bshZ;&BMb(G8iWEJp<}t@O1TaS?83{1OQ1SALsx8 literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_image_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_image_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..8cb259f375d7a3aa6f934ad80be6f03e299b299c GIT binary patch literal 649 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBSkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?skwBzpw;GB8xBF)%c=FfjZA3N^f7U???UV0e|lz+eS5K)hhiu0R{01Y44~ zy9wy$!fk$L9koEv$x0Bg+K;ykUT^vIq4!@nQ=+EpZ;C8=!g2E5QQVFL+ z{0&t?E0hxs1TcDp*h=a62KTe`i)sjYd}wL0I?`!&AR*(@mg>E4zrOQ2WLIv!+c>{G z?2VIxfwULbj7ZT4MzNxGKUrMcr5AryZoiy$PIuOkS^XD+ zI-QcYF4BqYQsH1-s36kv%s0@<{lMpV!CezdIIlG9;8`ek!MCHdA(+9_-(hdY!s-VM zH<+rFH|lLrUTObBaV4iow@?-PHr21HcNyEAH|8gVUs|0UH&^rAtX4ubJlkVxf!T{wTBK?T?l$|Dv{mPv`j_ZNm!_ zOQM6snf~|4PtrPHczf%V24L{2mbgZgq$HN4S|t~y0x1R~14Bz)12bJi(+~p#D^p`D zBNJ^P!@yvMwMiO^hTQy=%(P0}8eXRL+yZLQ0NGGnmTr}lSe&X`T9nC!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3NFHSo*v+{mAUkMoSXkYur?G?qC!)(Sp z`_umRhOGy>Y~F|!$o^pd!McN|hW*Q#H`BInQCrgESrr`Q9~6J}rMH#(OI}auJ+Gx& zW_WrYS3P@mf>4s*B|}f)d!=E5n`1BiWLwhm!gJQAb=IzDW-MXW?fR+ju4?<}t)fc$ z_9c<-mfvSg+;aK$@xMvaJb&G|eafarBXi~UIa4S3Rn6`wh`Kb($~0^r-=r;a7K}D8 zf9Z*Sw*4??=HIx~B2~vpVa&@<>V0c#ly59Fo~>zJxa19s=jn#SJpD2a>J81Ic9Xrh znZ7X!-xCc_;Hp^vW=YWU8B1ahJij;f+7ngd-zKIOkrS4*H_mUkdQbFPide;+Gj-ma zdc|FP&wn`07{R<}w$z*w7SCIJHJ3w3RZU% zKlA40q6LS7eJ-U;E|RJAx>OMua4P*m^u4JjCvLkkUIa>Le9+#oj5&s(Qx6_XF zEm*5lXZggGZU4LErfn7J_mmD!?VPc|_g>_7j}6!S0*)mwY`hU(k!?M_@4Dl630_{H zj!<3I?E)O@f{w7P{c>)XYZJTkRMqSMMGYOz_fF29D7~<8qSjO~q zotX_C!}n~?n|K;3H;6_M_V#n9x|H9g$?KDg6yC<^RLWO#+>90p(9pQQ|6OJH zC5H4fZ(;%iUfum8_dbiQr=dKEX)?>qo0<a{d4)R zGG5K?s=nS;zBh&Ydmn$iEOPp!)%WcT{gX`fdztt@<-4Es-8B1Dc8a}kVe6Z!XEiyE zdl!Sj>j6qq9HdwB{QuOw+1GuXH$S0G(a{Km!(@JB^IaZmKJ3)q-Ex$TIuWS nm*f`c=O(6SCTHt9n}!*tRi&l|e6BqL)WhKE>gTe~DWM4fcMwT# literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_map_marker_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_map_marker_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..a59232fbbcdf1d7360bdbea07ddf78ef64af4e5f GIT binary patch literal 793 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBSkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?skwBzpw;GB8xBF)%c=FfjZA3N^f7U???UV0e|lz+eS5K)hhiu0R{01Y44~ zy9wy$!fk$L9koEv$x0Bg+K;v(Dx;TbJ9DaL!uUE38#IcX*EUs5Lq@)Y~ z9tsoK!@+5`&g{@5-W?U{TxNA5RlIc~i{>V+ZHm~HweW#ho9eoxi6`zWDa$y`v7BS6 zuJprU*5`9)exLR{3V-hEVMCQFIOtZ62ynIV_>qjya%QOpd#)MxliGuZY5%OAFX zkIvf~@SCKzzGT>z?2xsYy<}N$CS#v)!o6Y^ljWRI{0H`=tLmPS_%Msp9Oor1;#ae6S%M>`J??;vE{$A_Y|Gc-cj}ITSuLH z?nQ~uG1V9I+PwQJnH3l8SzPvbMXY6(t>OZA_uLzS(uG&NyrdR9_@NiWywj@qR-^av zJ)Hsp<^hE|bu2ut$M|n&%P(arQDwWS#y)TFQl>df>2fv)>I9B8J@e4tU-Ng*bH!EF zXZJ3dlfOp&zv|a(x3w01oEQ3rDf{5|sHm@rN$e+>mp1gTVtMlTOIPVE<6|PKy6k(F zr|x#EVzg@9%~Jk+n$_>ns1-9=7R;ZSprmpCr^c+kK89jf*hP{Px*X!4DRj^3W1N-C zq1JS(B*9FoYvY2jRp&R{n!}vS%N}_};Df-yKg@22!ugy!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3jlJf90*EaOeLm7kOS{jtZTnM-D0+Ms_S^zB*ql31xPe~;Ly$X>fwqjI{# z;+51FRwP2;<1V@Et2ew8YCP@|}jue3t3gimhtj=^;@Mf!tLclf+ z-XGE*8dh@zU(kq8%k*admX#lIFzC|eCG1aM2fPjQ_nf_R?cZyQmCwCrnUyxjl-bw( zoK)j7+2brqeIYz9b3`9W95L)j7C7#qdH3o)Mg|6+kG!w8$1S=N_j(gB@KsA(BT7;d zOH!?pi&B9UgOP!urLKXwu7PEUp}Ca-5SeKk7+4t?D5(d2N70a*pOTqYiCaT()k|-n z1`Uu6#bxPMNr}a&x}`;#3~8A;saE>>`X#vq`nieenaSC@u1R_6PNl`pM|p$S1NAU? My85}Sb4q9e0IrehFaQ7m literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_newspaper_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_newspaper_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..9d659ee7cb3445dd5bb60bd0f092e16c379f5e1e GIT binary patch literal 576 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBSkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?skwBzpw;GB8xBF)%c=FfjZA3N^f7U???UV0e|lz+eS5K)hhiu0R{01Y44~ zy9wy$!fk$L9koEv$x0Bg+K;s!bT^vIq4!@mh+jq!7z|CIyh~x@}gOV$n zrnOD`eBn}&+&YHi4%${)d=8(tZ48?xYOVH!z3lH2jdK>0_Z%_qoO05H!{Bp&<4W<_ zZ0Az$MtDQe)m7D2q*%+Ps@6V*CdfBq|C*>x&ed7$;y|m!C>8>||a~RK+ zoYz#_!tze`)SbqquM@nM9GkRlk{Ivw_VccnE=m+<|FoM~e~iCwmv7bY*qflhRxNRj zC`m~yNwrEYN(E93Mh1qKx&~&thNd9~hE@hfRz}9!1_o9J26FR71W`2P=BH$)RpQo= ze`w8Gpau<)4aH^YR!ND)sk)^_nG9)}IjL6q`uZig1^T&(>6yvdx-Q|N6**~{p{cD) R!hw1iJYD@<);T3K0RV^E&2Rt! literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_star_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-hdpi/ic_star_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..0ab3e54948bc6d713e2f0548943e323b995e1898 GIT binary patch literal 764 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBSkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?skwBzpw;GB8xBF)%c=FfjZA3N^f7U???UV0e|lz+eS5K)hhiu0R{01Y44~ zy9wy$!fk$L9koEv$x0Bg+K;!p%x;TbJ9DX~^TiZ2Ii*9+u1oIt zZ#6fxdhOQw>bX~MxvzR*&n3aw_W0Qe_FIhGfYiYq2c$pnZE-z2eZzq*8Y}&R)-L(E zV|6g^oX=~y7pVCyFtIn4RlndUxZv-O1U8Me2RBqMHu<{g_^nIv;mc(!KCZaHeL+rb zd+>(9^-K6X*G`K0>?e8q?B>_C&+4a^XurI*r}$g%#(b4ntG?o}S5GD%5UyXIp73h> z`HS%e(WjPbC!EOdFJYQ#bZ8FKT}Nqi&NtH-)A%!ZE`Qj$I`Oj788NeUVhOA#+!#(W zWlwbETJY@0ucI8R$`h`=x9f{{S5SNz7vy|kvyDeqp^W0)1>yJ`C zCKEv>wSpXh1s^#a_9Ztn^j5A(Jsa#5xaxOsjqkglQw)m_C=|SScs*4(W7!Ed{xrML zr$1HCRP4}wG=CfCmOz6i+Zx08|EDF${y5Pcy`6K4p{GB?eO@jeMt8MuH^h8|DpJjtvfMj=(vpQ~VP$jU`sHeWb@Kh&O-#>B&ely#@%K-3&W((H^xOidhr!d;&t;uc GLK6VC`YDtE literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_alert_octagon_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_alert_octagon_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..e7e89204883bd2765b033470c0f9f49803d7a8b1 GIT binary patch literal 621 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIA^$sR$z3=CCj3=9n|3=F@3LJcn%7)pVryh>nTu$sZZAYL$MSD+10f-TA0 z-33Sk!B6Mi^+1ZVz$3C4NPB>>+sSM@pz(U1E{-7?_ukIj%X`Q`z-_-X4})xw%8CVP zOe$`P#%77ES`$2kxvFM7$dFmc;?ePTv*pXUscO&P-|TxNf53ppS@(=h@-yMz#fi_H zvVYVF2_9ZPU4Uc0pOe9!JuXcjii9{1AD@0gz;2$4#}EFkm%LiO)u=SaalR7R!4UDQ zPfpM@tA3J{gQv^tg-nXP$HXdDhZ}Qg{^FnEkmsXdt~NpXD^v2yLksQK#Ru9my<$DG zOrU}5z&+dd3_2=O6QjQ_tDSJ}o_(X(nE@*Xx=^ns<#&a$VtKd}=SgsLU35hW>!C8<`) zMX5lF!N|bSQrEyz*T_7?z|hLT!phV@+rYrez+kCqeJP5D-29Zxv`X9>u4EiP3Dlqg zvZ1&v-6|=uI90c_D3c*AGbhzbUthl@w?IEPF+DRmTesLEFUhI2EV=*llR%&z22WQ% Jmvv4FO#uIh*JA(x literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_alert_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_alert_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..5e2414150342370b198cc2c39a2bf33b55693461 GIT binary patch literal 902 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIA^$sR$z3=CCj3=9n|3=F@3LJcn%7)pVryh>nTu$sZZAYL$MSD+10f-TA0 z-33Sk!B6Mi^+1ZVz$3C4NPB>>+sSM@1_mZ~PZ!6KjC*fq?9LVmlyE=a>k@e+LsW;! z>|lnX1P2G#t=VzG-M2Wzx*|B0A|hOBN`CRbuun*we#l8FLs{*X2AAEc2g33vH%>4t z+`PLuy{!BlSMjOc-_OmtUsGQG-aH^U__Fzx%&!Gm{hK}=e%18L>F$(U%Y7O)uPaj9 z>L2(sur$-Rq5svlD{-z&cgk$H2UQGS!Qgu<-aoF*2c+ydVb3I zzP;(UZ{fZkjt^0H@2vjK_toHVWrF*WJ%$fr*2^b^uSkCNykq(NkDG7-Ya%?{q`h`e7h`YB>L&D)}UFfIFhSIxT7~Youewj7<#(IX<+vgXhFTCtv z|NWIk!KxEYFE;PA;<91i<`!$wa$(E88Kno*6Vf>z#-4eiB)UUJ`@U*)gZIYCi?tT` zF@1Ijt^cikV4uLD#d|t8itY$oSo5s(ZpSxc^9CzsnKc1+$@T>*`9a59vY0E}VwPX! zzsIoKi6j1&?}^n8IkR{CJ82SV&Y}IH zJ3h*vVCG>q5B9zS1b-fyyHzbNdYo;_4NP0AC9V-ADTyViR>?)FK#IZ0z|d0Hz*5)9 zJjB4z%D}?P$WYtBz{!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3TTbHdedUr9P>G zVNbJMQ`4cxFGUY9uV7V8R{Zya<(}3-m*w})>^b``&9#m#fm5bIgyR>-5*rUY&2Nn} zv zrI}`S^zqHeCLzAN*ae zt$knJmgNosE0U)tWsFr+J%o2)$}cpvBy)e_f;l9a@fRIB8oR3OD*WMF8iYhb2p zXc}T*U}a)qWoo7kWEdFO@N*=hXvob^$xN%nt-&{F!(E^T4Ui4RW$9K)iN&e9rA3(x vX_+~xR{Hw-CAkIqxrynS$=SM926@3jrKZ7?+M@3P^)Pt4`njxgN@xNAC26K3 literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_brightness_percent_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_brightness_percent_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..816b2a842ebf9ef2b02729bd4a8fffcc2b471e27 GIT binary patch literal 646 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3=yt4 literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_cart_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_cart_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..ee59c0cb96e64c65d65da8ec679dfec15b70110d GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3OIu6S&^>2e`nZ}a=}_x~!@E6y`r zf9nC$mQ`Ml67}^@mc-eJslK^+&THdlAA>VS643{?H>62kX>exz!TaLr-#4C&&09TZ zzdCS}p^kM|rjGjCfKX+@NJ*3Qm8;w*v+zEclKh$D27_;Ns!Ky8&kg3ji%;jU^}luB zw&uz?rpAtvp2Su8d;C8xR}z}`&m>;hfWb+DA?EhZE!~cby7rxo`6+s4=7HYrpBwkR zy_5f%Z}W54%& iO-#>B&eo0eGA)YAk1YJZNTma)hr!d;&t;ucLK6UJ%f49v literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_checkbox_marked_circle_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_checkbox_marked_circle_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..9fec6c23228dbbbab5ecbe0c04c05c5de175d61f GIT binary patch literal 994 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIA^$sR$z3=CCj3=9n|3=F@3LJcn%7)pVryh>nTu$sZZAYL$MSD+10f-TA0 z-33Sk!B6Mi^+1ZVz$3C4NPB>>+sSM@1_q|Zo-U3d8Ta1KwDlKpWN5o@X~UJI(k1fj zLRi(5j83tCOwAYL9Tsifcwu)7%R2U^Bl8m$wK^pyy>?$uVC!i#ql8d#*&S8EB>tIdaC@a`;>ps zxva^@vJ(s+{*p5YR5{R={`2F8yT3X2uYWpq{-Lwpr`mEKq^$Xyw#J9wV)~OP?~?`5 zmmX+4nB}X)njWj^kL`bd(M?tN#<#lOg!zy5K0o{|TJxzj%j{!k7^d5v_%Hc++9$!y zX3iPs4sY0**7H+v`t&Pjc6{$TD_rqOoOiZGe=gIW^D9yeWtjH0olU%VljX(tPgMfb zEE)HFy75`C+Klniwf|{r=HzmOe`2`n$h1ZHR9b6+X1?r#`vRwg4{f!H;9I!H^N!b! z^f`-#Zy#;(J(MMMTW9g#c`lN+@`+n}?rmP9^VW09#m|D}xlA#q0uxU!vICkVp38Kl z;jYZoZMG-tnX+aw9%`Fj9ClADQZC`7mtD@D6Y{glIzPoONR(BW5}|(~U^Po+!&DRh z%jyR-S(l%zJEwEma)L>2&rSbdhNVFg$@@Ha1#jG=qPyf|v|~Y7r08nqm@237_JiO2OtQ8eV{r(~v8;?^KAYx+u{1`Uu6#bxPMNr}a&x}`;#3~8A;saE>> o`X#vq`nieenaSC@Vg4zeFVdQ&MBb@01|1N@&Et; literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_chevron_down_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_chevron_down_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..3dfb8c58a40a90d04bc22fa02e602e029c51a2a8 GIT binary patch literal 510 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 literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_information_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_information_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..5d40a5a2af59d73b3598b710c34b97a99b65ceb2 GIT binary patch literal 940 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIA^$sR$z3=CCj3=9n|3=F@3LJcn%7)pVryh>nTu$sZZAYL$MSD+10f-TA0 z-33Sk!B6Mi^+1ZVz$3C4NPB>>+sSM@1_q{FPZ!6KjC*fq+UH+(kZ7N8o@?cjnwhx5 zsa2qN_nr2^3ihGz{g?`gUp5Kj=l!MLqq zd)hbatSZmXljOW!y?9bH?Tf>upAwIrtJqGxBI{`58GdQklFgwf?@uccaIiVKZ%K4& z*LBt0DGKwRbS|mN_}RAPy6B1Tm8vTRH$7iH<^5;3OCcQ$p?`8OMd)kQt1qgV|5V5Q z^o04W_ZYA4xp&EuB`R&(`|LHTe+ssC>`~PaNMPGBze@hTn#&t)xol&^X5!0DF(^0!J;ZpIXm=5cy9|WrJ)+igyeeAT+ zVzT;ym50P1Xlx5%v;V~ML+Z9sv!Z!?!}pE4#y8FiCs=PwWpmEk#}EzVOB8v}K2yu` ztozQ&miG?QJ7%nT#@p-gzU6E{tk?wKc+F2+bTW1wP&K~oZB}8Ql6H-89_!2P201^T zC{_pBH&^E#jk_Yxz^xv4W%f%=^LclPf3#_=fEbM>TIt};%!o39l-ouL}@a&fD+3vb@$vV!d1+&gQE)PI@12Brmu zdWLoL7903a^X&qrK-Ci0h?11Vl2ohYqEsNoU}RuuscT@VYh)f`U}$AvVP$BlZD3$! zU{LHHr-7m&H$NpatrE8eCaGsrfEqMFHWZhoTO}nHr|Om#Wiq5?=A>Hb>+6@~7U<_D hre`K+>jq`InV0y6x*U)yQU&T^@O1TaS?83{1OSNIbSnS= literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_map_marker_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_map_marker_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..5c816ab84900af0f9ff09c7cc3cd71eda38e52b9 GIT binary patch literal 604 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3?!a+UUjXD9~2#7j4?xzBX_J z$G2@4!vp3kMLlEvBHLuwlt1CvF^653rwhFC@e>R@k#5|WdUN-iXG$H+!EesK`F{7z z+%NB$Pc&vf5Ukj))1a-8&t=c-wQ4bo-|PeFI(?Cwj$8|JJMi3)b(`~=HHQi{GY?mr zO)SZ_{F*g;l3tKn#ix58L~oS7%1wCmRYbGN{QW0|3&oG?KTHv=b^Vgc{qBmN0pFSx zZ?Al3(w1tEcrDt;?&*GRr|L?EcW-L+GPMiTtD5`{>09+5&S>;>Oi-P=f}@hT^hxtE9x@RNc~|Oop_~ toK!1)ef^T$0{z^?^vvXJ-7EudLuXUZinq&G+y&}k@O1TaS?83{1OVBF+wuSa literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_message_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_message_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..3970be757ba917f8112304d424123aba9c695832 GIT binary patch literal 537 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIA^$sR$z3=CCj3=9n|3=F@3LJcn%7)pVryh>nTu$sZZAYL$MSD+10f-TA0 z-33Sk!B6Mi^+1ZVz$3C4NPB>>+sSM@Amf&&i(^Q}y|*(A`5YZZT;E^rzL0&@Yxm;d zTkRe9^sZ#B?YMd1s>Z(j8mGel-tRQy)g~7|D`l2Qj#IEy-KiY8V)=wSljmHGS**tY zfFog1-3hU9hVBjv)Ar_52YvaUGA8gO+?Bg#7Qn!Bbz8oMpy4kOhpnmNf*+sQ{P?

>E)pJGt9y6r<;S{Pxk{}Zxecc&a-}3Ywa+7yD7-aswJ)wB`Jv|saDBFsX&Us z$iUE2*T7uYz%s!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3*ZuHIdJ&AdHj#q!`&x$EnL5sTW4m+%$X{w+3x#yIs7|&YkiH|-oqW!{`qF|Ru+h_ zym`*C#j@Dzvg0P>9o|~XKiRT=8M2Fu|D1lWTJ}f literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_star_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-mdpi/ic_star_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..4f78bf8367a5c67cf99bcc79eb4b26eeebcd2a9a GIT binary patch literal 609 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 z≶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 literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-nodpi/onesignal_square.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-nodpi/onesignal_square.png new file mode 100644 index 0000000000000000000000000000000000000000..f8fa700c4e537dd44f39365ce0960027cb668584 GIT binary patch literal 99328 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 VjuIhdJ_G~(Bt&F|D+KlZ{|{Y&l0g6f literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_alert_octagon_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_alert_octagon_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..6d1293c5cf86eb5a845a7199eb8cd818ce7ef7a3 GIT binary patch literal 994 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 a`FU7|m1kI9yxz43NS%G}U;vjb? zhIQv;UIIA^$sR$z3=CCj3=9n|3=F@3LJcn%7)pVryh>nTu$sZZAYL$MSD+10f-TA0 z-33Sk!B6Mi^+1ZVz$3C4NPB>>+sSM@1_q{7PZ!6KjC*fq+WLzGinN_~_3k{zewrK^afj(s#F-vR_3y=HZM#)I zPqTi0@Asbcb7ySJ! z#k}$A`o?^vPfjjsE-9Wab}T))ohMe`l8w6eG`^vD)(_ME+6TFMbyo$eH|jB;=l!UB zU?TsX<(#V-vpE?jPdh!o)Lv`pEu~L)4VEpP!lgU=L8mm$} z>R)Osv`x?xspI`=U6PsiIYw;m&yLppuX_@5t)L2H_I7{+axV>d9t`;&i9z@>PqKbo=kSn`R!uFc;~=+#y5UO_QmvAUQh^kMk%6J5u7R1Zp=pSLft87+m4Uf7kYQk88Wt@QQvOL7bJa}(1ule2Ym aeUdGF{XEQb-I76hg2B_(&t;ucLK6VUZ;D0$ literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_cart_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_cart_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..2bc1e4e09aa24dca72f9c299c6951bcd6e39d640 GIT binary patch literal 867 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 KbggkAC;toB?S?l1 literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_chevron_down_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_chevron_down_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..37b13c70bef8b19223f3b702b7d7d75193367179 GIT binary patch literal 668 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3iY=RHwYeuivOe?TZ=349`xi|46!df7;-FK`=LILdnI81c zTl4r<`ImRn6C537xO?_f$__{=NEI(wD#gS~~Z$ z_}B6Gx(n1x_qqwxi(B_8)Nw}x32$L{f&J~L1dqJWJk0UveBxOkk(tW!(f!2j`(oV} zpTolh$oRKCeE#7tAv=0FErC4M64!{5l*E!$tK_0oAjM#0U}&jpXsBys7Gh**WoTq& zVySIlU}a#ynay?%MMG|WN@iLmZVeS?`-*@XG(a{Km!(@JB^IaZmKJ3)q-Ex$TIuWS nm*f`c=O(6SCTHvV`s8PpM+N2S6G7^>bP0l+XkK%Bb~! literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_chevron_up_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_chevron_up_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..872bb2673cbc9e9875d92438dcf448860c16d60f GIT binary patch literal 687 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St39y|Ltx-Wz@*}54Ae_ z|2Ri>mFRsSp}tS>T7lX=!D%K2K*GRipWrhSLm*L*Sfd=1wCso5jHG8j+$54y{yct} zzvB1W_uI3TAOH9JqE} zeW>Nfd~u7zrF|RPe>~OME&cHFCH;)GdwKrsPtJb3?e#8uZ`mcUcRjy$>-x1@kI$sv z->%Ybe1FS)@4C7nC2@p`p4oc|Qf zvpRIV56GUr05uYY`MIh1;|q^ag8WRNi0dVN-jzT zQVd20hL*a9hPp;(Ax4H)hDKJVrrHJuRt5%4i8(4L8glbfGSez?Ybdt40!$1H8Xy~r z%hIiq5{pxHON%lY(lT>Wt@QQvOL7bJa}(1ule2Ym)BHS6G7^>bP0 Hl+XkK2Q?1T literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_email_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_email_white_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..68f209e2daee26228a2594e05013a6802dda6044 GIT binary patch literal 1319 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3dHgIvbLLKezWuq)=H12YP8^CY0&rr(8=dd0lfE&# zH!vTtOW6M1(_%OO9R@w7^fPa~&UH^_p72FwgJ0;M*n8=F7sxRzZ}30+=KU0L71jXp z|LzY;-y7>3NqsPPia^l)ldoMq7VlxKnQFA5lhoH<{N2{OXUrPJ8}wI7o!?Z=P{VDLpLYNJ?u}DaJ%Y^>(u9-U4`eSTW00-PI~!`jN21>gyw$4-04B zeY44~_ujhqXLC-U;S0{2e2_$5-8}O4d#3ZHeLauw zslJ@C#9C8YUaR5QvL$Ptx?Y;KcV<`cygkX!yGkut-rv(o z@#TF+uKP0g=PCA`S8h0#>)HOhu08eEl^o+Q$JSVX;aM>8&XU)EO|#$3mldnKCRdtw zPgdWF;j_qsZneAFlXX>r_OxYRYBsrfiD|;G{7cPdH-(rpzFb^lZdx!|*RsJ)-1pYn zlX}h!L03Q6oz!^{=V^cC|F^U~c}wqwtNWJSV|ez@XkBu$(SDxOitYN$ckB3PT;%u> zIn#Gn?<+O#KgXJCg?DEdCtMQy&^mMO+;rth*BbIyyn7-SbDJmP34_%0#{M%puft74 z?K|suQ)wG#T%Fvg>ZzYL~2}+R%M3J#fSPTWm}2O#38sRW|eF_jl|I zstit^PAkj3wcwg$fIaumDc^63yhw@usQCBdQGW*U4)=&7DmM)8-;F8i-{R_mBD1 zs^{BPpS~0UW`5NY*NBpo#FA92*s0kWaEEZr(8u{c$?v?!AyEi)(8N?%{UB)336H!(dk eIa}AT+|b;`&^IV$yEmvvWbkzLb6Mw<&;$VYxINea literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_gesture_tap_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_gesture_tap_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..2bc4b93477fe1922984c495f7e048b1e500dec7d GIT binary patch literal 911 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIA^$sR$z3=CCj3=9n|3=F@3LJcn%7)pVryh>nTu$sZZAYL$MSD+10f-TA0 z-33Sk!B6Mi^+1ZVz$3C4NPB>>+sSM@1_q`8PZ!6KjC*fq?CLFqxB-MLNet}|Ebi&#N0eOFzMN*tqwM=$fX&YucXK$Jm+0&nNzWep3 zW7WprclGbd|5SAUPWkyc=fD4(W3IF{>*}h|)nRM@J2)`UU=wQ)-7VJe`oO*`HG2=3 zGi-0r`}vFO4$HOW&;H8(5pI5SgQJIeaak|3`5VatkG*Cx9m^{n6 zIqSxjmtUH``;_EZz4bk-zs-VinfH-15ofMm`NOowXa;lKU&GmY-UkBT-)uR0X8AMm z1-S;&dw;2>f6uHuZx&f=EpmJpW76)hRpI-u?z}&3a{dY~HnFvLf|b;=e{bVrn-^8N z%;ij`wtSn>h3yS@511#2W>|f-Ke;lWX@2hOyHjV`H}6WDbDEV$Cp?Y2bb(ugCBMme zh6Bn87N*(rxFW^i=K5q_hYbHcXS;}l@{LQyx>nT*O%zrtQr*`0g6SM%yp!+D z7ugEOk0d@w_F`t1PjPT|k?S}SapGL(CblA>v)w0JI`(j!xUY4~;6&!~RqtJ&Ojy(F z!f}`PhU8IJ9>(cEK8kxqZf)oe`MY-Qw8iglzqU6ov7Is%n8;L1Tq8Hb>+6@~7U<_Dre`K+>w2Y?Raj(}n`%CO7XsA7;OXk;vd$@? F2>?+KaRmSX literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_human_greeting_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_human_greeting_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..4fa79f8a8b3fe8cda75393b9781d5e5e514c0edf GIT binary patch literal 873 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIA^$sR$z3=CCj3=9n|3=F@3LJcn%7)pVryh>nTu$sZZAYL$MSD+10f-TA0 z-33Sk!B6Mi^+1ZVz$3C4NPB>>+sSM@1_mZAPZ!6KjC*fq7-ow&O0?bgH(cGZKyXW- z&KsW~7HdJ5fKU7^vrVFYu)h)AB6PIEvA&~Ms5eGY=%|(;kK+`LMXg0buFT8(kLEro znq$1#x;jqmS)*>=%)k4-@0>e(uC3-o4;7(K85x%=a~RSZR3B8==`e0@{HUwVka8gQ z!S=;D(lc1ywoP%6tD9FK7p}zkr^MtW*Oi^&3V+yowOH(|q+~eO7(Se7w(g}#n91jD z^UmuYzp=Q{RR7yb=|g3n;z_Lctd9AyU9$;R`oor<%o-OK@TZ{Vz(hwbAI9HGhgt(F zcD@tM@QV6>{6_4gWz1Ro`UN6-g$y=NThiY5aeCw2d9#WInGCO&F`TQOwp)AN>*JqQ zH=Z%7TEo>S_+akhi~0$df|Iwk9Plamv5sN7&Dnblzis0WEoOT7yg@dUE9F4f@|R2- zjw@gM;IrIp?%b@>hr5~P9NMp1!6@_PiX?L$WA}lmIvpl+?U|qFJ?m|_y`O82OvVI` zMxG2dk1dVX2ks@Nzf(8l(qaE65q+R^!G~!Jbi_0YJuWeOF1&r$e$u>^pA)L|UT$5o zKJ8ns2GhBp}IG;Co-Bdg)QH-hiTov{;My) zG_dT-WD4G=b1-;Czst-0QCy!~E^V1vyJB^NO6|mwb7!8t)>81aSCKW}{Pf-A)VO`^ zNAo$Mt`i$A$Yu9`o(za<9&s`P}KgmG}6o-eO=r7=Ws<$SM$s3q_R7+eV zN>UO_QmvAUQh^kMk%6J5u7R1Zp=pSLft9I|m8q#VkYQkO+dK9viiX_$l+3hB+!|Ji zJ@o`?&;Z#`T$XN?lvtdqTUwOKkd~Q~YNfBQUy@s(pPQJTnVhX#l@;ObTjk`*x$1B> PP!EHrtDnm{r-UW|$kJ5g literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_image_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_image_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..85a213f10d5b60d0de6b8237b5ef660fba9de07f GIT binary patch literal 731 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIA^$sR$z3=CCj3=9n|3=F@3LJcn%7)pVryh>nTu$sZZAYL$MSD+10f-TA0 z-33Sk!B6Mi^+1ZVz$3C4NPB>>+sSM@pz(7&T^vI)?!BF{*4sHyqJ4gOl#7d6Shu5N zbCc`tqgfjw*vvlG8%X6YJ9tLR&GD$tjI@Xg3T&(S*7vbqoS!J|v%~t{?*3}AbHeX` zR@9&W*>JkiK|w$wO69DF)npOPY9-I-lb*#$o)wkTU=E&leIwVJSvQkolFu1_DBw86 z{G_qjuXmknM+4{mm$O~c%w~o;>ga_2gk}^ndw=Z?s#{=roj7g?LGDN2R6;zd&IQt z4x@23!?cEAg--%DOnxyBnHwDr*zeyxo2RO-ajqCJ!cmdKI;Vst08x4l A1poj5 literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_information_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_information_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..895e3642ef45435d707c925f562ef2cd5f812e18 GIT binary patch literal 1716 zcmZ{kdo06Hu6w-Zosj>rmQ9t9nvdtSqd zO%f~Y7yx;W0LV%J*n~^6MF4Wh0KDM=Kve)>F8Q`E)EgGii5w;aCcHNM`U_#`Nm$WY zFj>FH=ffv`06^ui8T5$LPnYT+RGRwlKKD;|ywqvVM9Q!TMVO-IN}U3#{$N&KwLWEO zPB8wW$n~R1IsTz(>~mp>)B5>A+tNjDC|znWI4flEbQ=G%@sCBvQ6pu?a%|7ol5$gC z*Wc#Two3DwoIDZvy=^s%U|hzqt7cuGsQMv$TOszUu7dW`1J!HXduRu$|4(v`Cst6D*FWq1h+owXCN^q3=?P z@5GFp%kERn6b8=@abifXLk#~GU+%*mW8+`7GwbgJf2EZ-%~#xsSAD@IIa?u_q>+h_ zS9_k?OBfR-YU&NY^$hmR%}JNr7`Y(tS2NBwMIMxYAf^bx4wnAx@j)$j&=u4TM3hj#OvL{c57?`+FVXH@J5QS+00MG*1dc;-u}@!kCNCT%u%ba^#*=cH&D*= z+KWqV*d{+_ke6|Bh8D%30BR`>Wc#`EP}Vj+$;ir*+?~u0$CPoea0GaC-`NSmsYyxjc>{8VDl>kBfuxf#03l50)GPz{2VL zhdeAKk;Ny@PV`JZ>j);R^g6@<(82CDwNV{IPG2b;5WW!)F?w_ zxJvV+8gDA_jngdVi^cdKm+e+;x7ocEsAG{;S*ES!Cs>;pQzu+Id7 z!gFyUY5qiy?Y_UCsUN-XHs|*~=~BKd1Bat|LYuM;{;oy(SxSQY78LdNW%9m8+*Ann z%hp~ev7iy`rBY{v>6EU@OUI`IIxCa|8P{U;l9cWP#g}fpbQW`5y9%z|O;xXE1nXQ8 zHCM%Rwu)8hw0E^V*ovD8g4kHs@!#w?AJfM6eArrln+zWcONaAe>4E1n6J%KDY%KnkvD zGHn^Nr$PIe#5EG^-y*WYr|g88$Zz~ad(2;GY0c0BcGqFy8tp8IkSrtBhD?)aq8%F=BY?^rIZCP%8qR(2Y@ zT%I+5``_V5FwR*aWe&BxxoB{?8J@%r+5S=4$qCtfYEmX225=+0dbyCjT--b&$gWhf zC)Jg5fJ~;6$yv-er~fgC#K}T|^#2=>_=T@vgVU!QvQDK?6BDxdE;*S(AP}bWsU#99 lTO=Wg5>kXoCtZ$G0@9+QJcFaGySrcyVEYF#I*#&+{|!a$%f|o! literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_map_marker_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_map_marker_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..cedac382bea4a16d5a82fd36341f06b5a25e24e1 GIT binary patch literal 921 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIA^$sR$z3=CCj3=9n|3=F@3LJcn%7)pVryh>nTu$sZZAYL$MSD+10f-TA0 z-33Sk!B6Mi^+1ZVz$3C4NPB>>+sSM@1_q`mPZ!6KjC*fq+GdA1inQGq)VUIS#OqH+ zlaiE9iJ-Qtup+nH#(*#WON?3tbdES#=bnwQq z_S}4K=k}dP%^R7`8&%(AGMVow3HzaZz=`3<{7PP)r%m?kYrZhvKc{67W%h^TLKnmR zbN&yUB0o4EnBMVWuK%NqtP1z~?0wY%#fN`50uk(EI zuyqquOD+U_z7g>GL_qNgF40dy{{uG8+r9MFoapx#mutPO?zek=Zs)32?I)ZqSIW9m zFP#yVX4;yy!cutUvuv)$ROhpAJxr%}DyCREFY;kCOU*KG z0S{}o4H6rsId7g(Q`PXXg=zX^?uyQzEFZY1l%8RV@lpu*b@E7z%a5Hw5BDDMd?d3r zhhe#w_y-|=We%GYOz&CC7*E$8sAu_>BK$!pxt60Rwe|gk8TZ)!OulnxF4OMD?~EVh z8{+K!y{E4Tl)3cHi`!!M>~if+&*lRudFS$&_$qF(*0tUFe@a3{>%i{)2lN@Mi$6!I zwl!|$`(c`3VIIE1Wp2{!58OK@%}(DfBz(Xnug{U~=k(9g4HIWR{gbUw2uyCOC9V-A zDTyViR>?)FK#IZ0z|d0Hz)aWBG{nHb%GB7(#7rB=FfcfITIU3chTQy=%(P0}8g@*Z zQUcVV0kWaEEZr(8u{c$?v?!AyEi)(8N?%{UB)336H!(dkIa}Am!{5Wv&@4T#e|9HO O4}+(xpUXO@geCwQl5ooa literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_message_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_message_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..609b11fc6a99f987c49d887985f711ac5ef6175f GIT binary patch literal 786 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St39nu7{3YorDnX%wq(I`(J#CazV}m>ty`Uyd$VyKgKllN zYFbbCZej={XsH|GNfhZq+03g>zCvf=;tP;XC`Os7FVU17r9i0?r!q)2kK$)boFyt I=akR{0PJWc0RR91 literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_newspaper_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xhdpi/ic_newspaper_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..67536da6f4b497a6603da1d356cb23de1f47953f GIT binary patch literal 621 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIA^$sR$z3=CCj3=9n|3=F@3LJcn%7)pVryh>nTu$sZZAYL$MSD+10f-TA0 z-33Sk!B6Mi^+1ZVz$3C4NPB>>+sSM@pz(U1E{-7?_ukGh^gA5D(^ju+=CWFDfw8iO zj!gf?^hWN0P}ztFJZCmEiBvVrf2wHPvs!$m-yDyB(_Y-{d}}}Lem9ef=OiDlNz#Y6 zDg1Q#bne65Np~j3NbakCUs21l!O!bc)05(j<)xPsQd(UvK?cBPU>22?C80&p>dE$RomvOQ)w?((!i;y4(6HSF#pRe&& zy*j>ZtM<8l%s{S)fN!z*tY6zNzOkObv`F%e%C*gpMcs{m^DSw}m}UInXu$K65Sd)I zPcj~i!bfK{GB=#Q-+KMuTao3L*;X@GuitLW5S_c>pINS%G}U;vjb? zhIQv;UIIA^$sR$z3=CCj3=9n|3=F@3LJcn%7)pVryh>nTu$sZZAYL$MSD+10f-TA0 z-33Sk!B6Mi^+1ZVz$3C4NPB>>+sSM@1_q{BPZ!6KjC*fq?#~u+6ghtX$dgaZx=m`+ zI}RQ@bVw;9kSEkEn_<5$B4Lx$8^53x^$}6vaM1)%z~R_~|951gqJuGY7&GcBlEhm7F0yaiZS$cGoA1z8zS}@q#&S z@>=r)(>7IFOU^jWc>j{*+C6IOa|9VvRKv~#$MaE`(=#f*IrCbKI3#Pqo3(J*A!0 z^%=jxfvuZPHqKVbzTkg=^?^I*1N%mAt<{_soHbn>`}yXCHJ1ClVZP_qP|xnO`jEAn zTH|rXhx3_sHyyB6+s5S0_~1R$?Ixi3uSQnaAJIqbppSI^(U4 zQ_eAk8O3$Sd-!cK-JKr8XqWz_Qj)vQhB<|E#;XhYLJ=%x!M}2uX1&(Bdf=u=L->J} zGJpG-&j%-+IciX_SodX{?(~C9hHN>JYquZWC3pD1;%!AY?>euUyKPNWm4sB?j3@o4 zxw_Hb>+6@~7U<_Dre`K+>t;ndXJ=Y?d#j(& RE(Gdf@O1TaS?83{1OT(kZA$z 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 literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_bell_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_bell_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..d3d04b4617323ba92a4b9542eea321a9b74283c0 GIT binary patch literal 979 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 J);T3K0RUKU{)PYm literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_checkbox_marked_circle_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_checkbox_marked_circle_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..389601b23aeaba6b5971ea4064dc28a74aea2671 GIT binary patch literal 3041 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 literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_chevron_down_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_chevron_down_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..640389ab4a9bbe03b9625aefb130644d96dec3f7 GIT binary patch literal 793 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q4M;wBd$a>cv7|ftIx;Y9?C1WI$O_~$76-XI zF|0c$^AgBWNcITwWnidMV_;}#VPN_c&H|6fVj%4S#%?FG?SRJL@^oY3C&O&dk|!n-ORPF5r;s8Ml4j!8}*hpR=sr zN1fkvC@=i`?!Q^KrzcFRIq7`Z<%_?~!v1LHpA6gE0+VV^eLm&( z#m8py`?cvhx+jmH3D#RA`OzmY`g~N-q}MaqWAqj&Kbm=G%eMY?yb2xIB`)aSO<2zSiYoBVF{a%iD?_aH`^zp+cbtNJG&$d9FGWzB6OW#JH#}f@Xm*vCM z6oV>PziI+Tlxm4cv7|ftIx;Y9?C1WI$O_~$76-XI zF|0c$^AgBWNcITwWnidMV_;}#VPN_c&H|6fVj%4S#%?FG?SRI=^K@|xskrs_^4Xv{4kB%dCtROS@(FYM z9GtaisrU4qx8FQVS)6)Z!_>gU@hc#6a4t>3{d7xh0B)onU4f7%BA+XyHsxquu;0z z-1=BB@N`(0yNhm=rJUf_B|yO}$A=XzA)9?Z+PECi7kulptm56|=YK^m`aS7WuUyv= zwLQe<13Ir-&1In-O$O_k*_vEkAs?e7elVp`v`7W!d zOTY6u)@ACAD4Uadg1L9Y9(#W4%vf!7w0QfWbJ>EqKDr-Os$I8;Zaq5rjaXpj)?<_3 zhzDxUe6;iK0oib+s7URPD&IRYbk`o8eCKM4%X}~X9|!i&+`s?z@4907UGIPIkG&pS z9xHAvXZ-#48)uh0bAIyg)!bWqBsW~J(Bkp7{6q>xAIVKytD=XSgead~tyQDM=l$DVo8T^=@;vaVNLY)iatrix6Vo%3vvqySbIpPcE#3e1NrDn4gQu&X%Q~lo FCIA?KDr*1$ literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_email_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_email_white_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..7ee73fcd73af236f89d179592eb363d5b0b1259c GIT binary patch literal 1788 zcmb_cX;hPE7XCsA!30uq1{eedLxMtp1h616Fp&@;r0k0ZK>`E_!y?KmN|OwWp=hOF zX`r%ANl>i4)DB*ti)zoGb}fuphYUDU(=qbOYP%sYV1 zjlJ`0h!HLmwP{)cpPf{M$w&H)-p4O}`A60-X= zx0EUMCW;ar@YJJ?KZV>1)ulG>x!&mOLVB91s5jHEUrc&c)0XhvttoWi@Tgp)uvyr;=aU^U4jaKP^)Du^*vUpb zX2zZi8{jXEM)=CJ4~iz{kYPp_jt_ZZQkw;Fk_>bns-&#R_D5PhzaP6KoBnk6mJL@) zwZ<+Ta@TfR@rNwBc~Zk=+H!GSqMT`)#c)^8I%i)g3||HZTYTf{R@yedW^7*d(Q2Q;^L$0AVz;c@tua^0iXI|jrbT?YPz!ou=vW=hPk`cRdvkVdG zmfP%aTBE`JD;O~vws%et^tcZ`!rnyp-o2SKPt>Kymaj+gtK`g=qqFi3!?khoqv*{o zF>+Q3Fn%X$rOqn)y}j3Ouzr)h??hM1Z{4Z;B~G-0Ei;{5gRP~gatom;bO7dsotz2r zD*kS;JsfxETTXF1&RUnnuS%bO0M2!S39Zjy;G<~yQ5H0&0Djdq7j3hisqi7FgIvP9-``z9;6d~8XKr9RikNmLWfZISm09@`)$r|A= zc+k5$rbxnzxQ3JJCscg>>t%K0NU6(}z4$f0|8(JGGY`9Z)czbhqnqSG` z$6k}K+XYE6i_O_31&(_*n=zLTDqF{?-?%ty6A3DM!p$+Ji#E|sMZbt5$YNA2y%=^tB@oW8D8OQg)DR3CL0T5voWD zle=PS)6Vi;Yv3G~ox|7?z_R*3P>fxZbM45SJI=qWcAR1H+){$nyX|UD2>)cW@e*#<4-#Q?4M0@>~Dj16G}*5!!(dCWDY)FgiACrMA}8ELG3UA`!&urZ~o z;}%>ZRIjSym#qYe7SD^dh%fbU`f$!d>_W2URIXOUcXVD9T(+&Yc*(8k4?k!U`yIrMf68ddeOEt+esp{R{bT_r zxgd?4dM*tDz?0qhc+Bl*U793gx8kUc#JBodiKdN_TG`#*x5Gn~xy^B)!r3YVuK z!J&5*@{2OaDarY1ZiVMEf%MGmG%}G$EXc_t<|Joire?XFI9`y<%8fYlvWU+26OWhjv literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_gesture_tap_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_gesture_tap_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..625409633fb406e98f006e0331857112f12169ea GIT binary patch literal 1319 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Ea{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3JG6){r1&Em!t)V;)rOYqjT*&7yyJ~;LChTl@x7QGgZWmf}oSM@&Hq*1g$ha<5_ z$4k|;Yu3#8?(ceYcHXmoe|GQldByiX|4Ddo=FHCfw)fx9Ek1Ag{hqq2P^XL1L=P1R z#Um>AtL4CqCDT>jPB+oZ-12*Uyh`k}FDsX18qe<4Ro^m0@Ih_Dyn8wf!3Qedl(kPP zX4rAHeTI#Bqj>W6{h5}+cjX>_vixARL3GFZ-x_{XdnG+{>ve;Zc zURd2AUp%R8wL0VCor$G)lxO?YqpbBOSfB=)^*IC&+qu|&DMQO&c!q?Sgl%m-MTcd z^~}%Z2K`oL0}L@K<(}U(lSN@8_=2;9gX{p_a9jOLN6`{p|rY7G-t&RBE@}30o}h zcz12v?vx(}WpQ?_z2)XJB*nEjc0Ks>+Q02Bo74xX4H1)S?3;|l80D{T`o_3tuIDO^ z48a*4bKNgb;$t!gDrMXwwfpZvmEI?H@7*t)ICbvP{0IHDF^;XgM%~wzDK)*zW}A5J ztAgiyuU$%+VV6>kf2)N_FLwH0!!5)1uJ`Vex4XZfR*eHn-wuX8X^XFbVmGbe7j zeI_rA*Wiuz%eRyIu5lW?vGtf#XSUgWwcMLffen$D_NSGt?ccSKMR&%{SF6~oC6f;5 zJ*f69p7g9i_&{?b%a^3kzXGNV^BC5NpHbPqJNRAOq{mHy!RPoM^vk{dEnC4JVcpU6 zif^Otq-)<+Z1%jgWQpVhfx|m=Blr^34R$y2f6;z$)A6NaoSm=L=IiQ{=Jot-6jh6S zY_@KCyfeZr!S(T6?6b-rgDVb@NxHaTdzBvcf zpaHU>xGdc&DX}!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3wp|52 zTO2em3d)*h8T{R8k^bPt9P96Up6_`s_u9_h!r;u__n$xReqMWi?|aKhk1hHj=(5ED zKdzu;Uhc-V2Q(7|DkjJ^zx=faMGG_wHxs3iw~F zK7G99*HrOIpF5W*Pg*uj!p`?nV8VjFTc22L`7+jQN>~to>G`T}iM|uQxXPvn#RV!e zK0aOZDALk)5?|Pq$#0(u80gQN_vg?*P6_+HN&jM3Y5bI2w$yO(MD+}fgc|>wM-Di7 z${)#5d%F0`nI5Nk3+$PX>93ryJO0v%z^Z$G(?tP1>ou zY+`!HH{JbH7Z@`d+Ud>w-JfA~OsHs~zB}7hr2ou~F1{sFzouo0^nos+omCBI4|qOMI+^zG@0a(&2h^+zHTiX__!7Cl zY1B{7Iraa);!e}xGDBOQGg-UZ{XA}k1qr;A+#xvQN{M`__pfD5Djs4Vcn?fjR=v{u zg32k~Tb1cot{?DP(D(P{sVVoicr8C!=PB>D>S^DS_o{z&UIta&nfB$tnSZ~|b9$-H zTyl5Pw(Bncl6eSCODEgUI;;R zp7*J@%vXQ#t&S0x#~D;hTq8R*60J1ZvO#*-%`TZk3c+oT^(|l*y2mnUiXzudiQ{TcDqt hn4X!Ot!q(eSZEj)VEOyqL{p$122WQ%mvv4FO#q^;AZGvo literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_image_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_image_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..5aa91f34331cef031046d3d5a6fbe54fdd43dc77 GIT binary patch literal 975 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Ea{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3lLi_^%f}_g}1h;J1bTO`1K_}x#kbq};qFKkHe>!E# zitntxzumXL&~JD7v$Hba?tZ_qo7qu-1%wP(PH&31B$yz%gKZ9TRH*rc6MP@UBADOJ zy1D%htEUyK4dc1+yKh@c8ZC`~PuXPQdEvqA&5oa+zPZGjcJ|Hg?H>Y?4yE$-$uw{u z=$+EKvPo?9yA=%Umg{)!J-V%NacKDzV_ReEXS!aZOIGdHWHK)P?Z5Zvzi6ik&KyM? zj(mzI6j>}=6xs!z2sFvy74#Ll!YuYeUU|CPWR|UG-v}0LKGSXHdO_B>nj;}?^?|HN z@w`JjZ*V{Obg#I?Q}=;rLE55c*(G}4s?O}tO{n`npXW?Y`=oD+jaY1%(;C?&AJ;L2 zpUug>(Vn)=^W^V~9wv73Dsv^C%$T-iqT;u(q};iM-K(Q6gnLf^_H^dNFNTWWHZHmH zccW_N=FX;D%0;nLuKaetQ|)=&_*(h3labbr-{;hPo>a%%d3&14waK2Bf`VB}RejZ; z#7GM5Hb|U1cNh0BotGs^ev`NCQ~y@RSDJRK|CHF5;7e0`D$D2RoLBXI8j}5~E@az+ zsfNY#rQ}vB|D#x$asT=%G-0VLkaAlrN z^}|Wi)C8}z%(v!R>}OwYGELyg1g#a}r3+ahH0BL zPCMN7{#6{t-l$i}cZE02<~dvEY`^LMJeFy*Z{q*zcX9re=q2`7ZcmZiB=>WLFN6R~4LRBqsjVMV;EJ?LWE=mPb3`PcqmbwOJx`w791_oB9 z##Tlq+CYYZ!3=AYG!zZF`6-!cmAEy$OzXJ?)Sv;fp|~vFDk-rzRkyS#lOZiLC)G+{ oU%w=`KtDGzJu^95*C?#e(lyn?&@=vh5>O9=r>mdKI;Vst04%qH^#A|> literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_information_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_information_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..815941700e227c99eb5916a0a37667bacc12dc05 GIT binary patch literal 2625 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 literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_map_marker_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_map_marker_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..be7d044e3014257a2c5f37b0f406c98d85144287 GIT binary patch literal 1436 zcmZ{kX;hL~9L8TnG&NH)!yMN{6BWS)6SNFL;nj3po5)nukVxD>G&$v#rHz`3mK&NC zQ+aA!a;ZceXKFO8+>YhaXnD*DmnPeAVDdO`eVY&SoOAE*KKK5g^L)GKg92%~+Q!-d z0O*2rY6wL7*R@3h+QZ+r(;%p`$pK^lXe-tE5`%y|j2}Yt2AYRWmLOvhM-K@A0HF;4 zAZ$&U1TYF~v@NznG+0XIqtpok~+O%FK6^mRWdT z?J1O>S@kMpYRAgq4~q(OEmK;-oB6>wW8+Sz0&t>6DQH_SUr4#le=b~)qP-ZI?Pt6b zzGSyB*gtnp=KlCib%y?9O%lU?0KerEY+t`GlVHKzR;`wWxB#c+2D?bbM-Gq0s;p1j zE#)0y`;Nze9wC##`PHVPKHV~&Ro|tKeS%1{*lu($jx!e=SaM4=SJB}tsK3G!qD^rJ zo`eio&tC4HJGAJzo71gMBn7{);zd(MF;}w%i5Af*#mHU*_sdL&u|j$GUG;c6k2O_-otKY7m>gNlhqZS*gFF$==v>U6bY_6 z(%h;{+6`rq9hQwxkuK7i6IL!#Z$-eQUB=)JBYU|b$L+>$Rh)PQ1*_L|mjob19H98nNt6Im`om*`hBPZq= zw;S8~)04sFB*g=f8$4Mu8b_a!@8b#!w0u zC`G32S@Rf8YRSRD)~lz_R$Gj*$K&1Lry6E_;roj&!m|n#mnDL+vIk~l&u9~~Yy0Mk zV8wOQ6tmo~)(?FR`A&%VU_v(S*JAo>TM5MK!lw==P|*(()oZ5JE`0BpcP5J0znMPh ze8<14mlYvXBIG*6wjN{yUtd|_5!7{&6t!L%Y9#6_o$@;CY=@C`{;5y)u*O!}vdM@) z9N}-W+l=GgG)^6rhu&)_{jh%{0b>^jW&mFB^_|aX!#i4^#YK!2di(0<)I_RB+1q8A zQha0>1Q@;3eZ6=`efE5NpCsUz{pz#fE1Mc-`1Vkr$sl);0)-bUZZtm*Edy0U!NYsI z8P7ej^cf4z5P7&mQqr`7@f)uY?X-IB;3sqwnELpu@ZO`EO&@WTpsL^gG6|$F`_*SN zL|r#KU&OYHx~>mPx!?$aXpZ$0Vg!9nXwwtkK_21|8-oeUC24j!KWrMaxQSw|T$5?= zY^={7-QN4TY~t2x#(RRJ-?D%G4-uA2S}d>64OO2GE}xp&4pKztLf!;_Q)cv7|ftIx;Y9?C1WI$O_~$76-XI zF|0c$^AgBWNcITwWnidMV_;}#VPN_c&H|6fVj%4S#%?FG?HCxC4tlychE&{odt+~(jH^WJ!{8Y_bChp7 zxe5FTYhdUWNq^$ta^ilifaSIcy!*tAnva}%l6@kfE1_qL;?;C_-L(1Y|Gk3OhRppL=e16;0&g)a+q-xK1YL&_Fz3&y&tL^mo#U? zPpf=CE}93HyUk8Ww!08ICpWa z%>IYEH-#?zuD(BI^3R0Q1aF7;Z)?5%p549LsLQx_>vvttnbxbBqyM>_-u> n`X#vq`nieenaSC@KF$ScuD-b`g%`{&f!yio>gTe~DWM4fP3x;c literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_newspaper_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_newspaper_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..258794b941d70347b241caa31443964afa647f7e GIT binary patch literal 736 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Ea{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3GGx zat)0;I|93RCc50&Izu`?>uxENYv$(9=9>+)&hSouc1$;Z{jXiG*|P4uIrZq~*|HhZ z=4V1@16`*Uy%EEOpT4_f@I&+GUt4K6|fOvG}BKDzP(n zYQ0`IMJl?4^ULz5OmB0ll55=+njP30d6*61V(R_>TuGg(u{3bY} zO27Ey_;G)&=xI)C=;_>BA*7cZPKlP9WZpOu*T4BNR?|xf2!j1m&OY7L)8)6Dj z6MHU&=BT|a_#yFW&Y139WCt`Q|Ei6yC4$wjF^iowXh&{EgHOxMsf#K6$X zz{twTSlhtB%D_NwzK9@-hTQy=%(P0}8uAaVSqs#l0kWaEEZr(8u{c$?v?!AyEi)(8 qN?%{UB)336H!(dkIa{~N(k!C1!rQNW%FNF|Jq(_%elF{r5}E*jsSi>B literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_star_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxhdpi/ic_star_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..cc6a0424d2721a522142c65f270283f66350aea7 GIT binary patch literal 1346 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 GE%7grm?Go= literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_bell_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_bell_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..ac926778577530a7a05dcfbe7f040f60d7d9da8c GIT binary patch literal 1269 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3RJs?*=?E?=VJISGOqnQfToFzPXzzrLRO zp!h*RN&RHj3V|O?JI>yXWIo3jz3BH`k@R!R_&2cskci0pxH4Vr^a1w+!WTcw z$Q)RFAoGEL`-AJntEcTTuDaLEP$9b`O5w-X7-m10^Y%tR-X3UecyRr*>IPk_{!0(f z2j4v?!)4Fx@0JqyM_H;M;?nj>ZQs&%sJsj{j@Gfv2xJWT{#xI&YR!`!yb;q%uAHgU zG)*vMJg{fUe3iF)rfJ^ORQ9H%?Vm2O=0vN+Ro4qmZSwn6-cJ0&yJ7EyXP>5 zL_1A0xx>9~*_{bnuAlk$Zuf@kk_9oBIpe>^#C_Iyqx!&izs{kG(~C3Sdk5_OqvKt5 z!+PSOH6B%W&is41dBt(b4~v$G?^8MJS+(!|A~~kG59gJ7?md5|_#pDX%%O^P@0;Y9 z_(V9Ax_<8CuHv{6uF#?J?R)G6=L3E~=@+$ma!kwi9A5BUKhtI%v(?+DGFG+kO=X|l zyKvTpi$jf-WinHfC*#2-4GBRG2AT>pLnqD)lHuhzsNfZEI<1uWjfPbmYh!?-e2%^%4U@OSD&G~aB2h3|N2bT zg&P}q>Yb&$Gn5l9{r2fx`K z#Sj{NIV#h4jc=gv-j+$B7bwKNk)c&!~6}_zWK&Md{ zn3YvaTq8Hb>+6@~7U<_Dre`K+>pGe_1%w9# V6gjt~UI*%7@O1TaS?83{1OSs^8JqwB literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_brightness_percent_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_brightness_percent_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..c3d6a0549b22fdcfb5d417b36af191a7390a96b7 GIT binary patch literal 1630 zcmaKse>~H99LK-LW{h&F2W4XNTWdp@X@-$)BIHN$K&okkH`D-{JdZ9_v`Wb4p-~$Z+@RtCHbL&S{!mj5=ipjv9tH6 zI{-jUDBhkS$KS}S`V%&UBA<1V{F?8OJ&m@Mb`PH#aWc|DxLC&fxUh{P+MQO^*b%i2 zPxBG!P?Og(NbMQSok4AETStt6U3R9owY0Kh!!(6<^bL zOGTBgj-_VBWIr{$hZWbjVjWFm(GUk^BMv^VuQeq~xjHqL4oZ_mmq-YsX4>couaPh* zO^34A9+Z0Ud#me+kpj%WVVLpigS)_R18N8=gXytJ=_@f|!Ai z?QZCq?38$93RCQJ_)&A?Tx+6KlNK&p*>uiV`9$v{VvM<^cd~jGln<16k&*dZxcXV; zRDM+Nyck{6Fh0`_K=jq&yL3#k_PnltNd`DFh&h^!x0zy6T+HQV^A`jpzU7W{sRsrt z1shv4*6q7VJ*2)So+C=6J$)Q2o9-%O7qG7Q@J0kpL@UU6FzE)bNml!XjT8QaQI?_hLTL-SfT06!#_I9AUFY4lO>y|< zZS19)>@(SK4K<5;iFA&Pm`7>~RV`EJvRIVnjkxlfk7!I6_PyH>^(2sTPFY^qAFyp) zJh(^jAj5Yg!8r8^ZD38yP@vLvMPXblRF#zFu4om6BNe%M{m+#TViQ8m*-%kZh-_DG zqE!}gA9zYzTV9@4DU1!$G{{Q@Zd#QI#j46wCMs%W}-OxC(; zt>qYTz97YdFm3*;NcAJvY5tyoLiuV@nmTa3srhn!Wyw63Z+vlF0n-k}RC9(3kmNZJbNW6okXQmC1>|@G)Jdg_R>O zJLMrYR}U#BD687;S_Geah8N1$wrK1aY0g?R%aTzYVU!ggTFU6oyFqcvVa|H=g z!uI>O7fgY*-{gX39;-riGK-WUbksm5|K7hrjIx@$?}dA5rkpPsPZl!Hr$xZN;7TK{ zj}^?f(&CC%=}$yEvEwH$+}7SP;gebO!no_eV~IKvE0bHCJru?}-O-0xj}J&wzjtFU zf!4y(x#Tb-v3c#YGdz?`5UR`0R>g68{u6My*JKI|I zIb_ikw%K%fwuw4@W$g%7!*?#}eAx`$@bl~OAs8ndeqJI)GO}0gJ@B97%0!KjBaiI* z<0<&c<(X;ciBL*26>q`vnPPSysvA}rSd6mKZE4XF`jDbQJwc4;D0=Df9$oz zkwsIz|9eseXY2Bx84u0n39JYTRfRxmu`H3Lcb;f!bDzEa>3WZ?IQEf_hn*Iv8;;dc1H)O;;V7+VT^^biCTvOWg9fZ)xQn z*9{UEqNtMr)Eqs@S4#w)Zmjehao01jd4@-U*GYZGEF*Lhx_M`yAaN6`ta ZL@!Urpy1Vxpia;OP<#Tso4jbJ{sQ1R%Rm4C literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_cart_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_cart_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..47b2f3b0dbbcbbd2fc6b167fee8b40b88fb4d741 GIT binary patch literal 1571 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 literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_chevron_down_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_chevron_down_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..f26a8ffa666bae8227d42f43846ebaa3c7979ddd GIT binary patch literal 999 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE4M+yv$zcalEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3u<>yq!;n>0brBN4m^nzUKv`P%ar zcdI=2JQp>;SunQmfAA!E&v)DH{MS#4QTaLT$z~2Qm6NCcC^kvw^wxja_;sd)<0SE& zek{>>68|4KzusKfB>PzW;Qj9z*MGPgq>i(T`rCKC;@|_S zjeTvrxn0GdzhcGeo(CO31>5Yb|4)2!QjotiRB(>Lzk{={T|dA($;R&C!gWebg2(JD z?*59pG3m)g4*t@Mf;|@h4z9j--9=ONWZIGTT_-rSdg?c1*5)qXb@>;A@{h=e*6*hU z?bA_gQW0M|W&P4A)u#LQef=8f<@ssBq1(CN_OpoI|Ks^-!`H7HU0JTbYyY^umt)<# z=8x;I-cmNG3zKgASe%+GC}DqnjVjaQ^yN$46aL)ES_u@Wj*enEcK+ZrA)tyaJAuM; za@GNb7tf3a3cq*;6b|-%4-~liRjTo$@yvTl26bxJy;+X=8?OZ#JS$tY@#E#*l|be$ z<4~aJ_AH!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3$R-}zCR@vVh1Q0}MOv3wSt>n=cn z)5e8=+zu3_blvAz5&!H*Z$s5tk^O=J^JhLbXL=Q=QK!6M&mo|)ry)Z71r7F}dSuS@ zEI1QrX5G}|`7BR1PXOw8ncDOJ`Zx9V*_YnCF&iEKZ>ALIcBJ3u{)hPupP%;G|LhYC zn7;Fo|GspVD~iQ`^1s!5zr~@kD&)_}@4XF1UdQLpIm|I5T=%2;b3>+Qfzf|X?(AvU z12m?p>9Ztb)e!DndIb!!#pxXN!*RtMzRDWNP$)c_N@Bh8S9M_!wSl>U&5vBgG`F*jZ z;QgM28;dWo&p7a&XaDDYuXlZ~y!_a+Dnp7*-1`dHf6l_6M@NZRqS+zVv*=EkR|0|C8QIH2x5- zc2oE#W&>og^Yl3U(Y@LCVE2!5Z;+ttk;j+PSIjkMA}LjY6gTYp%UCKgJu9APW+0HO zTH+c}l9E`GYL#4+3Zxi}3=A!G4GndT%tDL|tqhHXsH|GNfhZq+03g>zCvf=;tP;XC`Os`Z)XNyQCCY U%&zSc0_tJ#boFyt=akR{0B7Hn+W-In literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_email_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_email_white_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..3f8b286912e6f2d5400cd5b0975775799df2b62d GIT binary patch literal 2257 zcmc&#Ygp3B9{vM@S0XYc%}mW3mWt&SZz*^{%}eO!D&h^%%sZN*mSL9C(i)+grAC>t zWg^vXmWC2}bd#;rb<@&FakaF}vWwT_W&if=d^pd3JoC)VJ2Ss|-+AWpymKlzkc8CG z*8l(j=}RV3K$NW)H3V2w6e+48s3dv?cmcreGn&h>aIg=_qL91+aks%+uwz6gQvv`W z-y8tgCjejx9AZxbz+oH!yo&(<{CNPtWYpZ>?*;}CasDJCh+tYINREM^oQ@^!)D>~IqY$mFeq5SPn6;!4|pmf*g8(|^jL5&Bc!=uE&F;--E?m!;wiylqRu1|fhNZlUk5YTGJ1Q?v&wbn=h7{ymJ?QK*C~^^^oNOl{|V zcnw?-gk5Rqfd62>m*}Roti@^#Wjw1GfkX#jY2EG_a|jOS5&MhmAzGs@rxj)pgr)uN za&Q0~CCGe~qiD^#oD?W2#4n7AWJQaMO#a#-N-Iz-TfN>m^QE!voX=eZ&x$styGm=3-R-8biZKG1BvTZq4?#VZbGy|4H{`%bZ$f3E>i9{uc*4r_e6zyLOw)1 zLCp9llavwDirPxn>tv`YCfbULHaK}#NT_aV*r9{1i}3H3dqWE@+S z(lx!i0o0w+=U*Fz5z;V0>^55kFY@^=kT&Qjb0mD8OweIUp3LbUENv0Rl5LWTX(bAq zrum-tL2Oq&KKDXu*Yq#fL5Vy){+BJAnUZJ2o?JZSLp<3q1#NuKe-^yaEc7QiWo#=y zH?@Md6202YnAGu>W4ZLo8+}_B{XlL%VHRKU+99-XVkEIhsDqSKlP%{o9K2py zye~ePoNs9owX^L!KY3EpYxiW%@NnD!JptT=yy+`#hH{MUuOa6ig&rVYBv|ON))7E9eE2W*)4fUn*gfx_J>d$NJET<-3 zO4qBCe1~_`F0=E$yU*osVde_s8<%vmeFy3S$pSxEcXw}9=vtge{XVi)>xirHYhgW? z*b%D~Hja2yQtn62M4+G}Fai7r$H5mRg?8tVw|)&!QnA9Y^%hzy{6_jSa6eBU zYa87}YLtxYetWh_;dOh-j^pRX)Pn=h@f7)8({XA7sryOr6g-Ea0V87XUyO4j1;E&l z61Lu)cZ0lP{8(@TjJpef*+_)o<n+N@qjNwUW7@k4z&j;K}+{N z5kv7yhbHdC_)ISpmOVvX2n0a)1X$Y^yc=&^SI4mFSm8s|LnAs2Aa-~uO){FjWA7ZP zmi#VVfG8m_$#u#!>d=u=0Y# TM4fgLkOTPo1QNyGF~|P~J?`fV literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_gesture_tap_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_gesture_tap_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..bf9a4481434e46ad38762c29ac4d4e8b175cf7f6 GIT binary patch literal 1624 zcmZ{kX;hPE7RR5LYzPPf5hyWM+r)MRnl}az0ha*LL`*~kq((~+LkNVhgrzKzgmElX z5F3^X1c9QpIxMY#h>}dC91w~xN)-hpM6n36T0j;V?dyD-GiUC(_xaubea`>fZ#UbI zw{NY9y$JwdEr;#nk5cfVjPdCE{6exD3ap69WdiU^p6O~R4%Lv%f1ekqMK+A1VpAB~ zp9?_h7625d0a!stiZK8ZVE|qU0C2wmfNiY$)*(;y1AoGIpASkjmc4IhpjZ>j{!)gL z{h!*~8MO-l+(#TAX2912Q)=HVGK+ZTJ;S;qtJrOtn7ie~HV2n!q9xUU8EGZ_AU$oD zon<;S?po{oQ-pIX+sl=CAM4G&zV0E{hgF6B^yWHxcFI|LUiMhT>alsUUDS$Rn>W2f zEzNCz*+#bD=xyz14Tf^QMdE<|-f7{(pNjYfr_vkh|Y!K#~ z(zfPSzQ{@3u$*!aNfIz^U!PHuxg}L+H4A;_*9p=tl5UR$ouJq*dtSTH$9K4Ut3(_l zN~3j_TcvG!$#b*iJ|Ny*Sr+q$;_83@4Dn91R-;~%4a_ekEjZs zW&SDR+r|E9c>3(pYB{>b^CI*@2vGmGhVt-h9{QW^I3yk?^ z9cLY?9dhMu%otx!vnQn+hC@P+izn;I^EcXlRqX71?H#De;-tdMOALZ$AyeWdY#FLF zHi?MSzfxCb^|qI;*b8JT^@vW$?MjjW*htO(RyyBzoTQj2-nBtfsD3uaTf2#Lju)ce zqL^q&d~9N9RHtjp4%Z&WxV|9rU)D4wfjQ;OAUom;{!;qB1DsKeBXlk>LU%~;OA~Sw z<5(W)g)9!)#})(^^={NP>aoP`3-|DcB`Lltb1sIKKV@l)FA(THJs#;{?rD0Ah@Y3X+TR*}JGEzIRS8#Yw+>Q8 zTmSBqro7!^{Z%7Ws3m~y>;bB{ue+m2V^!C?2pEI3aT}rcZKipl1?xgTos%4~f>4#= z5sr7e5#Q9{UI%^VM0-vi4vL~gpMRnKq>|Ki3V+kA9ZL2cxc2;>Yh*_?yyw;MM*on7 zOq0_-797NS+XL@wcXFN_o7vn<+9dSYP||-^b+IU*-(GFCq?uGS!U8Ks+L2z2s$Ele zdCleBb&)~^rMO?pX^L7wjwTB77jfNoy1`0wSCZ@TyU}Y&O<)BloD5A6x`)LJQGjhQ zeTNh5>O^-5fMIu+ZSD*g2eg4-=N~r6l0@z&LS;gy w#CS0X7fXchG#V`-I+hk4DiVi9Il<99x47-n;B)!=^H2}quy{VTUV_ZO0IPt)?EnA( literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_human_greeting_white_24dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_human_greeting_white_24dp.png new file mode 100755 index 0000000000000000000000000000000000000000..a9ac8423ccc89de8993e98a6cc848be6062d44a5 GIT binary patch literal 1620 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 literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_information_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_information_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..19be0de61505055062702929a96be09ce764c618 GIT binary patch literal 3520 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 literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_message_white_48dp.png b/Examples/OneSignalDemoV2/app/src/main/res/drawable-xxxhdpi/ic_message_white_48dp.png new file mode 100755 index 0000000000000000000000000000000000000000..cc37ca735f4638860cfea2039a4cafbd166e3364 GIT binary patch literal 1304 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 N!2Ogbp$;FC`Y*zXC@25` literal 0 HcmV?d00001 diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable/divider.xml b/Examples/OneSignalDemoV2/app/src/main/res/drawable/divider.xml new file mode 100644 index 0000000000..453e94ec1c --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/res/drawable/divider.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_bottom_banner.xml b/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_bottom_banner.xml new file mode 100644 index 0000000000..b7ebb4d50c --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_bottom_banner.xml @@ -0,0 +1,10 @@ + + + + diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_center_modal.xml b/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_center_modal.xml new file mode 100644 index 0000000000..3b5c79de3a --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_center_modal.xml @@ -0,0 +1,10 @@ + + + + diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_close.xml b/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000000..91fdf6b539 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_close.xml @@ -0,0 +1,10 @@ + + + + diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_full_screen.xml b/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_full_screen.xml new file mode 100644 index 0000000000..395a5c9726 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_full_screen.xml @@ -0,0 +1,10 @@ + + + + diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_launcher_background.xml b/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000000..0d025f9bf6 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_launcher_foreground.xml b/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000000..1f6bb29060 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_top_banner.xml b/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_top_banner.xml new file mode 100644 index 0000000000..9898447aa2 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/res/drawable/ic_top_banner.xml @@ -0,0 +1,10 @@ + + + + diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable/no_divider.xml b/Examples/OneSignalDemoV2/app/src/main/res/drawable/no_divider.xml new file mode 100644 index 0000000000..d4943f5968 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/res/drawable/no_divider.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable/ripple_selector_red_white.xml b/Examples/OneSignalDemoV2/app/src/main/res/drawable/ripple_selector_red_white.xml new file mode 100644 index 0000000000..f3a53ae07f --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/res/drawable/ripple_selector_red_white.xml @@ -0,0 +1,10 @@ + + + + + + + + \ No newline at end of file diff --git a/Examples/OneSignalDemoV2/app/src/main/res/drawable/ripple_selector_white_red.xml b/Examples/OneSignalDemoV2/app/src/main/res/drawable/ripple_selector_white_red.xml new file mode 100644 index 0000000000..b042e412eb --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/res/drawable/ripple_selector_white_red.xml @@ -0,0 +1,11 @@ + + + + + + + + \ No newline at end of file diff --git a/Examples/OneSignalDemoV2/app/src/main/res/layout/activity_main.xml b/Examples/OneSignalDemoV2/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000000..5e8bf3e126 --- /dev/null +++ b/Examples/OneSignalDemoV2/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,895 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +