Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Changelog

All notable changes to this project are documented in this file.

## 0.0.15 — 2026-06-30

### Breaking changes

- Regenerated Nitrogen bindings for **react-native-nitro-modules 0.35+** (JavaPart / CxxPart JNI model).
- Peer dependency `react-native-nitro-modules` is now **>= 0.35.0** (was >= 0.31.4).
- **Android minSdkVersion 26+** is required (Nitro Modules prefab / HardwareBuffer).

### Changed

- `NitroPay_minSdkVersion` set to 26; `NitroPay_ndkVersion` updated to 29.0.14206865.
- `nitrogen` devDependency pinned to ^0.35.9; `react-native-nitro-modules` devDependency ^0.35.10.
- Updated `cpp-adapter.cpp` to call `registerAllNatives()` (nitro 0.35 JNI_OnLoad pattern).

### Migration

1. Upgrade `react-native-nitro-modules` to **0.35.10** (or newer 0.35.x).
2. Set Android `minSdkVersion` to **26** in `expo-build-properties` or `build.gradle`.
3. Remove any consumer-side patches for `@gmisoftware/react-native-pay@0.0.14` nitrogen Android codegen.
4. Run `npx expo prebuild --clean` and rebuild.
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@ bun add @gmisoftware/react-native-pay
### Prerequisites

- React Native 0.70+
- React Native Nitro Modules 0.31.4+ (required)
- React Native Nitro Modules 0.35.0+ (required)
- Android `minSdkVersion` 26+ (required for Nitro Modules prefab)
- Expo 53+ (if using Expo)

---
Expand Down Expand Up @@ -114,6 +115,8 @@ npx expo prebuild --clean

### Android Setup (Google Pay)

**Minimum SDK:** set `minSdkVersion` to **26** or higher (e.g. via `expo-build-properties`). Nitro Modules 0.35 prefab requires API 26+.

#### 1. Configure Expo Config Plugin

Add the Google Pay plugin to your `app.json` or `app.config.js`:
Expand Down
22 changes: 11 additions & 11 deletions bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 9 additions & 1 deletion docs/docs/compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@ Supported versions and upgrade notes.

- **react** — `*` (compatible with current React 18/19)
- **react-native** — `*` (0.70+ recommended)
- **react-native-nitro-modules** — **>= 0.31.4** (required)
- **react-native-nitro-modules** — **>= 0.35.0** (required)
- **expo** — **>= 53.0.0** (if using Expo)
- **Android minSdkVersion** — **26+** (required for Nitro Modules prefab)

Install the correct Nitro version first; the payment library depends on it.

Expand All @@ -32,6 +33,13 @@ Use `Platform.OS` (or equivalent) to render the correct button and to pass platf

## Breaking changes and migrations

### 0.0.15

- Regenerated Nitrogen bindings for **react-native-nitro-modules 0.35+** (JavaPart/CxxPart JNI model).
- **Peer dependency** `react-native-nitro-modules` is now **>= 0.35.0** (was >= 0.31.4).
- **Android minSdkVersion 26+** is required (Nitro Modules prefab). Set `minSdkVersion` to at least 26 in `expo-build-properties` or your app's `build.gradle`.
- Consumers on nitro 0.31.x must stay on **0.0.14** or upgrade nitro-modules first.

- Check the package **changelog** or **GitHub releases** for version-specific notes.
- When upgrading, run `npx expo prebuild --clean` and re-test on both platforms.
- If you use TypeScript, run `bun run typecheck` (or your typecheck script) after upgrading.
Expand Down
3 changes: 2 additions & 1 deletion docs/docs/quick-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ This guide does **not** replace platform onboarding (Apple/Google) or gateway-sp
## 1. Prerequisites

- React Native **0.70+**
- **react-native-nitro-modules** **0.31.4+** (required)
- **react-native-nitro-modules** **0.35.0+** (required)
- **Android minSdkVersion** **26+** (required)
- **Expo 53+** if you use Expo

## 2. Install dependencies
Expand Down
3 changes: 2 additions & 1 deletion docs/docs/setup/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ Install the payment library and its required dependency in your React Native (or
## Requirements

- **React Native** 0.70 or newer
- **react-native-nitro-modules** 0.31.4 or newer (required)
- **react-native-nitro-modules** 0.35.0 or newer (required)
- **Android minSdkVersion** 26 or newer (required for Nitro Modules prefab)
- **Expo** 53+ if you use Expo

## Step 1: Install Nitro Modules
Expand Down
2 changes: 1 addition & 1 deletion example/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"react": "19.1.0",
"react-dom": "19.1.0",
"react-native": "0.81.4",
"react-native-nitro-modules": "^0.31.9",
"react-native-nitro-modules": "^0.35.10",
"@gmisoftware/react-native-pay": "*",
"react-native-reanimated": "~4.1.1",
"react-native-safe-area-context": "~5.6.0",
Expand Down
4 changes: 2 additions & 2 deletions package/android/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
NitroPay_kotlinVersion=2.1.20
NitroPay_minSdkVersion=23
NitroPay_minSdkVersion=26
NitroPay_targetSdkVersion=36
NitroPay_compileSdkVersion=36
NitroPay_ndkVersion=27.1.12297006
NitroPay_ndkVersion=29.0.14206865

# Google Pay Environment: TEST or PRODUCTION
GOOGLE_PAY_ENVIRONMENT=TEST
5 changes: 4 additions & 1 deletion package/android/src/main/cpp/cpp-adapter.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
#include <jni.h>
#include <fbjni/fbjni.h>
#include "NitroPayOnLoad.hpp"

JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
return margelo::nitro::pay::initialize(vm);
return facebook::jni::initialize(vm, []() {
margelo::nitro::pay::registerAllNatives();
});
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

72 changes: 44 additions & 28 deletions package/nitrogen/generated/android/NitroPayOnLoad.cpp

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 14 additions & 5 deletions package/nitrogen/generated/android/NitroPayOnLoad.hpp

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading