Skip to content

Commit 40c3433

Browse files
committed
Enhance README and API for VersionCheck; refactor to expose version, build number, package name, and country methods directly. Update example usage in App.tsx and adjust native implementations for Android and iOS to support new properties.
1 parent a835e4f commit 40c3433

14 files changed

Lines changed: 132 additions & 35 deletions

File tree

README.md

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,27 @@ bun add react-native-nitro-version-check react-native-nitro-modules
1313
```tsx
1414
import VersionCheck from "react-native-nitro-version-check";
1515

16-
const version = VersionCheck.getVersion();
16+
VersionCheck.version; // "1.0.0"
17+
VersionCheck.buildNumber; // "42"
18+
VersionCheck.packageName; // "com.example.app"
19+
VersionCheck.getCountry(); // "US"
1720
```
1821

19-
Or import individual methods directly:
22+
Or import individually:
2023

2124
```tsx
22-
import { getVersion } from "react-native-nitro-version-check";
23-
24-
const version = getVersion();
25+
import { version, buildNumber, packageName, getCountry } from "react-native-nitro-version-check";
2526
```
2627

28+
## API
29+
30+
| API | Type | Description |
31+
|-----|------|-------------|
32+
| `version` | `string` | App version |
33+
| `buildNumber` | `string` | Build number |
34+
| `packageName` | `string` | Bundle ID / package name |
35+
| `getCountry()` | `string` | Current device country |
36+
2737
## License
2838

29-
MIT
39+
MIT

example/App.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import { StatusBar } from "expo-status-bar";
22
import { StyleSheet, Text, View } from "react-native";
3-
import { getVersion } from "react-native-nitro-version-check";
3+
import VersionCheck from "react-native-nitro-version-check";
44

55
export default function App() {
6-
const version = getVersion();
7-
86
return (
97
<View style={styles.container}>
10-
<Text>Version: {version}</Text>
8+
<Text>Version: {VersionCheck.version}</Text>
9+
<Text>Build: {VersionCheck.buildNumber}</Text>
10+
<Text>Package: {VersionCheck.packageName}</Text>
11+
<Text>Country: {VersionCheck.getCountry()}</Text>
1112
<StatusBar style="auto" />
1213
</View>
1314
);
@@ -20,4 +21,4 @@ const styles = StyleSheet.create({
2021
alignItems: "center",
2122
justifyContent: "center",
2223
},
23-
});
24+
});

package/android/src/main/java/com/margelo/nitro/nitroversioncheck/HybridVersionCheck.kt

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,22 @@ import com.margelo.nitro.NitroModules
66
class HybridVersionCheck: HybridVersionCheckSpec(){
77
companion object {
88
private val context = NitroModules.applicationContext
9+
private val packageInfo = context?.packageManager?.getPackageInfo(context.packageName, 0)
10+
911
}
12+
public override val version = packageInfo?.versionName ?: "unknown"
1013

11-
override fun getVersion(): String {
12-
val packageInfo = context?.packageManager?.getPackageInfo(context.packageName, 0)
13-
return packageInfo?.versionName ?: "unknown"
14+
public override val buildNumber = if (android.os.Build.VERSION.SDK_INT >= 28) {
15+
if (packageInfo?.longVersionCode != null) packageInfo.longVersionCode.toString() else "unknown"
16+
} else {
17+
@Suppress("DEPRECATION")
18+
if (packageInfo?.versionCode != null) packageInfo.versionCode.toString() else "unknown"
1419
}
20+
21+
22+
override fun getCountry(): String {
23+
return java.util.Locale.getDefault().country ?: "unknown"
24+
}
25+
26+
public override val packageName= packageInfo?.packageName ?: "unknown"
1527
}

package/ios/HybridVersionCheck.swift

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@ import NitroModules
33

44

55
class HybridVersionCheck: HybridVersionCheckSpec {
6-
func getVersion() throws -> String {
7-
return Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "unknown"
6+
var version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "unknown"
7+
var buildNumber = Bundle.main.infoDictionary?["CFBundleVersion"] as? String ?? "unknown"
8+
var packageName = Bundle.main.infoDictionary?["CFBundleIdentifier"] as? String ?? "unknown"
9+
10+
func getCountry() throws -> String {
11+
Locale.current.regionCode ?? "unknown"
812
}
913
}

package/nitrogen/generated/android/c++/JHybridVersionCheckSpec.cpp

Lines changed: 17 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package/nitrogen/generated/android/c++/JHybridVersionCheckSpec.hpp

Lines changed: 4 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroversioncheck/HybridVersionCheckSpec.kt

Lines changed: 11 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package/nitrogen/generated/ios/c++/HybridVersionCheckSpecSwift.hpp

Lines changed: 14 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package/nitrogen/generated/ios/swift/HybridVersionCheckSpec.swift

Lines changed: 4 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package/nitrogen/generated/ios/swift/HybridVersionCheckSpec_cxx.swift

Lines changed: 21 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)