rhodes 7.5.1 → 7.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (180) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +319 -0
  3. data/README.md +3 -15
  4. data/Rakefile +3 -0
  5. data/appveyor.yml +37 -32
  6. data/azure-pipelines.yml +1 -1
  7. data/bin/rhodes-setup +22 -8
  8. data/extensions/emdk3-manager/ext/platform/android/src/com/rho/emdk3/EMDK3Extension.java +14 -5
  9. data/extensions/instrumentation/ext/platform/android/src/com/rho/instrumentation/Instrumentation.java +29 -15
  10. data/extensions/rhoconnect-push/ext/rhoconnect-push/platform/android/src/com/rhomobile/rhoelements/ans/ANSManager.java +1 -1
  11. data/extensions/rhoelementsext/ext/rhoelementsext/platform/android/rhoelements_temp/src/com/rho/rhoelements/ElementsCore.java +12 -9
  12. data/extensions/rhoelementsext/ext/rhoelementsext/platform/android/rhoelements_temp/src/com/rho/rhoelements/graphics/BatteryIndicator.java +2 -2
  13. data/lib/commonAPI/barcode/ext/platform/qt/Barcode.pro +1 -1
  14. data/lib/commonAPI/barcode/ext/platform/qt/Barcode.pro.erb +2 -2
  15. data/lib/commonAPI/barcode/ext/platform/qt/src/qzxing/QZXing.pri +9 -21
  16. data/lib/commonAPI/barcode/ext.yml +1 -0
  17. data/lib/commonAPI/bluetooth/ext/platform/qt/Bluetooth.pro +1 -1
  18. data/lib/commonAPI/bluetooth/ext/platform/qt/Bluetooth.pro.erb +1 -1
  19. data/lib/commonAPI/bluetooth/ext/platform/qt/src/bluetooth/bluetoothhelper.h +1 -1
  20. data/lib/commonAPI/coreapi/RhoSystemApi.rb +6 -0
  21. data/lib/commonAPI/coreapi/ext/Intent.xml +4 -0
  22. data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/intent/IntentSingleton.java +6 -0
  23. data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/notification/Notification.java +2 -1
  24. data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/notification/NotificationScheduler.java +1 -1
  25. data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/webview/WebViewSingleton.java +40 -27
  26. data/lib/commonAPI/coreapi/ext/platform/iphone/cpp_based_impl/SystemImpl.mm +5 -6
  27. data/lib/commonAPI/coreapi/ext/platform/iphone/impl/Intent.h +1 -1
  28. data/lib/commonAPI/coreapi/ext/platform/iphone/impl/Intent.m +3 -1
  29. data/lib/commonAPI/coreapi/ext/platform/iphone/impl/NotificationSingleton.h +2 -1
  30. data/lib/commonAPI/coreapi/ext/platform/iphone/impl/NotificationSingleton.m +10 -0
  31. data/lib/commonAPI/coreapi/ext/platform/wm/src/IntentImpl.cpp +3 -0
  32. data/lib/commonAPI/coreapi/ext/shared/SystemImplBase.cpp +13 -0
  33. data/lib/commonAPI/coreapi/ext/shared/SystemImplBase.h +2 -0
  34. data/lib/commonAPI/coreapi/ext/system.xml +3 -0
  35. data/lib/commonAPI/mediacapture/ext/platform/android/ApplicationCameraActivity.erb +2 -2
  36. data/lib/commonAPI/mediacapture/ext/platform/android/ApplicationFileProvider.erb +1 -1
  37. data/lib/commonAPI/mediacapture/ext/platform/android/ext_java.files +1 -0
  38. data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraObject.java +8 -4
  39. data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraRhoListener.java +8 -0
  40. data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/mediacapture/RhoCameraFileProvider.java +6 -0
  41. data/lib/commonAPI/mediacapture/ext/platform/qt/MediaCapture.pro.erb +1 -1
  42. data/lib/commonAPI/mediacapture/ext/platform/qt/Mediacapture.pro +1 -1
  43. data/lib/commonAPI/signature/ext/platform/iphone/impl/readme.txt +7 -0
  44. data/lib/commonAPI/signature/ext/platform/qt/Signature.pro +3 -10
  45. data/lib/commonAPI/signature/ext/platform/qt/Signature.pro.erb +2 -2
  46. data/lib/extensions/fcm-push/ext/iphone/Podfile +15 -2
  47. data/lib/extensions/fcm-push/ext/iphone/fcm-push.xcodeproj/project.pbxproj +6 -7
  48. data/lib/extensions/nfc/ext/platform/android/src/com/rhomobile/nfc/Nfc.java +2 -1
  49. data/lib/extensions/serialport/ext/serialport.pro +1 -1
  50. data/platform/android/Rhodes/jni/include/rhodes/JNIRhodes.h +1 -0
  51. data/platform/android/Rhodes/jni/src/fileapi.cpp +4 -0
  52. data/platform/android/Rhodes/res/drawable/baseline_check_24.xml +5 -0
  53. data/platform/android/Rhodes/res/drawable/baseline_check_240.xml +5 -0
  54. data/platform/android/Rhodes/res/drawable/baseline_close_24.xml +5 -0
  55. data/platform/android/Rhodes/res/drawable/baseline_close_240.xml +5 -0
  56. data/platform/android/Rhodes/res/layout/overlay_layout.xml +39 -0
  57. data/platform/android/Rhodes/res/layout/perrmission_alert_dialog.xml +267 -0
  58. data/platform/android/Rhodes/src/com/rhomobile/rhodes/BaseActivity.java +183 -66
  59. data/platform/android/Rhodes/src/com/rhomobile/rhodes/LocalFileProvider.java +38 -6
  60. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoFileProvider.java +32 -0
  61. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesActivity.java +529 -89
  62. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesApplication.java +26 -4
  63. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +256 -160
  64. data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/AbstractRhoExtension.java +14 -3
  65. data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/IRhoExtManager.java +4 -0
  66. data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/IRhoExtension.java +5 -4
  67. data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/RhoExtManagerImpl.java +79 -38
  68. data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocation.java +6 -1
  69. data/platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/CallReceiver.java +22 -0
  70. data/platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/IKioskMode.java +11 -0
  71. data/platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/KioskManager.java +18 -0
  72. data/platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/MyAccessibilityService.java +230 -0
  73. data/platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/MyNotificationListenerService.java +16 -0
  74. data/platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/MyOverlayService.java +197 -0
  75. data/platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/PermissionManager.java +232 -0
  76. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +34 -8
  77. data/platform/android/Rhodes/src/com/rhomobile/rhodes/permissioncheck/CheckDrawable.java +53 -0
  78. data/platform/android/Rhodes/src/com/rhomobile/rhodes/permissioncheck/PermissionListGenerate.java +366 -0
  79. data/platform/android/Rhodes/src/com/rhomobile/rhodes/rhodes.iml +11 -0
  80. data/platform/android/Rhodes/src/com/rhomobile/rhodes/socket/SSLImpl.java +1 -0
  81. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/GoogleWebView.java +782 -41
  82. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoInputConnectionWrapper.java +146 -0
  83. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoInputListener.java +21 -0
  84. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebViewClient.java +92 -32
  85. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/TauWebViewOptions.java +118 -0
  86. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/WebSettingsProviderBase.java +18 -17
  87. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/WebSettingsProviderEclairMR1.java +4 -4
  88. data/platform/android/build/RhodesSRC_build.files +13 -0
  89. data/platform/android/build/android-repack.rake +8 -1
  90. data/platform/android/build/android.rake +118 -51
  91. data/platform/android/build/android_tools.rb +1 -1
  92. data/platform/android/build/androidcommon.rb +13 -7
  93. data/platform/android/build/config.yml +4 -1
  94. data/platform/android/build/manifest_generator.rb +14 -10
  95. data/platform/android/build/maven_deps_extractor.rb +7 -1
  96. data/platform/android/build/ndkwrapper.rb +12 -0
  97. data/platform/android/proguard/proguard-base-rules.pro +5 -0
  98. data/platform/android/proguard/proguard.jar +0 -0
  99. data/platform/iphone/Classes/RhoAppBaseLib-Bridging-Header.h +4 -0
  100. data/platform/iphone/Classes/RhoAppBaseStandaloneLib-Bridging-Header.h +4 -0
  101. data/platform/iphone/Classes/RhoCryptAESGCM.swift +105 -0
  102. data/platform/iphone/Classes/RhoUIWebView.h +1 -1
  103. data/platform/iphone/Classes/RhoUIWebView.m +1 -1
  104. data/platform/iphone/Classes/RhoWKWebView.h +1 -1
  105. data/platform/iphone/Classes/RhoWKWebView.mm +32 -4
  106. data/platform/iphone/Classes/RhoWebView.h +1 -1
  107. data/platform/iphone/Classes/RhoWebViewFabrique.m +7 -1
  108. data/platform/iphone/Classes/SimpleMainView.m +5 -5
  109. data/platform/iphone/Classes/URLProtocol/CRhoURLProtocol.m +21 -10
  110. data/platform/iphone/Classes/rho/net/IPhoneNetRequest.mm +4 -0
  111. data/platform/iphone/Framework/RhoApplication/RhoApplication.xcodeproj/project.pbxproj +1 -1
  112. data/platform/iphone/Framework/Rhodes/Rhodes.xcodeproj/project.pbxproj +1 -1
  113. data/platform/iphone/RhoAppBaseLib/RhoAppBaseLib.xcodeproj/project.pbxproj +46 -1
  114. data/platform/iphone/RhoLib/RhoLib.xcodeproj/project.pbxproj +1 -1
  115. data/platform/iphone/curl/curl.xcodeproj/project.pbxproj +4 -1
  116. data/platform/iphone/rbuild/iphone.rake +9 -8
  117. data/platform/iphone/rhoextlib/rhoextlib.xcodeproj/project.pbxproj +4 -1
  118. data/platform/iphone/rhorubylib/rhorubylib.xcodeproj/project.pbxproj +1 -1
  119. data/platform/iphone/rhosynclib/rhosynclib.xcodeproj/project.pbxproj +1 -1
  120. data/platform/osx/bin/RhoSimulator/RhoSimulator.app.zip +0 -0
  121. data/platform/sailfish/build/{harbour-SailfishRhodes.pro.erb → SailfishRhodes.pro.erb} +10 -17
  122. data/platform/sailfish/build/rhodes.pro.erb +7 -17
  123. data/platform/sailfish/build/rpm/SailfishRhodes.desktop.erb +12 -0
  124. data/platform/sailfish/build/rpm/SailfishRhodes.erb +2 -0
  125. data/platform/sailfish/build/rpm/SailfishRhodes.spec.erb +43 -0
  126. data/platform/sailfish/build/rubylib.pro.erb +29 -29
  127. data/platform/sailfish/build/sailfish.rake +188 -180
  128. data/platform/sailfish/keys/regular_cert.pem +14 -0
  129. data/platform/sailfish/keys/regular_key.pem +4 -0
  130. data/platform/shared/common/RhodesApp.cpp +33 -9
  131. data/platform/shared/common/iphone/RhoCryptImpl.mm +130 -54
  132. data/platform/shared/qt/RhoSimulator.pro +1 -1
  133. data/platform/shared/qt/rhodes/rhodes.pro +4 -11
  134. data/platform/shared/qt/sailfish/SailfishRhodes.desktop +3 -4
  135. data/platform/shared/qt/sailfish/SailfishRhodes.pro +9 -10
  136. data/platform/shared/qt/sailfish/icons/108x108/108x108.png +0 -0
  137. data/platform/shared/qt/sailfish/privileges/sailfishrhodes +2 -0
  138. data/platform/shared/qt/sailfish/qml/pages/FirstPageWK.qml +7 -11
  139. data/platform/shared/qt/sailfish/qml/{harbour-sailfishrhodes.qml → sailfishrhodes.qml} +1 -1
  140. data/platform/shared/qt/sailfish/rpm/sailfishrhodes.spec +80 -0
  141. data/platform/shared/qt/sailfish/rpm/{harbour-sailfishrhodes.yaml → sailfishrhodes.yaml} +2 -2
  142. data/platform/shared/qt/sailfish/src/QtMainWindow.cpp +1 -1
  143. data/platform/shared/qt/sailfish/src/QtMainWindow.h +1 -1
  144. data/platform/shared/qt/sailfish/src/main.cpp +6 -38
  145. data/platform/shared/qt/sailfish/src/rootdelegate.h +2 -14
  146. data/platform/shared/ruby/aurora/ruby/config.h +386 -0
  147. data/platform/shared/ruby/aurora/ruby/constdefs.c +5866 -0
  148. data/platform/shared/ruby/aurora/ruby/constdefs.h +1788 -0
  149. data/platform/shared/sqlite/crypto.c +14 -0
  150. data/platform/win32/RhoSimulator/RhoSimulator.exe +0 -0
  151. data/platform/win32/build/rhodes.nsi +3 -3
  152. data/platform/win32/build/win32.rake +1 -1
  153. data/rakefile.rb +3 -0
  154. data/res/build-tools/iphonesim/build/Release/iphonesim_8 +4 -4
  155. data/res/generators/templates/application/AndroidManifest.erb +26 -5
  156. data/res/generators/templates/application/build.yml +14 -10
  157. data/res/generators/templates/application/resources/android/res/xml/provider_paths.xml +4 -0
  158. data/res/generators/templates/application/rhoconfig.txt +10 -1
  159. data/res/generators/templates/iphone_project/Bremen8.xcodeproj/project.pbxproj +24 -1
  160. data/res/generators/templates/iphone_project/Classes/SimpleSwiftClass.swift +20 -0
  161. data/res/generators/templates/iphone_project/Classes/rhorunner-Bridging-Header.h +4 -0
  162. data/rhobuild.yml.example +3 -3
  163. data/rhodes.gemspec +4 -2
  164. data/version +1 -1
  165. metadata +81 -26
  166. data/platform/sailfish/build/rho_build.cmd.erb +0 -14
  167. data/platform/sailfish/build/rho_clean.cmd.erb +0 -14
  168. data/platform/sailfish/build/rho_deploy.cmd.erb +0 -15
  169. data/platform/sailfish/build/rho_rpm.cmd.erb +0 -14
  170. data/platform/sailfish/build/rho_rpmvalidation.cmd.erb +0 -14
  171. data/platform/sailfish/build/rpm/harbour-SailfishRhodes.desktop.erb +0 -7
  172. data/platform/sailfish/build/rpm/harbour-SailfishRhodes.erb +0 -2
  173. data/platform/sailfish/build/rpm/harbour-SailfishRhodes.yaml.erb +0 -37
  174. data/platform/shared/qt/sailfish/harbour-sailfishrhodes.desktop +0 -6
  175. data/platform/shared/qt/sailfish/icons/108x108/harbour-sailfishrhodes.png +0 -0
  176. data/platform/shared/qt/sailfish/privileges/harbour-sailfishrhodes +0 -2
  177. data/platform/shared/qt/sailfish/qml/pages/FirstPageWE.qml +0 -236
  178. /data/platform/shared/qt/sailfish/icons/128x128/{harbour-sailfishrhodes.png → sailfishrhodes.png} +0 -0
  179. /data/platform/shared/qt/sailfish/icons/172x172/{harbour-sailfishrhodes.png → sailfishrhodes.png} +0 -0
  180. /data/platform/shared/qt/sailfish/icons/86x86/{harbour-sailfishrhodes.png → sailfishrhodes.png} +0 -0
