Introduce ModuleDataCleaner.cleanDataFromModules(ReactContext)

Summary:
ModuleDataCleaner.cleanDataFromModules(**ReactContext**) is just like ModuleDataCleaner.cleanDataFromModules(**CatalystInstance**). However, one key difference is that this new method is bridgeless mode compatible. CatalystInstance doesn't exist in bridgeless mode.

Changelog: [Android][Added] Introduce ModuleDataCleaner.cleanDataFromModules(ReactContext)

Reviewed By: sshic

Differential Revision: D35286939

fbshipit-source-id: 1c09a3b34add88f848eab43b42b39ab624f0818b
This commit is contained in:
Ramanpreet Nara 2022-04-01 21:14:22 -07:00 коммит произвёл Facebook GitHub Bot
Родитель b978308519
Коммит 184dfb8f8b
1 изменённых файлов: 16 добавлений и 0 удалений

Просмотреть файл

@ -10,6 +10,7 @@ package com.facebook.react.modules.common;
import com.facebook.common.logging.FLog;
import com.facebook.react.bridge.CatalystInstance;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.common.ReactConstants;
/**
@ -36,6 +37,12 @@ public class ModuleDataCleaner {
void clearSensitiveData();
}
/**
* Please use the cleanDataFromModules(ReactContext) instead. This method is not compatible with
* bridgeless mode.
*
* @deprecated
*/
public static void cleanDataFromModules(CatalystInstance catalystInstance) {
for (NativeModule nativeModule : catalystInstance.getNativeModules()) {
if (nativeModule instanceof Cleanable) {
@ -44,4 +51,13 @@ public class ModuleDataCleaner {
}
}
}
public static void cleanDataFromModules(ReactContext reactContext) {
for (NativeModule nativeModule : reactContext.getNativeModules()) {
if (nativeModule instanceof Cleanable) {
FLog.d(ReactConstants.TAG, "Cleaning data from " + nativeModule.getName());
((Cleanable) nativeModule).clearSensitiveData();
}
}
}
}