Compare commits

..

39 Commits

Author SHA1 Message Date
Nick bd2bb3854c new version 3.22.02 2025-08-06 09:56:12 +02:00
Nick 4b9fa9ce47 new version 3.21.00 2025-07-25 10:07:12 +02:00
Nick 2f7a83e9da new version 3.18.19 2025-05-14 15:13:25 +02:00
Nick 53c606ff2c new version 3.18.16 2025-05-05 09:55:26 +02:00
Nick 3d1bbd054c new version 3.18.15 2025-04-23 08:33:46 +02:00
Nick d532a8d6bb Update README.md 2025-04-17 10:50:13 +02:00
Nick 3001d8e107 new version 3.18.14 2025-04-16 16:12:01 +02:00
Nick 8b746f6219 new version 3.18.12 2025-04-11 16:58:44 +02:00
Nick a69ae6c7f7 new version 3.18.09 2025-03-25 10:13:52 +01:00
naquilini 5a60a9a0b6 Add LICENSE 2025-03-04 09:29:59 +00:00
naquilini cbd1c48a71 Delete LICENCE 2025-03-04 09:29:41 +00:00
naquilini 922a4cfe6b Add LICENCE 2025-03-04 09:28:55 +00:00
Nick 2924d0d565 new version 3.18.06 2025-02-27 15:18:18 +01:00
Nick 997627cc8b new version to 3.18.03 2025-02-03 15:51:41 +01:00
Nick b6ebfa7d63 new version 3.17.05 2025-01-20 15:35:58 +01:00
Nick 6b00d20907 new version 3.17.02 2025-01-07 16:52:14 +01:00
Nick 9f739666da new version 3.16.14 2024-12-20 12:44:39 +01:00
Nick e29db5e2dd new version 3.16.13 2024-11-20 16:00:06 +01:00
Nick fe5421353b new version 2024-10-29 09:47:03 +01:00
Nick 2527fb8847 add custom fonts 2024-10-21 10:04:16 +02:00
Nick 8a7bf386d8 new build 2024-10-21 10:03:15 +02:00
naquilini bbed22fe99 new build 2024-08-28 14:29:04 +02:00
Nick cd48a9966c Revert "new build"
This reverts commit 318fa4b7bf.
2024-08-28 08:15:35 +02:00
Nick 318fa4b7bf new build 2024-08-28 08:12:35 +02:00
Nick Aquilini d39de0465f new version 3.15.00 2024-07-30 12:33:34 +02:00
amauri fe9306c3a1 new version 3.13.08 2024-06-21 08:50:00 +02:00
amauri c5d5ef9a71 new version 3.13.07 2024-06-13 16:39:28 +02:00
amauri 1c8efac85d Version 3.13.02 2024-05-17 15:29:15 +02:00
amauri e9a50d6655 Version 3.13.01 2024-05-03 09:10:30 +02:00
amauri cb999d87cc Version 3.13.00 2024-04-25 16:32:53 +02:00
Nick b0ace6e70e new build 2024-04-25 15:02:22 +02:00
amauri f562317749 Fix Fragment lifecycle when rotation change, fix crash caused by conflict between input field and androidx.appcompat:1.4.0 2024-04-17 17:19:20 +02:00
amauri cb094228c6 update readme 2024-04-10 10:52:02 +02:00
amauri 935eec2a4b update readme 2024-04-10 10:49:31 +02:00
amauri 01092b8adc Update README.md 2024-04-08 14:07:35 +00:00
amauri ae44078e7a Update README.md 2024-03-29 07:48:12 +00:00
amauri e68fdb2bc7 new build 2024-03-28 10:32:45 +01:00
amauri b4e57dced5 new build 2024-03-28 09:28:46 +01:00
amauri ccc73618d7 new build 2024-03-28 08:49:09 +01:00
97 changed files with 536 additions and 285 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
.DS_Store
.gradle

26
LICENSE Normal file
View File

@ -0,0 +1,26 @@
NON-FREE SOFTWARE LICENSE AGREEMENT
This Non-Free Software License Agreement ("Agreement") is entered into between Tecnavia Press Inc. ("Licensor"), and the entity or individual using the Software ("Licensee").
LICENSE GRANT
Licensor grants to Licensee a non-exclusive, non-transferable, limited license to use the software package (the "Software") solely as embedded in an existing app, and only for Licensee's internal business purposes. Licensee may not modify, reverse engineer, decompile, or disassemble the Software, except to the extent that such activity is expressly permitted by applicable law.
OWNERSHIP AND COPYRIGHT
The Software is the property of Licensor and is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. Licensor retains all rights, title, and interest in and to the Software, including all intellectual property rights.
TERM AND TERMINATION
This Agreement shall remain in effect until terminated by either party. Licensor may terminate this Agreement immediately if Licensee breaches any of the terms or conditions of this Agreement. Upon termination of this Agreement, Licensee shall immediately cease all use of the Software and shall delete or destroy all copies of the Software.
WARRANTY DISCLAIMER
Licensor provides the Software "as is" and without warranty of any kind, express or implied, including, without limitation, any warranties of merchantability, fitness for a particular purpose, and non-infringement of third party rights.
LIMITATION OF LIABILITY
Licensor shall not be liable for any direct, indirect, incidental, special, or consequential damages arising out of or relating to this Agreement or the use of the Software, even if Licensor has been advised of the possibility of such damages.
GENERAL PROVISIONS
This Agreement constitutes the entire agreement between the parties and supersedes all prior negotiations, understandings, and agreements between the parties relating to the subject matter of this Agreement. This Agreement may not be modified except in writing signed by both parties. This Agreement shall be governed by and construed in accordance with the laws of the State of Minnesota without giving effect to its conflicts of law provisions. Any legal action or proceeding arising out of or relating to this Agreement shall be brought in the state or federal courts of Dakota County, Minnesota. If any provision of this Agreement is held to be invalid or unenforceable, such provision shall be struck and the remaining provisions shall be enforced.
By using the Software, Licensee acknowledges that it has read this Agreement, understands it, and agrees to be bound by its terms and conditions.
Tecnavia Press Inc.
March 1st, 2023

461
README.md
View File