@@ -32,6 +32,14 @@
32
32
  #import <CommonCrypto/CommonDigest.h>
33
33
  #import <CommonCrypto/CommonCryptor.h>
34
34
 
35
+ #include "common/app_build_capabilities.h"
36
+
37
+
38
+ #ifdef APP_BUILD_CAPABILITY_IOS_CRYPTO_FORCE_AES_GCM
39
+ #import <rhoappbaselib-Swift.h>
40
+ RhoCryptAESGCM* swift_aes_gcm = nil;
41
+ #endif
42
+
35
43
  #define kChosenCipherBlockSize kCCBlockSizeAES128
36
44
  #define kChosenCipherKeySize kCCKeySizeAES256
37
45
  #define kChosenDigestLength CC_SHA1_DIGEST_LENGTH
@@ -59,6 +67,18 @@ CRhoCryptImpl::CRhoCryptImpl(void) : m_dbKeyData(NULL)
59
67
  {
60
68
  m_dwLastError = 0;
61
69
  currentKeySize = kCCKeySizeAES256;
70
+
71
+
72
+
73
+ #ifdef APP_BUILD_CAPABILITY_IOS_CRYPTO_FORCE_AES_GCM
74
+ swift_aes_gcm = [[RhoCryptAESGCM alloc] init];
75
+ #endif
76
+
77
+ //[swift_aes_gcm run_crypto_test];
78
+ //NSData* key_data = [swift_aes_gcm generate_new_key];
79
+ //NSString* str = [key_data base64EncodedStringWithOptions:0];;
80
+ //RAWLOG_INFO1("CALL SWIFT Object RESULT = [%s]", [str UTF8String]);
81
+ //int o = 9;
62
82
  }
