@@ -4,10 +4,11 @@ import android.content.Context
4
4
import androidx.annotation.VisibleForTesting
5
5
import com.facebook.react.bridge.Arguments
6
6
import com.facebook.react.bridge.Callback
7
- import com.facebook.react.bridge.ReactContext
8
- import com.facebook.react.bridge.ReactContextBaseJavaModule
7
+ import com.facebook.react.bridge.ReactApplicationContext
9
8
import com.facebook.react.bridge.ReactMethod
10
9
import com.facebook.react.bridge.ReadableArray
10
+ import com.facebook.react.module.annotations.ReactModule
11
+ import com.reactnativecommunity.asyncstorage.NativeAsyncStorageModuleSpec
11
12
import com.reactnativecommunity.asyncstorage.SerialExecutor
12
13
import kotlinx.coroutines.CoroutineName
13
14
import kotlinx.coroutines.CoroutineScope
@@ -16,8 +17,9 @@ import kotlinx.coroutines.SupervisorJob
16
17
import kotlinx.coroutines.asExecutor
17
18
import kotlinx.coroutines.launch
18
19
19
- class StorageModule (reactContext : ReactContext ) : ReactContextBaseJavaModule(), CoroutineScope {
20
- override fun getName () = " RNCAsyncStorage"
20
+ @ReactModule(name = StorageModule .NAME )
21
+ class StorageModule (reactContext : ReactApplicationContext ) : NativeAsyncStorageModuleSpec(reactContext), CoroutineScope {
22
+ override fun getName () = NAME
21
23
22
24
// this executor is not used by the module, but it must exists here due to
23
25
// Detox relying on this implementation detail to run
@@ -30,22 +32,24 @@ class StorageModule(reactContext: ReactContext) : ReactContextBaseJavaModule(),
30
32
private val storage = StorageSupplier .getInstance(reactContext)
31
33
32
34
companion object {
35
+ const val NAME = " RNCAsyncStorage"
36
+
33
37
@JvmStatic
34
38
fun getStorageInstance (ctx : Context ): AsyncStorageAccess {
35
39
return StorageSupplier .getInstance(ctx)
36
40
}
37
41
}
38
42
39
43
@ReactMethod
40
- fun multiGet (keys : ReadableArray , cb : Callback ) {
44
+ override fun multiGet (keys : ReadableArray , cb : Callback ) {
41
45
launch(createExceptionHandler(cb)) {
42
46
val entries = storage.getValues(keys.toKeyList())
43
47
cb(null , entries.toKeyValueArgument())
44
48
}
45
49
}
46
50
47
51
@ReactMethod
48
- fun multiSet (keyValueArray : ReadableArray , cb : Callback ) {
52
+ override fun multiSet (keyValueArray : ReadableArray , cb : Callback ) {
49
53
launch(createExceptionHandler(cb)) {
50
54
val entries = keyValueArray.toEntryList()
51
55
storage.setValues(entries)
@@ -54,15 +58,15 @@ class StorageModule(reactContext: ReactContext) : ReactContextBaseJavaModule(),
54
58
}
55
59
56
60
@ReactMethod
57
- fun multiRemove (keys : ReadableArray , cb : Callback ) {
61
+ override fun multiRemove (keys : ReadableArray , cb : Callback ) {
58
62
launch(createExceptionHandler(cb)) {
59
63
storage.removeValues(keys.toKeyList())
60
64
cb(null )
61
65
}
62
66
}
63
67
64
68
@ReactMethod
65
- fun multiMerge (keyValueArray : ReadableArray , cb : Callback ) {
69
+ override fun multiMerge (keyValueArray : ReadableArray , cb : Callback ) {
66
70
launch(createExceptionHandler(cb)) {
67
71
val entries = keyValueArray.toEntryList()
68
72
storage.mergeValues(entries)
@@ -71,7 +75,7 @@ class StorageModule(reactContext: ReactContext) : ReactContextBaseJavaModule(),
71
75
}
72
76
73
77
@ReactMethod
74
- fun getAllKeys (cb : Callback ) {
78
+ override fun getAllKeys (cb : Callback ) {
75
79
launch(createExceptionHandler(cb)) {
76
80
val keys = storage.getKeys()
77
81
val result = Arguments .createArray()
@@ -81,7 +85,7 @@ class StorageModule(reactContext: ReactContext) : ReactContextBaseJavaModule(),
81
85
}
82
86
83
87
@ReactMethod
84
- fun clear (cb : Callback ) {
88
+ override fun clear (cb : Callback ) {
85
89
launch(createExceptionHandler(cb)) {
86
90
storage.clear()
87
91
cb(null )
0 commit comments