rhodes 7.4.1 → 7.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CREDITS +3 -1
- data/LICENSE +1 -1
- data/README.md +3 -1
- data/Rakefile +52 -43
- data/SECURITY.md +19 -0
- data/appveyor.yml +60 -7
- data/azure-pipelines.yml +67 -0
- data/extensions/rhoconnect-push/ext/rhoconnect-push/platform/android/src/com/rhomobile/rhoelements/ans/ANSManager.java +2 -2
- data/lib/commonAPI/barcode/ext/platform/android/AndroidManifest.xml +3 -1
- data/lib/commonAPI/barcode/ext/platform/android/src/com/google/barcodereader/BarcodeCaptureActivity.java +11 -13
- data/lib/commonAPI/barcode/ext/platform/android/src/com/google/barcodereader/BarcodeGraphicTracker.java +1 -1
- data/lib/commonAPI/barcode/ext/platform/android/src/com/google/barcodereader/ui/camera/CameraSource.java +3 -3
- data/lib/commonAPI/barcode/ext/platform/android/src/com/google/barcodereader/ui/camera/CameraSourcePreview.java +1 -1
- data/lib/commonAPI/barcode/ext.yml +4 -8
- data/lib/commonAPI/coreapi/ext/platform/android/Rakefile +0 -12
- data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/notification/Notification.java +4 -2
- data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/notification/NotificationScheduler.java +3 -3
- data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/notification/NotificationSingleton.java +1 -1
- data/lib/commonAPI/coreapi/ext/push.xml +5 -2
- data/lib/commonAPI/mediacapture/ext/camera.xml +4 -9
- data/lib/commonAPI/mediacapture/ext/platform/android/ApplicationFileProvider.erb +1 -1
- data/lib/commonAPI/mediacapture/ext/platform/android/ext_java.files +1 -9
- data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraExtension.java +0 -2
- data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraFactory.java +19 -24
- data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraObject.java +317 -729
- data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraRhoListener.java +240 -434
- data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/{CameraSingletonObject.java → CameraSingleton.java} +68 -74
- data/lib/commonAPI/printing_zebra/ext/platform/android/src/com/rhomobile/printing/zebra/impl/ZebraPrintingProviderImpl.java +2 -1
- data/lib/extensions/fcm-push/ext/android/ApplicationManifestAdds.erb +15 -17
- data/lib/extensions/fcm-push/ext/android/Rakefile +59 -34
- data/lib/extensions/fcm-push/ext/android/ext_java.files +0 -1
- data/lib/extensions/fcm-push/ext/android/src/com/rhomobile/rhodes/fcm/FCMFacade.java +13 -17
- data/lib/extensions/fcm-push/ext/android/src/com/rhomobile/rhodes/fcm/FCMIntentService.java +81 -80
- data/lib/extensions/fcm-push/ext/android/src/com/rhomobile/rhodes/fcm/FCMListener.java +0 -16
- data/lib/extensions/fcm-push/ext.yml +1 -1
- data/lib/extensions/gmaps/ext/platform/android/ApplicationManifestAdds.erb +1 -0
- data/lib/extensions/gmaps/ext/platform/android/src/com/rhomobile/rhodes/gmaps/GMapActivity.java +12 -4
- data/lib/extensions/gmaps/ext.yml +3 -1
- data/platform/android/Rhodes/jni/src/MethodResultJni.cpp +4 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesActivity.java +3 -3
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +3 -3
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/alert/StatusNotification.java +1 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocation.java +14 -14
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocationImpl.java +18 -9
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality26.java +1 -1
- data/platform/android/build/{aab_builder.rb → aapt2_helper.rb} +94 -37
- data/platform/android/build/android.rake +124 -191
- data/platform/android/build/android_tools.rb +9 -9
- data/platform/android/build/androidcommon.rb +18 -7
- data/platform/android/build/build_tools_finder.rb +46 -0
- data/platform/android/build/config.yml +5 -0
- data/platform/android/build/dex_builder.rb +88 -0
- data/platform/android/build/hostplatform.rb +9 -0
- data/platform/android/build/manifest_generator.rb +1 -0
- data/platform/android/build/maven_deps_extractor.rb +22 -21
- data/platform/android/build/ndkwrapper.rb +80 -51
- data/platform/iphone/Classes/AppManager/AppManager.m +3 -1
- data/platform/iphone/Classes/Camera/PickImageDelegate.h +2 -0
- data/platform/iphone/Classes/Camera/PickImageDelegate.m +45 -23
- data/platform/iphone/Classes/CocoaServer/CCocoaServer.h +27 -0
- data/platform/iphone/Classes/CocoaServer/CCocoaServer.m +107 -0
- data/platform/iphone/Classes/CocoaServer/RhoHTTPConnection.h +16 -0
- data/platform/iphone/Classes/CocoaServer/RhoHTTPConnection.m +226 -0
- data/platform/iphone/Classes/RhoWKWebView.mm +78 -11
- data/platform/iphone/Classes/RhoWebViewFabrique.m +6 -1
- data/platform/iphone/Classes/Rhodes.m +3 -0
- data/platform/iphone/CocoaHTTPServer/Core/Categories/DDData.h +14 -0
- data/platform/iphone/CocoaHTTPServer/Core/Categories/DDData.m +158 -0
- data/platform/iphone/CocoaHTTPServer/Core/Categories/DDNumber.h +12 -0
- data/platform/iphone/CocoaHTTPServer/Core/Categories/DDNumber.m +88 -0
- data/platform/iphone/CocoaHTTPServer/Core/Categories/DDRange.h +56 -0
- data/platform/iphone/CocoaHTTPServer/Core/Categories/DDRange.m +104 -0
- data/platform/iphone/CocoaHTTPServer/Core/HTTPAuthenticationRequest.h +45 -0
- data/platform/iphone/CocoaHTTPServer/Core/HTTPAuthenticationRequest.m +195 -0
- data/platform/iphone/CocoaHTTPServer/Core/HTTPConnection.h +120 -0
- data/platform/iphone/CocoaHTTPServer/Core/HTTPConnection.m +2708 -0
- data/platform/iphone/CocoaHTTPServer/Core/HTTPLogging.h +136 -0
- data/platform/iphone/CocoaHTTPServer/Core/HTTPMessage.h +48 -0
- data/platform/iphone/CocoaHTTPServer/Core/HTTPMessage.m +113 -0
- data/platform/iphone/CocoaHTTPServer/Core/HTTPResponse.h +149 -0
- data/platform/iphone/CocoaHTTPServer/Core/HTTPServer.h +205 -0
- data/platform/iphone/CocoaHTTPServer/Core/HTTPServer.m +772 -0
- data/platform/iphone/CocoaHTTPServer/Core/Mime/MultipartFormDataParser.h +65 -0
- data/platform/iphone/CocoaHTTPServer/Core/Mime/MultipartFormDataParser.m +529 -0
- data/platform/iphone/CocoaHTTPServer/Core/Mime/MultipartMessageHeader.h +33 -0
- data/platform/iphone/CocoaHTTPServer/Core/Mime/MultipartMessageHeader.m +86 -0
- data/platform/iphone/CocoaHTTPServer/Core/Mime/MultipartMessageHeaderField.h +23 -0
- data/platform/iphone/CocoaHTTPServer/Core/Mime/MultipartMessageHeaderField.m +211 -0
- data/platform/iphone/CocoaHTTPServer/Core/Responses/HTTPAsyncFileResponse.h +75 -0
- data/platform/iphone/CocoaHTTPServer/Core/Responses/HTTPAsyncFileResponse.m +405 -0
- data/platform/iphone/CocoaHTTPServer/Core/Responses/HTTPDataResponse.h +13 -0
- data/platform/iphone/CocoaHTTPServer/Core/Responses/HTTPDataResponse.m +79 -0
- data/platform/iphone/CocoaHTTPServer/Core/Responses/HTTPDynamicFileResponse.h +52 -0
- data/platform/iphone/CocoaHTTPServer/Core/Responses/HTTPDynamicFileResponse.m +292 -0
- data/platform/iphone/CocoaHTTPServer/Core/Responses/HTTPErrorResponse.h +9 -0
- data/platform/iphone/CocoaHTTPServer/Core/Responses/HTTPErrorResponse.m +38 -0
- data/platform/iphone/CocoaHTTPServer/Core/Responses/HTTPFileResponse.h +25 -0
- data/platform/iphone/CocoaHTTPServer/Core/Responses/HTTPFileResponse.m +237 -0
- data/platform/iphone/CocoaHTTPServer/Core/Responses/HTTPRedirectResponse.h +12 -0
- data/platform/iphone/CocoaHTTPServer/Core/Responses/HTTPRedirectResponse.m +73 -0
- data/platform/iphone/CocoaHTTPServer/Core/WebSocket.h +105 -0
- data/platform/iphone/CocoaHTTPServer/Core/WebSocket.m +791 -0
- data/platform/iphone/CocoaHTTPServer/Extensions/WebDAV/DAVConnection.h +7 -0
- data/platform/iphone/CocoaHTTPServer/Extensions/WebDAV/DAVConnection.m +160 -0
- data/platform/iphone/CocoaHTTPServer/Extensions/WebDAV/DAVResponse.h +11 -0
- data/platform/iphone/CocoaHTTPServer/Extensions/WebDAV/DAVResponse.m +372 -0
- data/platform/iphone/CocoaHTTPServer/Extensions/WebDAV/DELETEResponse.h +7 -0
- data/platform/iphone/CocoaHTTPServer/Extensions/WebDAV/DELETEResponse.m +49 -0
- data/platform/iphone/CocoaHTTPServer/Extensions/WebDAV/PUTResponse.h +8 -0
- data/platform/iphone/CocoaHTTPServer/Extensions/WebDAV/PUTResponse.m +69 -0
- data/platform/iphone/CocoaHTTPServer/LICENSE.txt +18 -0
- data/platform/iphone/CocoaHTTPServer/Vendor/CocoaAsyncSocket/About.txt +4 -0
- data/platform/iphone/CocoaHTTPServer/Vendor/CocoaAsyncSocket/GCDAsyncSocket.h +1226 -0
- data/platform/iphone/CocoaHTTPServer/Vendor/CocoaAsyncSocket/GCDAsyncSocket.m +8528 -0
- data/platform/iphone/CocoaHTTPServer/Vendor/CocoaLumberjack/About.txt +33 -0
- data/platform/iphone/CocoaHTTPServer/Vendor/CocoaLumberjack/DDASLLogger.h +41 -0
- data/platform/iphone/CocoaHTTPServer/Vendor/CocoaLumberjack/DDASLLogger.m +99 -0
- data/platform/iphone/CocoaHTTPServer/Vendor/CocoaLumberjack/DDAbstractDatabaseLogger.h +102 -0
- data/platform/iphone/CocoaHTTPServer/Vendor/CocoaLumberjack/DDAbstractDatabaseLogger.m +727 -0
- data/platform/iphone/CocoaHTTPServer/Vendor/CocoaLumberjack/DDFileLogger.h +334 -0
- data/platform/iphone/CocoaHTTPServer/Vendor/CocoaLumberjack/DDFileLogger.m +1353 -0
- data/platform/iphone/CocoaHTTPServer/Vendor/CocoaLumberjack/DDLog.h +601 -0
- data/platform/iphone/CocoaHTTPServer/Vendor/CocoaLumberjack/DDLog.m +1083 -0
- data/platform/iphone/CocoaHTTPServer/Vendor/CocoaLumberjack/DDTTYLogger.h +167 -0
- data/platform/iphone/CocoaHTTPServer/Vendor/CocoaLumberjack/DDTTYLogger.m +1479 -0
- data/platform/iphone/CocoaHTTPServer/Vendor/CocoaLumberjack/Extensions/ContextFilterLogFormatter.h +65 -0
- data/platform/iphone/CocoaHTTPServer/Vendor/CocoaLumberjack/Extensions/ContextFilterLogFormatter.m +191 -0
- data/platform/iphone/CocoaHTTPServer/Vendor/CocoaLumberjack/Extensions/DispatchQueueLogFormatter.h +116 -0
- data/platform/iphone/CocoaHTTPServer/Vendor/CocoaLumberjack/Extensions/DispatchQueueLogFormatter.m +251 -0
- data/platform/iphone/CocoaHTTPServer/Vendor/CocoaLumberjack/Extensions/README.txt +7 -0
- data/platform/iphone/Framework/Rhodes/Rhodes.xcodeproj/project.pbxproj +1 -1
- data/platform/iphone/RhoAppBaseLib/RhoAppBaseLib.xcodeproj/project.pbxproj +364 -0
- data/platform/iphone/rbuild/iphone.rake +4 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app.zip +0 -0
- data/platform/shared/common/RhodesApp.cpp +26 -1
- data/platform/shared/net/HttpServer.cpp +20 -0
- data/platform/shared/qt/RhoSimulator.pro +1 -1
- data/platform/shared/ruby/osx/ruby/config.h +2 -0
- data/platform/shared/ruby/win32/win32.c +10 -3
- data/platform/win32/RhoSimulator/RhoSimulator.exe +0 -0
- data/rakefile.rb +52 -43
- data/res/build-tools/RhoRuby.exe +0 -0
- data/res/build-tools/aapt2/linux/aapt2 +0 -0
- data/res/build-tools/aapt2/osx/aapt2 +0 -0
- data/res/generators/templates/application/AndroidManifest.erb +2 -1
- data/res/generators/templates/application/build.yml +4 -1
- data/res/generators/templates/application/rhoconfig.txt +5 -0
- data/rhobuild.yml.example +4 -4
- data/rhodes.gemspec +1 -2
- data/version +1 -1
- metadata +80 -35
- data/lib/commonAPI/mediacapture/ext/platform/android/adds/res/drawable/camera_btn.xml +0 -14
- data/lib/commonAPI/mediacapture/ext/platform/android/adds/res/layout/camera_land.xml +0 -23
- data/lib/commonAPI/mediacapture/ext/platform/android/adds/res/layout/camera_port.xml +0 -23
- data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraActivity.java +0 -156
- data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraEclair.java +0 -227
- data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraGingerbread.java +0 -152
- data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraPreview.java +0 -183
- data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraSingletonEclair.java +0 -14
- data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraSingletonGingerbread.java +0 -60
- data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/ICameraObject.java +0 -20
- data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/ICameraSingletonObject.java +0 -8
- data/lib/extensions/fcm-push/ext/android/src/com/rhomobile/rhodes/fcm/FCMTokenRefresherService.java +0 -27
- data/platform/android/Rhodes/AndroidManifest.xml.erb +0 -89
@@ -7,10 +7,25 @@ require 'singleton'
|
|
7
7
|
require 'securerandom'
|
8
8
|
require 'json'
|
9
9
|
|
10
|
-
class
|
10
|
+
class Aapt2Helper
|
11
11
|
include Singleton
|
12
12
|
|
13
|
-
attr_accessor :output_path
|
13
|
+
attr_accessor :output_path
|
14
|
+
attr_accessor :res_dir
|
15
|
+
attr_accessor :dex_path
|
16
|
+
attr_accessor :apk_path
|
17
|
+
attr_accessor :manifest
|
18
|
+
attr_accessor :logger
|
19
|
+
attr_accessor :aapt2
|
20
|
+
attr_accessor :build_dir
|
21
|
+
attr_accessor :androidjar
|
22
|
+
attr_accessor :bundletool
|
23
|
+
attr_accessor :javabin
|
24
|
+
attr_accessor :rjava_dir
|
25
|
+
attr_accessor :maven_deps
|
26
|
+
attr_accessor :no_compress_exts
|
27
|
+
attr_accessor :assets_dir
|
28
|
+
|
14
29
|
attr_accessor :keystore, :storealias, :storepass, :keypass, :debug
|
15
30
|
|
16
31
|
#This is the final step, run it from android.rake after all is done:
|
@@ -20,9 +35,9 @@ class AabBuilder
|
|
20
35
|
#- java code
|
21
36
|
#- dependencies and extensions
|
22
37
|
#
|
23
|
-
# Provide
|
38
|
+
# Provide APK for input, we'll take SOs, assets and other files from there. Also provide compiled DEX.
|
24
39
|
# Manifest and resources will be taken from build_resources step
|
25
|
-
def
|
40
|
+
def build_aab
|
26
41
|
validate
|
27
42
|
|
28
43
|
prepare_bundle_folder_struct
|
@@ -36,9 +51,11 @@ class AabBuilder
|
|
36
51
|
create_config_file
|
37
52
|
|
38
53
|
#Finally build AAB archive from prepared base.zip
|
39
|
-
|
40
|
-
args = [ '-jar', @bundletool, 'build-bundle', "--modules=#{@base_zip}", "--output=#{
|
54
|
+
bundle = File.join(@intermediate,'bundle.aab')
|
55
|
+
args = [ '-jar', @bundletool, 'build-bundle', "--modules=#{@base_zip}", "--output=#{bundle}" , "--config=#{@config_file}"]
|
41
56
|
Jake.run( @javabin, args )
|
57
|
+
|
58
|
+
bundle
|
42
59
|
end
|
43
60
|
|
44
61
|
def create_config_file
|
@@ -59,7 +76,7 @@ class AabBuilder
|
|
59
76
|
|
60
77
|
@base_zip = File.join( @intermediate, 'base.zip' )
|
61
78
|
Zip::File.open( @base_zip, Zip::File::CREATE) { |z|
|
62
|
-
Dir[File.join(@prep_bundle_dir,'**','*')].
|
79
|
+
Dir[File.join(@prep_bundle_dir,'**','*')].select{|f| File.file? f}.each{ |f|
|
63
80
|
p = Pathname.new(f)
|
64
81
|
z.add( p.relative_path_from(root) ,f)
|
65
82
|
}
|
@@ -101,7 +118,7 @@ class AabBuilder
|
|
101
118
|
zip_file.extract('AndroidManifest.xml', File.join( @prep_bundle_dir,'manifest', 'AndroidManifest.xml') )
|
102
119
|
zip_file.extract('resources.pb', File.join( @prep_bundle_dir,'resources.pb') )
|
103
120
|
|
104
|
-
zip_file.
|
121
|
+
zip_file.select {|f| f.name.start_with?('res/') }.each { |f|
|
105
122
|
fpath = File.join( @prep_bundle_dir,f.name)
|
106
123
|
dir = File.dirname(fpath)
|
107
124
|
mkdir_p dir unless File.directory? dir
|
@@ -131,7 +148,7 @@ class AabBuilder
|
|
131
148
|
mkdir_p target
|
132
149
|
|
133
150
|
Dir[File.join(dir,'**','*')]
|
134
|
-
.
|
151
|
+
.select { |f| File.file?(f) }
|
135
152
|
.map { |f| PathToWindowsWay(f) }
|
136
153
|
.each { |f|
|
137
154
|
Jake.run( @aapt2, ['compile', f, '-o', target ] )
|
@@ -143,10 +160,12 @@ class AabBuilder
|
|
143
160
|
|
144
161
|
#This is the first step to run. Builder must be initialized at this point
|
145
162
|
#It will compile resources and generate/put R.java to specified dir so android.rake can use it for other build steps
|
146
|
-
|
163
|
+
|
164
|
+
#It will also build an intermediate APK
|
165
|
+
def build_resources( build_also_for_bundle )
|
147
166
|
validate
|
148
167
|
|
149
|
-
@logger.debug "Resource dirs for
|
168
|
+
@logger.debug "Resource dirs for AAPT2 builder: #{@res_dir}"
|
150
169
|
|
151
170
|
flat_list = []
|
152
171
|
|
@@ -158,37 +177,63 @@ class AabBuilder
|
|
158
177
|
}
|
159
178
|
|
160
179
|
reslist = File.join(@intermediate,'flat.txt')
|
161
|
-
File.open( reslist, 'w' ) { |f| f.write flat_list.join(' ') }
|
162
|
-
|
163
|
-
#prepared archive name with protobuf data
|
164
|
-
@pbprep = File.join(@intermediate,'output.apk')
|
165
|
-
|
166
|
-
#make a dir to put generated R.java
|
167
|
-
rdir = File.join(@intermediate,'rjava')
|
168
|
-
mkdir_p (rdir)
|
180
|
+
File.open( reslist, 'w' ) { |f| f.write flat_list.join(' ') }
|
181
|
+
|
169
182
|
|
170
|
-
|
171
|
-
'--proto-format',
|
172
|
-
'-o', @pbprep,
|
183
|
+
args_common = [ 'link',
|
173
184
|
'-I', @androidjar,
|
174
185
|
'--manifest', @manifest,
|
175
186
|
'-R', '@'+File.join(reslist),
|
176
|
-
'--auto-add-overlay'
|
177
|
-
'--java',
|
178
|
-
PathToWindowsWay(rdir)
|
187
|
+
'--auto-add-overlay'
|
179
188
|
]
|
180
189
|
|
181
190
|
if @no_compress_globs
|
182
191
|
@no_compress_globs.each do |ext|
|
183
|
-
|
184
|
-
|
192
|
+
args_common << '-0'
|
193
|
+
args_common << ext
|
185
194
|
end
|
186
|
-
|
187
|
-
|
195
|
+
end
|
196
|
+
|
197
|
+
@intermediate_apk = File.join(@intermediate,'output.apk')
|
198
|
+
#make a dir to put generated R.java
|
199
|
+
rdir = File.join(@intermediate,'rjava')
|
200
|
+
mkdir_p (rdir)
|
201
|
+
|
202
|
+
args = args_common.clone
|
203
|
+
args << '-o'
|
204
|
+
args << @intermediate_apk
|
205
|
+
args << '--java'
|
206
|
+
args << PathToWindowsWay(rdir)
|
207
|
+
args << '--output-text-symbols'
|
208
|
+
args << PathToWindowsWay(File.join(@rjava_dir, 'R.txt'))
|
209
|
+
|
210
|
+
mkdir_p @rjava_dir
|
188
211
|
#Finally run link to generate R.java for compiled resources. We need manifest ready at this point
|
189
|
-
|
212
|
+
run_aapt2(args)
|
213
|
+
|
214
|
+
#-A option is buggy at least on Windows. It writes \\ instead of / to path separators which will affect MANIFEST.MF in target APK and break access to assets
|
215
|
+
#So we'll use zip to add assets manually
|
216
|
+
#args << "-A"
|
217
|
+
#args << @assets_dir
|
218
|
+
Zip::File.open( @intermediate_apk, create: false ) { |z|
|
219
|
+
root = Pathname.new(@assets_dir)
|
220
|
+
Dir[File.join(@assets_dir,'**','*')].select{|f| File.file? f}.each{ |f|
|
221
|
+
p = Pathname.new(f)
|
222
|
+
z.add( File.join('assets',p.relative_path_from(root)) ,f )
|
223
|
+
}
|
224
|
+
}
|
190
225
|
|
191
|
-
|
226
|
+
if ( build_also_for_bundle )
|
227
|
+
#prepared archive name with protobuf data
|
228
|
+
@pbprep = File.join(@intermediate,'output_for_bundle.apk')
|
229
|
+
|
230
|
+
args_for_bundle = args_common.clone
|
231
|
+
args_for_bundle << '-o'
|
232
|
+
args_for_bundle << @pbprep
|
233
|
+
args_for_bundle << '--proto-format'
|
234
|
+
run_aapt2(args_for_bundle)
|
235
|
+
end
|
236
|
+
|
192
237
|
#We don't really care of package name and relative path where R.java is located
|
193
238
|
#We just need to put generated R.java to specified @rjava_dir, so let's just find generated R.java and put it to target dir
|
194
239
|
Dir[ File.join(rdir,'**','R.java') ].each { |f|
|
@@ -196,19 +241,30 @@ class AabBuilder
|
|
196
241
|
}
|
197
242
|
end
|
198
243
|
|
244
|
+
#We should've generated an intermediate APK on the first step, so just copy it where it is expected
|
245
|
+
def build_intermediate_apk( target )
|
246
|
+
cp @intermediate_apk, target
|
247
|
+
end
|
248
|
+
|
249
|
+
def run_aapt2(args)
|
250
|
+
args << '-v' if Rake.application.options.trace
|
251
|
+
Jake.run( @aapt2, args )
|
252
|
+
raise 'Error in AAPT2: ' + @aapt2 + " " + args.join(' ') unless $?.success?
|
253
|
+
end
|
254
|
+
|
199
255
|
def init
|
200
256
|
init_dirs
|
201
257
|
end
|
202
258
|
|
203
259
|
def init_dirs
|
204
|
-
@intermediate = File.join( @build_dir, '.
|
260
|
+
@intermediate = File.join( @build_dir, '.aapt2_intermedidate')
|
205
261
|
FileUtils.rm_r @intermediate if File.directory? @intermediate
|
206
262
|
FileUtils.mkdir_p @intermediate
|
207
263
|
|
208
264
|
end
|
209
265
|
|
210
266
|
def validate
|
211
|
-
raise '
|
267
|
+
raise 'AAPT2 helper set up incorrectly' unless defined? @res_dir and
|
212
268
|
defined? @output_path and
|
213
269
|
defined? @dex_path and
|
214
270
|
defined? @apk_path and
|
@@ -221,14 +277,15 @@ class AabBuilder
|
|
221
277
|
defined? @javabin and
|
222
278
|
defined? @rjava_dir and
|
223
279
|
defined? @maven_deps and
|
224
|
-
defined? @no_compress_exts
|
280
|
+
defined? @no_compress_exts and
|
281
|
+
defined? @assets_dir
|
225
282
|
end
|
226
283
|
|
227
|
-
def
|
284
|
+
def sign_aab(source, target)
|
228
285
|
if @debug
|
229
|
-
AndroidTools.signAabDebug
|
286
|
+
AndroidTools.signAabDebug source, target
|
230
287
|
else
|
231
|
-
AndroidTools.signAab
|
288
|
+
AndroidTools.signAab source, target, $keystore, $keypass, $storepass, $storealias
|
232
289
|
end
|
233
290
|
end
|
234
291
|
end
|