@ -7,27 +7,57 @@ Android SDK
- [Settings](#settings)
- [App](#app)
- [Add fragment](#fragment)
- [Keyboard support](#keyboard)
- [Troubleshooting](#troubleshooting)
- [Authors](#authors)
- [Author](#authors)
<a name="import"></a>
## Import
You must use git to download the sdk from [repository](https://github.com/tecnaviapress/newsmemory-android-sdk)
1. The repository is private, to clone it you must generate an ssh key, see the [guide](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)
2. Once the key is generate you must send to Tecnavia the public key and wait a confirmation that you are enabled
3. Inside root folder run the following command, replace TAG with the latest release, see the list on [releases](https://github.com/tecnaviapress/newsmemory-android-sdk/releases)
You must use git to download the sdk from [repository](https://pubgit.newsmemory.com/tecnavia/newsmemory-android-sdk)
1. Inside root folder run the following command:
```sh
git clone --depth 1 --brach TAG git@github.com:tecnaviapress/newsmemory-android-sdk.git
git clone --depth 1 --branch 3.22.02 https://pubgit.newsmemory.com/tecnavia/newsmemory-android-sdk.git
```
4. if you already has the module you could update to another release by the following commands
2. If you already have the module you could update to another release launching the following commands:
```sh
cd newsmemory-android-sdk
git checkout tags/TAG
git checkout tags/3.22.02
```
### Package contents
The unzipped folder is named `newsmemory-android-sdk` and has the following contents:
```
.
├── build.gradle
├── gradle.properties
├── libs # all the *.aar file of the SDK dependencies imported by SDK build.gradle
├── *.aar
├── src
├── main
├── AndroidManifest.xml
├── assets
├── fonts # set of base fonts supported by the ePaper (*.otf, *.ttf files)
├── index.android.bundle # the javascript bundle file, core of Tecnavia ePaper solution
├── packages.txt # this file contains the list of dependencies that will be loaded by the app at runtime using reflection
├── res # folder containing images and resources referenced by the javascript bundle
├── LICENSE
└── README.md
```
---
<a name="installation"></a>
## Installation
<a name="project"></a>
### Project Gradle
1. check main gradle repositories and dependencies
```java
@ -39,19 +69,11 @@ buildscript {
}
dependencies {
classpath "com.android.tools.build:gradle:4.2.2"
classpath "com.android.tools.build:gradle:8.9.2"
classpath "com.google.gms:google-services:4.3.4"
//add crashlytics only if the aar file is included
classpath "com.google.firebase:firebase-crashlytics-gradle:2.3.0"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.0"
}
//If photodraweeview:1.1.3 for some reason is not available from Maven force this version
configurations.all {
resolutionStrategy {
force "me.relex:photodraweeview:2.1.0"
}
classpath "com.google.firebase:firebase-crashlytics-gradle:2.9.9"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0"
}
}
@ -64,6 +86,13 @@ allprojects {
maven {
url "https://jitpack.io"
}
//If photodraweeview:1.1.3 for some reason is not available from Maven force this version
configurations.all {
resolutionStrategy {
force "me.relex:photodraweeview:2.1.0"
}
}
}
}
```
@ -75,54 +104,61 @@ maven {
}
```
3. you could customize all dependencies version by updating the following variables, !pay attention, because the sdk may not starts or works properly add these variables to ext object in main gradle file, see below example.
3. you could customize all dependencies version by updating the following variables. !Pay attention: as the sdk may not start or work properly add these variables to ext object in main gradle file, see below example.
| variable | default | Description |
|:---------------------------------- |:-------:|:-------------------------------------------------------------- |
| compileSdk | 33 | |
| targetSdk | 33 | |
| Variable name | Default | Description |
|:---------------------------------- |:-------:|:-------------------------------------------------------------: |
| compileSdk | 35 | |
| targetSdk | 35 | |
| minSdk | 24 | |
| frescoVersion | 2.5.0 | used by react native to display some images |
| soLoaderVersion | 0.10.1 | used to load needed system native libraries |
| frescoVersion | 3.6.0 | used by react native to display some images |
| soLoaderVersion | 0.12.1 | used to load needed system native libraries |
| okHttpVersion | 4.9.2 | |
| glideVersion | 4.12.0 | |
| kotlinGradleVersion | 1.5.0 | |
| kotlinVersion | 1.4.0 | |
| kotlinGradleVersion | 1.9.0 | |
| kotlinVersion | 2.1.20 | |
| webkitVersion | 1.4.0 | |
| androidxVersion | 1.5.0 | |
| androidxWorkRuntimeVersion | 1.5.0 | |
| androidxVersion | 1.8.0 | |
| androidxWorkRuntimeVersion | 2.7.0 | |
| androidxAnnotationVersion | 1.4.0 | |
| androidxViewpager2Version | 1.0.0 | |
| androidxViewpager2Version | 1.1.0 | |
| androidxFragmentVersion | 1.4.1 | |
| androidxBrowserVersion | 1.4.0 | |
| androidxTransitionVersion | 1.1.0 | |
| androidxCoordinatorlayoutVersion | 1.1.0 | |
| androidxSwiperefreshlayoutVersion | 1.0.0 | |
| androidxAppcompatVersion | 1.0.2 | |
| androidxSwiperefreshlayoutVersion | 1.1.0 | |
| androidxAppcompatVersion | 1.7.0 | |
| androidxLegacySupportVersion | 1.0.0 | |
| playServiceiidVersion | 17.0.0 | |
| playServiceBaseVersion | 18.0.1 | |
| **The following variables are used if you include on of the optional library listed in description** |
| playServiceAnalyticsVersion | 18.0.1 | react-native-google-analytics-bridge |
| playServiceAdsVersion | 20.2.0 | react-native-prebid, react-native-dfp, react-native-admob |
| playServiceMapsVersion | 17.0.0 | react-native-maps |
| playBillingVersion | 5.0.0 | react-native-iap for google |
| amazonSdkVersion | 3.0.3 | react-native-iap for amazon |
| **The following variables are used if you include one of SDK's optional libraries** |
| playServiceAdsVersion | 21.3.0 | react-native-prebid, react-native-dfp, react-native-admob |
| playServiceMapsVersion | 18.0.2 | react-native-maps |
| playBillingVersion | 7.0.0 | react-native-iap for google |
| amazonSdkVersion | 3.0.7 | react-native-iap for amazon |
```java
ext {
compileSdk 34
androidxVersion "1.4.0"
compileSdk = 35
androidxVersion = "1.8.0"
...
}
```
<a name="settings"></a>
### Settings Gradle
### Settings Gradle
```java
include ':newsmemory-android-sdk'
...
include ':newsmemory-android-sdk'7
...
```
<a name="app"></a>
### App Gradle
add the following lines if missing
```java
plugin: "com.android.application"
@ -141,23 +177,34 @@ android{
...
packagingOptions {
pickFirst "lib/x86/libc++_shared.so"
pickFirst "lib/x86_64/libc++_shared.so"
pickFirst "lib/arm64-v8a/libc++_shared.so"
pickFirst "lib/armeabi-v7a/libc++_shared.so"
}
}
dependencies{
implementation project(":newsmemory-android-sdk")
implementation "com.facebook.soloader:soloader:0.12.1"
...
}
```
---
<a name="fragment"></a>
## Add fragment to activity
Tecnavia provides "PAPER_SETUP", "SERVER" and also an "API_KEY" values which allow you to load the epaper for a specific publication.
```java
...
import com.facebook.soloader.SoLoader;
import com.facebook.react.soloader.OpenSourceMergedSoMapping;
import com.tecnavia.tabridge.TaConstants;
import com.tecnavia.tabridge.TaFragment;
import com.tecnavia.tabridge.listeners.TaFragmentDelegate;
...
public class YourActivity extends AppCompatActivity {
private TaFragment taFragment;
...
@Override
@ -165,11 +212,18 @@ public class YourActivity extends AppCompatActivity {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TaFragment fragment = new TaFragment()
try {
SoLoader.init(this, OpenSourceMergedSoMapping.INSTANCE);
} catch (IOException e) {
throw new RuntimeException(e);
}
if(taFragment == null) {
taFragment = new TaFragment()
.setDelegate(new TaFragmentDelegate() {
@Override
public void recreate() {
recreate();
YourActivity.this.recreate();
}
@Override
@ -202,19 +256,22 @@ public class YourActivity extends AppCompatActivity {
}
})
.setBuildProps(getBuildProps());
} else {
taFragment = (TaFragment) getSupportFragmentManager().findFragmentByTag("TA_FRAGMENT");
}
getSupportFragmentManager()
.beginTransaction()
.add(R.id.rnFragment, fragment)
.replace(R.id.rnFragment, taFragment, "TA_FRAGMENT")
.commit();
}
public Bundle getBuildProps() {
Bundle bundle = new Bundle();
bundle.putString(TaConstants.TA_PSETUP, "replace_with_psetup");
bundle.putString(TaConstants.TA_MACHINE, "replace_with_server");
bundle.putString(TaConstants.TA_PSETUP, "<replace with PAPER_SETUP>");
bundle.putString(TaConstants.TA_MACHINE, "<replace with SERVER>");
bundle.putString(TaConstants.TA_LOCALE, "en");
bundle.putString(TaConstants.TA_TOKEN, "replace with a valid token");
bundle.putString(TaConstants.TA_TOKEN, "<replace with a valid token>");
//the value inside R.string will be avilable after first build
bundle.putString(TaConstants.TA_APP_VERSION_NAME, getString(com.tecnavia.sdk.R.string.APP_VERSION_NAME));
bundle.putString(TaConstants.TA_APP_VERSION_CODE, getString(com.tecnavia.sdk.R.string.APP_VERSION_CODE));
@ -222,18 +279,40 @@ public class YourActivity extends AppCompatActivity {
bundle.putString(TaConstants.TA_APP_NAME, getString(com.tecnavia.sdk.R.string.APP_NAME));
//must be true otherwise the module doesn't work in SDK mode
bundle.putBoolean(TaConstants.TA_IS_ADDON, true);
bundle.putString(TaConstants.TA_API_KEY, "Required to be authorized");
bundle.putString(TaConstants.TA_API_KEY, "<replace with API_KEY>");
// Specify the device type for the TA_LOCKED_ORIENTATION. If not provided, all devices will use TA_LOCKED_ORIENTATION.
bundle.putString(TaConstants.TA_LOCKED_ORIENTATION_DEVICE, "tablet|phone");
// Define the orientation for the app. If not specified, the app will use its default behavior.
bundle.putString(TaConstants.TA_LOCKED_ORIENTATION, "portrait|landscape");
//set the SDK referrer for GA4 analytics
bundle.putString(TaConstants.TA_REFERRER, "referrer");
//querystring-like list of parameters to pass to GA4 analytics
bundle.putString(TaConstants.TA_EXTRA_GA4_PARAMS, "param1=value1&param2=value2&param3=value3");
//querystring-like list of parameters to pass to the SDK to force the loading of a specific issue/edition, see [startup parameters](#startup) section |
bundle.putString(TaConstants.TA_STARTUP_PARAMS, "issue=value1&edition=value2");
return bundle;
}
}
```
the following constant is required by SDK to be authorized
the following constants are required by SDK to be load a specific publication
```java
bundle.putString(TaConstants.TA_API_KEY, "");
bundle.putString(TaConstants.TA_PSETUP, "<replace with PAPER_SETUP>");
bundle.putString(TaConstants.TA_MACHINE, "<replace with SERVER>");
```
the following constants are required by SDK otherwise there will be some inconsinstecies and bugs
the following constant is required by SDK to be authorized
```java
bundle.putString(TaConstants.TA_API_KEY, "<replace with API_KEY>");
```
the following constants are required by SDK otherwise there will be some inconsistencies and bugs
```java
bundle.putString(TaConstants.TA_APP_VERSION_NAME, getString(com.tecnavia.sdk.R.string.APP_VERSION_NAME));
bundle.putString(TaConstants.TA_APP_VERSION_CODE, getString(com.tecnavia.sdk.R.string.APP_VERSION_CODE));
@ -242,6 +321,11 @@ the following constants are required by SDK otherwise there will be some inconsi
bundle.putBoolean(TaConstants.TA_IS_ADDON, true);
```
the following constant can be used for debug builds ONLY, to monitor the load time performances
```java
bundle.putBoolean(TaConstants.TA_ENABLE_DEBUGGER, true);
```
1. The activity that load TaFragment must implement the following interface *DefaultHardwareBackBtnHandler*
```java
public class YourActivity extends AppCompatActivity implements DefaultHardwareBackBtnHandler {
@ -261,8 +345,169 @@ public class YourActivity extends TaActivity {
}
```
## Troubleshooting
1. if you have some build issues related to google play services versions you could add the following setting to build.gradle
---
<a name="startup"></a>
## Startup parameters
Here a list of the supported startup parameters:
| Name | Format | Description |
| -------------------|------------------ | ------------------------------------------------------------------------------ |
| issue | YYYYMMDD | The issue to load at startup |
| selDate | YYYYMMDD | The issue to load at startup |
| date | YYYYMMDD | The issue to load at startup |
| edition | any | The edition to load at startup |
| editionStart | any | The edition to load at startup |
| goTo | any (e.g. `A1`) | The page of the issue to load at startup |
| artid | number (e.g. `8`) | The Tecnavia id of ther article to load at startup (requires `goTo` to be set) |
---
<a name="keyboard"></a>
## Keyboard support
On devices which support a physical or a virtual keyboard the SDK supports some shortcuts to navigate and interact with the ePaper.
### Code integration
In your activity you have to override the following callbacks and call the corresponding method on the TaFragment.
```java
public class MainActivity extends AppCompatActivity implements DefaultHardwareBackBtnHandler {
private TaFragment taFragment;
...
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
taFragment.keyDown(keyCode, event);
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
taFragment.keyUp(keyCode, event);
return super.onKeyUp(keyCode, event);
}
...
}
```
Here a list of the supported keys:
### Key groups
Some actions can be performed with more than one key, here the so-called `key groups`:
| Name | Keys |
| ---------- | --------------------------------------------------- |
| `LEFT` | `J`, `4`, `4` (NUMPAD), `LEFT ARROW` |
| `RIGHT` | `L`, `6`, `6` (NUMPAD), `RIGHT ARROW` |
| `UP` | `I`, `8`, `8` (NUMPAD), `UP ARROW` |
| `DOWN` | `K`, `2`, `2` (NUMPAD), `DOWN ARROW` |
| `PAGE_UP` | `N`, `9`, `9` (NUMPAD), `PAGE UP` |
| `PAGE_DOWN`| `M`, `3`, `3` (NUMPAD), `PAGE DOWN` |
| `OPEN` | `O`, `5`, `5` (NUMPAD), `.` (NUMPAD) |
| `SELECT` | `O`, `5`, `ENTER`, `5` (NUMPAD), `ENTER` (NUMPAD) |
| `SUBMIT` | `ENTER`, `ENTER` (NUMPAD) |
| `HOME` | `7`, `7` (NUMPAD), `HOME` |
| `END` | `1`, `1` (NUMPAD), `END` |
| `LESS` | `-`, `-` (NUMPAD) |
| `MORE` | `+`, `+` (NUMPAD) |
### Menu items
| Key(s) or Key Group | Behavior |
| --------------------------- | ---------------------------------------- |
| `ENTER` | Press menu item |
| `ESC` | Blur menu item |
| `I` | Open index mode |
| `LEFT`/`RIGHT` group, `TAB` | Navigate thru items |
| `P`, `.` (NUMPAD) | Open thumbnails mode |
| `Search` | Open search mode |
| `Space` | Toggle fit mode |
| `T` | Open accessibility mode |
### Graphic mode
| Key(s) or Key Group | Behavior |
| ------------------------------------------- | ---------------------------------------- |
| `B` | Open browse mode |
| `OPEN` group | Open first article |
| `LEFT`/`RIGHT`/`PAGE_UP`/`PAGE_DOWN` groups | Navigate thru page |
| `UP`/`DOWN` groups | Move vertically in the page |
| `MORE`/`LESS` groups | Zoom in/out in the page |
| `HOME` group | Move to previous section |
| `END` group | Move to next section |
### Index mode
| Key(s) or Key Group | Behavior |
| ------------------------------------------- | ---------------------------------------- |
| `CLOSE` group | Close index mode |
| `SPACE` group | Toggle index mode fullscreen mode |
### Index mode (2nd level)
| Key(s) or Key Group | Behavior |
| ------------------------------------------- | ---------------------------------------- |
| `CLOSE` group | Close index mode |
| `SPACE` group | Toggle index mode fullscreen mode |
| `LEFT`/`RIGHT` group | Navigate thru sections |
| `OPEN` group | Open 1st level index |
### Article mode
| Key(s) or Key Group | Behavior |
| ------------------------------------------- | ---------------------------------------------------- |
| `CLOSE` group | Close article mode (if search active, closes search) |
| `UP`/`DOWN` group | Scroll up/down the article |
| `LEFT`/`RIGHT` group | Navigate thru articles |
| `PAGE_UP`/`PAGE_DOWN` group | Go to the first article of previous/next page |
| `OPEN` group | Open 2nd level index |
| `MORE`/`LESS` groups | Zoom in/out in the article |
| `HOME` group | Move to previous article slug |
| `END` group | Move to next article slug |
| `SPACE` group | Toggle article mode fullscreen mode |
| `P` | Print |
| `S` | Share |
| `V` | Toggle text-to-speech |
| `SELECT` group | Select item (accessibility mode) |
### Thumbnail mode
| Key(s) or Key Group | Behavior |
| ------------------------------------------- | ---------------------------------------- |
| `LEFT`/`RIGHT` groups | Navigate thru thumbnails |
| `SELECT` group | Open highlighted page |
### Search mode
| Key(s) or Key Group | Behavior |
| ------------------------------------------- | ---------------------------------------- |
| `CLOSE` group | Close search mode |
### Editions page
| Key(s) or Key Group | Behavior |
| ------------------------------------------- | ---------------------------------------- |
| `CLOSE` group | Close editions page |
---
<a name="troubleshooting"></a>
## Troubleshooting Guide
1. **Google Play Services Build Issues**
If you encounter build issues related to Google Play Services versions, consider adding the following setting to your `build.gradle` file:
```java
android {
...
@ -272,11 +517,91 @@ android {
...
}
```
2. if you have the following error during the build `Unable to make field private final java.lang.String java.io.File.path accessible: module java.base does not "opens java.io" to unnamed module`
add `--add-opens=java.base/java.io=ALL-UNNAMED` option to `org.gradle.jvmargs` entry in `gradle.properties`
```
2. **Java Base Access Error**
If you receive an error during the build process that reads `Unable to make field private final java.lang.String java.io.File.path accessible: module java.base does not "opens java.io" to unnamed module`, add the `--add-opens=java.base/java.io=ALL-UNNAMED` option to the `org.gradle.jvmargs` entry in your `gradle.properties` file:
```plaintext
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 --add-opens=java.base/java.io=ALL-UNNAMED
```
## Authors
Nicolò Aquilini, iOS Software developer, Tecnavia
Andrea Mauri, Android Software developer, Tecnavia
3. **Orientation Change Crash**
If your application crashes when the orientation changes, add the following attributes to your activity in the Android manifest:
```plaintext
configChanges="...|screenLayout|screenSize|smallestScreenSize"
```
For more information, refer to this [GitHub issue comment](https://github.com/software-mansion/react-native-screens/issues/17#issuecomment-923950313).
4. **Background or Awakening Crash**
If your application crashes when it moves to the background or wakes up, try adding the following to your activity:
```java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(null);
}
```
For more information, refer to this [GitHub issue comment](https://github.com/software-mansion/react-native-screens/issues/17#issuecomment-424704067).
5. **Duplicate class**
If build fails due to `java.lang.RuntimeException: Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt ...`:
Add the following line to you `app/build.gradle`
```java
dependencies {
...
// Fix Duplicate class
implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0"))
}
```
For more information, refer to this [GitHub issue comment](https://gist.github.com/danielcshn/7aa57155d766d46c043fde015f054d40).
6. **Android 14 Path traversal issue**
For apps targeting Android 14 (API level 34) or higher, Android prevents the `Zip Path Traversal Vulnerability` in the following way: `ZipFile(String)` and `ZipInputStream.getNextEntry()` throws a `ZipException` if zip file entry names contain ".." or start with "/".
Apps can opt-out from this validation by calling `dalvik.system.ZipPathValidator.clearCallback()`. For more information, refer to the [official Android documentation](https://developer.android.com/about/versions/14/behavior-changes-14#zip-path-traversal).
As the SDK might download zips including ".." or "/" in the entry name we need to add these lines at app startup.
```java
if (Build.VERSION.SDK_INT >= 34) {
ZipPathValidator.clearCallback();
}
```
We suggest to add to you activity in the `onCreate` method.
```java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (Build.VERSION.SDK_INT >= 34) {
ZipPathValidator.clearCallback();
}
if(taFragment == null) {
...
}
...
}
```
---
<a name="authors"></a>
## Author
Nicolò Aquilini, App Software developer, Tecnavia

View File

@ -1,5 +1,5 @@
buildscript {
def kotlinGradleVersion = rootProject.ext.has("kotlinGradleVersion") ? rootProject.ext.get("kotlinGradleVersion") : "1.5.0"
def kotlinGradleVersion = rootProject.ext.has("kotlinGradleVersion") ? rootProject.ext.get("kotlinGradleVersion") : "1.9.0"
if(rootProject == project) {
repositories {
@ -11,10 +11,10 @@ buildscript {
}*/
}
dependencies {
classpath "com.android.tools.build:gradle:4.2.2"
classpath "com.android.tools.build:gradle:8.9.2"
classpath "com.google.gms:google-services:4.3.4"
//use the version suggested by react-native-firebase
//classpath "com.google.firebase:firebase-crashlytics-gradle:2.3.0"
//classpath "com.google.firebase:firebase-crashlytics-gradle:2.9.9"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinGradleVersion"
}
} else {
@ -45,62 +45,27 @@ publishing {
artifact("$libsDirName/react-native-android-open-settings-release.aar")
}
tareactnativeappsettings(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-app-settings'
version '2.0.1'
artifact("$libsDirName/react-native-app-settings-release.aar")
}
tareactnativeasyncstorageasyncstorage(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-async-storage_async-storage'
version '1.17.9'
version '2.0.0'
artifact("$libsDirName/react-native-async-storage_async-storage-release.aar")
}
tareactnativecolormatriximagefilters(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-color-matrix-image-filters'
version '5.2.10'
version '7.0.2'
artifact("$libsDirName/react-native-color-matrix-image-filters-release.aar")
}
tareactnativecommunityart(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-community_art'
version '1.2.0'
artifact("$libsDirName/react-native-community_art-release.aar")
}
tareactnativecommunitydatetimepicker(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-community_datetimepicker'
version '6.7.5'
artifact("$libsDirName/react-native-community_datetimepicker-release.aar")
}
tareactnativecommunityimageeditor(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-community_image-editor'
version '2.3.0'
artifact("$libsDirName/react-native-community_image-editor-release.aar")
}
tareactnativecommunitynetinfo(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-community_netinfo'
version '5.9.10'
version '11.4.1'
artifact("$libsDirName/react-native-community_netinfo-release.aar")
}
tareactnativecommunityslider(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-community_slider'
version '2.0.9'
artifact("$libsDirName/react-native-community_slider-release.aar")
}
tareactnativeconfig(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-config'
@ -111,17 +76,10 @@ publishing {
tareactnativecookiescookies(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-cookies_cookies'
version '6.2.0'
version '6.2.1'
artifact("$libsDirName/react-native-cookies_cookies-release.aar")
}
tareactnativedarkmode(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-dark-mode'
version '0.2.2'
artifact("$libsDirName/react-native-dark-mode-release.aar")
}
tareactnativedeviceinfo(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-device-info'
@ -153,24 +111,10 @@ publishing {
tareactnativegesturehandler(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-gesture-handler'
version '1.10.3'
version '2.27.1'
artifact("$libsDirName/react-native-gesture-handler-release.aar")
}
tareactnativeiapplay(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-iap-play'
version '12.4.0'
artifact("$libsDirName/react-native-iap-play-release.aar")
}
tareactnativeiapamazon(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-iap-amazon'
version '12.4.0'
artifact("$libsDirName/react-native-iap-amazon-release.aar")
}
tareactnativeidletimer(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-idle-timer'
@ -181,7 +125,7 @@ publishing {
tareactnativeimagemarker(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-image-marker'
version '0.9.2'
version '1.2.6'
artifact("$libsDirName/react-native-image-marker-release.aar")
}
@ -202,73 +146,45 @@ publishing {
tareactnativepagerview(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-pager-view'
version '6.1.4'
version '6.8.1'
artifact("$libsDirName/react-native-pager-view-release.aar")
}
tareactnativephotoviewex(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-photo-view-ex'
version '1.1.0'
artifact("$libsDirName/react-native-photo-view-ex-release.aar")
}
tareactnativereanimated(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-reanimated'
version '1.13.3'
version '3.19.0'
artifact("$libsDirName/react-native-reanimated-release.aar")
}
tareactnativesafeareacontext(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-safe-area-context'
version '3.3.2'
version '5.5.2'
artifact("$libsDirName/react-native-safe-area-context-release.aar")
}
tareactnativescreens(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-screens'
version '3.13.1'
version '3.37.0'
artifact("$libsDirName/react-native-screens-release.aar")
}
tareactnativeshare(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-share'
version '7.9.1'
version '10.2.1'
artifact("$libsDirName/react-native-share-release.aar")
}
tareactnativesplashscreen(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-splash-screen'
version '3.2.0'
artifact("$libsDirName/react-native-splash-screen-release.aar")
}
tareactnativesqlitestorage(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-sqlite-storage'
version '3.3.10'
artifact("$libsDirName/react-native-sqlite-storage-release.aar")
}
tareactnativesvg(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-svg'
version '12.1.0'
version '15.12.0'
artifact("$libsDirName/react-native-svg-release.aar")
}
tareactnativetecnaviautils(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-tecnavia-utils'
version '1.1.0'
artifact("$libsDirName/react-native-tecnavia-utils-release.aar")
}
tareactnativetextsize(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-text-size'
@ -279,7 +195,7 @@ publishing {
tareactnativetts(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-tts'
version '4.1.0'
version '4.1.1'
artifact("$libsDirName/react-native-tts-release.aar")
}
@ -300,21 +216,21 @@ publishing {
tareactnativevideo(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-video'
version '5.1.1'
version '5.2.1'
artifact("$libsDirName/react-native-video-release.aar")
}
tareactnativevolumecontrol(MavenPublication) {
tareactnativevolumemanager(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-volume-control'
version '1.0.1'
artifact("$libsDirName/react-native-volume-control-release.aar")
artifactId 'react-native-volume-manager'
version '2.0.8'
artifact("$libsDirName/react-native-volume-manager-release.aar")
}
tareactnativewebview(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native-webview'
version '11.17.2'
version '13.14.2'
artifact("$libsDirName/react-native-webview-release.aar")
}
@ -328,71 +244,85 @@ publishing {
tatecnaviareactnativebridge(MavenPublication) {
groupId 'tecnavia'
artifactId 'tecnavia_react-native-bridge'
version '1.2.15'
version '1.9.0'
artifact("$libsDirName/tecnavia_react-native-bridge-release.aar")
}
tatecnaviareactnativedefaultpreference(MavenPublication) {
groupId 'tecnavia'
artifactId 'tecnavia_react-native-default-preference'
version '1.5.0'
version '1.6.0'
artifact("$libsDirName/tecnavia_react-native-default-preference-release.aar")
}
tatecnaviareactnativedfp(MavenPublication) {
groupId 'tecnavia'
artifactId 'tecnavia_react-native-dfp'
version '1.4.0'
version '1.6.0'
artifact("$libsDirName/tecnavia_react-native-dfp-release.aar")
}
tatecnaviareactnativegeolocation(MavenPublication) {
groupId 'tecnavia'
artifactId 'tecnavia_react-native-geolocation'
version '3.0.1'
artifact("$libsDirName/tecnavia_react-native-geolocation-release.aar")
}
tatecnaviareactnativenavigationbarcolor(MavenPublication) {
groupId 'tecnavia'
artifactId 'tecnavia_react-native-navigation-bar-color'
version '2.0.2'
version '2.1.0'
artifact("$libsDirName/tecnavia_react-native-navigation-bar-color-release.aar")
}
tatecnaviareactnativepdf(MavenPublication) {
groupId 'tecnavia'
artifactId 'tecnavia_react-native-pdf'
version '5.1.6'
version '5.3.2'
artifact("$libsDirName/tecnavia_react-native-pdf-release.aar")
}
tatecnaviareactnativeprint(MavenPublication) {
groupId 'tecnavia'
artifactId 'tecnavia_react-native-print'
version '0.6.1'
version '0.7.0'
artifact("$libsDirName/tecnavia_react-native-print-release.aar")
}
tatecnaviareactnativesqlitestorage(MavenPublication) {
groupId 'tecnavia'
artifactId 'tecnavia_react-native-sqlite-storage'
version '3.5.0'
artifact("$libsDirName/tecnavia_react-native-sqlite-storage-release.aar")
}
tatecnaviareactnativeutils(MavenPublication) {
groupId 'tecnavia'
artifactId 'tecnavia_react-native-utils'
version '1.7.4'
artifact("$libsDirName/tecnavia_react-native-utils-release.aar")
}
tatecnaviareactnativewebanalytics(MavenPublication) {
groupId 'tecnavia'
artifactId 'tecnavia_react-native-web-analytics'
version '1.2.0'
artifact("$libsDirName/tecnavia_react-native-web-analytics-release.aar")
}
tatecnaviareactnativeziparchive(MavenPublication) {
groupId 'tecnavia'
artifactId 'tecnavia_react-native-zip-archive'
version '5.2.0'
version '5.3.0'
artifact("$libsDirName/tecnavia_react-native-zip-archive-release.aar")
}
tareactnative(MavenPublication) {
groupId 'tecnavia'
artifactId 'react-native'
version '0.67.5'
version '0.80.2'
artifact("$libsDirName/react-native-release.aar")
}
tahermes(MavenPublication) {
taandroidjsc(MavenPublication) {
groupId 'tecnavia'
artifactId 'hermes'
artifactId 'android-jsc'
version '1.0.0'
artifact("$libsDirName/hermes-release.aar")
artifact("$libsDirName/android-jsc-release.aar")
}
}
@ -404,10 +334,11 @@ afterEvaluate {
}
android {
compileSdkVersion safeExtGet("compileSdkVersion", "33").toInteger()
compileSdkVersion safeExtGet("compileSdkVersion", "35").toInteger()
namespace "com.tecnavia.sdk"
defaultConfig {
targetSdkVersion safeExtGet("targetSdkVersion", "33").toInteger()
targetSdkVersion safeExtGet("targetSdkVersion", "35").toInteger()
minSdkVersion safeExtGet("minSdkVersion", "24").toInteger()
versionName APP_VERSION_NAME
}
@ -446,11 +377,6 @@ android {
it.resValue 'string', 'IS_ADDON', IS_ADDON
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
repositories {
@ -458,87 +384,73 @@ repositories {
mavenLocal()
}
def frescoVersion = safeExtGet("frescoVersion", "2.5.0")
def soLoaderVersion = safeExtGet("soLoaderVersion","0.10.1")
def frescoVersion = safeExtGet("frescoVersion", "3.6.0")
def soLoaderVersion = safeExtGet("soLoaderVersion","0.12.1")
def okHttpVersion = safeExtGet("okHttpVersion", "4.9.2")
def glideVersion = safeExtGet("glideVersion", "4.12.0")
def kotlinVersion = safeExtGet("kotlinVersion", "1.4.0")
def kotlinVersion = safeExtGet("kotlinVersion", "2.1.20")
def webkitVersion = safeExtGet("webkitVersion", "1.4.0")
def androidxVersion = safeExtGet("androidxVersion", "1.5.0")
def androidxVersion = safeExtGet("androidxVersion", "1.8.0")
def androidxWorkRuntimeVersion = safeExtGet("androidxWorkRuntimeVersion", "2.7.0")
def androidxAnnotationVersion = safeExtGet("androidxAnnotationVersion", "1.4.0")
def androidxViewpager2Version = safeExtGet("androidxViewpager2Version", "1.0.0")
def androidxViewpager2Version = safeExtGet("androidxViewpager2Version", "1.1.0")
def androidxFragmentVersion = safeExtGet("androidxFragmentVersion", "1.4.1")
def androidxBrowserVersion = safeExtGet("androidxBrowserVersion", "1.4.0")
def androidxTransitionVersion = safeExtGet("androidxTransitionVersion", "1.1.0")
def androidxCoordinatorlayoutVersion = safeExtGet("androidxCoordinatorlayoutVersion", "1.1.0")
def androidxSwiperefreshlayoutVersion = safeExtGet("androidxSwiperefreshlayoutVersion", "1.0.0")
def androidxAppcompatVersion = safeExtGet("androidxAppcompatVersion", "1.0.2")
def androidxSwiperefreshlayoutVersion = safeExtGet("androidxSwiperefreshlayoutVersion", "1.1.0")
def androidxAppcompatVersion = safeExtGet("androidxAppcompatVersion", "1.7.0")
def androidxLegacySupportVersion = safeExtGet("androidxLegacySupportVersion", "1.0.0")
def playServiceiidVersion = safeExtGet("playServiceiidVersion", "17.0.0")
def playServiceBaseVersion = safeExtGet("playServiceBaseVersion", "18.0.1")
def playServiceAnalyticsVersion = safeExtGet("playServiceAnalyticsVersion", "18.0.1")
def playServiceAdsVersion = safeExtGet("playServiceAdsVersion", "20.2.0")
def playServiceMapsVersion = safeExtGet("playServiceMapsVersion", "17.0.0")
def playBillingVersion = safeExtGet("playBillingVersion", "5.0.0")
def amazonSdkVersion = safeExtGet("amazonSdkVersion", "3.0.3")
def playServiceAdsVersion = safeExtGet("playServiceAdsVersion", "21.3.0")
def playServiceMapsVersion = safeExtGet("playServiceMapsVersion", "18.0.2")
def playBillingVersion = safeExtGet("playBillingVersion", "7.0.0")
def amazonSdkVersion = safeExtGet("amazonSdkVersion", "3.0.7")
dependencies {
implementation "tecnavia:react-native-android-open-settings:1.3.0"
implementation "tecnavia:react-native-app-settings:2.0.1"
implementation "tecnavia:react-native-async-storage_async-storage:1.17.9"
implementation "tecnavia:react-native-color-matrix-image-filters:5.2.10"
implementation "tecnavia:react-native-community_art:1.2.0"
implementation "tecnavia:react-native-community_datetimepicker:6.7.5"
implementation "tecnavia:react-native-community_image-editor:2.3.0"
implementation "tecnavia:react-native-community_netinfo:5.9.10"
implementation "tecnavia:react-native-community_slider:2.0.9"
implementation "tecnavia:react-native-async-storage_async-storage:2.0.0"
implementation "tecnavia:react-native-color-matrix-image-filters:7.0.2"
implementation "tecnavia:react-native-community_netinfo:11.4.1"
implementation "tecnavia:react-native-config:1.4.11"
implementation "tecnavia:react-native-cookies_cookies:6.2.0"
implementation "tecnavia:react-native-dark-mode:0.2.2"
implementation "tecnavia:react-native-cookies_cookies:6.2.1"
implementation "tecnavia:react-native-device-info:8.7.1"
implementation "tecnavia:react-native-dynamic-fonts:0.3.2"
implementation "tecnavia:react-native-fast-image:8.5.11"
implementation "tecnavia:react-native-fs:2.20.0"
implementation "tecnavia:react-native-gesture-handler:1.10.3"
playImplementation "tecnavia:react-native-iap-play:12.4.0"
amazonImplementation "tecnavia:react-native-iap-amazon:12.4.0"
implementation "tecnavia:react-native-gesture-handler:2.27.1"
implementation "tecnavia:react-native-idle-timer:2.1.6"
implementation "tecnavia:react-native-image-marker:0.9.2"
implementation "tecnavia:react-native-image-marker:1.2.6"
implementation "tecnavia:react-native-linear-gradient:2.8.3"
implementation "tecnavia:react-native-mail:6.1.1"
implementation "tecnavia:react-native-pager-view:6.1.4"
implementation "tecnavia:react-native-photo-view-ex:1.1.0"
implementation "tecnavia:react-native-reanimated:1.13.3"
implementation "tecnavia:react-native-safe-area-context:3.3.2"
implementation "tecnavia:react-native-screens:3.13.1"
implementation "tecnavia:react-native-share:7.9.1"
implementation "tecnavia:react-native-splash-screen:3.2.0"
implementation "tecnavia:react-native-sqlite-storage:3.3.10"
implementation "tecnavia:react-native-svg:12.1.0"
implementation "tecnavia:react-native-tecnavia-utils:1.1.0"
implementation "tecnavia:react-native-pager-view:6.8.1"
implementation "tecnavia:react-native-reanimated:3.19.0"
implementation "tecnavia:react-native-safe-area-context:5.5.2"
implementation "tecnavia:react-native-screens:3.37.0"
implementation "tecnavia:react-native-share:10.2.1"
implementation "tecnavia:react-native-svg:15.12.0"
implementation "tecnavia:react-native-text-size:3.0.0"
implementation "tecnavia:react-native-tts:4.1.0"
implementation "tecnavia:react-native-tts:4.1.1"
implementation "tecnavia:react-native-uuid-generator:6.1.1"
implementation "tecnavia:react-native-vector-icons:8.1.0"
implementation "tecnavia:react-native-video:5.1.1"
implementation "tecnavia:react-native-volume-control:1.0.1"
implementation "tecnavia:react-native-webview:11.17.2"
implementation "tecnavia:react-native-video:5.2.1"
implementation "tecnavia:react-native-volume-manager:2.0.8"
implementation "tecnavia:react-native-webview:13.14.2"
implementation "tecnavia:rn-fetch-blob:0.11.2"
api "tecnavia:tecnavia_react-native-bridge:1.2.15"
implementation "tecnavia:tecnavia_react-native-default-preference:1.5.0"
implementation "tecnavia:tecnavia_react-native-dfp:1.4.0"
implementation "tecnavia:tecnavia_react-native-geolocation:3.0.1"
implementation "tecnavia:tecnavia_react-native-navigation-bar-color:2.0.2"
implementation "tecnavia:tecnavia_react-native-pdf:5.1.6"
implementation "tecnavia:tecnavia_react-native-print:0.6.1"
implementation "tecnavia:tecnavia_react-native-zip-archive:5.2.0"
api "tecnavia:react-native:0.67.5"
implementation "tecnavia:hermes:1.0.0"
api "tecnavia:tecnavia_react-native-bridge:1.9.0"
implementation "tecnavia:tecnavia_react-native-default-preference:1.6.0"
implementation "tecnavia:tecnavia_react-native-dfp:1.6.0"
implementation "tecnavia:tecnavia_react-native-navigation-bar-color:2.1.0"
implementation "tecnavia:tecnavia_react-native-pdf:5.3.2"
implementation "tecnavia:tecnavia_react-native-print:0.7.0"
implementation "tecnavia:tecnavia_react-native-sqlite-storage:3.5.0"
implementation "tecnavia:tecnavia_react-native-utils:1.7.4"
implementation "tecnavia:tecnavia_react-native-web-analytics:1.2.0"
implementation "tecnavia:tecnavia_react-native-zip-archive:5.3.0"
api "tecnavia:react-native:0.80.2"
implementation "tecnavia:android-jsc:1.0.0"
//the below dependencies works, if you change the versions something could not work well
implementation "org.webkit:android-jsc:+"
//androidx dependencies
implementation "javax.inject:javax.inject:1"
implementation "androidx.autofill:autofill:1.1.0"
@ -565,9 +477,10 @@ dependencies {
implementation "com.facebook.fresco:imagepipeline-okhttp3:$frescoVersion"
implementation "com.facebook.fresco:ui-common:$frescoVersion"
implementation "com.facebook.soloader:soloader:$soLoaderVersion"
implementation "com.facebook.fbjni:fbjni-java-only:0.2.2"
implementation "com.facebook.fbjni:fbjni:0.7.0"
//google dependencies
implementation "com.google.code.findbugs:jsr305:3.0.2"
///used by react-native-pdf
implementation "com.google.code.gson:gson:2.8.5"
//used by react-native-device-info package
//update core with the same values in react-native-firebase
@ -575,27 +488,11 @@ dependencies {
//used by react-native-maps and react-native-iap packages
//update core with the same values in react-native-firebase
implementation "com.google.android.gms:play-services-base:$playServiceBaseVersion"
//used by react-native-google-analytics-bridge ga3
//try to use the same version of firebase-core
//use the same version of play-services-analytics
//used by react-native-prebid, react-native-admob and react-native-dfp packages
implementation "com.google.android.gms:play-services-ads:$playServiceAdsVersion"
//used by react-native-maps package
//used by @firebase/app
implementation "com.android.billingclient:billing-ktx:$playBillingVersion"
implementation "com.amazon.device:amazon-appstore-sdk:$amazonSdkVersion"
//used by react-native-iap
//firebase
//okhttp
implementation "com.squareup.okhttp3:okhttp:$okHttpVersion"
implementation "com.squareup.okhttp3:okhttp-urlconnection:$okHttpVersion"
@ -609,5 +506,5 @@ dependencies {
implementation "net.lingala:zip4j:1.3.3"
implementation "com.jakewharton.timber:timber:4.7.1"
implementation "me.relex:photodraweeview:1.1.3"
implementation "com.yqritc:android-scalablevideoview:1.0.4"
implementation 'com.github.adityaxjha:Android-ScalableVideoView:10e7b4da8b'
}

View File

@ -1,7 +1,7 @@
android.useAndroidX=true
APP_NAME=Android SDK
APP_VERSION_NAME=3.11.02
APP_VERSION_CODE=1711011830006
APP_VERSION_NAME=3.22.02
APP_VERSION_CODE=1754465538680
ANDROID_APP_ID=com.tecnaviaapplication
IS_ADDON=true

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,5 +1,5 @@
<!-- tecnavia manifest template -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.tecnavia.sdk">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application>
<!-- we need it if there are google ad manager -->

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

0
src/main/assets/fonts/Fontisto.ttf Normal file → Executable file
View File

0
src/main/assets/fonts/Nunito-Bold.ttf Normal file → Executable file
View File

0
src/main/assets/fonts/Nunito-Medium.ttf Normal file → Executable file
View File

0
src/main/assets/fonts/Nunito-Regular.ttf Normal file → Executable file
View File

Binary file not shown.

View File

@ -1,23 +1,20 @@
com.facebook.react.shell.MainReactPackage
com.rtmalone.volumecontrol.RNVolumeControlPackage
com.reactnativevolumemanager.VolumeManagerPackage
com.levelasquez.androidopensettings.AndroidOpenSettingsPackage
com.krazylabs.OpenAppSettingsPackage
com.chirag.RNMail.RNMail
net.no_mad.tts.TextToSpeechPackage
com.idehub.GoogleAnalyticsBridge.GoogleAnalyticsBridgePackage
com.lugg.ReactNativeConfig.ReactNativeConfigPackage
org.pgsqlite.SQLitePluginPackage
com.swmansion.gesturehandler.react.RNGestureHandlerPackage
com.swmansion.gesturehandler.RNGestureHandlerPackage
com.prebidlibrary.RNPrebidPackage
com.oblador.vectoricons.VectorIconsPackage
com.reactcommunity.rndatetimepicker.RNDateTimePickerPackage
com.reactnativecommunity.asyncstorage.AsyncStoragePackage
com.reactnativecommunity.art.ARTPackage
com.reactnativecommunity.imageeditor.ImageEditorPackage
com.reactnativecommunity.netinfo.NetInfoPackage
com.reactnativecommunity.slider.ReactSliderPackage
com.reactnativecommunity.cookies.CookieManagerPackage
com.tecnavia.firebaseanalytics.FirebaseAnalyticsPackage
com.tecnavia.webanalytics.WebAnalyticsPackage
com.tecnavia.firebase.crashlytics.ReactNativeFirebaseCrashlyticsPackage
io.invertase.firebase.admob.ReactNativeFirebaseAdmobPackage
co.work.rnadbmobile.RNADBMobilePackage
@ -28,22 +25,20 @@ com.tecnavia.push.PushPackage
com.tecnavialibrary.comscore.ComscorePackage
com.tecnavia.dailymotion.sdk.ReactNativeDailymotionSdkPackage
iyegoroff.RNColorMatrixImageFilters.ColorMatrixImageFiltersPackage
com.codemotionapps.reactnativedarkmode.DarkModePackage
com.dfplibrary.RNDfpPackage
com.dylanvann.fastimage.FastImageViewPackage
com.facebook.reactnative.androidsdk.FBSDKPackage
com.christopherdro.htmltopdf.RNHTMLtoPDFPackage
com.dooboolab.RNIap.RNIapPackage
com.dooboolab.rniap.RNIapPackage
com.marcshilling.idletimer.IdleTimerPackage
com.BV.LinearGradient.LinearGradientPackage
com.airbnb.android.react.maps.MapsPackage
com.matejdr.matheranalytics.MatherAnalyticsPackage
de.bonify.reactnativematomo.MatomoPackage
net.nativo.reactsdk.RNNativoSdkPackage
com.geektime.rnonesignalandroid.ReactNativeOneSignalPackage
com.onesignal.rnonesignalandroid.ReactNativeOneSignalPackage
com.reactnativepagerview.PagerViewPackage
com.library.RCTPdfView
io.amarcruz.photoview.PhotoViewPackage
com.swmansion.reanimated.ReanimatedPackage
com.th3rdwave.safeareacontext.SafeAreaContextPackage
com.swmansion.rnscreens.RNScreensPackage
@ -56,4 +51,9 @@ com.brentvatne.react.ReactVideoPackage
com.wenkesj.voice.VoicePackage
com.reactnativecommunity.webview.RNCWebViewPackage
com.RNFetchBlob.RNFetchBlobPackage
com.blueconic.reactnative.BlueConicClientPackage
com.blueconic.reactnative.BlueConicClientPackage
com.tecnavia.chartbeat.ChartBeatPackage
com.reactnativecommunity.geolocation.GeolocationPackage
com.heanoria.library.reactnative.locationenabler.AndroidLocationEnablerPackage
com.zoontek.rnpermissions.RNPermissionsPackage
it.innove.BleManagerPackage

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 504 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 664 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 685 B

File diff suppressed because one or more lines are too long