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.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/libs/crosswalk/ext/platform/android/Rakefile +19 -1
  3. data/libs/enterprise-barcode/ext/platform/android/adds/lib/aarch64/liballbarcode.a +0 -0
  4. data/libs/enterprise-barcode/ext/platform/android/adds/lib/armeabi/liballbarcode.a +0 -0
  5. data/libs/enterprise-barcode/ext/platform/android/adds/lib/x86/liballbarcode.a +0 -0
  6. data/libs/enterprise-barcode/ext/platform/android/allbarcode.jar +0 -0
  7. data/libs/fcm-push-18/ext.yml +20 -0
  8. data/libs/fcm-push-18/ext/android/AndroidManifest.rb +10 -0
  9. data/libs/fcm-push-18/ext/android/ApplicationManifestAdds.erb +39 -0
  10. data/libs/fcm-push-18/ext/android/Rakefile +187 -0
  11. data/libs/fcm-push-18/ext/android/ext_java.files +3 -0
  12. data/libs/fcm-push-18/ext/android/ext_native.files +1 -0
  13. data/libs/fcm-push-18/ext/android/jni/src/fcmpushclient.cpp +215 -0
  14. data/libs/fcm-push-18/ext/android/jni/src/fcmpushclient.h +74 -0
  15. data/libs/fcm-push-18/ext/android/res/res/values/fireBaseValues.xml +5 -0
  16. data/libs/fcm-push-18/ext/android/src/com/rhomobile/rhodes/fcm/FCMFacade.java +164 -0
  17. data/libs/fcm-push-18/ext/android/src/com/rhomobile/rhodes/fcm/FCMIntentService.java +219 -0
  18. data/libs/fcm-push-18/ext/android/src/com/rhomobile/rhodes/fcm/FCMListener.java +88 -0
  19. data/libs/fcm-push-18/ext/build +16 -0
  20. data/libs/fcm-push-18/ext/build.bat +8 -0
  21. data/libs/fcm-push-18/ext/fcm.xml +9 -0
  22. data/libs/fcm-push-18/ext/iphone/ApplePush_Prefix.pch +7 -0
  23. data/libs/fcm-push-18/ext/iphone/Firebase.h +68 -0
  24. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
  25. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +62 -0
  26. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +115 -0
  27. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsConfiguration.h +1 -0
  28. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsSwiftNameSupport.h +13 -0
  29. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRApp.h +1 -0
  30. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRConfiguration.h +1 -0
  31. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIREventNames.h +389 -0
  32. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIROptions.h +1 -0
  33. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +485 -0
  34. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +15 -0
  35. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +10 -0
  36. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseAnalytics.framework/Modules/module.modulemap +10 -0
  37. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseCore.framework/FirebaseCore +0 -0
  38. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseCore.framework/Headers/FIRAnalyticsConfiguration.h +52 -0
  39. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseCore.framework/Headers/FIRApp.h +130 -0
  40. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseCore.framework/Headers/FIRConfiguration.h +78 -0
  41. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseCore.framework/Headers/FIRLoggerLevel.h +35 -0
  42. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseCore.framework/Headers/FIROptions.h +133 -0
  43. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseCore.framework/Headers/FirebaseCore.h +5 -0
  44. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseCore.framework/Modules/module.modulemap +7 -0
  45. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics +0 -0
  46. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseCoreDiagnostics.framework/Modules/module.modulemap +6 -0
  47. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID +0 -0
  48. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseInstanceID.framework/Headers/FIRInstanceID.h +276 -0
  49. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID.h +1 -0
  50. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseInstanceID.framework/Modules/module.modulemap +7 -0
  51. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseMessaging.framework/FirebaseMessaging +0 -0
  52. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseMessaging.framework/Headers/FIRMessaging.h +508 -0
  53. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseMessaging.framework/Headers/FirebaseMessaging.h +1 -0
  54. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseMessaging.framework/Modules/module.modulemap +8 -0
  55. data/libs/fcm-push-18/ext/iphone/Frameworks/FirebaseNanoPB.framework/FirebaseNanoPB +0 -0
  56. data/libs/fcm-push-18/ext/iphone/Frameworks/GoogleToolboxForMac.framework/GoogleToolboxForMac +0 -0
  57. data/libs/fcm-push-18/ext/iphone/Frameworks/GoogleToolboxForMac.framework/Modules/module.modulemap +5 -0
  58. data/libs/fcm-push-18/ext/iphone/Frameworks/Protobuf.framework/Modules/module.modulemap +5 -0
  59. data/libs/fcm-push-18/ext/iphone/Frameworks/Protobuf.framework/Protobuf +0 -0
  60. data/libs/fcm-push-18/ext/iphone/Frameworks/nanopb.framework/Modules/module.modulemap +5 -0
  61. data/libs/fcm-push-18/ext/iphone/Frameworks/nanopb.framework/nanopb +0 -0
  62. data/libs/fcm-push-18/ext/iphone/Rakefile +81 -0
  63. data/libs/fcm-push-18/ext/iphone/fcm-push.xcodeproj/project.pbxproj +370 -0
  64. data/libs/fcm-push-18/ext/iphone/impl/PushNotificationsReceiver.h +28 -0
  65. data/libs/fcm-push-18/ext/iphone/impl/PushNotificationsReceiver.m +27 -0
  66. data/libs/fcm-push-18/ext/iphone/impl/PushNotificationsReceiver.mm +234 -0
  67. data/libs/fcm-push-18/ext/iphone/impl/applePushSetup.c +10 -0
  68. data/libs/fcm-push-18/ext/iphone/impl/applepushclient.h +69 -0
  69. data/libs/fcm-push-18/ext/iphone/impl/applepushclient.mm +164 -0
  70. data/libs/fcm-push-18/ext/iphone/impl/readme.txt +7 -0
  71. data/libs/fcm-push-18/ext/platform/iphone/impl/readme.txt +7 -0
  72. data/libs/nodejs/ext/platform/android/jxCore/jx.h +17 -1
  73. data/libs/nodejs/ext/platform/android/jxCore/libcares_arm.a +0 -0
  74. data/libs/nodejs/ext/platform/android/jxCore/libcares_ia32.a +0 -0
  75. data/libs/nodejs/ext/platform/android/jxCore/libcares_x64.a +0 -0
  76. data/libs/nodejs/ext/platform/android/jxCore/libchrome_zlib_arm.a +0 -0
  77. data/libs/nodejs/ext/platform/android/jxCore/libchrome_zlib_ia32.a +0 -0
  78. data/libs/nodejs/ext/platform/android/jxCore/libchrome_zlib_x64.a +0 -0
  79. data/libs/nodejs/ext/platform/android/jxCore/libhttp_parser_arm.a +0 -0
  80. data/libs/nodejs/ext/platform/android/jxCore/libhttp_parser_ia32.a +0 -0
  81. data/libs/nodejs/ext/platform/android/jxCore/libhttp_parser_x64.a +0 -0
  82. data/libs/nodejs/ext/platform/android/jxCore/libjx_arm.a +0 -0
  83. data/libs/nodejs/ext/platform/android/jxCore/libjx_ia32.a +0 -0
  84. data/libs/nodejs/ext/platform/android/jxCore/libjx_x64.a +0 -0
  85. data/libs/nodejs/ext/platform/android/jxCore/libopenssl_arm.a +0 -0
  86. data/libs/nodejs/ext/platform/android/jxCore/libopenssl_ia32.a +0 -0
  87. data/libs/nodejs/ext/platform/android/jxCore/libopenssl_x64.a +0 -0
  88. data/libs/nodejs/ext/platform/android/jxCore/libsqlite3_arm.a +0 -0
  89. data/libs/nodejs/ext/platform/android/jxCore/libsqlite3_ia32.a +0 -0
  90. data/libs/nodejs/ext/platform/android/jxCore/libsqlite3_x64.a +0 -0
  91. data/libs/nodejs/ext/platform/android/jxCore/libuv_arm.a +0 -0
  92. data/libs/nodejs/ext/platform/android/jxCore/libuv_ia32.a +0 -0
  93. data/libs/nodejs/ext/platform/android/jxCore/libuv_x64.a +0 -0
  94. data/libs/nodejs/ext/platform/android/jxCore/libv8_base_arm.a +0 -0
  95. data/libs/nodejs/ext/platform/android/jxCore/libv8_base_ia32.a +0 -0
  96. data/libs/nodejs/ext/platform/android/jxCore/libv8_base_x64.a +0 -0
  97. data/libs/nodejs/ext/platform/android/jxCore/libv8_nosnapshot_arm.a +0 -0
  98. data/libs/nodejs/ext/platform/android/jxCore/libv8_nosnapshot_ia32.a +0 -0
  99. data/libs/nodejs/ext/platform/android/jxCore/libv8_nosnapshot_x64.a +0 -0
  100. data/libs/nodejs/ext/platform/iphone/jxCore/jx.h +17 -1
  101. data/libs/nodejs/ext/platform/iphone/jxCore/libcares.a +0 -0
  102. data/libs/nodejs/ext/platform/iphone/jxCore/libchrome_zlib.a +0 -0
  103. data/libs/nodejs/ext/platform/iphone/jxCore/libhttp_parser.a +0 -0
  104. data/libs/nodejs/ext/platform/iphone/jxCore/libjx.a +0 -0
  105. data/libs/nodejs/ext/platform/iphone/jxCore/libmozjs.a +0 -0
  106. data/libs/nodejs/ext/platform/iphone/jxCore/libopenssl.a +0 -0
  107. data/libs/nodejs/ext/platform/iphone/jxCore/libsqlite3.a +0 -0
  108. data/libs/nodejs/ext/platform/iphone/jxCore/libuv.a +0 -0
  109. data/libs/rexml-edge/rexml/attlistdecl.rb +63 -0
  110. data/libs/rexml-edge/rexml/attribute.rb +192 -0
  111. data/libs/rexml-edge/rexml/cdata.rb +68 -0
  112. data/libs/rexml-edge/rexml/child.rb +97 -0
  113. data/libs/rexml-edge/rexml/comment.rb +80 -0
  114. data/libs/rexml-edge/rexml/doctype.rb +270 -0
  115. data/libs/rexml-edge/rexml/document.rb +291 -0
  116. data/libs/rexml-edge/rexml/dtd/attlistdecl.rb +11 -0
  117. data/libs/rexml-edge/rexml/dtd/dtd.rb +47 -0
  118. data/libs/rexml-edge/rexml/dtd/elementdecl.rb +18 -0
  119. data/libs/rexml-edge/rexml/dtd/entitydecl.rb +57 -0
  120. data/libs/rexml-edge/rexml/dtd/notationdecl.rb +40 -0
  121. data/libs/rexml-edge/rexml/element.rb +1241 -0
  122. data/libs/rexml-edge/rexml/encoding.rb +51 -0
  123. data/libs/rexml-edge/rexml/entity.rb +174 -0
  124. data/libs/rexml-edge/rexml/formatters/default.rb +112 -0
  125. data/libs/rexml-edge/rexml/formatters/pretty.rb +142 -0
  126. data/libs/rexml-edge/rexml/formatters/transitive.rb +58 -0
  127. data/libs/rexml-edge/rexml/functions.rb +418 -0
  128. data/libs/rexml-edge/rexml/instruction.rb +71 -0
  129. data/libs/rexml-edge/rexml/light/node.rb +196 -0
  130. data/libs/rexml-edge/rexml/namespace.rb +48 -0
  131. data/libs/rexml-edge/rexml/node.rb +76 -0
  132. data/libs/rexml-edge/rexml/output.rb +30 -0
  133. data/libs/rexml-edge/rexml/parent.rb +166 -0
  134. data/libs/rexml-edge/rexml/parseexception.rb +52 -0
  135. data/libs/rexml-edge/rexml/parsers/baseparser.rb +533 -0
  136. data/libs/rexml-edge/rexml/parsers/lightparser.rb +59 -0
  137. data/libs/rexml-edge/rexml/parsers/pullparser.rb +197 -0
  138. data/libs/rexml-edge/rexml/parsers/sax2parser.rb +273 -0
  139. data/libs/rexml-edge/rexml/parsers/streamparser.rb +61 -0
  140. data/libs/rexml-edge/rexml/parsers/treeparser.rb +101 -0
  141. data/libs/rexml-edge/rexml/parsers/ultralightparser.rb +57 -0
  142. data/libs/rexml-edge/rexml/parsers/xpathparser.rb +657 -0
  143. data/libs/rexml-edge/rexml/quickpath.rb +266 -0
  144. data/libs/rexml-edge/rexml/rexml.rb +32 -0
  145. data/libs/rexml-edge/rexml/sax2listener.rb +98 -0
  146. data/libs/rexml-edge/rexml/security.rb +28 -0
  147. data/libs/rexml-edge/rexml/source.rb +297 -0
  148. data/libs/rexml-edge/rexml/streamlistener.rb +93 -0
  149. data/libs/rexml-edge/rexml/syncenumerator.rb +33 -0
  150. data/libs/rexml-edge/rexml/text.rb +426 -0
  151. data/libs/rexml-edge/rexml/undefinednamespaceexception.rb +9 -0
  152. data/libs/rexml-edge/rexml/validation/relaxng.rb +539 -0
  153. data/libs/rexml-edge/rexml/validation/validation.rb +144 -0
  154. data/libs/rexml-edge/rexml/validation/validationexception.rb +10 -0
  155. data/libs/rexml-edge/rexml/xmldecl.rb +116 -0
  156. data/libs/rexml-edge/rexml/xmltokens.rb +85 -0
  157. data/libs/rexml-edge/rexml/xpath.rb +81 -0
  158. data/libs/rexml-edge/rexml/xpath_parser.rb +704 -0
  159. data/version +1 -1
  160. metadata +118 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d312be9cfe04777c120e1b87f133dc66564bb655
4
- data.tar.gz: 037a07a07514cd4cdc0b02de3a9857846a8fd31f
3
+ metadata.gz: c7abd2b22f8aaff6b3d8c15f4eaf207dca261b82
4
+ data.tar.gz: 37fbf2d341cd389c85a70fd0f4f91d6df49092ad
5
5
  SHA512:
6
- metadata.gz: 8b00f2455838418c0a1a4784d735f2394c1fdd01768566bc1f9bb87a8f26300ba91e33f9f689187f1b7de14d65edab90ae6f3cd62b358abaadf1b3495e62679a
7
- data.tar.gz: 94060290ae8748c2d76b01830e0f7b6796b4bfb6b2ffe9ec6f9756278e242d80074c61d8d56ad56d88c41eeda9a58fe40e6fca7d4ebae0f7170c995e4a3d1569
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"]
@@ -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,3 @@
1
+ ext/android/src/com/rhomobile/rhodes/fcm/FCMFacade.java
2
+ ext/android/src/com/rhomobile/rhodes/fcm/FCMIntentService.java
3
+ ext/android/src/com/rhomobile/rhodes/fcm/FCMListener.java
@@ -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
+