Преглед на файлове

update base project android

tama преди 9 месеца
родител
ревизия
306f296a80
променени са 31 файла, в които са добавени 4455 реда и са изтрити 35 реда
  1. 18 6
      NexilisSampleCode/app/build.gradle
  2. 16 2
      NexilisSampleCode/app/proguard-rules.pro
  3. 4 0
      NexilisSampleCode/app/src/main/java/com/example/nexilissamplecodeburger/MainActivity.java
  4. 3 3
      NexilisSampleCode/build.gradle
  5. 2 1
      NexilisSampleCode/gradle.properties
  6. 6 6
      NexilisSampleCode/gradle/wrapper/gradle-wrapper.properties
  7. 9 1
      NexilisSampleCode/settings.gradle
  8. 12 1
      NexilisSampleCodeFlutter-Android/android/app/build.gradle
  9. 16 2
      NexilisSampleCodeFlutter-Android/android/app/proguard-rules.pro
  10. 4 0
      NexilisSampleCodeFlutter-Android/android/app/src/main/java/com/example/paliolitesamplecodeflutter/MainActivity.java
  11. 9 1
      NexilisSampleCodeFlutter-Android/android/build.gradle
  12. 1 0
      NexilisSampleCodeFlutter-Android/android/gradle.properties
  13. 1 1
      NexilisSampleCodeFlutter-Android/android/gradle/wrapper/gradle-wrapper.properties
  14. 12 0
      NexilisSampleCodeIonic-Android/android/app/build.gradle
  15. 1002 0
      NexilisSampleCodeIonic-Android/android/app/classdictionary.txt
  16. 1002 0
      NexilisSampleCodeIonic-Android/android/app/dictionary.txt
  17. 88 0
      NexilisSampleCodeIonic-Android/android/app/proguard-LoggingRemoval.pro
  18. 47 0
      NexilisSampleCodeIonic-Android/android/app/proguard-rules.pro
  19. 6 2
      NexilisSampleCodeIonic-Android/android/app/src/main/java/com/example/nexilissamplecodeionic/MainActivity.java
  20. 10 1
      NexilisSampleCodeIonic-Android/android/build.gradle
  21. 1 0
      NexilisSampleCodeIonic-Android/android/gradle.properties
  22. 1 1
      NexilisSampleCodeIonic-Android/android/gradle/wrapper/gradle-wrapper.properties
  23. 15 1
      NexilisSampleCodeReact-Android/android/app/build.gradle
  24. 1002 0
      NexilisSampleCodeReact-Android/android/app/classdictionary.txt
  25. 1002 0
      NexilisSampleCodeReact-Android/android/app/dictionary.txt
  26. 88 0
      NexilisSampleCodeReact-Android/android/app/proguard-LoggingRemoval.pro
  27. 63 5
      NexilisSampleCodeReact-Android/android/app/proguard-rules.pro
  28. 3 0
      NexilisSampleCodeReact-Android/android/app/src/main/java/com/paliolitesamplecode/MainActivity.java
  29. 10 0
      NexilisSampleCodeReact-Android/android/build.gradle
  30. 1 0
      NexilisSampleCodeReact-Android/android/gradle.properties
  31. 1 1
      NexilisSampleCodeReact-Android/android/gradle/wrapper/gradle-wrapper.properties

+ 18 - 6
NexilisSampleCode/app/build.gradle

