Skip to content
This repository was archived by the owner on May 7, 2022. It is now read-only.

Commit dfeb173

Browse files
committed
Rewrite example in Kotlin
1 parent a57b78e commit dfeb173

File tree

8 files changed

+77
-102
lines changed

8 files changed

+77
-102
lines changed

README.md

+2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ import getPath from '@flyerhq/react-native-android-uri-path'
2020
const path = getPath(uriString)
2121
```
2222

23+
Other platforms will return `uriString`, so no need to use `Platform`.
24+
2325
## License
2426

2527
[MIT](LICENSE)

example/android/app/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
apply plugin: "com.android.application"
2+
apply plugin: "kotlin-android"
23

34
import com.android.build.OutputFile
45

example/android/app/src/main/java/com/example/MainActivity.java

-15
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.example
2+
3+
import com.facebook.react.ReactActivity
4+
5+
class MainActivity : ReactActivity() {
6+
7+
override fun getMainComponentName(): String? {
8+
return "example"
9+
}
10+
}

example/android/app/src/main/java/com/example/MainApplication.java

-85
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package com.example
2+
3+
import android.app.Application
4+
import android.content.Context
5+
import chat.flyer.rnandroiduripath.RNAndroidURIPathPackage
6+
import com.facebook.react.*
7+
import com.facebook.soloader.SoLoader
8+
import java.lang.reflect.InvocationTargetException
9+
10+
class MainApplication : Application(), ReactApplication {
11+
12+
private val mReactNativeHost = object : ReactNativeHost(this) {
13+
override fun getUseDeveloperSupport(): Boolean {
14+
return BuildConfig.DEBUG
15+
}
16+
17+
override fun getPackages(): List<ReactPackage> {
18+
val packages = PackageList(this).packages
19+
packages.add(RNAndroidURIPathPackage())
20+
return packages
21+
}
22+
23+
override fun getJSMainModuleName(): String {
24+
return "index"
25+
}
26+
}
27+
28+
override fun getReactNativeHost(): ReactNativeHost {
29+
return mReactNativeHost
30+
}
31+
32+
override fun onCreate() {
33+
super.onCreate()
34+
SoLoader.init(this, false)
35+
initializeFlipper(this, reactNativeHost.reactInstanceManager)
36+
}
37+
38+
companion object {
39+
40+
private fun initializeFlipper(context: Context, reactInstanceManager: ReactInstanceManager) {
41+
if (BuildConfig.DEBUG) {
42+
try {
43+
val aClass = Class.forName("com.example.ReactNativeFlipper")
44+
aClass
45+
.getMethod("initializeFlipper", Context::class.java, ReactInstanceManager::class.java)
46+
.invoke(null, context, reactInstanceManager)
47+
} catch (e: ClassNotFoundException) {
48+
e.printStackTrace()
49+
} catch (e: NoSuchMethodException) {
50+
e.printStackTrace()
51+
} catch (e: IllegalAccessException) {
52+
e.printStackTrace()
53+
} catch (e: InvocationTargetException) {
54+
e.printStackTrace()
55+
}
56+
}
57+
}
58+
}
59+
}

example/android/build.gradle

+3-1
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@ buildscript {
66
minSdkVersion = 16
77
compileSdkVersion = 29
88
targetSdkVersion = 29
9+
kotlinVersion = "1.4.10"
910
}
1011
repositories {
1112
google()
1213
jcenter()
1314
}
1415
dependencies {
15-
classpath('com.android.tools.build:gradle:4.0.1')
16+
classpath 'com.android.tools.build:gradle:4.0.1'
17+
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
1618

1719
// NOTE: Do not place your application dependencies here; they belong
1820
// in the individual module build.gradle files

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@flyerhq/react-native-android-uri-path",
3-
"version": "1.0.0",
3+
"version": "1.0.1",
44
"description": "Get an absolute path to a file retrieved by Android's Intent.ACTION_GET_CONTENT that returns a content URI.",
55
"homepage": "https://github.com/flyerhq/react-native-android-uri-path#readme",
66
"main": "lib/index.js",
@@ -10,6 +10,7 @@
1010
"keywords": [
1111
"android",
1212
"react-native",
13+
"kotlin",
1314
"absolute-path",
1415
"intent",
1516
"resolver"

0 commit comments

Comments
 (0)