63
83
 
64
84
  CRhoCryptImpl::~CRhoCryptImpl(void)
@@ -586,23 +606,41 @@ void CRhoCryptImpl::readKeyFromStorage() {
586
606
 
587
607
  void CRhoCryptImpl::generateNewKey()
588
608
  {
589
- RAWLOG_INFO1("CRhoCryptImpl::generateNewKey() currentKeySize = %d", (int)currentKeySize);
590
609
 
591
- OSStatus sanityCheck = noErr;
592
- uint8_t * symmetricKey = NULL;
593
-
594
- // Allocate some buffer space. I don't trust calloc.
595
- symmetricKey = (uint8_t *)malloc( currentKeySize * sizeof(uint8_t) );
596
- memset((void *)symmetricKey, 0x0, currentKeySize);
597
-
598
- sanityCheck = SecRandomCopyBytes(kSecRandomDefault, currentKeySize, symmetricKey);
599
- if ( sanityCheck != noErr )
600
- {
601
- free(symmetricKey);
602
- LOG(ERROR) + "Problem generating the key, OSStatus: " + sanityCheck + "; errno: " + errno;
603
- }
604
- else
605
- m_dbKeyData = symmetricKey;
610
+ #ifdef APP_BUILD_CAPABILITY_IOS_CRYPTO_FORCE_AES_GCM
611
+
612
+ if ([swift_aes_gcm is_aes_gcm_available]) {
613
+
614
+
615
+ NSData* key_data = [swift_aes_gcm generate_new_key];
616
+ uint8_t * symmetricKey = NULL;
617
+ symmetricKey = (uint8_t *)malloc( currentKeySize * sizeof(uint8_t) );
618
+
619
+ memcpy(symmetricKey, [key_data bytes], currentKeySize);
620
+
621
+ m_dbKeyData = symmetricKey;
622
+ }
623
+ else
624
+ #endif
625
+ {
626
+ RAWLOG_INFO1("CRhoCryptImpl::generateNewKey() currentKeySize = %d", (int)currentKeySize);
627
+
628
+ OSStatus sanityCheck = noErr;
629
+ uint8_t * symmetricKey = NULL;
630
+
631
+ // Allocate some buffer space. I don't trust calloc.
632
+ symmetricKey = (uint8_t *)malloc( currentKeySize * sizeof(uint8_t) );
633
+ memset((void *)symmetricKey, 0x0, currentKeySize);
634
+
635
+ sanityCheck = SecRandomCopyBytes(kSecRandomDefault, currentKeySize, symmetricKey);
636
+ if ( sanityCheck != noErr )
637
+ {
638
+ free(symmetricKey);
639
+ LOG(ERROR) + "Problem generating the key, OSStatus: " + sanityCheck + "; errno: " + errno;
640
+ }
641
+ else
642
+ m_dbKeyData = symmetricKey;
643
+ }
606
644
  }
607
645
 
608
646
  void CRhoCryptImpl::initContext(const char* szPartition)
@@ -661,50 +699,88 @@ int CRhoCryptImpl::db_encrypt( const char* szPartition, int size, unsigned char*
661
699
  {
662
700
  initContext(szPartition);
663
701
 
664
- // Initialization vector; dummy in this case 0's.
665
- uint8_t iv[kChosenCipherBlockSize];
666
- memset((void *) iv, 0x0, (size_t) sizeof(iv));
667
-
668
- size_t movedBytes = 0;
669
-
670
- checkError( CCCrypt( kCCEncrypt, kCCAlgorithmAES,
671
- 0, //kCCOptionPKCS7Padding
672
- (const void *)m_dbKeyData,
673
- currentKeySize,
674
- iv,
675
- (const void *) data,
676
- size,
677
- (void *)dataOut,
678
- size,
679
- &movedBytes
680
- ) );
681
-
682
- return getErrorCode() == 0 ? 1 : 0;
702
+ #ifdef APP_BUILD_CAPABILITY_IOS_CRYPTO_FORCE_AES_GCM
703
+ if ([swift_aes_gcm is_aes_gcm_available]) {
704
+ NSData* page = [NSData dataWithBytes:(const void *)data length:sizeof(unsigned char)*size];
705
+ NSData* key = [NSData dataWithBytes:(const void *)m_dbKeyData length:sizeof(unsigned char)*currentKeySize];
706
+
707
+ NSData* encrypted = [swift_aes_gcm encrypt_page:page :key];
708
+ if (encrypted == nil) {
709
+ return 0;
710
+ }
711
+
712
+ memcpy(dataOut, [encrypted bytes], size);
713
+
714
+ return 1;
715
+ }
716
+ else
717
+ #endif
718
+ {
719
+ // Initialization vector; dummy in this case 0's.
720
+ uint8_t iv[kChosenCipherBlockSize];
721
+ memset((void *) iv, 0x0, (size_t) sizeof(iv));
722
+
723
+ size_t movedBytes = 0;
724
+
725
+ checkError( CCCrypt( kCCEncrypt, kCCAlgorithmAES,
726
+ 0, //kCCOptionPKCS7Padding
727
+ (const void *)m_dbKeyData,
728
+ currentKeySize,
729
+ iv,
730
+ (const void *) data,
731
+ size,
732
+ (void *)dataOut,
733
+ size,
734
+ &movedBytes
735
+ ) );
736
+
737
+ return getErrorCode() == 0 ? 1 : 0;
738
+ }
683
739
  }
684
740
 
685
741
  int CRhoCryptImpl::db_decrypt( const char* szPartition, int size, unsigned char* data )
686
742
  {
687
743
  initContext(szPartition);
688
744
 
689
- // Initialization vector; dummy in this case 0's.
690
- uint8_t iv[kChosenCipherBlockSize];
691
- memset((void *) iv, 0x0, (size_t) sizeof(iv));
692
-
693
- size_t movedBytes = 0;
694
-
695
- checkError( CCCrypt( kCCDecrypt, kCCAlgorithmAES,
696
- 0, //kCCOptionPKCS7Padding
697
- (const void *)m_dbKeyData,
698
- currentKeySize,
699
- iv,
700
- (const void *) data,
701
- size,
702
- (void *)data,
703
- size,
704
- &movedBytes
705
- ) );
706
-
707
- return getErrorCode() == 0 ? 1 : 0;
745
+
746
+ #ifdef APP_BUILD_CAPABILITY_IOS_CRYPTO_FORCE_AES_GCM
747
+
748
+ if ([swift_aes_gcm is_aes_gcm_available]) {
749
+ NSData* page = [NSData dataWithBytes:(const void *)data length:sizeof(unsigned char)*size];
750
+ NSData* key = [NSData dataWithBytes:(const void *)m_dbKeyData length:sizeof(unsigned char)*currentKeySize];
751
+
752
+ NSData* decrypted = [swift_aes_gcm decrypt_page:page :key];
753
+ if (decrypted == nil) {
754
+ return 0;
755
+ }
756
+
757
+ memcpy(data, [decrypted bytes], size);
758
+
759
+ return 1;
760
+ }
761
+ else
762
+ #endif
763
+ {
764
+ // Initialization vector; dummy in this case 0's.
765
+ uint8_t iv[kChosenCipherBlockSize];
766
+ memset((void *) iv, 0x0, (size_t) sizeof(iv));
767
+
768
+ size_t movedBytes = 0;
769
+
770
+ checkError( CCCrypt( kCCDecrypt, kCCAlgorithmAES,
771
+ 0, //kCCOptionPKCS7Padding
772
+ (const void *)m_dbKeyData,
773
+ currentKeySize,
774
+ iv,
775
+ (const void *) data,
776
+ size,
777
+ (void *)data,
778
+ size,
779
+ &movedBytes
780
+ ) );
781
+
782
+ return getErrorCode() == 0 ? 1 : 0;
783
+ }
708
784
  }
709
785
 
710
786
  int CRhoCryptImpl::set_db_CryptKey( const char* szPartition, const char* szKey, bool bPersistent )
@@ -37,7 +37,7 @@ unix:!macx {
37
37
  }
38
38
  macx {
39
39
  SUBDIRS += curl
40
- QMAKE_MAC_SDK = macosx11.1
40
+ QMAKE_MAC_SDK = macosx12.1
41
41
  }
42
42
 
43
43
  win32{
@@ -10,19 +10,12 @@ isEqual(QT_MAJOR_VERSION, 5):{
10
10
  }
11
11
 
12
12
  equals(QT_MINOR_VERSION, 6) {
13
- DEFINES += ENABLE_Q_WEB_ENGINE
14
-
15
- !contains(DEFINES, ENABLE_Q_WEB_ENGINE) {
16
- QT += webkit
17
- message(Deprecated sailfish webkit enabled)
18
- }
19
- contains(DEFINES, ENABLE_Q_WEB_ENGINE) {
20
- QT += webengine
21
- }
13
+ QT += webkit
14
+ message(Deprecated sailfish webkit enabled)
22
15
 
23
16
  QT += quick multimedia dbus bluetooth
24
17
  DEFINES += OS_SAILFISH OS_LINUX
25
- CONFIG += sailfishapp c++14 sailfishapp_i18n qmlcache
18
+ CONFIG += auroraapp c++14 auroraapp_i18n qmlcache
26
19
  }
27
20
 
28
21
  greaterThan(QT_MINOR_VERSION, 6): {
@@ -40,7 +33,7 @@ isEqual(QT_MAJOR_VERSION, 5):{
40
33
  TEMPLATE = app
41
34
  }
42
35
  contains(DEFINES, OS_SAILFISH) {
43
- TARGET = harbour-sailfishrhodes
36
+ TARGET = sailfishrhodes
44
37
  TEMPLATE = app
45
38
  }
46
39
 
@@ -1,7 +1,6 @@
1
1
  [Desktop Entry]
2
2
  Type=Application
3
3
  X-Nemo-Application-Type=silica-qt5
4
- Icon=harbour-sailfishrhodes
5
- Exec=harbour-sailfishrhodes
6
- Name=harbour-sailfishrhodes
7
-
4
+ Icon=sailfishrhodes
5
+ Name=sailfishrhodes
6
+ Exec=invoker --type=silica-qt5 -s /usr/bin/sailfishrhodes
@@ -1,6 +1,6 @@
1
- TARGET = harbour-sailfishrhodes
1
+ TARGET = sailfishrhodes
2
2
  QT += webkit core network quick #widgets
3
- CONFIG += c++14 sailfishapp sailfishapp_i18n ordered
3
+ CONFIG += c++14 auroraapp auroraapp_i18n ordered
4
4
  debug{
5
5
  CONFIG += force_debug_info
6
6
  }
@@ -17,16 +17,15 @@ data.path = $${DEPLOYMENT_PATH}
17
17
 
18
18
  INSTALLS += data
19
19
 
20
- DISTFILES += rpm/harbour-sailfishrhodes.changes.in \
21
- rpm/harbour-sailfishrhodes.changes.run.in \
22
- rpm/harbour-sailfishrhodes.spec \
23
- rpm/harbour-sailfishrhodes.yaml \
24
- harbour-sailfishrhodes.desktop \
20
+ DISTFILES += rpm/sailfishrhodes.changes.in \
21
+ rpm/sailfishrhodes.changes.run.in \
22
+ rpm/sailfishrhodes.spec \
23
+ rpm/sailfishrhodes.yaml \
24
+ sailfishrhodes.desktop \
25
25
  translations/*.ts \
26
- qml/harbour-sailfishrhodes.qml \
26
+ qml/sailfishrhodes.qml \
27
27
  qml/pages/MenuPage.qml \
28
- privileges/harbour-sailfishrhodes \
29
- qml/pages/FirstPageWE.qml \
28
+ privileges/sailfishrhodes \
30
29
  qml/pages/FirstPageWK.qml
31
30
 
32
31
  SAILFISHAPP_ICONS = 86x86 108x108 128x128 172x172
@@ -0,0 +1,2 @@
1
+ # Tells invoker to run sailfishrhodes as nemo:privileged
2
+ /usr/bin/sailfishrhodes,
@@ -1,9 +1,7 @@
1
1
  import QtQuick 2.0
2
2
  import Sailfish.Silica 1.0
3
- import QtWebKit 3.0
4
3
  import QtMultimedia 5.5
5
- import QtWebKit.experimental 1.0
6
- import Nemo.KeepAlive 1.1
4
+ import Nemo.KeepAlive 1.2
7
5
 
8
6
  Page {
9
7
  id: mainPage
@@ -109,7 +107,7 @@ Page {
109
107
  height: parent.height
110
108
  border.width: 1
111
109
 
112
- WebView {
110
+ SilicaWebView {
113
111
  id: webView
114
112
  url: modelData.url
115
113
  anchors.fill: parent
@@ -155,16 +153,16 @@ Page {
155
153
  }
156
154
 
157
155
  onLoadingChanged: {
158
- if (loadRequest.status == WebView.LoadStartedStatus){
156
+ if (loadRequest.status === WebView.LoadStartedStatus){
159
157
  modelData.loadStarted();
160
158
  modelData.messageReceived("Loading " + url + " started...");
161
159
  }
162
- if (loadRequest.status == WebView.LoadSucceededStatus){
160
+ if (loadRequest.status === WebView.LoadSucceededStatus){
163
161
  rootDelegate.cover = ""
164
162
  modelData.loadFinished(true);
165
163
  modelData.messageReceived("Page " + url + " loaded!");
166
164
  }
167
- if (loadRequest.status == WebView.LoadFailedStatus){
165
+ if (loadRequest.status === WebView.LoadFailedStatus){
168
166
  modelData.loadFinished(false);
169
167
  modelData.messageReceived("Loading error: " + url + " : "+
170
168
  loadRequest.errorCode.toString() + " " + loadRequest.errorString);
@@ -182,10 +180,7 @@ Page {
182
180
  //experimental.preferences.webGLEnabled: true;
183
181
  experimental.preferences.navigatorQtObjectEnabled: true;
184
182
  experimental.preferences.offlineWebApplicationCacheEnabled: false;
185
- experimental.onMessageReceived: {
186
- modelData.messageReceived(message.data);
187
- }
188
-
183
+ experimental.onMessageReceived: modelData.messageReceived(message.data);
189
184
  }
190
185
  }
191
186
  }
@@ -234,3 +229,4 @@ Page {
234
229
  }
235
230
  }
236
231
  }
232
+
@@ -8,7 +8,7 @@ ApplicationWindow
8
8
 
9
9
  Loader {
10
10
  id: firstPage
11
- source: rootDelegate.webEngineEnabled ? "pages/FirstPageWE.qml" : "pages/FirstPageWK.qml"
11
+ source: "pages/FirstPageWK.qml"
12
12
  }
13
13
 
14
14
  initialPage: firstPage.item
@@ -0,0 +1,80 @@
1
+ #
2
+ # Do NOT Edit the Auto-generated Part!
3
+ # Generated by: spectacle version 0.32
4
+ #
5
+
6
+ Name: sailfishrhodes
7
+
8
+ # >> macros
9
+ # << macros
10
+
11
+ %{!?qtc_qmake:%define qtc_qmake %qmake}
12
+ %{!?qtc_qmake5:%define qtc_qmake5 %qmake5}
13
+ %{!?qtc_make:%define qtc_make make}
14
+ %{?qtc_builddir:%define _builddir %qtc_builddir}
15
+ Summary: My Sailfish OS Application
16
+ Version: 0.1
17
+ Release: 1
18
+ Group: Qt/Qt
19
+ License: LICENSE
20
+ URL: http://example.org/
21
+ Source0: %{name}-%{version}.tar.bz2
22
+ Source100: sailfishrhodes.yaml
23
+ Requires: sailfishsilica-qt5 >= 0.10.9
24
+ Requires: qt5-qtconnectivity-qtsdpscanner
25
+ BuildRequires: pkgconfig(auroraapp) >= 1.0.2
26
+ BuildRequires: pkgconfig(Qt5Core)
27
+ BuildRequires: pkgconfig(Qt5Qml)
28
+ BuildRequires: pkgconfig(Qt5WebKit)
29
+ BuildRequires: pkgconfig(Qt5Multimedia)
30
+ BuildRequires: pkgconfig(Qt5Bluetooth)
31
+ BuildRequires: qt5-qtqml-import-webkitplugin-experimental
32
+ BuildRequires: bluez5
33
+ BuildRequires: libbluez-qt5
34
+ BuildRequires: qt5-qtconnectivity-qtbluetooth
35
+ BuildRequires: desktop-file-utils
36
+
37
+ %description
38
+ Short description of my Sailfish OS Application
39
+
40
+
41
+ %prep
42
+ %setup -q -n %{name}-%{version}
43
+
44
+ # >> setup
45
+ # << setup
46
+
47
+ %build
48
+ # >> build pre
49
+ # << build pre
50
+
51
+ %qtc_qmake5
52
+
53
+ %qtc_make %{?_smp_mflags}
54
+
55
+ # >> build post
56
+ # << build post
57
+
58
+ %install
59
+ rm -rf %{buildroot}
60
+ # >> install pre
61
+ # << install pre
62
+ %qmake5_install
63
+
64
+ # >> install post
65
+ # << install post
66
+
67
+ desktop-file-install --delete-original \
68
+ --dir %{buildroot}%{_datadir}/applications \
69
+ %{buildroot}%{_datadir}/applications/*.desktop
70
+
71
+ %files
72
+ %defattr(-,root,root,-)
73
+ %{_bindir}
74
+ %{_datadir}/%{name}
75
+ %{_datadir}/applications/%{name}.desktop
76
+ %{_datadir}/icons/hicolor/*/apps/%{name}.png
77
+ %{_datadir}/%{name}/data
78
+ %{_datadir}/mapplauncherd/privileges.d/%{name}
79
+ # >> files
80
+ # << files
@@ -1,4 +1,4 @@
1
- Name: harbour-sailfishrhodes
1
+ Name: sailfishrhodes
2
2
  Summary: My Sailfish OS Application
3
3
  Version: 0.1
4
4
  Release: 1
@@ -21,7 +21,7 @@ Builder: qtc5
21
21
  # This section specifies build dependencies that are resolved using pkgconfig.
22
22
  # This is the preferred way of specifying build dependencies for your package.
23
23
  PkgConfigBR:
24
- - sailfishapp >= 1.0.2
24
+ - auroraapp >= 1.0.2
25
25
  - Qt5Core
26
26
  - Qt5Qml
27
27
  - Qt5WebKit
@@ -42,7 +42,7 @@
42
42
  #include "statistic/RhoProfiler.h"
43
43
  #include <QtNetwork/QNetworkCookie>
44
44
  #include <QDesktopServices>
45
- #include <sailfishapp.h>
45
+ #include <auroraapp.h>
46
46
  #include "impl/MainWindowImpl.h"
47
47
  #include <QCameraInfo>
48
48
  #include <QCryptographicHash>
@@ -42,7 +42,7 @@
42
42
  #include "customwebviewtab.h"
43
43
  #include "customtoolbaritem.h"
44
44
  #include "rootdelegate.h"
45
- #include <sailfishapp.h>
45
+ //#include <auroraapp.h>
46
46
  #include <QDesktopServices>
47
47
 
48
48
  class QtMainWindow : public QObject
@@ -1,4 +1,4 @@
1
- #include <sailfishapp.h>
1
+ #include <auroraapp.h>
2
2
  #include <QObject>
3
3
  #include <QDebug>
4
4
  #include <QFileInfo>
@@ -19,11 +19,7 @@
19
19
  #include "impl/MainWindowImpl.h"
20
20
  #include "QtMainWindow.h"
21
21
  #include "QtLogView.h"
22
- #ifndef ENABLE_Q_WEB_ENGINE
23
22
  #include <QWebSettings>
24
- #else
25
- #include <QtWebEngine/QtWebEngine>
26
- #endif
27
23
  #include "../../platform/shared/qt/rhodes/RhoSimulator.h"
28
24
 
29
25
  using namespace rho;
@@ -95,18 +91,8 @@ int main(int argc, char *argv[])
95
91
  {
96
92
  QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); // DPI support
97
93
  QGuiApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); //HiDPI pixmaps
98
- #ifdef ENABLE_Q_WEB_ENGINE
99
- QString debugAddress;
100
- foreach (const QHostAddress &address, QNetworkInterface::allAddresses()) {
101
- if (address.protocol() == QAbstractSocket::IPv4Protocol && address != QHostAddress(QHostAddress::LocalHost) && debugAddress.isEmpty())
102
- debugAddress = address.toString();
103
- }
104
- if (!debugAddress.isEmpty()){debugAddress.append(":");}
105
- debugAddress.append("9090");
106
- qputenv("QTWEBENGINE_REMOTE_DEBUGGING", debugAddress.toLocal8Bit());
107
- #endif
108
94
 
109
- QScopedPointer<QGuiApplication> pApplication(SailfishApp::application(argc, argv));
95
+ QScopedPointer<QGuiApplication> pApplication(Aurora::Application::application(argc, argv));
110
96
  QGuiApplication * application = const_cast<QGuiApplication *>(pApplication.data());
111
97
  qRegisterMetaType<QString>("QString");
112
98
  qRegisterMetaType<rho::apiGenerator::CMethodResult>("rho::apiGenerator::CMethodResult");
@@ -116,32 +102,19 @@ int main(int argc, char *argv[])
116
102
  QString OSDetailsString= QString("Running on : %1 Application Compiled with QT Version : %2 Running with QT Version %3")
117
103
  .arg(QtLogView::getOsDetails().toStdString().c_str(),QT_VERSION_STR,qVersion());
118
104
 
119
- #ifdef ENABLE_Q_WEB_ENGINE
120
- QtWebEngine::initialize();
121
- QThread::currentThread()->setPriority(QThread::TimeCriticalPriority);
122
- #endif
123
-
124
105
  qDebug() << "Executable file: " + QString::fromLocal8Bit(argv[0]);
125
- QScopedPointer<QQuickView> pView(SailfishApp::createView());
106
+ QScopedPointer<QQuickView> pView(Aurora::Application::createView());
126
107
  QQuickView * view = const_cast<QQuickView * >(pView.data());
127
108
  RootDelegate::getInstance(view->rootContext()->engine())->moveToThread(view->rootContext()->engine()->thread());
128
109
  view->rootContext()->engine()->thread()->setPriority(QThread::TimeCriticalPriority);
129
110
 
130
- #ifndef ENABLE_Q_WEB_ENGINE
131
- /*QWebSettings::globalSettings( )->setAttribute( QWebSettings::PrivateBrowsingEnabled, true );
132
- QWebSettings::globalSettings( )->setAttribute( QWebSettings::LocalContentCanAccessRemoteUrls, true );
133
- QWebSettings::globalSettings( )->setAttribute( QWebSettings::OfflineWebApplicationCacheEnabled, true );
134
- QWebSettings::setMaximumPagesInCache( 0 );
135
- QWebSettings::setObjectCacheCapacities( 0, 0, 0 );
136
- QWebSettings::clearMemoryCaches( );*/
137
- #endif
138
111
  QtMainWindow::setView(view);
139
112
  CMainWindow* m_appWindow = CMainWindow::getInstance();
140
113
 
141
114
  // Create the main application window
142
- QObject::connect(view, &QQuickView::activeChanged, [=](){qDebug() << (view->isActive()?"Active":"Not active");});
115
+ QObject::connect(view, &QQuickView::activeChanged, [=](){qDebug() << ( view->isActive()? "Active" : "Not active" );});
143
116
  QObject::connect(view->engine(), &QQmlEngine::quit, application, &QGuiApplication::quit);
144
- qDebug() << "Main path to QML: " + SailfishApp::pathToMainQml().toString();
117
+ qDebug() << "Main path to QML: " + Aurora::Application::pathToMainQml().toString();
145
118
 
146
119
  qDebug() << "Writable location is: " + QStandardPaths::writableLocation(QStandardPaths::DataLocation);
147
120
  const QByteArray dir = QStandardPaths::writableLocation(QStandardPaths::DataLocation).toLatin1();
@@ -189,7 +162,7 @@ int main(int argc, char *argv[])
189
162
 
190
163
  m_appWindow->Initialize(convertToStringW(RHODESAPP().getAppTitle()).c_str());
191
164
  view->rootContext()->setContextProperty("rootDelegate", RootDelegate::getInstance());
192
- view->setSource(SailfishApp::pathToMainQml());
165
+ view->setSource(Aurora::Application::pathToMainQml());
193
166
  view->showFullScreen();
194
167
  RHODESAPP().startApp();
195
168
  //QTimer::singleShot(1000, ()[&]{rho_rhodesapp_callUiCreatedCallback();});
@@ -198,11 +171,6 @@ int main(int argc, char *argv[])
198
171
  if (RHOCONF().getString("test_push_client").length() > 0 )
199
172
  rho_clientregister_create(RHOCONF().getString("test_push_client").c_str());//"qt_client");
200
173
 
201
- #ifdef ENABLE_Q_WEB_ENGINE
202
- debugAddress.prepend("Debug address is ");
203
- RAWLOGC_INFO("QTMain", debugAddress.toStdString().c_str());
204
- #endif
205
-
206
174
  application->exec();
207
175
 
208
176
  QtMainWindow::doExit(false);
@@ -2,14 +2,12 @@
2
2
  #define ROOTDELEGATE_H
3
3
 
4
4
  #include <QObject>
5
- #include <sailfishapp.h>
6
5
  #include <QCoreApplication>
7
6
 
8
7
  class RootDelegate : public QObject
9
8
  {
10
9
  Q_OBJECT
11
10
  Q_PROPERTY(QString cover READ getCover WRITE setCover NOTIFY coverChanged)
12
- Q_PROPERTY(bool webEngineEnabled READ getWebEngineEnabled CONSTANT)
13
11
  public:
14
12
  static RootDelegate * getInstance(QObject * parent = 0){
15
13
  static RootDelegate * instance = new RootDelegate(parent);
@@ -17,17 +15,10 @@ public:
17
15
  }
18
16
 
19
17
  QString cover;
20
- bool webEngineEnabled;
21
-
22
-
23
18
  private:
24
19
  explicit RootDelegate(QObject *parent = 0) : QObject(parent)
25
20
  {
26
- #ifndef ENABLE_Q_WEB_ENGINE
27
- webEngineEnabled = false;
28
- #else
29
- webEngineEnabled = true;
30
- #endif
21
+
31
22
  }
32
23
  signals:
33
24
  void coverChanged();
@@ -42,10 +33,7 @@ public slots:
42
33
  cover = value;
43
34
  coverChanged();
44
35
  }
45
- bool getWebEngineEnabled() const
46
- {
47
- return webEngineEnabled;
48
- }
36
+
49
37
  };
50
38
 
51
39
  #endif // ROOTDELEGATE_H