@@ -67,15 +67,27 @@ android {
 
 dependencies {
 
-    implementation 'androidx.appcompat:appcompat:1.6.1'
-    implementation 'com.google.android.material:material:1.9.0'
+    implementation 'androidx.appcompat:appcompat:1.7.0'
+    implementation 'com.google.android.material:material:1.12.0'
     implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
     testImplementation 'junit:junit:4.13.2'
-    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
-    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
+    androidTestImplementation 'androidx.test.ext:junit:1.2.1'
+    androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'
 
-    // *** Add Nexilis Lite dependencies ***
-    implementation('***REPLACE***WITH***NEXILIS***VERSION***LIBRARY***') {
+    // *** Add Nexilis UI dependencies ***
+    implementation('***REPLACE***WITH***NEXILIS***UI***VERSION***LIBRARY***') {
+        transitive = true
+        exclude group: 'org.apache.httpcomponents'
+    }
+
+    // *** Add Nexilis UC dependencies ***
+    implementation('***REPLACE***WITH***NEXILIS***UC***VERSION***LIBRARY***') {
+        transitive = true
+        exclude group: 'org.apache.httpcomponents'
+    }
+
+    // *** Add Nexilis SS dependencies ***
+    implementation('***REPLACE***WITH***NEXILIS***SS***VERSION***LIBRARY***') {
         transitive = true
         exclude group: 'org.apache.httpcomponents'
     }

+ 16 - 2
NexilisSampleCode/app/proguard-rules.pro

@@ -20,16 +20,30 @@
 # hide the original source file name.
 #-renamesourcefileattribute SourceFile
 
+# Enable aggressive shrinking and optimization
 -verbose
 -optimizationpasses 14
--allowaccessmodification
 -overloadaggressively
+
+# Obfuscate everything, including class names, method names, and fields
+-repackageclasses ''
 -flattenpackagehierarchy
+-allowaccessmodification
+
+# Do not keep any debugging information
+# Remove the SourceFile and LineNumberTable attributes
+-renamesourcefileattribute ""
+-keepattributes !SourceFile,!LineNumberTable,!Signature
+
 -keeppackagenames doNotKeepAThing
--ignorewarnings
 
 -obfuscationdictionary dictionary.txt
 -classobfuscationdictionary classdictionary.txt
+-packageobfuscationdictionary dictionary.txt
+
+# Aggresively removed unused classes, methods, and fields
+-dontwarn
+-dontnote
 
 -include proguard-LoggingRemoval.pro
 # **********************************************************************************************************

+ 4 - 0
NexilisSampleCode/app/src/main/java/com/example/nexilissamplecodeburger/MainActivity.java

@@ -17,6 +17,7 @@ import io.nexilis.service.utils.callback.GeneralCallback;
 import io.nexilis.service.utils.callback.SimCardDetectionCallback;
 import io.nexilis.service.utils.xthunder.FloatingButton;
 import io.nexilis.service.utils.xthunder.FloatingButtonVar;
+import io.security.streamshield.SecurityShield;
 
 public class MainActivity extends AppCompatActivity {
 
@@ -69,6 +70,9 @@ public class MainActivity extends AppCompatActivity {
                  For example, the Nexilis User ID (e.g. User001) can be mapped into the corresponding Application User ID (e.g. John Doe),
                  so you don't have to share your Application User ID with Nexilis while still being able to monitor your user activities.
                  **************************************/
+
+                SecurityShield.getInstance().check("***REPLACE***WITH***YOUR***APPLICATION***NAME***", "***REPLACE***WITH***YOUR***NEXILIS***ACCOUNT***",MainActivity.this);
+
                 runOnUiThread(new Runnable() {
                     @Override
                     public void run() {

+ 3 - 3
NexilisSampleCode/build.gradle

@@ -1,15 +1,15 @@
 // Top-level build file where you can add configuration options common to all sub-projects/modules.
 buildscript {
     ext {
-        agp_version = '8.1.1'
+        agp_version = '8.7.1'
     }
     dependencies {
         classpath "com.android.tools.build:gradle:$agp_version"
     }
 }
 plugins {
-    id 'com.android.application' version '8.1.1' apply false
-    id 'com.android.library' version '8.1.1' apply false
+    id 'com.android.application' version '8.7.1' apply false
+    id 'com.android.library' version '8.7.1' apply false
     id 'org.jetbrains.kotlin.android' version '1.7.20' apply false
 }
 task clean(type: Delete) {

+ 2 - 1
NexilisSampleCode/gradle.properties

@@ -18,4 +18,5 @@ android.useAndroidX=true
 # Enables namespacing of each library's R class so that its R class includes only the
 # resources declared in the library itself and none from the library's dependencies,
 # thereby reducing the size of the R class for that library
-android.nonTransitiveRClass=true
+android.nonTransitiveRClass=true
+android.enableR8.fullMode=true

+ 6 - 6
NexilisSampleCode/gradle/wrapper/gradle-wrapper.properties

@@ -1,6 +1,6 @@
-#Tue Sep 05 14:21:28 WIB 2023
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
+#Tue Oct 29 11:00:31 WIB 2024
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists

+ 9 - 1
NexilisSampleCode/settings.gradle

@@ -12,7 +12,7 @@ dependencyResolutionManagement {
         mavenCentral()
         jcenter()
 
-        // Add the following lines to include the Nexilis repository into your app
+        // Add the following lines to include the Nexilis UC repository into your app
         maven {
             url "https://nexilis.io/artifactory/nexilis-libs/"
             credentials {
@@ -20,6 +20,14 @@ dependencyResolutionManagement {
                 password = "**REPLACE*WITH*YOUR*MAVEN*PASSWORD**"
             }
         }
+        // Add the following lines to include the Nexilis Security Shield repository into your app
+        maven {
+            url "https://nexilis.io/artifactory/security-libs/"
+            credentials {
+                username = "**REPLACE*WITH*YOUR*MAVEN*USERNAME**"
+                password = "**REPLACE*WITH*YOUR*MAVEN*PASSWORD**"
+            }
+        }
         maven { url 'https://maven.google.com' }
         maven { url 'https://jitpack.io' }
     }

+ 12 - 1
NexilisSampleCodeFlutter-Android/android/app/build.gradle

@@ -82,7 +82,18 @@ flutter {
 }
 
 dependencies {
-    implementation('***REPLACE***WITH***NEXILIS***VERSION***LIBRARY***') {
+    // *** Add Nexilis UI dependencies ***
+    implementation('***REPLACE***WITH***NEXILIS***UI***VERSION***LIBRARY***') {
+        transitive = true
+    }
+
+    // *** Add Nexilis UC dependencies ***
+    implementation('***REPLACE***WITH***NEXILIS***UC***VERSION***LIBRARY***') {
+        transitive = true
+    }
+
+    // *** Add Nexilis SS dependencies ***
+    implementation('***REPLACE***WITH***NEXILIS***SS***VERSION***LIBRARY***') {
         transitive = true
     }
 }

+ 16 - 2
NexilisSampleCodeFlutter-Android/android/app/proguard-rules.pro

@@ -20,16 +20,30 @@
 # hide the original source file name.
 #-renamesourcefileattribute SourceFile
 
+# Enable aggressive shrinking and optimization
 -verbose
 -optimizationpasses 14
--allowaccessmodification
 -overloadaggressively
+
+# Obfuscate everything, including class names, method names, and fields
+-repackageclasses ''
 -flattenpackagehierarchy
+-allowaccessmodification
+
+# Do not keep any debugging information
+# Remove the SourceFile and LineNumberTable attributes
+-renamesourcefileattribute ""
+-keepattributes !SourceFile,!LineNumberTable,!Signature
+
 -keeppackagenames doNotKeepAThing
--ignorewarnings
 
 -obfuscationdictionary dictionary.txt
 -classobfuscationdictionary classdictionary.txt
+-packageobfuscationdictionary dictionary.txt
+
+# Aggresively removed unused classes, methods, and fields
+-dontwarn
+-dontnote
 
 -include proguard-LoggingRemoval.pro
 # **********************************************************************************************************

+ 4 - 0
NexilisSampleCodeFlutter-Android/android/app/src/main/java/com/example/paliolitesamplecodeflutter/MainActivity.java

@@ -16,6 +16,7 @@ import io.nexilis.service.API;
 import io.nexilis.service.Callback;
 import io.nexilis.service.utils.callback.SimCardDetectionCallback;
 import io.nexilis.service.utils.xthunder.FloatingButton;
+import io.security.streamshield.SecurityShield;
 
 public class MainActivity extends FlutterActivity {
     private static final String CHANNEL = "nativeChannel";
@@ -67,6 +68,9 @@ public class MainActivity extends FlutterActivity {
                  For example, the Nexilis User ID (e.g. User001) can be mapped into the corresponding Application User ID (e.g. John Doe),
                  so you don't have to share your Application User ID with Nexilis while still being able to monitor your user activities.
                  **************************************/
+
+                SecurityShield.getInstance().check("***REPLACE***WITH***YOUR***APPLICATION***NAME***", "***REPLACE***WITH***YOUR***NEXILIS***ACCOUNT***",MainActivity.this);
+
                 runOnUiThread(new Runnable() {
                     @Override
                     public void run() {

+ 9 - 1
NexilisSampleCodeFlutter-Android/android/build.gradle

@@ -6,7 +6,7 @@ buildscript {
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.3.0'
+        classpath 'com.android.tools.build:gradle:8.7.1'
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
     }
 }
@@ -25,6 +25,14 @@ allprojects {
                 password = "***REPLACE***WITH***YOUR***MAVEN***PASSWORD***"
             }
         }
+        // Add the following lines to include the Nexilis Security Shield repository into your app
+        maven {
+            url "https://nexilis.io/artifactory/security-libs/"
+            credentials {
+                username = "**REPLACE*WITH*YOUR*MAVEN*USERNAME**"
+                password = "**REPLACE*WITH*YOUR*MAVEN*PASSWORD**"
+            }
+        }
         maven { url 'https://maven.google.com' }
         maven { url 'https://jitpack.io' }
     }

+ 1 - 0
NexilisSampleCodeFlutter-Android/android/gradle.properties

@@ -1,3 +1,4 @@
 org.gradle.jvmargs=-Xmx1536M
 android.useAndroidX=true
 android.enableJetifier=true
+android.enableR8.fullMode=true

+ 1 - 1
NexilisSampleCodeFlutter-Android/android/gradle/wrapper/gradle-wrapper.properties

@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip

+ 12 - 0
NexilisSampleCodeIonic-Android/android/app/build.gradle

@@ -54,10 +54,22 @@ dependencies {
   androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion"
   androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion"
   implementation project(':capacitor-cordova-android-plugins')
+  // *** Add Nexilis UI dependencies ***
   implementation('***REPLACE***WITH***NEXILIS***VERSION***LIBRARY***') {
     transitive = true
     exclude group: 'org.apache.httpcomponents'
   }
+  // *** Add Nexilis UC dependencies ***
+  implementation('***REPLACE***WITH***NEXILIS***UC***VERSION***LIBRARY***') {
+    transitive = true
+    exclude group: 'org.apache.httpcomponents'
+  }
+
+  // *** Add Nexilis SS dependencies ***
+  implementation('***REPLACE***WITH***NEXILIS***SS***VERSION***LIBRARY***') {
+    transitive = true
+    exclude group: 'org.apache.httpcomponents'
+  }
 }
 
 apply from: 'capacitor.build.gradle'

+ 1002 - 0
NexilisSampleCodeIonic-Android/android/app/classdictionary.txt

@@ -0,0 +1,1002 @@
+# Copyright (c) 2013-2015 GuardSquare NV
+
+・	if
+ˊ	If
+ˋ	iF
+ˎ	IF
+ˏ	aux
+ᐝ	Aux
+ʻ	aUx
+ʼ	AUx
+ʽ	auX
+ͺ	AuX
+ι	aUX
+ʾ	AUX
+ʿ	con
+ˈ	Con
+ˉ	cOn
+ˌ	COn
+ˍ	coN
+ˑ	CoN
+ـ	cON
+ᐧ	CON
+ᐨ
+・
+ﹳ
+゙
+ᴵ
+ᵎ
+ᵔ
+ᵢ
+ⁱ
+ﹶ
+ﹺ
+ー
+ᐠ
+ᐣ
+ᐩ
+ᑊ
+ᕀ
+ᵕ
+ᵣ
+יִ
+יּ
+ᐟ
+ᐡ
+ᐪ
+ᒽ
+ᔇ
+ᔈ
+ᗮ
+ᴶ
+ᴸ
+ᵀ
+ᵋ
+ᵗ
+゚
+เ
+Ꭵ
+ᐤ
+ᒡ
+ᒢ
+ᖮ
+ᵌ
+ᵓ
+ᵙ
+ᵛ
+ᵥ
+ﯨ
+ﹴ
+ﹸ
+ﹾ
+৲
+ᐢ
+ᒻ
+ᔅ
+ᔉ
+ᔊ
+ᔋ
+ᕁ
+ᕑ
+ᕽ
+ᘁ
+ᵄ
+ᵞ
+ᵧ
+וּ
+וֹ
+ﹲ
+ﹷ
+ﹻ
+ﹼ
+ﺑ
+ﻧ
+ᑉ
+ᑋ
+ᑦ
+ᒾ
+ᓪ
+ᓫ
+ᔾ
+ᕐ
+ᕝ
+ᵒ
+ᵘ
+ᵤ
+ⁿ
+Ⅰ
+ⅰ
+丶
+ﭔ
+ﭠ
+ﯦ
+ﯩ
+ﯾ
+ﹰ
+ﺗ
+ﻳ
+_
+ニ
+า
+ᐥ
+ᒃ
+ᓒ
+ᕪ
+ᙆ
+ᴊ
+ᴷ
+ᵏ
+ⅼ
+ﭘ
+ﺒ
+ﺛ
+ﺩ
+ﻨ
+ィ
+ɿ
+ง
+ว
+ᐦ
+ᒄ
+ᒼ
+ᓑ
+ᔆ
+ᴖ
+ᴬ
+ᴱ
+ᴲ
+ᴾ
+ᵁ
+ᵃ
+ᵅ
+ᵉ
+ᵊ
+ᵡ
+ᵪ
+ḯ
+Ị
+ị
+ゝ
+ー
+ヽ
+一
+גּ
+זּ
+נּ
+רּ
+ﭕ
+ﭜ
+ﭡ
+ﭤ
+ﯧ
+ﯿ
+ﹹ
+ﹿ
+ﺘ
+ﺫ
+ﻴ
+ſ
+৳
+ฯ
+ๅ
+ᐞ
+ᓐ
+ᓭ
+ᓯ
+ᓱ
+ᓴ
+ᔥ
+ᖦ
+ᴗ
+ᴴ
+ᴿ
+ᵇ
+ᵖ
+ᵟ
+ḷ
+ṙ
+ṛ
+ỉ
+ἰ
+ἱ
+ὶ
+ί
+ῐ
+ῑ
+‿
+⁀
+⁔
+丨
+氵
+灬
+ﭙ
+ﮂ
+ﮄ
+ﹽ
+ﺋ
+ﺜ
+ﻟ
+ノ
+ઽ
+ເ
+ᓰ
+ᓲ
+ᓵ
+ᔿ
+ᕻ
+ᴄ
+ᴐ
+ᴛ
+ᴺ
+ᵈ
+ᵑ
+ᵨ
+Ḯ
+Ἰ
+Ἱ
+Ῐ
+Ῑ
+Ὶ
+Ί
+ℴ
+ⅹ
+ⅽ
+ײַ
+ﬧ
+דּ
+ﭝ
+ﭥ
+ﮆ
+ﹱ
+ﺀ
+ﺪ
+ﺭ
+j
+ュ
+ა
+ი
+Ꮀ
+Ꮮ
+ᒣ
+ᒥ
+ᒧ
+ᒪ
+ᓳ
+ᘄ
+ᴠ
+ᴰ
+ᴻ
+ᵠ
+ᵩ
+ḻ
+ṟ
+ẛ
+Ỉ
+ῒ
+ΐ
+Ⅼ
+ⅴ
+ィ
+ךּ
+כּ
+ﭨ
+ﮢ
+ﺌ
+ﺬ
+ﺯ
+ﻣ
+J
+L
+ァ
+イ
+フ
+ヘ
+ণ
+จ
+แ
+ๆ
+Ꭻ
+Ꮁ
+Ꮣ
+ᒦ
+ᒨ
+ᒫ
+ᖟ
+ᘇ
+ᙇ
+ᴧ
+ᴮ
+ᴳ
+ᴼ
+ᵍ
+ᵐ
+ᵚ
+ᵝ
+ᵦ
+ẋ
+ẍ
+〳
+〵
+ノ
+亅
+亠
+冫
+לּ
+ﮃ
+ﮅ
+ﱠ
+ﱢ
+ﺮ
+ﻠ
+ﻩ
+c
+ゥ
+ェ
+テ
+ナ
+ン
+Ŀ
+ধ
+ร
+ใ
+Ꭲ
+Ꭸ
+Ꮠ
+ᐜ
+ᒩ
+ᓶ
+ᓷ
+ᓸ
+ᓹ
+ᓼ
+ᓽ
+ᔀ
+ᔁ
+ᔄ
+ᔨ
+ᔭ
+ᖕ
+ᘆ
+ᴋ
+ᴹ
+ᴽ
+ḟ
+Ḷ
+ḹ
+ḽ
+ṝ
+ṿ
+ἲ
+ἳ
+ἴ
+ἵ
+ῖ
+ℐ
+〱
+丿
+בּ
+ﭩ
+ﮇ
+ﮊ
+ﮞ
+ﮣ
+ﺰ
+ﻪ
+ッ
+シ
+ソ
+ト
+ユ
+ο
+ऽ
+บ
+ย
+ะ
+າ
+ᐳ
+ᐸ
+ᒉ
+ᒋ
+ᒍ
+ᒐ
+ᓓ
+ᓕ
+ᓗ
+ᓚ
+ᓺ
+ᓻ
+ᓾ
+ᓿ
+ᔂ
+ᔃ
+ᔦ
+ᔩ
+ᔪ
+ᔮ
+ᘤ
+ᚐ
+ᴈ
+ᴏ
+ᴢ
+ᴣ
+ᵂ
+Ḭ
+ḭ
+ṫ
+ṭ
+Ẏ
+ẗ
+Ἲ
+Ἳ
+Ἴ
+Ἵ
+ⅈ
+冖
+הּ
+כֿ
+ﮈ
+ﺓ
+ﻤ
+ﻥ
+f
+i
+t
+v
+ャ
+エ
+コ
+ヒ
+ミ
+リ
+レ
+र
+ঌ
+গ
+ঢ
+ব
+শ
+ঽ
+ก
+კ
+ᐯ
+ᐴ
+ᐹ
+ᒌ
+ᒎ
+ᒑ
+ᒬ
+ᒭ
+ᒮ
+ᒯ
+ᒲ
+ᒳ
+ᒶ
+ᒷ
+ᒺ
+ᓖ
+ᓘ
+ᓛ
+ᔫ
+ᘂ
+ᘢ
+ᚁ
+ᚆ
+ᴒ
+ᴫ
+Ḻ
+Ṫ
+Ỳ
+Ỵ
+ἶ
+ἷ
+ῗ
+ℓ
+Ⅴ
+ゞ
+イ
+忄
+אּ
+ﮋ
+ﺏ
+ﺔ
+ﺣ
+ﻡ
+u
+z
+ォ
+ョ
+ア
+マ
+ラ
+ワ
+ट
+ও
+চ
+দ
+ন
+প
+য
+র
+হ
+ৰ
+ค
+ฅ
+ถ
+ท
+ป
+ผ
+ภ
+ล
+ห
+โ
+ไ
+Ⴡ
+ძ
+ᐵ
+ᑈ
+ᒏ
+ᒰ
+ᒱ
+ᒴ
+ᒵ
+ᒸ
+ᒹ
+ᓙ
+ᔬ
+ᖧ
+ᖨ
+ᖪ
+ᖬ
+ᖽ
+ᖾ
+ᖿ
+ᗁ
+ᘅ
+ᘣ
+ᘦ
+ᘧ
+ᴉ
+ᴘ
+ᴝ
+ᴦ
+ᴩ
+ᴭ
+Ṭ
+ṯ
+ẏ
+ẓ
+ọ
+ỵ
+Ἶ
+Ἷ
+ℷ
+Ⅱ
+ⅱ
+々
+ぃ
+ァ
+ッ
+ヾ
+乀
+宀
+ﬥ
+צּ
+בֿ
+ﭒ
+ﭞ
+ﺕ
+ﺟ
+ﺧ
+ﻋ
+ﻌ
+ﻢ
+F
+I
+l
+n
+r
+s
+ヲ
+ウ
+キ
+ク
+ケ
+ス
+チ
+ハ
+モ
+п
+ऱ
+এ
+খ
+ঘ
+ষ
+ঢ়
+ฑ
+ต
+น
+ม
+อ
+ງ
+ე
+პ
+Ꮧ
+Ꮭ
+ᐱ
+ᓮ
+ᔱ
+ᔲ
+ᔹ
+ᔺ
+ᔽ
+ᕂ
+ᕃ
+ᕄ
+ᕆ
+ᖅ
+ᖩ
+ᖫ
+ᖭ
+ᖸ
+ᖺ
+ᗀ
+ᘥ
+ᵆ
+Ḟ
+Ḹ
+Ḽ
+Ṿ
+Ὑ
+Ῠ
+Ῡ
+Ὺ
+Ύ
+K
+Ⅽ
+Ↄ
+く
+っ
+へ
+ゥ
+ト
+リ
+ヮ
+ヶ
+丫
+乁
+爫
+ﬤ
+טּ
+סּ
+ףּ
+ﭖ
+ﭴ
+ﭸ
+ﮉ
+ﮌ
+ﮐ
+ﱟ
+ﱡ
+ﺙ
+ﻏ
+ﻐ
+ﻛ
+k
+ヌ
+メ

+ 1002 - 0
NexilisSampleCodeIonic-Android/android/app/dictionary.txt

@@ -0,0 +1,1002 @@
+# Copyright (c) 2013-2015 GuardSquare NV
+
+・
+ᐝ
+ι
+ʿ
+ᐧ
+ᐨ
+・
+ﹳ
+゙
+ᴵ
+ᵎ
+ᵔ
+ᵢ
+ⁱ
+ﹶ
+ﹺ
+ー
+ᐠ
+ᐣ
+ᐩ
+ᑊ
+ᕀ
+ᵕ
+ᵣ
+יִ
+יּ
+ᐟ
+ᐡ
+ᐪ
+ᒽ
+ᔇ
+ᔈ
+ᗮ
+ᴶ
+ᴸ
+ᵀ
+ᵋ
+ᵗ
+゚
+เ
+Ꭵ
+ᐤ
+ᒡ
+ᒢ
+ᖮ
+ᵌ
+ᵓ
+ᵙ
+ᵛ
+ᵥ
+ﯨ
+ﹴ
+ﹸ
+ﹾ
+৲
+ᐢ
+ᒻ
+ᔅ
+ᔉ
+ᔊ
+ᔋ
+ᕁ
+ᕑ
+ᕽ
+ᘁ
+ᵄ
+ᵞ
+ᵧ
+וּ
+וֹ
+ﹲ
+ﹷ
+ﹻ
+ﹼ
+ﺑ
+ﻧ
+ᑉ
+ᑋ
+ᑦ
+ᒾ
+ᓪ
+ᓫ
+ᔾ
+ᕐ
+ᕝ
+ᵒ
+ᵘ
+ᵤ
+ⁿ
+Ⅰ
+ⅰ
+丶
+ﭔ
+ﭠ
+ﯦ
+ﯩ
+ﯾ
+ﹰ
+ﺗ
+ﻳ
+_
+ニ
+า
+ᐥ
+ᒃ
+ᓒ
+ᕪ
+ᙆ
+ᴊ
+ᴷ
+ᵏ
+ⅼ
+ﭘ
+ﺒ
+ﺛ
+ﺩ
+ﻨ
+ィ
+ɿ
+ง
+ว
+ᐦ
+ᒄ
+ᒼ
+ᓑ
+ᔆ
+ᴖ
+ᴬ
+ᴱ
+ᴲ
+ᴾ
+ᵁ
+ᵃ
+ᵅ
+ᵉ
+ᵊ
+ᵡ
+ᵪ
+ḯ
+Ị
+ị
+ゝ
+ー
+ヽ
+一
+גּ
+זּ
+נּ
+רּ
+ﭕ
+ﭜ
+ﭡ
+ﭤ
+ﯧ
+ﯿ
+ﹹ
+ﹿ
+ﺘ
+ﺫ
+ﻴ
+ſ
+৳
+ฯ
+ๅ
+ᐞ
+ᓐ
+ᓭ
+ᓯ
+ᓱ
+ᓴ
+ᔥ
+ᖦ
+ᴗ
+ᴴ
+ᴿ
+ᵇ
+ᵖ
+ᵟ
+ḷ
+ṙ
+ṛ
+ỉ
+ἰ
+ἱ
+ὶ
+ί
+ῐ
+ῑ
+‿
+⁀
+⁔
+丨
+氵
+灬
+ﭙ
+ﮂ
+ﮄ
+ﹽ
+ﺋ
+ﺜ
+ﻟ
+ノ
+ઽ
+ເ
+ᓰ
+ᓲ
+ᓵ
+ᔿ
+ᕻ
+ᴄ
+ᴐ
+ᴛ
+ᴺ
+ᵈ
+ᵑ
+ᵨ
+Ḯ
+Ἰ
+Ἱ
+Ῐ
+Ῑ
+Ὶ
+Ί
+ℴ
+ⅹ
+ⅽ
+ײַ
+ﬧ
+דּ
+ﭝ
+ﭥ
+ﮆ
+ﹱ
+ﺀ
+ﺪ
+ﺭ
+j
+ュ
+ა
+ი
+Ꮀ
+Ꮮ
+ᒣ
+ᒥ
+ᒧ
+ᒪ
+ᓳ
+ᘄ
+ᴠ
+ᴰ
+ᴻ
+ᵠ
+ᵩ
+ḻ
+ṟ
+ẛ
+Ỉ
+ῒ
+ΐ
+Ⅼ
+ⅴ
+ィ
+ךּ
+כּ
+ﭨ
+ﮢ
+ﺌ
+ﺬ
+ﺯ
+ﻣ
+J
+L
+ァ
+イ
+フ
+ヘ
+ণ
+จ
+แ
+ๆ
+Ꭻ
+Ꮁ
+Ꮣ
+ᒦ
+ᒨ
+ᒫ
+ᖟ
+ᘇ
+ᙇ
+ᴧ
+ᴮ
+ᴳ
+ᴼ
+ᵍ
+ᵐ
+ᵚ
+ᵝ
+ᵦ
+ẋ
+ẍ
+〳
+〵
+ノ
+亅
+亠
+冫
+לּ
+ﮃ
+ﮅ
+ﱠ
+ﱢ
+ﺮ
+ﻠ
+ﻩ
+c
+ゥ
+ェ
+テ
+ナ
+ン
+Ŀ
+ধ
+ร
+ใ
+Ꭲ
+Ꭸ
+Ꮠ
+ᐜ
+ᒩ
+ᓶ
+ᓷ
+ᓸ
+ᓹ
+ᓼ
+ᓽ
+ᔀ
+ᔁ
+ᔄ
+ᔨ
+ᔭ
+ᖕ
+ᘆ
+ᴋ
+ᴹ
+ᴽ
+ḟ
+Ḷ
+ḹ
+ḽ
+ṝ
+ṿ
+ἲ
+ἳ
+ἴ
+ἵ
+ῖ
+ℐ
+〱
+丿
+בּ
+ﭩ
+ﮇ
+ﮊ
+ﮞ
+ﮣ
+ﺰ
+ﻪ
+ッ
+シ
+ソ
+ト
+ユ
+ο
+ऽ
+บ
+ย
+ะ
+າ
+ᐳ
+ᐸ
+ᒉ
+ᒋ
+ᒍ
+ᒐ
+ᓓ
+ᓕ
+ᓗ
+ᓚ
+ᓺ
+ᓻ
+ᓾ
+ᓿ
+ᔂ
+ᔃ
+ᔦ
+ᔩ
+ᔪ
+ᔮ
+ᘤ
+ᚐ
+ᴈ
+ᴏ
+ᴢ
+ᴣ
+ᵂ
+Ḭ
+ḭ
+ṫ
+ṭ
+Ẏ
+ẗ
+Ἲ
+Ἳ
+Ἴ
+Ἵ
+ⅈ
+冖
+הּ
+כֿ
+ﮈ
+ﺓ
+ﻤ
+ﻥ
+f
+i
+t
+v
+ャ
+エ
+コ
+ヒ
+ミ
+リ
+レ
+र
+ঌ
+গ
+ঢ
+ব
+শ
+ঽ
+ก
+კ
+ᐯ
+ᐴ
+ᐹ
+ᒌ
+ᒎ
+ᒑ
+ᒬ
+ᒭ
+ᒮ
+ᒯ
+ᒲ
+ᒳ
+ᒶ
+ᒷ
+ᒺ
+ᓖ
+ᓘ
+ᓛ
+ᔫ
+ᘂ
+ᘢ
+ᚁ
+ᚆ
+ᴒ
+ᴫ
+Ḻ
+Ṫ
+Ỳ
+Ỵ
+ἶ
+ἷ
+ῗ
+ℓ
+Ⅴ
+ゞ
+イ
+忄
+אּ
+ﮋ
+ﺏ
+ﺔ
+ﺣ
+ﻡ
+u
+z
+ォ
+ョ
+ア
+マ
+ラ
+ワ
+ट
+ও
+চ
+দ
+ন
+প
+য
+র
+হ
+ৰ
+ค
+ฅ
+ถ
+ท
+ป
+ผ
+ภ
+ล
+ห
+โ
+ไ
+Ⴡ
+ძ
+ᐵ
+ᑈ
+ᒏ
+ᒰ
+ᒱ
+ᒴ
+ᒵ
+ᒸ
+ᒹ
+ᓙ
+ᔬ
+ᖧ
+ᖨ
+ᖪ
+ᖬ
+ᖽ
+ᖾ
+ᖿ
+ᗁ
+ᘅ
+ᘣ
+ᘦ
+ᘧ
+ᴉ
+ᴘ
+ᴝ
+ᴦ
+ᴩ
+ᴭ
+Ṭ
+ṯ
+ẏ
+ẓ
+ọ
+ỵ
+Ἶ
+Ἷ
+ℷ
+Ⅱ
+ⅱ
+々
+ぃ
+ァ
+ッ
+ヾ
+乀
+宀
+ﬥ
+צּ
+בֿ
+ﭒ
+ﭞ
+ﺕ
+ﺟ
+ﺧ
+ﻋ
+ﻌ
+ﻢ
+F
+I
+l
+n
+r
+s
+ヲ
+ウ
+キ
+ク
+ケ
+ス
+チ
+ハ
+モ
+п
+ऱ
+এ
+খ
+ঘ
+ষ
+ঢ়
+ฑ
+ต
+น
+ม
+อ
+ງ
+ე
+პ
+Ꮧ
+Ꮭ
+ᐱ
+ᓮ
+ᔱ
+ᔲ
+ᔹ
+ᔺ
+ᔽ
+ᕂ
+ᕃ
+ᕄ
+ᕆ
+ᖅ
+ᖩ
+ᖫ
+ᖭ
+ᖸ
+ᖺ
+ᗀ
+ᘥ
+ᵆ
+Ḟ
+Ḹ
+Ḽ
+Ṿ
+Ὑ
+Ῠ
+Ῡ
+Ὺ
+Ύ
+K
+Ⅽ
+Ↄ
+く
+っ
+へ
+ゥ
+ト
+リ
+ヮ
+ヶ
+丫
+乁
+爫
+ﬤ
+טּ
+סּ
+ףּ
+ﭖ
+ﭴ
+ﭸ
+ﮉ
+ﮌ
+ﮐ
+ﱟ
+ﱡ
+ﺙ
+ﻏ
+ﻐ
+ﻛ
+k
+ヌ
+メ

+ 88 - 0
NexilisSampleCodeIonic-Android/android/app/proguard-LoggingRemoval.pro

@@ -0,0 +1,88 @@
+# DexGuard's default settings are fine for this sample application.
+
+# The optimization step can remove specified logging calls.
+# The shrinking step can then also remove the logging classes.
+
+# Remove Android logging calls (in this case, including errors).
+-assumenosideeffects class android.util.Log {
+    public static boolean isLoggable(java.lang.String, int);
+    public static int v(...);
+    public static int i(...);
+    public static int w(...);
+    public static int d(...);
+    public static int e(...);
+    public static java.lang.String getStackTraceString(java.lang.Throwable);
+}
+
+# Remove Java logging calls.
+-assumenosideeffects class java.util.logging.Logger {
+    public static java.util.logging.Logger getLogger(...);
+    public boolean isLoggable(java.util.logging.Level);
+    public void entering(...);
+    public void exiting(...);
+    public void finest(...);
+    public void finer(...);
+    public void fine(...);
+    public void config(...);
+    public void info(...);
+    public void warning(...);
+    public void severe(...);
+}
+
+# Remove Apache Commons logging calls.
+# -assumenosideeffects class org.apache.commons.logging.Log {
+#    public boolean is*Enabled();
+#    public void trace(...);
+#    public void debug(...);
+#    public void info(...);
+#    public void warn(...);
+#    public void error(...);
+#    public void fatal(...);
+# }
+
+# Remove SLF4J logging calls.
+# -assumenosideeffects class org.slf4j.Logger {
+#     public boolean is*Enabled();
+#     public void trace(...);
+#     public void debug(...);
+#     public void info(...);
+#     public void warn(...);
+#     public void error(...);
+# }
+
+# Remove Cordova logging calls.
+# -assumenosideeffects class org.apache.cordova.LOG {
+#     public static boolean isLoggable(int);
+#     public static void v(...);
+#     public static void d(...);
+#     public static void i(...);
+#     public static void w(...);
+#     public static void e(...);
+# }
+
+# ------------------
+
+# Remove debugging - Throwable_printStackTrace calls. Remove all invocations of
+# Throwable.printStackTrace().
+-assumenosideeffects public class java.lang.Throwable {
+    public void printStackTrace();
+}
+
+# Remove debugging - Thread_dumpStack calls. Remove all invocations of
+# Thread.dumpStack().
+-assumenosideeffects public class java.lang.Thread {
+    public static void dumpStack();
+}
+
+# Remove debugging - All logging API calls. Remove all invocations of the
+# logging API whose return values are not used.
+-assumenosideeffects public class java.util.logging.* {
+    <methods>;
+}
+
+# Remove debugging - All Log4j API calls. Remove all invocations of the
+# Log4j API whose return values are not used.
+-assumenosideeffects public class org.apache.log4j.** {
+    <methods>;
+}
+# ******************************************************************************************************************************************************

+ 47 - 0
NexilisSampleCodeIonic-Android/android/app/proguard-rules.pro

@@ -19,3 +19,50 @@
 # If you keep the line number information, uncomment this to
 # hide the original source file name.
 #-renamesourcefileattribute SourceFile
+
+# Enable aggressive shrinking and optimization
+-verbose
+-optimizationpasses 14
+-overloadaggressively
+
+# Obfuscate everything, including class names, method names, and fields
+-repackageclasses ''
+-flattenpackagehierarchy
+-allowaccessmodification
+
+# Do not keep any debugging information
+# Remove the SourceFile and LineNumberTable attributes
+-renamesourcefileattribute ""
+-keepattributes !SourceFile,!LineNumberTable,!Signature
+
+-keeppackagenames doNotKeepAThing
+
+-obfuscationdictionary dictionary.txt
+-classobfuscationdictionary classdictionary.txt
+-packageobfuscationdictionary dictionary.txt
+
+# Aggresively removed unused classes, methods, and fields
+-dontwarn
+-dontnote
+
+-include proguard-LoggingRemoval.pro
+# **********************************************************************************************************
+-keep class * { native <methods>; }
+-keep class androidx.core.app.** { public *; }
+-keep class com.google.android.** { *; }
+-keep class com.google.mlkit.** { *; }
+-keep interface com.google.android.** { *; }
+-keep class com.google.android.gms.** { *; }
+-keep class com.google.firebase.** { *; }
+# **********************************************************************************************************
+-keep class net.sqlcipher.** { *; }
+-keep public class * implements com.bumptech.esglide.module.GlideModule
+-keep public class * extends com.bumptech.esglide.module.AppGlideModule
+-keep public enum com.bumptech.glide.load.ImageHeaderParser$** { **[] $VALUES; public *; }
+-keep public class io.nexilis.service.** { *; }
+# **********************************************************************************************************
+-keep class net.zetetic.database.sqlcipher.** { *; }
+
+-keep public class javax.mail.** { *; }
+-keep public class com.sun.mail.** { *; }
+-keep public class org.apache.harmony.** { *; }

+ 6 - 2
NexilisSampleCodeIonic-Android/android/app/src/main/java/com/example/nexilissamplecodeionic/MainActivity.java

@@ -11,6 +11,7 @@ import io.nexilis.service.API;
 import io.nexilis.service.Callback;
 import io.nexilis.service.utils.callback.SimCardDetectionCallback;
 import io.nexilis.service.utils.xthunder.FloatingButton;
+import io.security.streamshield.SecurityShield;
 
 public class MainActivity extends BridgeActivity {
   @Override
@@ -51,8 +52,8 @@ public class MainActivity extends BridgeActivity {
      * 		You need to implement onSuccess(String NexilisUserID) & onFailed(String reasonCode) to handle the RESULT.
      *
      */
-    int nexilisButtonMode = 0;
-    API.connect("***REPLACE***WITH***YOUR***APPLICATION***NAME***", "***REPLACE***WITH***YOUR***NEXILIS***ACCOUNT***", this, nexilisButtonMode, new Callback() {
+        int nexilisButtonMode = 0;
+        API.connect("***REPLACE***WITH***YOUR***APPLICATION***NAME***", "***REPLACE***WITH***YOUR***NEXILIS***ACCOUNT***", this, nexilisButtonMode, new Callback() {
       @Override
       public void onSuccess(final String NexilisUserID) {
         /**************************************
@@ -60,6 +61,9 @@ public class MainActivity extends BridgeActivity {
          For example, the Nexilis User ID (e.g. User001) can be mapped into the corresponding Application User ID (e.g. John Doe),
          so you don't have to share your Application User ID with Nexilis while still being able to monitor your user activities.
          **************************************/
+
+        SecurityShield.getInstance().check("***REPLACE***WITH***YOUR***APPLICATION***NAME***", "***REPLACE***WITH***YOUR***NEXILIS***ACCOUNT***",MainActivity.this);
+
         runOnUiThread(new Runnable() {
           @Override
           public void run() {

+ 10 - 1
NexilisSampleCodeIonic-Android/android/build.gradle

@@ -7,7 +7,7 @@ buildscript {
         mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:8.0.0'
+        classpath 'com.android.tools.build:gradle:8.7.1'
         classpath 'com.google.gms:google-services:4.3.15'
 
         // NOTE: Do not place your application dependencies here; they belong
@@ -31,6 +31,15 @@ allprojects {
             password = "***REPLACE***WITH***YOUR***MAVEN***PASSWORD***"
           }
         }
+
+        // Add the following lines to include the Nexilis Security Shield repository into your app
+        maven {
+          url "https://nexilis.io/artifactory/security-libs/"
+          credentials {
+            username = "**REPLACE*WITH*YOUR*MAVEN*USERNAME**"
+            password = "**REPLACE*WITH*YOUR*MAVEN*PASSWORD**"
+          }
+        }
         maven { url 'https://maven.google.com' }
         maven { url 'https://jitpack.io' }
     }

+ 1 - 0
NexilisSampleCodeIonic-Android/android/gradle.properties

@@ -20,3 +20,4 @@ org.gradle.jvmargs=-Xmx1536m
 # Android operating system, and which are packaged with your app's APK
 # https://developer.android.com/topic/libraries/support-library/androidx-rn
 android.useAndroidX=true
+android.enableR8.fullMode=true

+ 1 - 1
NexilisSampleCodeIonic-Android/android/gradle/wrapper/gradle-wrapper.properties

@@ -1,6 +1,6 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
 networkTimeout=10000
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists

+ 15 - 1
NexilisSampleCodeReact-Android/android/app/build.gradle

@@ -134,8 +134,22 @@ dependencies {
         implementation jscFlavor
     }
 
-    implementation('***REPLACE***WITH***NEXILIS***VERSION***LIBRARY***') {
+    // *** Add Nexilis UI dependencies ***
+    implementation('***REPLACE***WITH***NEXILIS***UI***VERSION***LIBRARY***') {
         transitive = true
+        exclude group: 'org.apache.httpcomponents'
+    }
+
+    // *** Add Nexilis UC dependencies ***
+    implementation('***REPLACE***WITH***NEXILIS***UC***VERSION***LIBRARY***') {
+        transitive = true
+        exclude group: 'org.apache.httpcomponents'
+    }
+
+    // *** Add Nexilis SS dependencies ***
+    implementation('***REPLACE***WITH***NEXILIS***SS***VERSION***LIBRARY***') {
+        transitive = true
+        exclude group: 'org.apache.httpcomponents'
     }
 }
 

+ 1002 - 0
NexilisSampleCodeReact-Android/android/app/classdictionary.txt

@@ -0,0 +1,1002 @@
+# Copyright (c) 2013-2015 GuardSquare NV
+
+・	if
+ˊ	If
+ˋ	iF
+ˎ	IF
+ˏ	aux
+ᐝ	Aux
+ʻ	aUx
+ʼ	AUx
+ʽ	auX
+ͺ	AuX
+ι	aUX
+ʾ	AUX
+ʿ	con
+ˈ	Con
+ˉ	cOn
+ˌ	COn
+ˍ	coN
+ˑ	CoN
+ـ	cON
+ᐧ	CON
+ᐨ
+・
+ﹳ
+゙
+ᴵ
+ᵎ
+ᵔ
+ᵢ
+ⁱ
+ﹶ
+ﹺ
+ー
+ᐠ
+ᐣ
+ᐩ
+ᑊ
+ᕀ
+ᵕ
+ᵣ
+יִ
+יּ
+ᐟ
+ᐡ
+ᐪ
+ᒽ
+ᔇ
+ᔈ
+ᗮ
+ᴶ
+ᴸ
+ᵀ
+ᵋ
+ᵗ
+゚
+เ
+Ꭵ
+ᐤ
+ᒡ
+ᒢ
+ᖮ
+ᵌ
+ᵓ
+ᵙ
+ᵛ
+ᵥ
+ﯨ
+ﹴ
+ﹸ
+ﹾ
+৲
+ᐢ
+ᒻ
+ᔅ
+ᔉ
+ᔊ
+ᔋ
+ᕁ
+ᕑ
+ᕽ
+ᘁ
+ᵄ
+ᵞ
+ᵧ
+וּ
+וֹ
+ﹲ
+ﹷ
+ﹻ
+ﹼ
+ﺑ
+ﻧ
+ᑉ
+ᑋ
+ᑦ
+ᒾ
+ᓪ
+ᓫ
+ᔾ
+ᕐ
+ᕝ
+ᵒ
+ᵘ
+ᵤ
+ⁿ
+Ⅰ
+ⅰ
+丶
+ﭔ
+ﭠ
+ﯦ
+ﯩ
+ﯾ
+ﹰ
+ﺗ
+ﻳ
+_
+ニ
+า
+ᐥ
+ᒃ
+ᓒ
+ᕪ
+ᙆ
+ᴊ
+ᴷ
+ᵏ
+ⅼ
+ﭘ
+ﺒ
+ﺛ
+ﺩ
+ﻨ
+ィ
+ɿ
+ง
+ว
+ᐦ
+ᒄ
+ᒼ
+ᓑ
+ᔆ
+ᴖ
+ᴬ
+ᴱ
+ᴲ
+ᴾ
+ᵁ
+ᵃ
+ᵅ
+ᵉ
+ᵊ
+ᵡ
+ᵪ
+ḯ
+Ị
+ị
+ゝ
+ー
+ヽ
+一
+גּ
+זּ
+נּ
+רּ
+ﭕ
+ﭜ
+ﭡ
+ﭤ
+ﯧ
+ﯿ
+ﹹ
+ﹿ
+ﺘ
+ﺫ
+ﻴ
+ſ
+৳
+ฯ
+ๅ
+ᐞ
+ᓐ
+ᓭ
+ᓯ
+ᓱ
+ᓴ
+ᔥ
+ᖦ
+ᴗ
+ᴴ
+ᴿ
+ᵇ
+ᵖ
+ᵟ
+ḷ
+ṙ
+ṛ
+ỉ
+ἰ
+ἱ
+ὶ
+ί
+ῐ
+ῑ
+‿
+⁀
+⁔
+丨
+氵
+灬
+ﭙ
+ﮂ
+ﮄ
+ﹽ
+ﺋ
+ﺜ
+ﻟ
+ノ
+ઽ
+ເ
+ᓰ
+ᓲ
+ᓵ
+ᔿ
+ᕻ
+ᴄ
+ᴐ
+ᴛ
+ᴺ
+ᵈ
+ᵑ
+ᵨ
+Ḯ
+Ἰ
+Ἱ
+Ῐ
+Ῑ
+Ὶ
+Ί
+ℴ
+ⅹ
+ⅽ
+ײַ
+ﬧ
+דּ
+ﭝ
+ﭥ
+ﮆ
+ﹱ
+ﺀ
+ﺪ
+ﺭ
+j
+ュ
+ა
+ი
+Ꮀ
+Ꮮ
+ᒣ
+ᒥ
+ᒧ
+ᒪ
+ᓳ
+ᘄ
+ᴠ
+ᴰ
+ᴻ
+ᵠ
+ᵩ
+ḻ
+ṟ
+ẛ
+Ỉ
+ῒ
+ΐ
+Ⅼ
+ⅴ
+ィ
+ךּ
+כּ
+ﭨ
+ﮢ
+ﺌ
+ﺬ
+ﺯ
+ﻣ
+J
+L
+ァ
+イ
+フ
+ヘ
+ণ
+จ
+แ
+ๆ
+Ꭻ
+Ꮁ
+Ꮣ
+ᒦ
+ᒨ
+ᒫ
+ᖟ
+ᘇ
+ᙇ
+ᴧ
+ᴮ
+ᴳ
+ᴼ
+ᵍ
+ᵐ
+ᵚ
+ᵝ
+ᵦ
+ẋ
+ẍ
+〳
+〵
+ノ
+亅
+亠
+冫
+לּ
+ﮃ
+ﮅ
+ﱠ
+ﱢ
+ﺮ
+ﻠ
+ﻩ
+c
+ゥ
+ェ
+テ
+ナ
+ン
+Ŀ
+ধ
+ร
+ใ
+Ꭲ
+Ꭸ
+Ꮠ
+ᐜ
+ᒩ
+ᓶ
+ᓷ
+ᓸ
+ᓹ
+ᓼ
+ᓽ
+ᔀ
+ᔁ
+ᔄ
+ᔨ
+ᔭ
+ᖕ
+ᘆ
+ᴋ
+ᴹ
+ᴽ
+ḟ
+Ḷ
+ḹ
+ḽ
+ṝ
+ṿ
+ἲ
+ἳ
+ἴ
+ἵ
+ῖ
+ℐ
+〱
+丿
+בּ
+ﭩ
+ﮇ
+ﮊ
+ﮞ
+ﮣ
+ﺰ
+ﻪ
+ッ
+シ
+ソ
+ト
+ユ
+ο
+ऽ
+บ
+ย
+ะ
+າ
+ᐳ
+ᐸ
+ᒉ
+ᒋ
+ᒍ
+ᒐ
+ᓓ
+ᓕ
+ᓗ
+ᓚ
+ᓺ
+ᓻ
+ᓾ
+ᓿ
+ᔂ
+ᔃ
+ᔦ
+ᔩ
+ᔪ
+ᔮ
+ᘤ
+ᚐ
+ᴈ
+ᴏ
+ᴢ
+ᴣ
+ᵂ
+Ḭ
+ḭ
+ṫ
+ṭ
+Ẏ
+ẗ
+Ἲ
+Ἳ
+Ἴ
+Ἵ
+ⅈ
+冖
+הּ
+כֿ
+ﮈ
+ﺓ
+ﻤ
+ﻥ
+f
+i
+t
+v
+ャ
+エ
+コ
+ヒ
+ミ
+リ
+レ
+र
+ঌ
+গ
+ঢ
+ব
+শ
+ঽ
+ก
+კ
+ᐯ
+ᐴ
+ᐹ
+ᒌ
+ᒎ
+ᒑ
+ᒬ
+ᒭ
+ᒮ
+ᒯ
+ᒲ
+ᒳ
+ᒶ
+ᒷ
+ᒺ
+ᓖ
+ᓘ
+ᓛ
+ᔫ
+ᘂ
+ᘢ
+ᚁ
+ᚆ
+ᴒ
+ᴫ
+Ḻ
+Ṫ
+Ỳ
+Ỵ
+ἶ
+ἷ
+ῗ
+ℓ
+Ⅴ
+ゞ
+イ
+忄
+אּ
+ﮋ
+ﺏ
+ﺔ
+ﺣ
+ﻡ
+u
+z
+ォ
+ョ
+ア
+マ
+ラ
+ワ
+ट
+ও
+চ
+দ
+ন
+প
+য
+র
+হ
+ৰ
+ค
+ฅ
+ถ
+ท
+ป
+ผ
+ภ
+ล
+ห
+โ
+ไ
+Ⴡ
+ძ
+ᐵ
+ᑈ
+ᒏ
+ᒰ
+ᒱ
+ᒴ
+ᒵ
+ᒸ
+ᒹ
+ᓙ
+ᔬ
+ᖧ
+ᖨ
+ᖪ
+ᖬ
+ᖽ
+ᖾ
+ᖿ
+ᗁ
+ᘅ
+ᘣ
+ᘦ
+ᘧ
+ᴉ
+ᴘ
+ᴝ
+ᴦ
+ᴩ
+ᴭ
+Ṭ
+ṯ
+ẏ
+ẓ
+ọ
+ỵ
+Ἶ
+Ἷ
+ℷ
+Ⅱ
+ⅱ
+々
+ぃ
+ァ
+ッ
+ヾ
+乀
+宀
+ﬥ
+צּ
+בֿ
+ﭒ
+ﭞ
+ﺕ
+ﺟ
+ﺧ
+ﻋ
+ﻌ
+ﻢ
+F
+I
+l
+n
+r
+s
+ヲ
+ウ
+キ
+ク
+ケ
+ス
+チ
+ハ
+モ
+п
+ऱ
+এ
+খ
+ঘ
+ষ
+ঢ়
+ฑ
+ต
+น
+ม
+อ
+ງ
+ე
+პ
+Ꮧ
+Ꮭ
+ᐱ
+ᓮ
+ᔱ
+ᔲ
+ᔹ
+ᔺ
+ᔽ
+ᕂ
+ᕃ
+ᕄ
+ᕆ
+ᖅ
+ᖩ
+ᖫ
+ᖭ
+ᖸ
+ᖺ
+ᗀ
+ᘥ
+ᵆ
+Ḟ
+Ḹ
+Ḽ
+Ṿ
+Ὑ
+Ῠ
+Ῡ
+Ὺ
+Ύ
+K
+Ⅽ
+Ↄ
+く
+っ
+へ
+ゥ
+ト
+リ
+ヮ
+ヶ
+丫
+乁
+爫
+ﬤ
+טּ
+סּ
+ףּ
+ﭖ
+ﭴ
+ﭸ
+ﮉ
+ﮌ
+ﮐ
+ﱟ
+ﱡ
+ﺙ
+ﻏ
+ﻐ
+ﻛ
+k
+ヌ
+メ

+ 1002 - 0
NexilisSampleCodeReact-Android/android/app/dictionary.txt

@@ -0,0 +1,1002 @@
+# Copyright (c) 2013-2015 GuardSquare NV
+
+・
+ᐝ
+ι
+ʿ
+ᐧ
+ᐨ
+・
+ﹳ
+゙
+ᴵ
+ᵎ
+ᵔ
+ᵢ
+ⁱ
+ﹶ
+ﹺ
+ー
+ᐠ
+ᐣ
+ᐩ
+ᑊ
+ᕀ
+ᵕ
+ᵣ
+יִ
+יּ
+ᐟ
+ᐡ
+ᐪ
+ᒽ
+ᔇ
+ᔈ
+ᗮ
+ᴶ
+ᴸ
+ᵀ
+ᵋ
+ᵗ
+゚
+เ
+Ꭵ
+ᐤ
+ᒡ
+ᒢ
+ᖮ
+ᵌ
+ᵓ
+ᵙ
+ᵛ
+ᵥ
+ﯨ
+ﹴ
+ﹸ
+ﹾ
+৲
+ᐢ
+ᒻ
+ᔅ
+ᔉ
+ᔊ
+ᔋ
+ᕁ
+ᕑ
+ᕽ
+ᘁ
+ᵄ
+ᵞ
+ᵧ
+וּ
+וֹ
+ﹲ
+ﹷ
+ﹻ
+ﹼ
+ﺑ
+ﻧ
+ᑉ
+ᑋ
+ᑦ
+ᒾ
+ᓪ
+ᓫ
+ᔾ
+ᕐ
+ᕝ
+ᵒ
+ᵘ
+ᵤ
+ⁿ
+Ⅰ
+ⅰ
+丶
+ﭔ
+ﭠ
+ﯦ
+ﯩ
+ﯾ
+ﹰ
+ﺗ
+ﻳ
+_
+ニ
+า
+ᐥ
+ᒃ
+ᓒ
+ᕪ
+ᙆ
+ᴊ
+ᴷ
+ᵏ
+ⅼ
+ﭘ
+ﺒ
+ﺛ
+ﺩ
+ﻨ
+ィ
+ɿ
+ง
+ว
+ᐦ
+ᒄ
+ᒼ
+ᓑ
+ᔆ
+ᴖ
+ᴬ
+ᴱ
+ᴲ
+ᴾ
+ᵁ
+ᵃ
+ᵅ
+ᵉ
+ᵊ
+ᵡ
+ᵪ
+ḯ
+Ị
+ị
+ゝ
+ー
+ヽ
+一
+גּ
+זּ
+נּ
+רּ
+ﭕ
+ﭜ
+ﭡ
+ﭤ
+ﯧ
+ﯿ
+ﹹ
+ﹿ
+ﺘ
+ﺫ
+ﻴ
+ſ
+৳
+ฯ
+ๅ
+ᐞ
+ᓐ
+ᓭ
+ᓯ
+ᓱ
+ᓴ
+ᔥ
+ᖦ
+ᴗ
+ᴴ
+ᴿ
+ᵇ
+ᵖ
+ᵟ
+ḷ
+ṙ
+ṛ
+ỉ
+ἰ
+ἱ
+ὶ
+ί
+ῐ
+ῑ
+‿
+⁀
+⁔
+丨
+氵
+灬
+ﭙ
+ﮂ
+ﮄ
+ﹽ
+ﺋ
+ﺜ
+ﻟ
+ノ
+ઽ
+ເ
+ᓰ
+ᓲ
+ᓵ
+ᔿ
+ᕻ
+ᴄ
+ᴐ
+ᴛ
+ᴺ
+ᵈ
+ᵑ
+ᵨ
+Ḯ
+Ἰ
+Ἱ
+Ῐ
+Ῑ
+Ὶ
+Ί
+ℴ
+ⅹ
+ⅽ
+ײַ
+ﬧ
+דּ
+ﭝ
+ﭥ
+ﮆ
+ﹱ
+ﺀ
+ﺪ
+ﺭ
+j
+ュ
+ა
+ი
+Ꮀ
+Ꮮ
+ᒣ
+ᒥ
+ᒧ
+ᒪ
+ᓳ
+ᘄ
+ᴠ
+ᴰ
+ᴻ
+ᵠ
+ᵩ
+ḻ
+ṟ
+ẛ
+Ỉ
+ῒ
+ΐ
+Ⅼ
+ⅴ
+ィ
+ךּ
+כּ
+ﭨ
+ﮢ
+ﺌ
+ﺬ
+ﺯ
+ﻣ
+J
+L
+ァ
+イ
+フ
+ヘ
+ণ
+จ
+แ
+ๆ
+Ꭻ
+Ꮁ
+Ꮣ
+ᒦ
+ᒨ
+ᒫ
+ᖟ
+ᘇ
+ᙇ
+ᴧ
+ᴮ
+ᴳ
+ᴼ
+ᵍ
+ᵐ
+ᵚ
+ᵝ
+ᵦ
+ẋ
+ẍ
+〳
+〵
+ノ
+亅
+亠
+冫
+לּ
+ﮃ
+ﮅ
+ﱠ
+ﱢ
+ﺮ
+ﻠ
+ﻩ
+c
+ゥ
+ェ
+テ
+ナ
+ン
+Ŀ
+ধ
+ร
+ใ
+Ꭲ
+Ꭸ
+Ꮠ
+ᐜ
+ᒩ
+ᓶ
+ᓷ
+ᓸ
+ᓹ
+ᓼ
+ᓽ
+ᔀ
+ᔁ
+ᔄ
+ᔨ
+ᔭ
+ᖕ
+ᘆ
+ᴋ
+ᴹ
+ᴽ
+ḟ
+Ḷ
+ḹ
+ḽ
+ṝ
+ṿ
+ἲ
+ἳ
+ἴ
+ἵ
+ῖ
+ℐ
+〱
+丿
+בּ
+ﭩ
+ﮇ
+ﮊ
+ﮞ
+ﮣ
+ﺰ
+ﻪ
+ッ
+シ
+ソ
+ト
+ユ
+ο
+ऽ
+บ
+ย
+ะ
+າ
+ᐳ
+ᐸ
+ᒉ
+ᒋ
+ᒍ
+ᒐ
+ᓓ
+ᓕ
+ᓗ
+ᓚ
+ᓺ
+ᓻ
+ᓾ
+ᓿ
+ᔂ
+ᔃ
+ᔦ
+ᔩ
+ᔪ
+ᔮ
+ᘤ
+ᚐ
+ᴈ
+ᴏ
+ᴢ
+ᴣ
+ᵂ
+Ḭ
+ḭ
+ṫ
+ṭ
+Ẏ
+ẗ
+Ἲ
+Ἳ
+Ἴ
+Ἵ
+ⅈ
+冖
+הּ
+כֿ
+ﮈ
+ﺓ
+ﻤ
+ﻥ
+f
+i
+t
+v
+ャ
+エ
+コ
+ヒ
+ミ
+リ
+レ
+र
+ঌ
+গ
+ঢ
+ব
+শ
+ঽ
+ก
+კ
+ᐯ
+ᐴ
+ᐹ
+ᒌ
+ᒎ
+ᒑ
+ᒬ
+ᒭ
+ᒮ
+ᒯ
+ᒲ
+ᒳ
+ᒶ
+ᒷ
+ᒺ
+ᓖ
+ᓘ
+ᓛ
+ᔫ
+ᘂ
+ᘢ
+ᚁ
+ᚆ
+ᴒ
+ᴫ
+Ḻ
+Ṫ
+Ỳ
+Ỵ
+ἶ
+ἷ
+ῗ
+ℓ
+Ⅴ
+ゞ
+イ
+忄
+אּ
+ﮋ
+ﺏ
+ﺔ
+ﺣ
+ﻡ
+u
+z
+ォ
+ョ
+ア
+マ
+ラ
+ワ
+ट
+ও
+চ
+দ
+ন
+প
+য
+র
+হ
+ৰ
+ค
+ฅ
+ถ
+ท
+ป
+ผ
+ภ
+ล
+ห
+โ
+ไ
+Ⴡ
+ძ
+ᐵ
+ᑈ
+ᒏ
+ᒰ
+ᒱ
+ᒴ
+ᒵ
+ᒸ
+ᒹ
+ᓙ
+ᔬ
+ᖧ
+ᖨ
+ᖪ
+ᖬ
+ᖽ
+ᖾ
+ᖿ
+ᗁ
+ᘅ
+ᘣ
+ᘦ
+ᘧ
+ᴉ
+ᴘ
+ᴝ
+ᴦ
+ᴩ
+ᴭ
+Ṭ
+ṯ
+ẏ
+ẓ
+ọ
+ỵ
+Ἶ
+Ἷ
+ℷ
+Ⅱ
+ⅱ
+々
+ぃ
+ァ
+ッ
+ヾ
+乀
+宀
+ﬥ
+צּ
+בֿ
+ﭒ
+ﭞ
+ﺕ
+ﺟ
+ﺧ
+ﻋ
+ﻌ
+ﻢ
+F
+I
+l
+n
+r
+s
+ヲ
+ウ
+キ
+ク
+ケ
+ス
+チ
+ハ
+モ
+п
+ऱ
+এ
+খ
+ঘ
+ষ
+ঢ়
+ฑ
+ต
+น
+ม
+อ
+ງ
+ე
+პ
+Ꮧ
+Ꮭ
+ᐱ
+ᓮ
+ᔱ
+ᔲ
+ᔹ
+ᔺ
+ᔽ
+ᕂ
+ᕃ
+ᕄ
+ᕆ
+ᖅ
+ᖩ
+ᖫ
+ᖭ
+ᖸ
+ᖺ
+ᗀ
+ᘥ
+ᵆ
+Ḟ
+Ḹ
+Ḽ
+Ṿ
+Ὑ
+Ῠ
+Ῡ
+Ὺ
+Ύ
+K
+Ⅽ
+Ↄ
+く
+っ
+へ
+ゥ
+ト
+リ
+ヮ
+ヶ
+丫
+乁
+爫
+ﬤ
+טּ
+סּ
+ףּ
+ﭖ
+ﭴ
+ﭸ
+ﮉ
+ﮌ
+ﮐ
+ﱟ
+ﱡ
+ﺙ
+ﻏ
+ﻐ
+ﻛ
+k
+ヌ
+メ

+ 88 - 0
NexilisSampleCodeReact-Android/android/app/proguard-LoggingRemoval.pro

@@ -0,0 +1,88 @@
+# DexGuard's default settings are fine for this sample application.
+
+# The optimization step can remove specified logging calls.
+# The shrinking step can then also remove the logging classes.
+
+# Remove Android logging calls (in this case, including errors).
+-assumenosideeffects class android.util.Log {
+    public static boolean isLoggable(java.lang.String, int);
+    public static int v(...);
+    public static int i(...);
+    public static int w(...);
+    public static int d(...);
+    public static int e(...);
+    public static java.lang.String getStackTraceString(java.lang.Throwable);
+}
+
+# Remove Java logging calls.
+-assumenosideeffects class java.util.logging.Logger {
+    public static java.util.logging.Logger getLogger(...);
+    public boolean isLoggable(java.util.logging.Level);
+    public void entering(...);
+    public void exiting(...);
+    public void finest(...);
+    public void finer(...);
+    public void fine(...);
+    public void config(...);
+    public void info(...);
+    public void warning(...);
+    public void severe(...);
+}
+
+# Remove Apache Commons logging calls.
+# -assumenosideeffects class org.apache.commons.logging.Log {
+#    public boolean is*Enabled();
+#    public void trace(...);
+#    public void debug(...);
+#    public void info(...);
+#    public void warn(...);
+#    public void error(...);
+#    public void fatal(...);
+# }
+
+# Remove SLF4J logging calls.
+# -assumenosideeffects class org.slf4j.Logger {
+#     public boolean is*Enabled();
+#     public void trace(...);
+#     public void debug(...);
+#     public void info(...);
+#     public void warn(...);
+#     public void error(...);
+# }
+
+# Remove Cordova logging calls.
+# -assumenosideeffects class org.apache.cordova.LOG {
+#     public static boolean isLoggable(int);
+#     public static void v(...);
+#     public static void d(...);
+#     public static void i(...);
+#     public static void w(...);
+#     public static void e(...);
+# }
+
+# ------------------
+
+# Remove debugging - Throwable_printStackTrace calls. Remove all invocations of
+# Throwable.printStackTrace().
+-assumenosideeffects public class java.lang.Throwable {
+    public void printStackTrace();
+}
+
+# Remove debugging - Thread_dumpStack calls. Remove all invocations of
+# Thread.dumpStack().
+-assumenosideeffects public class java.lang.Thread {
+    public static void dumpStack();
+}
+
+# Remove debugging - All logging API calls. Remove all invocations of the
+# logging API whose return values are not used.
+-assumenosideeffects public class java.util.logging.* {
+    <methods>;
+}
+
+# Remove debugging - All Log4j API calls. Remove all invocations of the
+# Log4j API whose return values are not used.
+-assumenosideeffects public class org.apache.log4j.** {
+    <methods>;
+}
+# ******************************************************************************************************************************************************

+ 63 - 5
NexilisSampleCodeReact-Android/android/app/proguard-rules.pro

@@ -1,10 +1,68 @@
 # Add project specific ProGuard rules here.
-# By default, the flags in this file are appended to flags specified
-# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
-# You can edit the include path and order by changing the proguardFiles
-# directive in build.gradle.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
 #
 # For more details, see
 #   http://developer.android.com/guide/developing/tools/proguard.html
 
-# Add any project specific keep options here:
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
+
+# Enable aggressive shrinking and optimization
+-verbose
+-optimizationpasses 14
+-overloadaggressively
+
+# Obfuscate everything, including class names, method names, and fields
+-repackageclasses ''
+-flattenpackagehierarchy
+-allowaccessmodification
+
+# Do not keep any debugging information
+# Remove the SourceFile and LineNumberTable attributes
+-renamesourcefileattribute ""
+-keepattributes !SourceFile,!LineNumberTable,!Signature
+
+-keeppackagenames doNotKeepAThing
+
+-obfuscationdictionary dictionary.txt
+-classobfuscationdictionary classdictionary.txt
+-packageobfuscationdictionary dictionary.txt
+
+# Aggresively removed unused classes, methods, and fields
+-dontwarn
+-dontnote
+
+-include proguard-LoggingRemoval.pro
+# **********************************************************************************************************
+-keep class * { native <methods>; }
+-keep class androidx.core.app.** { public *; }
+-keep class com.google.android.** { *; }
+-keep class com.google.mlkit.** { *; }
+-keep interface com.google.android.** { *; }
+-keep class com.google.android.gms.** { *; }
+-keep class com.google.firebase.** { *; }
+# **********************************************************************************************************
+-keep class net.sqlcipher.** { *; }
+-keep public class * implements com.bumptech.esglide.module.GlideModule
+-keep public class * extends com.bumptech.esglide.module.AppGlideModule
+-keep public enum com.bumptech.glide.load.ImageHeaderParser$** { **[] $VALUES; public *; }
+-keep public class io.nexilis.service.** { *; }
+# **********************************************************************************************************
+-keep class net.zetetic.database.sqlcipher.** { *; }
+
+-keep public class javax.mail.** { *; }
+-keep public class com.sun.mail.** { *; }
+-keep public class org.apache.harmony.** { *; }

+ 3 - 0
NexilisSampleCodeReact-Android/android/app/src/main/java/com/paliolitesamplecode/MainActivity.java

@@ -14,6 +14,7 @@ import io.nexilis.service.API;
 import io.nexilis.service.Callback;
 import io.nexilis.service.utils.callback.SimCardDetectionCallback;
 import io.nexilis.service.utils.xthunder.FloatingButton;
+import io.security.streamshield.SecurityShield;
 
 public class MainActivity extends ReactActivity {
 
@@ -89,6 +90,8 @@ public class MainActivity extends ReactActivity {
                  so you don't have to share your Application User ID with Nexilis while still being able to monitor your user activities.
                  **************************************/
 
+                SecurityShield.getInstance().check("***REPLACE***WITH***YOUR***APPLICATION***NAME***", "***REPLACE***WITH***YOUR***NEXILIS***ACCOUNT***",MainActivity.this);
+
                 runOnUiThread(new Runnable() {
                     @Override
                     public void run() {

+ 10 - 0
NexilisSampleCodeReact-Android/android/build.gradle

@@ -22,6 +22,7 @@ buildscript {
 
 allprojects {
     repositories {
+        // Add the following lines to include the Nexilis UC repository into your app
         maven {
             url "https://nexilis.io/artifactory/nexilis-libs/"
             credentials {
@@ -29,6 +30,15 @@ allprojects {
                password = "***REPLACE***WITH***YOUR***MAVEN***PASSWORD***"
             }
         }
+
+        // Add the following lines to include the Nexilis Security Shield repository into your app
+        maven {
+            url "https://nexilis.io/artifactory/security-libs/"
+            credentials {
+                username = "**REPLACE*WITH*YOUR*MAVEN*USERNAME**"
+                password = "**REPLACE*WITH*YOUR*MAVEN*PASSWORD**"
+            }
+        }
         maven { url 'https://maven.google.com' }
         maven { url 'https://jitpack.io' }
     }

+ 1 - 0
NexilisSampleCodeReact-Android/android/gradle.properties

@@ -42,3 +42,4 @@ newArchEnabled=false
 # Use this property to enable or disable the Hermes JS engine.
 # If set to false, you will be using JSC instead.
 hermesEnabled=true
+android.enableR8.fullMode=true

+ 1 - 1
NexilisSampleCodeReact-Android/android/gradle/wrapper/gradle-wrapper.properties

@@ -1,6 +1,6 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
 networkTimeout=10000
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists