Make ModuleDataCleaner internal (#51060)

Summary:
This class can be internalized as part of the initiative to reduce the public API surface. I've checked there are [no relevant OSS usages](https://github.com/search?type=code&q=NOT+is%3Afork+NOT+org%3Afacebook+NOT+repo%3Areact-native-tvos%2Freact-native-tvos+NOT+repo%3Anuagoz%2Freact-native+NOT+repo%3A2lambda123%2Freact-native+NOT+repo%3Abeanchips%2Ffacebookreactnative+NOT+repo%3AfabOnReact%2Freact-native-notes+NOT+user%3Ahuntie+NOT+user%3Acortinico+NOT+repo%3AMaxdev18%2Fpowersync_app+NOT+repo%3Acarter-0%2Finstagram-decompiled+NOT+repo%3Am0mosenpai%2Finstadamn+NOT+repo%3AA-Star100%2FA-Star100-AUG2-2024+NOT+repo%3Alclnrd%2Fdetox-scrollview-reproductible+NOT+repo%3ADionisisChytiris%2FWorldWiseTrivia_Main+NOT+repo%3Apast3l%2Fhi2+NOT+repo%3AoneDotpy%2FCaribouQuest+NOT+repo%3Abejayoharen%2Fdailytodo+NOT+repo%3Amolangning%2Freversing-discord+NOT+repo%3AScottPrzy%2Freact-native+NOT+repo%3Agabrieldonadel%2Freact-native-visionos+NOT+repo%3AGabriel2308%2FTestes-Soft+NOT+repo%3Adawnzs03%2FflakyBuild+NOT+repo%3Acga2351%2Fcode+NOT+repo%3Astreeg%2Ftcc+NOT+repo%3Asoftware-mansion-labs%2Freact-native-swiftui+NOT+repo%3Apkcsecurity%2Fdecompiled-lightbulb+com.facebook.react.modules.common.ModuleDataCleaner).

Only one library uses it (https://github.com/jbrodriguez/react-native-android-sqlite), but it's hasn't been updated for 10 years. Marking it as breaking, but it's unlikely that the library is used nowadays. See:

## Changelog:

[ANDROID][BREAKING] - Make com.facebook.react.modules.common.ModuleDataCleaner internal

Pull Request resolved: https://github.com/facebook/react-native/pull/51060

Test Plan:
```bash
yarn test-android
yarn android
```

Reviewed By: cortinico, shwanton

Differential Revision: D74036994

Pulled By: arushikesarwani94

fbshipit-source-id: 520fc3dfdc1ecfb27f161a1b59ad5d79dfc854cf
This commit is contained in:
Mateo Guzmán
2025-05-02 12:51:13 -07:00
committed by Facebook GitHub Bot
parent f4d99d6a23
commit 6fa1864d52
2 changed files with 4 additions and 13 deletions
@@ -2698,15 +2698,6 @@ public final class com/facebook/react/modules/blob/FileReaderModule$Companion {
public final fun getNAME ()Ljava/lang/String;
}
public final class com/facebook/react/modules/common/ModuleDataCleaner {
public static final field INSTANCE Lcom/facebook/react/modules/common/ModuleDataCleaner;
public static final fun cleanDataFromModules (Lcom/facebook/react/bridge/ReactContext;)V
}
public abstract interface class com/facebook/react/modules/common/ModuleDataCleaner$Cleanable {
public abstract fun clearSensitiveData ()V
}
public abstract interface class com/facebook/react/modules/core/DefaultHardwareBackBtnHandler {
public abstract fun invokeDefaultOnBackPressed ()V
}
@@ -15,10 +15,10 @@ import com.facebook.react.common.ReactConstants
* Cleans sensitive user data from native modules that implement the [Cleanable] interface. This is
* useful e.g. when a user logs out from an app.
*/
public object ModuleDataCleaner {
internal object ModuleDataCleaner {
@JvmStatic
public fun cleanDataFromModules(reactContext: ReactContext) {
fun cleanDataFromModules(reactContext: ReactContext) {
reactContext.nativeModules.forEach { nativeModule ->
if (nativeModule is Cleanable) {
FLog.d(ReactConstants.TAG, "Cleaning data from ${nativeModule.getName()}")
@@ -40,7 +40,7 @@ public object ModuleDataCleaner {
* instance is destroyed. This is because logout implies that the instance is destroyed. Apps
* should enforce this.
*/
public fun interface Cleanable {
public fun clearSensitiveData()
fun interface Cleanable {
fun clearSensitiveData()
}
}