Skip to content

Commit 2755d07

Browse files
authored
refactor: Rewrite using Turbo Native Modules (#12)
- Drop support for Old Architecture.
1 parent 9999d3e commit 2755d07

File tree

81 files changed

+2707
-2891
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+2707
-2891
lines changed

.gitignore

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ DerivedData
2828
*.ipa
2929
*.xcuserstate
3030
project.xcworkspace
31+
**/.xcode.env.local
3132

3233
# Android/IJ
3334
#
@@ -74,9 +75,16 @@ android/keystores/debug.keystore
7475
# Turborepo
7576
.turbo/
7677

78+
# generated by bob
79+
lib/
80+
81+
# React Native Codegen
82+
ios/generated
83+
android/generated
84+
85+
# React Native Nitro Modules
86+
nitrogen/
87+
7788
# User files
7889
TODO.md
7990
coverage/
80-
81-
# generated by bob
82-
lib/

.nvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v22
1+
v22.20.0

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@ and this project attempts to adhere to [Semantic Versioning](https://semver.org/
77

88
## [Unreleased]
99

10+
### ❗ Breaking Changes
11+
12+
- Drop support for Old Architecture.
13+
14+
### ⚙️ Internal Changes
15+
16+
- Rewrite app to use Turbo Native Modules.
17+
1018
## [2.5.0] - 2026-02-04
1119

1220
### 🎉 Added

android/build.gradle

Lines changed: 25 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,45 @@
11
buildscript {
2-
// Buildscript is evaluated before everything else so we can't use getExtOrDefault
3-
def kotlin_version = rootProject.ext.has("kotlinVersion") ? rootProject.ext.get("kotlinVersion") : project.properties["MetadataRetriever_kotlinVersion"]
2+
ext.MetadataRetriever = [
3+
kotlinVersion: "2.0.21",
4+
minSdkVersion: 24,
5+
compileSdkVersion: 36,
6+
targetSdkVersion: 36
7+
]
8+
9+
ext.getExtOrDefault = { prop ->
10+
if (rootProject.ext.has(prop)) {
11+
return rootProject.ext.get(prop)
12+
}
13+
14+
return MetadataRetriever[prop]
15+
}
416

517
repositories {
618
google()
719
mavenCentral()
820
}
921

1022
dependencies {
11-
classpath "com.android.tools.build:gradle:8.7.1"
23+
classpath "com.android.tools.build:gradle:8.7.2"
1224
// noinspection DifferentKotlinGradleVersion
13-
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
25+
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}"
1426
}
1527
}
1628

17-
def reactNativeArchitectures() {
18-
def value = rootProject.getProperties().get("reactNativeArchitectures")
19-
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
20-
}
21-
22-
def isNewArchitectureEnabled() {
23-
return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
24-
}
2529

2630
apply plugin: "com.android.library"
2731
apply plugin: "kotlin-android"
2832

29-
if (isNewArchitectureEnabled()) {
30-
apply plugin: "com.facebook.react"
31-
}
32-
33-
def getExtOrDefault(name) {
34-
return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties["MetadataRetriever_" + name]
35-
}
36-
37-
def getExtOrIntegerDefault(name) {
38-
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["MetadataRetriever_" + name]).toInteger()
39-
}
40-
41-
def supportsNamespace() {
42-
def parsed = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')
43-
def major = parsed[0].toInteger()
44-
def minor = parsed[1].toInteger()
45-
46-
// Namespace support was added in 7.3.0
47-
return (major == 7 && minor >= 3) || major >= 8
48-
}
33+
apply plugin: "com.facebook.react"
4934

5035
android {
51-
if (supportsNamespace()) {
52-
namespace "com.cyanchill.missingcore.metadataretriever"
36+
namespace "com.cyanchill.missingcore.metadataretriever"
5337

54-
sourceSets {
55-
main {
56-
manifest.srcFile "src/main/AndroidManifestNew.xml"
57-
}
58-
}
59-
}
60-
61-
compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
38+
compileSdkVersion getExtOrDefault("compileSdkVersion")
6239

6340
defaultConfig {
64-
minSdkVersion getExtOrIntegerDefault("minSdkVersion")
65-
targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
66-
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
67-
41+
minSdkVersion getExtOrDefault("minSdkVersion")
42+
targetSdkVersion getExtOrDefault("targetSdkVersion")
6843
}
6944

7045
buildFeatures {
@@ -77,56 +52,27 @@ android {
7752
}
7853
}
7954

80-
lintOptions {
55+
lint {
8156
disable "GradleCompatible"
8257
}
8358

8459
compileOptions {
8560
sourceCompatibility JavaVersion.VERSION_1_8
8661
targetCompatibility JavaVersion.VERSION_1_8
8762
}
88-
89-
sourceSets {
90-
main {
91-
if (isNewArchitectureEnabled()) {
92-
java.srcDirs += [
93-
"src/newarch",
94-
// Codegen specs
95-
"generated/java",
96-
"generated/jni"
97-
]
98-
} else {
99-
java.srcDirs += ["src/oldarch"]
100-
}
101-
}
102-
}
10363
}
10464

10565
repositories {
106-
mavenCentral()
10766
google()
67+
mavenCentral()
10868
maven { url 'https://jitpack.io' }
10969
}
11070

111-
def kotlin_version = getExtOrDefault("kotlinVersion")
112-
11371
dependencies {
11472
def media3_version = "1.9.1-MissingCore.2"
11573

116-
// For < 0.71, this will be from the local maven repo
117-
// For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
118-
//noinspection GradleDynamicVersion
119-
implementation "com.facebook.react:react-native:+"
120-
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
74+
implementation "com.facebook.react:react-android"
12175

12276
implementation "com.github.MissingCore.media:media3-common:$media3_version"
12377
implementation "com.github.MissingCore.media:media3-inspector:$media3_version"
124-
}
125-
126-
if (isNewArchitectureEnabled()) {
127-
react {
128-
jsRootDir = file("../src/")
129-
libraryName = "MetadataRetriever"
130-
codegenJavaPackageName = "com.cyanchill.missingcore.metadataretriever"
131-
}
132-
}
78+
}

android/gradle.properties

Lines changed: 0 additions & 5 deletions
This file was deleted.
-61.9 KB
Binary file not shown.

android/gradle/wrapper/gradle-wrapper.properties

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)