diff --git a/android/src/main/java/com/reactlibrary/RNFastStorageModule.java b/android/src/main/java/com/reactlibrary/RNFastStorageModule.java index b71fb8e..bb20e65 100644 --- a/android/src/main/java/com/reactlibrary/RNFastStorageModule.java +++ b/android/src/main/java/com/reactlibrary/RNFastStorageModule.java @@ -4,7 +4,8 @@ import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.bridge.Callback; +import com.facebook.react.bridge.Promise; +import com.tencent.mmkv.MMKV; public class RNFastStorageModule extends ReactContextBaseJavaModule { @@ -19,4 +20,60 @@ public RNFastStorageModule(ReactApplicationContext reactContext) { public String getName() { return "RNFastStorage"; } + + @ReactMethod + public void setupLibrary() { + MMKV.initialize(getReactApplicationContext()); + } + + @ReactMethod + public void setItem(String key, String value, Promise promise) { + try { + MMKV kv = MMKV.defaultMMKV(); + kv.encode(key, value); + promise.resolve(value); + } catch (Error e) { + promise.reject("Error", "Unable to setItem"); + } catch (Exception e) { + promise.reject("Error", "Unable to setItem"); + } + } + + @ReactMethod + public void getItem(String key, Promise promise) { + try { + MMKV kv = MMKV.defaultMMKV(); + promise.resolve(kv.decodeString(key)); + } catch (Error e) { + promise.reject("Error", "Unable to getItem"); + } catch (Exception e) { + promise.reject("Error", "Unable to getItem"); + } + } + + @ReactMethod + public void removeItem(String key, Promise promise) { + try { + MMKV kv = MMKV.defaultMMKV(); + kv.removeValueForKey(key); + promise.resolve(key); + } catch (Error e) { + promise.reject("Error", "Unable to removeItem"); + } catch (Exception e) { + promise.reject("Error", "Unable to removeItem"); + } + } + + @ReactMethod + public void clearStore(Promise promise) { + try { + MMKV kv = MMKV.defaultMMKV(); + kv.clearAll(); + promise.resolve("Done"); + } catch (Error e) { + promise.reject("Error", "Unable to removeItem"); + } catch (Exception e) { + promise.reject("Error", "Unable to removeItem"); + } + } } \ No newline at end of file diff --git a/android/src/main/java/com/reactlibrary/RNFastStoragePackage.java b/android/src/main/java/com/reactlibrary/RNFastStoragePackage.java index 9a5ba23..ae52032 100644 --- a/android/src/main/java/com/reactlibrary/RNFastStoragePackage.java +++ b/android/src/main/java/com/reactlibrary/RNFastStoragePackage.java @@ -10,19 +10,20 @@ import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.uimanager.ViewManager; import com.facebook.react.bridge.JavaScriptModule; + public class RNFastStoragePackage implements ReactPackage { - @Override - public List createNativeModules(ReactApplicationContext reactContext) { - return Arrays.asList(new RNFastStorageModule(reactContext)); - } + @Override + public List createNativeModules(ReactApplicationContext reactContext) { + return Arrays.asList(new RNFastStorageModule(reactContext)); + } - // Deprecated from RN 0.47 - public List> createJSModules() { - return Collections.emptyList(); - } + // Deprecated from RN 0.47 + public List> createJSModules() { + return Collections.emptyList(); + } - @Override - public List createViewManagers(ReactApplicationContext reactContext) { - return Collections.emptyList(); - } + @Override + public List createViewManagers(ReactApplicationContext reactContext) { + return Collections.emptyList(); + } } \ No newline at end of file diff --git a/index.js b/index.js index 33a1b1b..2324964 100644 --- a/index.js +++ b/index.js @@ -1,6 +1,7 @@ - -import { NativeModules } from 'react-native'; +import { NativeModules } from "react-native"; const { RNFastStorage } = NativeModules; +if (RNFastStorage.setupLibrary) RNFastStorage.setupLibrary(); + export default RNFastStorage;