diff --git a/.gitignore b/.gitignore index 2e577d9c..746b7536 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ coverage/ # tsc # dist +android/build # OSX # diff --git a/android/build.gradle b/android/build.gradle index 54a1160c..6426f0fa 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -31,7 +31,7 @@ dependencies { // api is used instead of implementation so the parent :app project can access any of the OneSignal Java // classes if needed. Such as com.onesignal.NotificationExtenderService - api 'com.onesignal:OneSignal:5.1.35' + api 'com.onesignal:OneSignal:5.3.0-alpha-01' testImplementation 'junit:junit:4.12' } \ No newline at end of file diff --git a/android/src/main/java/com/onesignal/rnonesignalandroid/RNOneSignal.java b/android/src/main/java/com/onesignal/rnonesignalandroid/RNOneSignal.java index 773a8a3e..8004910f 100644 --- a/android/src/main/java/com/onesignal/rnonesignalandroid/RNOneSignal.java +++ b/android/src/main/java/com/onesignal/rnonesignalandroid/RNOneSignal.java @@ -35,11 +35,15 @@ of this software and associated documentation files (the "Software"), to deal package com.onesignal.rnonesignalandroid; +import java.util.HashMap; +import java.util.Map; + import android.content.Context; -import android.content.pm.ApplicationInfo; -import android.os.Bundle; -import com.onesignal.debug.internal.logging.Logging; -import com.facebook.react.bridge.Callback; + +import org.jetbrains.annotations.Nullable; +import org.json.JSONException; + +import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.LifecycleEventListener; import com.facebook.react.bridge.Promise; import com.facebook.react.bridge.ReactApplicationContext; @@ -48,39 +52,31 @@ of this software and associated documentation files (the "Software"), to deal import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.ReadableArray; import com.facebook.react.bridge.ReadableMap; -import com.facebook.react.modules.core.DeviceEventManagerModule; import com.facebook.react.bridge.WritableMap; -import com.facebook.react.bridge.Arguments; +import com.facebook.react.modules.core.DeviceEventManagerModule; import com.onesignal.Continue; import com.onesignal.OneSignal; -import com.onesignal.debug.LogLevel; import com.onesignal.common.OneSignalWrapper; -import com.onesignal.inAppMessages.IInAppMessage; -import com.onesignal.inAppMessages.IInAppMessageClickListener; +import com.onesignal.debug.LogLevel; +import com.onesignal.debug.internal.logging.Logging; import com.onesignal.inAppMessages.IInAppMessageClickEvent; -import com.onesignal.inAppMessages.IInAppMessageClickResult; -import com.onesignal.inAppMessages.IInAppMessageLifecycleListener; -import com.onesignal.inAppMessages.IInAppMessageWillDisplayEvent; +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.IInAppMessageDidDismissEvent; +import com.onesignal.inAppMessages.IInAppMessageWillDisplayEvent; import com.onesignal.notifications.INotification; -import com.onesignal.notifications.INotificationClickListener; import com.onesignal.notifications.INotificationClickEvent; +import com.onesignal.notifications.INotificationClickListener; import com.onesignal.notifications.INotificationLifecycleListener; import com.onesignal.notifications.INotificationWillDisplayEvent; import com.onesignal.notifications.IPermissionObserver; +import com.onesignal.user.state.IUserStateObserver; +import com.onesignal.user.state.UserChangedState; import com.onesignal.user.subscriptions.IPushSubscription; import com.onesignal.user.subscriptions.IPushSubscriptionObserver; -import com.onesignal.user.subscriptions.PushSubscriptionState; import com.onesignal.user.subscriptions.PushSubscriptionChangedState; -import com.onesignal.user.state.UserState; -import com.onesignal.user.state.UserChangedState; -import com.onesignal.user.state.IUserStateObserver; -import org.json.JSONException; - -import java.util.HashMap; -import java.util.Map; public class RNOneSignal extends ReactContextBaseJavaModule implements IPushSubscriptionObserver, @@ -739,4 +735,10 @@ public void addListener(String eventName) { public void removeListeners(int count) { // Keep: Required for RN built in Event Emitter Calls. } + + + @ReactMethod + public void trackEvent(String name, @Nullable ReadableMap properties) { + OneSignal.getUser().trackEvent(name, properties != null ? RNUtils.convertReadableMapIntoStringMap(properties) : null); + } } diff --git a/examples/RNOneSignalTS/.buckconfig b/examples/RNOneSignalTS/.buckconfig deleted file mode 100644 index 934256cb..00000000 --- a/examples/RNOneSignalTS/.buckconfig +++ /dev/null @@ -1,6 +0,0 @@ - -[android] - target = Google Inc.:Google APIs:23 - -[maven_repositories] - central = https://repo1.maven.org/maven2 diff --git a/examples/RNOneSignalTS/.bundle/config b/examples/RNOneSignalTS/.bundle/config new file mode 100644 index 00000000..848943bb --- /dev/null +++ b/examples/RNOneSignalTS/.bundle/config @@ -0,0 +1,2 @@ +BUNDLE_PATH: "vendor/bundle" +BUNDLE_FORCE_RUBY_PLATFORM: 1 diff --git a/examples/RNOneSignalTS/.eslintrc.js b/examples/RNOneSignalTS/.eslintrc.js index 18969972..187894b6 100644 --- a/examples/RNOneSignalTS/.eslintrc.js +++ b/examples/RNOneSignalTS/.eslintrc.js @@ -1,6 +1,4 @@ module.exports = { root: true, - extends: '@react-native-community', - parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint'], + extends: '@react-native', }; diff --git a/examples/RNOneSignalTS/.gitattributes b/examples/RNOneSignalTS/.gitattributes deleted file mode 100644 index d42ff183..00000000 --- a/examples/RNOneSignalTS/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.pbxproj -text diff --git a/examples/RNOneSignalTS/.gitignore b/examples/RNOneSignalTS/.gitignore index 6a5e410a..de999559 100644 --- a/examples/RNOneSignalTS/.gitignore +++ b/examples/RNOneSignalTS/.gitignore @@ -20,6 +20,7 @@ DerivedData *.hmap *.ipa *.xcuserstate +**/.xcode.env.local # Android/IntelliJ # @@ -28,10 +29,11 @@ build/ .gradle local.properties *.iml - -# Visual Studio Code -# -.vscode/ +*.hprof +.cxx/ +*.keystore +!debug.keystore +.kotlin/ # node.js # @@ -39,12 +41,6 @@ node_modules/ npm-debug.log yarn-error.log -# BUCK -buck-out/ -\.buckd/ -*.keystore -!debug.keystore - # fastlane # # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the @@ -52,12 +48,28 @@ buck-out/ # For more information about the recommended setup visit: # https://docs.fastlane.tools/best-practices/source-control/ -*/fastlane/report.xml -*/fastlane/Preview.html -*/fastlane/screenshots +**/fastlane/report.xml +**/fastlane/Preview.html +**/fastlane/screenshots +**/fastlane/test_output # Bundle artifact *.jsbundle -# CocoaPods -/ios/Pods/ +# Ruby / CocoaPods +**/Pods/ +/vendor/bundle/ + +# Temporary files created by Metro to check the health of the file watcher +.metro-health-check* + +# testing +/coverage + +# Yarn +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions diff --git a/examples/RNOneSignalTS/.prettierrc.js b/examples/RNOneSignalTS/.prettierrc.js index 5c4de1a4..06860c8d 100644 --- a/examples/RNOneSignalTS/.prettierrc.js +++ b/examples/RNOneSignalTS/.prettierrc.js @@ -1,6 +1,5 @@ module.exports = { - bracketSpacing: false, - jsxBracketSameLine: true, + arrowParens: 'avoid', singleQuote: true, trailingComma: 'all', }; diff --git a/examples/RNOneSignalTS/src/App.tsx b/examples/RNOneSignalTS/App.tsx similarity index 76% rename from examples/RNOneSignalTS/src/App.tsx rename to examples/RNOneSignalTS/App.tsx index d4d8beea..383d8776 100644 --- a/examples/RNOneSignalTS/src/App.tsx +++ b/examples/RNOneSignalTS/App.tsx @@ -9,15 +9,8 @@ */ import React from 'react'; -import { - SafeAreaView, - StyleSheet, - ScrollView, - View, - StatusBar, -} from 'react-native'; +import {StatusBar, StyleSheet, View} from 'react-native'; -import {Colors} from 'react-native/Libraries/NewAppScreen'; import OSDemo from './OSDemo'; declare const global: {HermesInternal: null | {}}; @@ -36,7 +29,7 @@ const App = () => { const styles = StyleSheet.create({ body: { flex: 1, - backgroundColor: Colors.white, + backgroundColor: '#ffffff', padding: 10, }, }); diff --git a/examples/RNOneSignalTS/Gemfile b/examples/RNOneSignalTS/Gemfile new file mode 100644 index 00000000..6a4c5f17 --- /dev/null +++ b/examples/RNOneSignalTS/Gemfile @@ -0,0 +1,16 @@ +source 'https://rubygems.org' + +# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version +ruby ">= 2.6.10" + +# Exclude problematic versions of cocoapods and activesupport that causes build failures. +gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1' +gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0' +gem 'xcodeproj', '< 1.26.0' +gem 'concurrent-ruby', '< 1.3.4' + +# Ruby 3.4.0 has removed some libraries from the standard library. +gem 'bigdecimal' +gem 'logger' +gem 'benchmark' +gem 'mutex_m' diff --git a/examples/RNOneSignalTS/src/Helpers.tsx b/examples/RNOneSignalTS/Helpers.tsx similarity index 66% rename from examples/RNOneSignalTS/src/Helpers.tsx rename to examples/RNOneSignalTS/Helpers.tsx index 43406953..a95e7d28 100644 --- a/examples/RNOneSignalTS/src/Helpers.tsx +++ b/examples/RNOneSignalTS/Helpers.tsx @@ -1,26 +1,24 @@ -import * as React from 'react'; import { - View, - StyleSheet, - Platform, KeyboardAvoidingView, + StyleSheet, + Text, TextInput, + TouchableOpacity, } from 'react-native'; -import {Button} from '@react-native-material/core'; -const disabledColor = '#BEBEBE'; +// const disabledColor = '#BEBEBE'; export const renderButtonView = (name: string, callback: Function) => { return ( - -