rho-tau-extensions 6.2.0 → 7.1.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/libs/crosswalk/ext/platform/android/Rakefile +19 -1
- data/libs/enterprise-barcode/ext/platform/android/adds/lib/aarch64/liballbarcode.a +0 -0
- data/libs/enterprise-barcode/ext/platform/android/adds/lib/armeabi/liballbarcode.a +0 -0
- data/libs/enterprise-barcode/ext/platform/android/adds/lib/x86/liballbarcode.a +0 -0
- data/libs/enterprise-barcode/ext/platform/android/allbarcode.jar +0 -0
- data/libs/fcm-push-18/ext.yml +20 -0
- data/libs/fcm-push-18/ext/android/AndroidManifest.rb +10 -0
- data/libs/fcm-push-18/ext/android/ApplicationManifestAdds.erb +39 -0
- data/libs/fcm-push-18/ext/android/Rakefile +187 -0
- data/libs/fcm-push-18/ext/android/ext_java.files +3 -0
- data/libs/fcm-push-18/ext/android/ext_native.files +1 -0
- data/libs/fcm-push-18/ext/android/jni/src/fcmpushclient.cpp +215 -0
- data/libs/fcm-push-18/ext/android/jni/src/fcmpushclient.h +74 -0
- data/libs/fcm-push-18/ext/android/res/res/values/fireBaseValues.xml +5 -0
- data/libs/fcm-push-18/ext/android/src/com/rhomobile/rhodes/fcm/FCMFacade.java +164 -0
- data/libs/fcm-push-18/ext/android/src/com/rhomobile/rhodes/fcm/FCMIntentService.java +219 -0
- data/libs/fcm-push-18/ext/android/src/com/rhomobile/rhodes/fcm/FCMListener.java +88 -0
- data/libs/fcm-push-18/ext/build +16 -0
- data/libs/fcm-push-18/ext/build.bat +8 -0
- data/libs/fcm-push-18/ext/fcm.xml +9 -0
- data/libs/fcm-push-18/ext/iphone/ApplePush_Prefix.pch +7 -0
- data/libs/fcm-push-18/ext/iphone/Firebase.h +68 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +62 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +115 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsConfiguration.h +1 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsSwiftNameSupport.h +13 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRApp.h +1 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRConfiguration.h +1 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIREventNames.h +389 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIROptions.h +1 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +485 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +15 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +10 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Modules/module.modulemap +10 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseCore.framework/FirebaseCore +0 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseCore.framework/Headers/FIRAnalyticsConfiguration.h +52 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseCore.framework/Headers/FIRApp.h +130 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseCore.framework/Headers/FIRConfiguration.h +78 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseCore.framework/Headers/FIRLoggerLevel.h +35 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseCore.framework/Headers/FIROptions.h +133 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseCore.framework/Headers/FirebaseCore.h +5 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseCore.framework/Modules/module.modulemap +7 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics +0 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseCoreDiagnostics.framework/Modules/module.modulemap +6 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID +0 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseInstanceID.framework/Headers/FIRInstanceID.h +276 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID.h +1 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseInstanceID.framework/Modules/module.modulemap +7 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseMessaging.framework/FirebaseMessaging +0 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseMessaging.framework/Headers/FIRMessaging.h +508 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseMessaging.framework/Headers/FirebaseMessaging.h +1 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseMessaging.framework/Modules/module.modulemap +8 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseNanoPB.framework/FirebaseNanoPB +0 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/GoogleToolboxForMac.framework/GoogleToolboxForMac +0 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/GoogleToolboxForMac.framework/Modules/module.modulemap +5 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/Protobuf.framework/Modules/module.modulemap +5 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/Protobuf.framework/Protobuf +0 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/nanopb.framework/Modules/module.modulemap +5 -0
- data/libs/fcm-push-18/ext/iphone/Frameworks/nanopb.framework/nanopb +0 -0
- data/libs/fcm-push-18/ext/iphone/Rakefile +81 -0
- data/libs/fcm-push-18/ext/iphone/fcm-push.xcodeproj/project.pbxproj +370 -0
- data/libs/fcm-push-18/ext/iphone/impl/PushNotificationsReceiver.h +28 -0
- data/libs/fcm-push-18/ext/iphone/impl/PushNotificationsReceiver.m +27 -0
- data/libs/fcm-push-18/ext/iphone/impl/PushNotificationsReceiver.mm +234 -0
- data/libs/fcm-push-18/ext/iphone/impl/applePushSetup.c +10 -0
- data/libs/fcm-push-18/ext/iphone/impl/applepushclient.h +69 -0
- data/libs/fcm-push-18/ext/iphone/impl/applepushclient.mm +164 -0
- data/libs/fcm-push-18/ext/iphone/impl/readme.txt +7 -0
- data/libs/fcm-push-18/ext/platform/iphone/impl/readme.txt +7 -0
- data/libs/nodejs/ext/platform/android/jxCore/jx.h +17 -1
- data/libs/nodejs/ext/platform/android/jxCore/libcares_arm.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libcares_ia32.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libcares_x64.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libchrome_zlib_arm.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libchrome_zlib_ia32.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libchrome_zlib_x64.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libhttp_parser_arm.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libhttp_parser_ia32.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libhttp_parser_x64.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libjx_arm.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libjx_ia32.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libjx_x64.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libopenssl_arm.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libopenssl_ia32.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libopenssl_x64.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libsqlite3_arm.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libsqlite3_ia32.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libsqlite3_x64.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libuv_arm.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libuv_ia32.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libuv_x64.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libv8_base_arm.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libv8_base_ia32.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libv8_base_x64.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libv8_nosnapshot_arm.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libv8_nosnapshot_ia32.a +0 -0
- data/libs/nodejs/ext/platform/android/jxCore/libv8_nosnapshot_x64.a +0 -0
- data/libs/nodejs/ext/platform/iphone/jxCore/jx.h +17 -1
- data/libs/nodejs/ext/platform/iphone/jxCore/libcares.a +0 -0
- data/libs/nodejs/ext/platform/iphone/jxCore/libchrome_zlib.a +0 -0
- data/libs/nodejs/ext/platform/iphone/jxCore/libhttp_parser.a +0 -0
- data/libs/nodejs/ext/platform/iphone/jxCore/libjx.a +0 -0
- data/libs/nodejs/ext/platform/iphone/jxCore/libmozjs.a +0 -0
- data/libs/nodejs/ext/platform/iphone/jxCore/libopenssl.a +0 -0
- data/libs/nodejs/ext/platform/iphone/jxCore/libsqlite3.a +0 -0
- data/libs/nodejs/ext/platform/iphone/jxCore/libuv.a +0 -0
- data/libs/rexml-edge/rexml/attlistdecl.rb +63 -0
- data/libs/rexml-edge/rexml/attribute.rb +192 -0
- data/libs/rexml-edge/rexml/cdata.rb +68 -0
- data/libs/rexml-edge/rexml/child.rb +97 -0
- data/libs/rexml-edge/rexml/comment.rb +80 -0
- data/libs/rexml-edge/rexml/doctype.rb +270 -0
- data/libs/rexml-edge/rexml/document.rb +291 -0
- data/libs/rexml-edge/rexml/dtd/attlistdecl.rb +11 -0
- data/libs/rexml-edge/rexml/dtd/dtd.rb +47 -0
- data/libs/rexml-edge/rexml/dtd/elementdecl.rb +18 -0
- data/libs/rexml-edge/rexml/dtd/entitydecl.rb +57 -0
- data/libs/rexml-edge/rexml/dtd/notationdecl.rb +40 -0
- data/libs/rexml-edge/rexml/element.rb +1241 -0
- data/libs/rexml-edge/rexml/encoding.rb +51 -0
- data/libs/rexml-edge/rexml/entity.rb +174 -0
- data/libs/rexml-edge/rexml/formatters/default.rb +112 -0
- data/libs/rexml-edge/rexml/formatters/pretty.rb +142 -0
- data/libs/rexml-edge/rexml/formatters/transitive.rb +58 -0
- data/libs/rexml-edge/rexml/functions.rb +418 -0
- data/libs/rexml-edge/rexml/instruction.rb +71 -0
- data/libs/rexml-edge/rexml/light/node.rb +196 -0
- data/libs/rexml-edge/rexml/namespace.rb +48 -0
- data/libs/rexml-edge/rexml/node.rb +76 -0
- data/libs/rexml-edge/rexml/output.rb +30 -0
- data/libs/rexml-edge/rexml/parent.rb +166 -0
- data/libs/rexml-edge/rexml/parseexception.rb +52 -0
- data/libs/rexml-edge/rexml/parsers/baseparser.rb +533 -0
- data/libs/rexml-edge/rexml/parsers/lightparser.rb +59 -0
- data/libs/rexml-edge/rexml/parsers/pullparser.rb +197 -0
- data/libs/rexml-edge/rexml/parsers/sax2parser.rb +273 -0
- data/libs/rexml-edge/rexml/parsers/streamparser.rb +61 -0
- data/libs/rexml-edge/rexml/parsers/treeparser.rb +101 -0
- data/libs/rexml-edge/rexml/parsers/ultralightparser.rb +57 -0
- data/libs/rexml-edge/rexml/parsers/xpathparser.rb +657 -0
- data/libs/rexml-edge/rexml/quickpath.rb +266 -0
- data/libs/rexml-edge/rexml/rexml.rb +32 -0
- data/libs/rexml-edge/rexml/sax2listener.rb +98 -0
- data/libs/rexml-edge/rexml/security.rb +28 -0
- data/libs/rexml-edge/rexml/source.rb +297 -0
- data/libs/rexml-edge/rexml/streamlistener.rb +93 -0
- data/libs/rexml-edge/rexml/syncenumerator.rb +33 -0
- data/libs/rexml-edge/rexml/text.rb +426 -0
- data/libs/rexml-edge/rexml/undefinednamespaceexception.rb +9 -0
- data/libs/rexml-edge/rexml/validation/relaxng.rb +539 -0
- data/libs/rexml-edge/rexml/validation/validation.rb +144 -0
- data/libs/rexml-edge/rexml/validation/validationexception.rb +10 -0
- data/libs/rexml-edge/rexml/xmldecl.rb +116 -0
- data/libs/rexml-edge/rexml/xmltokens.rb +85 -0
- data/libs/rexml-edge/rexml/xpath.rb +81 -0
- data/libs/rexml-edge/rexml/xpath_parser.rb +704 -0
- data/version +1 -1
- metadata +118 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c7abd2b22f8aaff6b3d8c15f4eaf207dca261b82
|
4
|
+
data.tar.gz: 37fbf2d341cd389c85a70fd0f4f91d6df49092ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7c539de5fb125d67b5eac7c6b01488eca73a10e8749d6011a7524c601ed1579697fe4fb9703c8c8f492e478ef8fc5e83b283753c277e4e8ad8e50cb86c1fa305
|
7
|
+
data.tar.gz: 732f00615d541d3f9aeb7af723fcf797f3a37e00d6715bb9040c9a8326416ccfaf5911dd3f4fd3f2a2ad1d9d92fd741bb39c25cc5f4526f4dd71b08f81e0cca5
|
@@ -52,21 +52,24 @@ ARGS = ['-Iext/platform/android/generated/jni',
|
|
52
52
|
OBJDIR_ARM = File.join(OBJDIR,'arm')
|
53
53
|
OBJDIR_x86 = File.join(OBJDIR,'x86')
|
54
54
|
OBJDIR_MIPS = File.join(OBJDIR,'mips')
|
55
|
-
|
55
|
+
OBJDIR_AARCH64 = File.join(OBJDIR,'aarch64')
|
56
56
|
|
57
57
|
SRC = get_sources File.join(SOURCELIST)
|
58
58
|
|
59
59
|
OBJ_ARM = FileList.new(get_objects(SRC, OBJDIR_ARM))
|
60
60
|
OBJ_x86 = FileList.new(get_objects(SRC, OBJDIR_x86))
|
61
61
|
OBJ_MIPS = FileList.new(get_objects(SRC, OBJDIR_MIPS))
|
62
|
+
OBJ_AARCH64 = FileList.new(get_objects(SRC, OBJDIR_AARCH64))
|
62
63
|
|
63
64
|
TARGETDIR_ARM = File.join(TARGETDIR,'armeabi')
|
64
65
|
TARGETDIR_x86 = File.join(TARGETDIR,'x86')
|
65
66
|
TARGETDIR_MIPS = File.join(TARGETDIR,'mips')
|
67
|
+
TARGETDIR_AARCH64 = File.join(TARGETDIR,'aarch64')
|
66
68
|
|
67
69
|
TARGETLIB_ARM = File.join(TARGETDIR_ARM,TARGETLIB)
|
68
70
|
TARGETLIB_x86 = File.join(TARGETDIR_x86,TARGETLIB)
|
69
71
|
TARGETLIB_MIPS = File.join(TARGETDIR_MIPS,TARGETLIB)
|
72
|
+
TARGETLIB_AARCH64 = File.join(TARGETDIR_AARCH64,TARGETLIB)
|
70
73
|
|
71
74
|
cd '../../..'
|
72
75
|
|
@@ -82,14 +85,20 @@ namespace 'config' do
|
|
82
85
|
task :mips do
|
83
86
|
setup_ndk(ANDROID_NDK, ANDROID_API_LEVEL,'mips')
|
84
87
|
end
|
88
|
+
|
89
|
+
task :aarch64 do
|
90
|
+
setup_ndk(ANDROID_NDK, ANDROID_API_LEVEL,'aarch64')
|
91
|
+
end
|
85
92
|
end
|
86
93
|
|
87
94
|
directory TARGETDIR_ARM
|
88
95
|
directory TARGETDIR_x86
|
89
96
|
directory TARGETDIR_MIPS
|
97
|
+
directory TARGETDIR_AARCH64
|
90
98
|
directory OBJDIR_ARM
|
91
99
|
directory OBJDIR_x86
|
92
100
|
directory OBJDIR_MIPS
|
101
|
+
directory OBJDIR_AARCH64
|
93
102
|
|
94
103
|
rule '.o' => lambda {|obj| find_source(obj) } do |t|
|
95
104
|
abi = File.basename(File.dirname(t.name))
|
@@ -100,6 +109,7 @@ end
|
|
100
109
|
task OBJ_ARM => OBJDIR_ARM
|
101
110
|
task OBJ_x86 => OBJDIR_x86
|
102
111
|
task OBJ_MIPS => OBJDIR_MIPS
|
112
|
+
task OBJ_AARCH64 => OBJDIR_AARCH64
|
103
113
|
|
104
114
|
def find_source(objfile)
|
105
115
|
base = File.basename(objfile, '.o')
|
@@ -125,17 +135,25 @@ file TARGETLIB_MIPS => TARGETDIR_MIPS do |t|
|
|
125
135
|
end
|
126
136
|
multitask TARGETLIB_MIPS => OBJ_MIPS
|
127
137
|
|
138
|
+
file TARGETLIB_AARCH64 => TARGETDIR_AARCH64 do |t|
|
139
|
+
Rake::Task["config:aarch64"].invoke
|
140
|
+
cc_ar t.name, OBJ_AARCH64 or raise "\e[31mCreating library failed: #{t.name}\e[0m"
|
141
|
+
end
|
142
|
+
multitask TARGETLIB_AARCH64 => OBJ_AARCH64
|
143
|
+
|
128
144
|
|
129
145
|
namespace 'build' do
|
130
146
|
task :arm => OBJ_ARM
|
131
147
|
task :x86 => OBJ_x86
|
132
148
|
task :mips => OBJ_MIPS
|
149
|
+
task :aarch64 => OBJ_AARCH64
|
133
150
|
end
|
134
151
|
|
135
152
|
namespace 'arch' do
|
136
153
|
task :arm => TARGETLIB_ARM
|
137
154
|
task :x86 => TARGETLIB_x86
|
138
155
|
task :mips => TARGETLIB_MIPS
|
156
|
+
task :aarch64 => TARGETLIB_AARCH64
|
139
157
|
end
|
140
158
|
|
141
159
|
task :default => ["arch:arm"]
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,20 @@
|
|
1
|
+
entry: Init_FCMPush_extension
|
2
|
+
iphone:
|
3
|
+
javaentry: com.applepush.ApplePush
|
4
|
+
android:
|
5
|
+
exttype: rakefile
|
6
|
+
manifest_changes:
|
7
|
+
- ext/android/AndroidManifest.rb
|
8
|
+
- ext/android/ApplicationManifestAdds.erb
|
9
|
+
library_deps: [extras/google/google_play_services/libproject/google-play-services_lib]
|
10
|
+
source_list: ext/android/ext_java.files
|
11
|
+
maven_deps:
|
12
|
+
- 'com.google.firebase:firebase-core:16.0.0'
|
13
|
+
- 'com.google.firebase:firebase-messaging:18.0.0'
|
14
|
+
- 'com.google.android.gms:play-services-auth:16.0.0'
|
15
|
+
- 'com.google.gms:google-services:4.2.0'
|
16
|
+
- 'com.android.support:support-v4:27.0.0'
|
17
|
+
adds: ext/android/res
|
18
|
+
libraries: ['fcm-push-18']
|
19
|
+
xml_api_paths: ext/fcm.xml
|
20
|
+
#will work with newer SDKs
|
@@ -0,0 +1,10 @@
|
|
1
|
+
generator.permissions["#{$app_package_name}.permission.C2D_MESSAGE"] = 'signature'
|
2
|
+
generator.usesPermissions << "#{$app_package_name}.permission.C2D_MESSAGE"
|
3
|
+
generator.usesPermissions << 'com.google.android.c2dm.permission.RECEIVE'
|
4
|
+
generator.usesPermissions << 'android.permission.GET_ACCOUNTS'
|
5
|
+
generator.usesPermissions << 'android.permission.WAKE_LOCK'
|
6
|
+
generator.usesPermissions << 'android.permission.INTERNET'
|
7
|
+
generator.usesPermissions << 'android.permission.RECEIVE_BOOT_COMPLETED'
|
8
|
+
generator.usesPermissions << 'android.permission.ACCESS_NETWORK_STATE'
|
9
|
+
generator.usesPermissions << 'com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE'
|
10
|
+
generator.usesPermissions << 'com.google.android.c2dm.permission.RECEIVE'
|
@@ -0,0 +1,39 @@
|
|
1
|
+
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
|
2
|
+
|
3
|
+
<service android:exported="false" android:name="com.rhomobile.rhodes.fcm.FCMIntentService">
|
4
|
+
<intent-filter android:priority="900">
|
5
|
+
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
|
6
|
+
</intent-filter>
|
7
|
+
</service>
|
8
|
+
|
9
|
+
<provider
|
10
|
+
android:name="com.google.firebase.provider.FirebaseInitProvider"
|
11
|
+
android:authorities="<%=@appPackageName%>.firebaseinitprovider"
|
12
|
+
android:exported="false"
|
13
|
+
android:initOrder="100" />
|
14
|
+
|
15
|
+
<service
|
16
|
+
android:name="com.google.firebase.components.ComponentDiscoveryService"
|
17
|
+
android:exported="false" >
|
18
|
+
<meta-data
|
19
|
+
android:name="com.google.firebase.components:com.google.firebase.iid.Registrar"
|
20
|
+
android:value="com.google.firebase.components.ComponentRegistrar" />
|
21
|
+
</service>
|
22
|
+
|
23
|
+
<receiver
|
24
|
+
android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver"
|
25
|
+
android:exported="true"
|
26
|
+
android:permission="com.google.android.c2dm.permission.SEND" >
|
27
|
+
<intent-filter>
|
28
|
+
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
|
29
|
+
</intent-filter>
|
30
|
+
</receiver>
|
31
|
+
|
32
|
+
<service
|
33
|
+
android:name="com.google.firebase.messaging.FirebaseMessagingService"
|
34
|
+
android:exported="false" >
|
35
|
+
<intent-filter android:priority="-500" >
|
36
|
+
<action android:name="com.google.firebase.MESSAGING_EVENT" />
|
37
|
+
</intent-filter>
|
38
|
+
</service>
|
39
|
+
|
@@ -0,0 +1,187 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
$curdir = pwd
|
6
|
+
TARGETDIR = ENV['TARGET_TEMP_DIR']
|
7
|
+
raise "TARGET_TEMP_DIR is not set" if TARGETDIR.nil?
|
8
|
+
OBJDIR = ENV['TEMP_FILES_DIR']
|
9
|
+
raise "TEMP_FILES_DIR is not set" if OBJDIR.nil?
|
10
|
+
$rootdir = ENV['RHO_ROOT']
|
11
|
+
raise "RHO_ROOT is not set" if $rootdir.nil?
|
12
|
+
$appincdir = ENV["RHO_INC"]
|
13
|
+
raise "RHO_INC is not set" if $appincdir.nil?
|
14
|
+
$androidndkpath = ENV['ANDROID_NDK']
|
15
|
+
raise 'ANDROID_NDK is not set' if $androidndkpath.nil?
|
16
|
+
$androidsdk = ENV['ANDROID_SDK']
|
17
|
+
raise 'ANDROID_SDK is not set' unless $androidsdk
|
18
|
+
TARGETLIB = ENV['TARGETLIB']
|
19
|
+
raise 'TARGETLIB is not set' if ENV['TARGETLIB'].nil?
|
20
|
+
$app_dir = ENV["RHO_APP_DIR"]
|
21
|
+
raise "RHO_APP_DIR is not set" if $app_dir.nil?
|
22
|
+
|
23
|
+
require File.join($rootdir, 'platform/android/build/androidcommon.rb')
|
24
|
+
ARGS = [
|
25
|
+
"#{$curdir}/ext/android/jni/src",
|
26
|
+
"#{$rootdir}/platform/android/Rhodes/jni/include",
|
27
|
+
"#{$rootdir}/platform/android/Rhodes/jni/include/rhodes/details",
|
28
|
+
"#{$rootdir}/platform/shared/ruby/include",
|
29
|
+
"#{$rootdir}/platform/shared",
|
30
|
+
"#{$rootdir}/platform/shared/common",
|
31
|
+
"#{$rootdir}/platform/shared/api_generator",
|
32
|
+
"#{$appincdir}",
|
33
|
+
"#{$rootdir}/platform/shared/ruby",
|
34
|
+
"#{$rootdir}/platform/shared/ruby/android",
|
35
|
+
"#{$rootdir}/platform/shared/ruby/generated",
|
36
|
+
"#{$rootdir}/lib/commonAPI/coreapi/ext/shared"
|
37
|
+
].map{|i| "-I\"#{i}\""}
|
38
|
+
|
39
|
+
OBJDIR_ARM = File.join(OBJDIR,'arm')
|
40
|
+
OBJDIR_x86 = File.join(OBJDIR,'x86')
|
41
|
+
OBJDIR_MIPS = File.join(OBJDIR,'mips')
|
42
|
+
OBJDIR_AARCH64 = File.join(OBJDIR,'aarch64')
|
43
|
+
|
44
|
+
SRC = get_sources File.join($curdir, 'ext_native.files')
|
45
|
+
|
46
|
+
OBJ_ARM = FileList.new(get_objects(SRC, OBJDIR_ARM))
|
47
|
+
OBJ_x86 = FileList.new(get_objects(SRC, OBJDIR_x86))
|
48
|
+
OBJ_MIPS = FileList.new(get_objects(SRC, OBJDIR_MIPS))
|
49
|
+
OBJ_AARCH64 = FileList.new(get_objects(SRC, OBJDIR_AARCH64))
|
50
|
+
|
51
|
+
TARGETDIR_ARM = File.join(TARGETDIR,'armeabi')
|
52
|
+
TARGETDIR_x86 = File.join(TARGETDIR,'x86')
|
53
|
+
TARGETDIR_MIPS = File.join(TARGETDIR,'mips')
|
54
|
+
TARGETDIR_AARCH64 = File.join(TARGETDIR,'aarch64')
|
55
|
+
|
56
|
+
TARGETLIB_ARM = File.join(TARGETDIR_ARM,TARGETLIB)
|
57
|
+
TARGETLIB_x86 = File.join(TARGETDIR_x86,TARGETLIB)
|
58
|
+
TARGETLIB_MIPS = File.join(TARGETDIR_MIPS,TARGETLIB)
|
59
|
+
TARGETLIB_AARCH64 = File.join(TARGETDIR_AARCH64,TARGETLIB)
|
60
|
+
#FCMJAR = File.join(TARGETDIR,'fcm.jar')
|
61
|
+
|
62
|
+
cd '../..'
|
63
|
+
|
64
|
+
namespace 'config' do
|
65
|
+
task :arm do
|
66
|
+
setup_ndk(ENV['ANDROID_NDK'],ENV['ANDROID_API_LEVEL'],'arm')
|
67
|
+
end
|
68
|
+
|
69
|
+
task :x86 do
|
70
|
+
setup_ndk(ENV['ANDROID_NDK'],ENV['ANDROID_API_LEVEL'],'x86')
|
71
|
+
end
|
72
|
+
|
73
|
+
task :mips do
|
74
|
+
setup_ndk(ENV['ANDROID_NDK'],ENV['ANDROID_API_LEVEL'],'mips')
|
75
|
+
end
|
76
|
+
|
77
|
+
task :aarch64 do
|
78
|
+
setup_ndk(ENV['ANDROID_NDK'],ENV['ANDROID_API_LEVEL'],'aarch64')
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
directory TARGETDIR
|
83
|
+
directory TARGETDIR_ARM => TARGETDIR
|
84
|
+
directory TARGETDIR_x86 => TARGETDIR
|
85
|
+
directory TARGETDIR_MIPS => TARGETDIR
|
86
|
+
directory TARGETDIR_AARCH64 => TARGETDIR
|
87
|
+
directory OBJDIR_ARM
|
88
|
+
directory OBJDIR_x86
|
89
|
+
directory OBJDIR_MIPS
|
90
|
+
directory OBJDIR_AARCH64
|
91
|
+
|
92
|
+
rule '.o' => lambda {|obj| find_source(obj) } do |t|
|
93
|
+
abi = File.basename(File.dirname(t.name))
|
94
|
+
Rake::Task["config:#{abi}"].invoke
|
95
|
+
cc_compile find_source(t.name), File.dirname(t.name), ARGS or raise "\e[31mCompilation failed: #{find_source(t.name)}\e[0m"
|
96
|
+
end
|
97
|
+
|
98
|
+
task OBJ_ARM => OBJDIR_ARM
|
99
|
+
task OBJ_x86 => OBJDIR_x86
|
100
|
+
task OBJ_MIPS => OBJDIR_MIPS
|
101
|
+
task OBJ_AARCH64 => OBJDIR_AARCH64
|
102
|
+
|
103
|
+
def find_source(objfile)
|
104
|
+
base = File.basename(objfile, '.o')
|
105
|
+
src = SRC.find { |s| File.basename(s) == base }
|
106
|
+
raise "\e[31mSource does not exist: #{src}\e[0m" unless File.exists?(src)
|
107
|
+
src
|
108
|
+
end
|
109
|
+
|
110
|
+
file TARGETLIB_ARM => TARGETDIR_ARM do |t|
|
111
|
+
Rake::Task["config:arm"].invoke
|
112
|
+
cc_ar t.name, OBJ_ARM or raise "\e[31mCreating library failed: #{t.name}\e[0m"
|
113
|
+
end
|
114
|
+
multitask TARGETLIB_ARM => OBJ_ARM
|
115
|
+
|
116
|
+
file TARGETLIB_x86 => TARGETDIR_x86 do |t|
|
117
|
+
Rake::Task["config:x86"].invoke
|
118
|
+
cc_ar t.name, OBJ_x86 or raise "\e[31mCreating library failed: #{t.name}\e[0m"
|
119
|
+
end
|
120
|
+
multitask TARGETLIB_x86 => OBJ_x86
|
121
|
+
|
122
|
+
file TARGETLIB_MIPS => TARGETDIR_MIPS do |t|
|
123
|
+
Rake::Task["config:mips"].invoke
|
124
|
+
cc_ar t.name, OBJ_MIPS or raise "\e[31mCreating library failed: #{t.name}\e[0m"
|
125
|
+
end
|
126
|
+
multitask TARGETLIB_MIPS => OBJ_MIPS
|
127
|
+
|
128
|
+
file TARGETLIB_AARCH64 => TARGETDIR_AARCH64 do |t|
|
129
|
+
Rake::Task["config:aarch64"].invoke
|
130
|
+
cc_ar t.name, OBJ_AARCH64 or raise "\e[31mCreating library failed: #{t.name}\e[0m"
|
131
|
+
end
|
132
|
+
multitask TARGETLIB_AARCH64 => OBJ_AARCH64
|
133
|
+
|
134
|
+
|
135
|
+
$jsonfile = File.read(File.join($app_dir, 'google-services.json')) if File.exists?(File.join($app_dir, 'google-services.json'))
|
136
|
+
|
137
|
+
$xmlFileWithDataFromJson = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>"
|
138
|
+
def add_data_to_string(name, dataFromJson)
|
139
|
+
$xmlFileWithDataFromJson << "\n\t<string name=\"" << name << "\" translatable=\"false\">" <<
|
140
|
+
$jsonfile.scan(/#{dataFromJson}.*\".*\"/).last.scan(/:.*\".*\"/).last.scan(/\".*\"/).last.gsub("\"","") << "</string>"
|
141
|
+
end
|
142
|
+
|
143
|
+
def createXmlFromJson()
|
144
|
+
puts "Creating values.xml from google-sevices.json" if $jsonfile
|
145
|
+
add_data_to_string("default_web_client_id", "client_id") if $jsonfile
|
146
|
+
add_data_to_string("firebase_database_url", "firebase_url") if $jsonfile
|
147
|
+
|
148
|
+
if ENV["CUSTOM_FCM_SENDER_ID"].nil?
|
149
|
+
add_data_to_string("gcm_defaultSenderId", "project_number") if $jsonfile
|
150
|
+
else
|
151
|
+
$xmlFileWithDataFromJson << "\n\t<string name=\"gcm_defaultSenderId\" translatable=\"false\">" <<
|
152
|
+
ENV["CUSTOM_FCM_SENDER_ID"] << "</string>"
|
153
|
+
end
|
154
|
+
add_data_to_string("google_api_key", "current_key") if $jsonfile
|
155
|
+
|
156
|
+
if ENV["CUSTOM_FCM_APPLICATION_ID"].nil?
|
157
|
+
ENV["CUSTOM_FCM_APPLICATION_ID"] = $jsonfile.scan(/"mobilesdk_app_id".*\".*\"/).last.scan(/:.*\".*\"/).last.scan(/\".*\"/).last.gsub("\"","")
|
158
|
+
add_data_to_string("google_app_id", "mobilesdk_app_id") if $jsonfile
|
159
|
+
else
|
160
|
+
$xmlFileWithDataFromJson << "\n\t<string name=\"google_app_id\" translatable=\"false\">" <<
|
161
|
+
ENV["CUSTOM_FCM_APPLICATION_ID"] << "</string>"
|
162
|
+
end
|
163
|
+
add_data_to_string("google_crash_reporting_api_key", "current_key") if $jsonfile
|
164
|
+
add_data_to_string("google_storage_bucket", "storage_bucket") if $jsonfile
|
165
|
+
add_data_to_string("project_id", "project_id") if $jsonfile
|
166
|
+
|
167
|
+
$xmlFileWithDataFromJson << "\n</resources>"
|
168
|
+
resGoogleDir = File.join($curdir, 'res', 'res', 'values')
|
169
|
+
#resDebug = File.join(resGoogleDir, 'debug')
|
170
|
+
#resRelease = File.join(resGoogleDir, 'release')
|
171
|
+
#FileUtils.mkdir_p(resDebug) unless File.exists?(resDebug)
|
172
|
+
FileUtils.mkdir_p(resGoogleDir) unless File.exists?(resGoogleDir)
|
173
|
+
#File.open(File.join(resDebug, 'values.xml'), 'w') {|f| f.write($xmlFileWithDataFromJson) }
|
174
|
+
File.open(File.join(resGoogleDir, 'fireBaseValues.xml'), 'w') {|f| f.write($xmlFileWithDataFromJson) }
|
175
|
+
puts "fireBaseValues.xml created"
|
176
|
+
end
|
177
|
+
|
178
|
+
createXmlFromJson()
|
179
|
+
|
180
|
+
namespace 'arch' do
|
181
|
+
task :arm => [TARGETLIB_ARM]
|
182
|
+
task :x86 => [TARGETLIB_x86]
|
183
|
+
task :mips => [TARGETLIB_MIPS]
|
184
|
+
task :aarch64 => [TARGETLIB_AARCH64]
|
185
|
+
end
|
186
|
+
|
187
|
+
task :default => ["arch:arm", "arch:x86"]
|
@@ -0,0 +1 @@
|
|
1
|
+
ext/android/jni/src/fcmpushclient.cpp
|
@@ -0,0 +1,215 @@
|
|
1
|
+
/*------------------------------------------------------------------------
|
2
|
+
* (The MIT License)
|
3
|
+
*
|
4
|
+
* Copyright (c) 2008-2012 Rhomobile, Inc.
|
5
|
+
*
|
6
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
|
+
* of this software and associated documentation files (the "Software"), to deal
|
8
|
+
* in the Software without restriction, including without limitation the rights
|
9
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
|
+
* copies of the Software, and to permit persons to whom the Software is
|
11
|
+
* furnished to do so, subject to the following conditions:
|
12
|
+
*
|
13
|
+
* The above copyright notice and this permission notice shall be included in
|
14
|
+
* all copies or substantial portions of the Software.
|
15
|
+
*
|
16
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
19
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22
|
+
* THE SOFTWARE.
|
23
|
+
*
|
24
|
+
* http://rhomobile.com
|
25
|
+
*------------------------------------------------------------------------*/
|
26
|
+
|
27
|
+
#include "rhodes/JNIRhodes.h"
|
28
|
+
#include "common/RhoConf.h"
|
29
|
+
#include "Push.h"
|
30
|
+
#include "sync/RhoconnectClientManager.h"
|
31
|
+
#include "sync/ILoginListener.h"
|
32
|
+
#include "ruby/ext/rho/rhoruby.h"
|
33
|
+
|
34
|
+
#include "logging/RhoLog.h"
|
35
|
+
|
36
|
+
#include "fcmpushclient.h"
|
37
|
+
|
38
|
+
//----------------------------------------------------------------------------------------------------------------------
|
39
|
+
extern "C" void Init_FCMPush_extension()
|
40
|
+
{
|
41
|
+
// create FCM push client
|
42
|
+
RAWTRACEC("Init_FCMPush_extension", "creating FCM client >>>>>>>>>>>>>>");
|
43
|
+
|
44
|
+
rho::fcm::FcmPushClient* pClient = new rho::fcm::FcmPushClient();
|
45
|
+
|
46
|
+
RAWTRACEC("Init_FCMPush_extension", "adding FCM client >>>>>>>>>>>>>>>>");
|
47
|
+
|
48
|
+
rho::push::CPushManager::getInstance()->addClient(pClient);
|
49
|
+
}
|
50
|
+
//----------------------------------------------------------------------------------------------------------------------
|
51
|
+
|
52
|
+
namespace rho { namespace fcm {
|
53
|
+
|
54
|
+
IMPLEMENT_LOGCLASS(FcmPushClient, "FcmPushClient");
|
55
|
+
|
56
|
+
//----------------------------------------------------------------------------------------------------------------------
|
57
|
+
|
58
|
+
const char* const FcmPushClient::s_FCM_FACADE_CLASS = "com.rhomobile.rhodes.fcm.FCMFacade";
|
59
|
+
|
60
|
+
//----------------------------------------------------------------------------------------------------------------------
|
61
|
+
|
62
|
+
const String FcmPushClient::s_Type = "fcm";
|
63
|
+
String FcmPushClient::token = "";
|
64
|
+
|
65
|
+
FcmPushClient::FcmPushClient()
|
66
|
+
{
|
67
|
+
LOG(TRACE) + "FcmPushInit()";
|
68
|
+
canExecuteNotifications = false;
|
69
|
+
JNIEnv *env = jnienv();
|
70
|
+
|
71
|
+
static jclass cls = rho_find_class(env, s_FCM_FACADE_CLASS);
|
72
|
+
if (!cls) {
|
73
|
+
LOG(ERROR) + "Cannot find class: " + s_FCM_FACADE_CLASS;
|
74
|
+
return;
|
75
|
+
}
|
76
|
+
|
77
|
+
static jmethodID mid = env->GetStaticMethodID(cls, "initFireBase", "()V");
|
78
|
+
if (!mid) {
|
79
|
+
LOG(ERROR) + "Cannot get " + s_FCM_FACADE_CLASS + ".initFireBase() method";
|
80
|
+
return;
|
81
|
+
}
|
82
|
+
|
83
|
+
env->CallStaticVoidMethod(cls, mid);
|
84
|
+
|
85
|
+
CMethodResult result;
|
86
|
+
setProperty("id", s_Type, result);
|
87
|
+
setProperty("type", IPush::PUSH_TYPE_NATIVE, result);
|
88
|
+
setProperty("senderId", RHOCONF().getString("Push.fcm.senderId"), result);
|
89
|
+
setPropertyFromMethod("google_app_id", result);
|
90
|
+
//setPropertyFromMethod("google_api_key", result);
|
91
|
+
setPropertyFromMethod("gcm_defaultSenderId", result);
|
92
|
+
|
93
|
+
}
|
94
|
+
|
95
|
+
//----------------------------------------------------------------------------------------------------------------------
|
96
|
+
|
97
|
+
void FcmPushClient::setPropertyFromMethod(const char* methodName, CMethodResult &result) {
|
98
|
+
|
99
|
+
JNIEnv *env = jnienv();
|
100
|
+
jclass cls = rho_find_class(env, s_FCM_FACADE_CLASS);
|
101
|
+
if (!cls) {
|
102
|
+
LOG(ERROR) + "Cannot get " + s_FCM_FACADE_CLASS;
|
103
|
+
return;
|
104
|
+
}
|
105
|
+
|
106
|
+
jmethodID mid = env->GetStaticMethodID( cls, methodName, "()Ljava/lang/String;");
|
107
|
+
if (!mid){
|
108
|
+
LOG(ERROR) + "Cannot get " + s_FCM_FACADE_CLASS + "." + methodName + " method";
|
109
|
+
return;
|
110
|
+
}
|
111
|
+
|
112
|
+
jstring jstr = (jstring)env->CallStaticObjectMethod(cls, mid);
|
113
|
+
const char* buf = env->GetStringUTFChars(jstr,0);
|
114
|
+
|
115
|
+
setProperty(methodName, buf, result);
|
116
|
+
env->ReleaseStringUTFChars(jstr, buf);
|
117
|
+
}
|
118
|
+
|
119
|
+
void FcmPushClient::refreshToken(){
|
120
|
+
LOG(TRACE) + "refreshToken()";
|
121
|
+
JNIEnv *env = jnienv();
|
122
|
+
|
123
|
+
static jclass cls = rho_find_class(env, s_FCM_FACADE_CLASS);
|
124
|
+
if (!cls) {
|
125
|
+
LOG(ERROR) + "Cannot find class: " + s_FCM_FACADE_CLASS;
|
126
|
+
return;
|
127
|
+
}
|
128
|
+
|
129
|
+
static jmethodID mid = env->GetStaticMethodID(cls, "refreshToken", "()V");
|
130
|
+
if (!mid) {
|
131
|
+
LOG(ERROR) + "Cannot get " + s_FCM_FACADE_CLASS + ".refreshToken() method";
|
132
|
+
return;
|
133
|
+
}
|
134
|
+
|
135
|
+
env->CallStaticVoidMethod(cls, mid);
|
136
|
+
|
137
|
+
}
|
138
|
+
|
139
|
+
void FcmPushClient::getDeviceId(CMethodResult& result)
|
140
|
+
{
|
141
|
+
String deviceId = m_hashProps["deviceId"];
|
142
|
+
|
143
|
+
if(deviceId.length() != 0)
|
144
|
+
{
|
145
|
+
LOG(TRACE) + "FCM deviceId: " + deviceId;
|
146
|
+
result.set(deviceId);
|
147
|
+
}
|
148
|
+
else
|
149
|
+
{
|
150
|
+
LOG(TRACE) + "Still waiting for FCM deviceId";
|
151
|
+
m_deviceIdResult = result;
|
152
|
+
}
|
153
|
+
}
|
154
|
+
|
155
|
+
//----------------------------------------------------------------------------------------------------------------------
|
156
|
+
void FcmPushClient::startNotifications(CMethodResult& result)
|
157
|
+
{
|
158
|
+
LOG(TRACE) + "Start FCM push notifications";
|
159
|
+
m_oResult = result;
|
160
|
+
canExecuteNotifications = true;
|
161
|
+
executeCallBacks();
|
162
|
+
}
|
163
|
+
|
164
|
+
//----------------------------------------------------------------------------------------------------------------------
|
165
|
+
void FcmPushClient::stopNotifications(CMethodResult& result)
|
166
|
+
{
|
167
|
+
LOG(TRACE) + "Stop FCM push notifications";
|
168
|
+
canExecuteNotifications = false;
|
169
|
+
m_oResult = CMethodResult();
|
170
|
+
|
171
|
+
}
|
172
|
+
|
173
|
+
//----------------------------------------------------------------------------------------------------------------------
|
174
|
+
void FcmPushClient::setDeviceId(const String& deviceId)
|
175
|
+
{
|
176
|
+
CMethodResult result;
|
177
|
+
setProperty("deviceId", deviceId, result);
|
178
|
+
|
179
|
+
LOG(TRACE) + "creating client register";
|
180
|
+
rho::sync::RhoconnectClientManager::clientRegisterCreate(deviceId.c_str());
|
181
|
+
|
182
|
+
getDeviceId(m_deviceIdResult);
|
183
|
+
m_deviceIdResult = CMethodResult();
|
184
|
+
|
185
|
+
}
|
186
|
+
|
187
|
+
//----------------------------------------------------------------------------------------------------------------------
|
188
|
+
bool FcmPushClient::callBack(const String& json)
|
189
|
+
{
|
190
|
+
LOG(TRACE) + "FCM push notification: " + json;
|
191
|
+
|
192
|
+
if (canExecuteNotifications){
|
193
|
+
m_oResult.setJSON(json);
|
194
|
+
}else{
|
195
|
+
if (callBacksQueue.size() < 1024){
|
196
|
+
callBacksQueue.push(json);
|
197
|
+
}
|
198
|
+
}
|
199
|
+
|
200
|
+
return true;
|
201
|
+
}
|
202
|
+
|
203
|
+
void FcmPushClient::executeCallBacks()
|
204
|
+
{
|
205
|
+
|
206
|
+
while (!callBacksQueue.empty()){
|
207
|
+
callBack(callBacksQueue.front());
|
208
|
+
callBacksQueue.pop();
|
209
|
+
}
|
210
|
+
|
211
|
+
}
|
212
|
+
|
213
|
+
|
214
|
+
}}
|
215
|
+
|