diff --git a/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevInternalSettings.java b/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevInternalSettings.java index 2899be2b8..2a1a4b68e 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevInternalSettings.java +++ b/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevInternalSettings.java @@ -39,12 +39,12 @@ public class DevInternalSettings implements private static final String PREFS_REMOTE_JS_DEBUG_KEY = "remote_js_debug"; private final SharedPreferences mPreferences; - private final DevSupportManager mDebugManager; + private final Listener mListener; public DevInternalSettings( Context applicationContext, - DevSupportManager debugManager) { - mDebugManager = debugManager; + Listener listener) { + mListener = listener; mPreferences = PreferenceManager.getDefaultSharedPreferences(applicationContext); mPreferences.registerOnSharedPreferenceChangeListener(this); } @@ -78,11 +78,13 @@ public class DevInternalSettings implements } public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - if (PREFS_FPS_DEBUG_KEY.equals(key) || - PREFS_RELOAD_ON_JS_CHANGE_KEY.equals(key) || - PREFS_JS_DEV_MODE_DEBUG_KEY.equals(key) || - PREFS_JS_MINIFY_DEBUG_KEY.equals(key)) { - mDebugManager.reloadSettings(); + if (mListener != null) { + if (PREFS_FPS_DEBUG_KEY.equals(key) || + PREFS_RELOAD_ON_JS_CHANGE_KEY.equals(key) || + PREFS_JS_DEV_MODE_DEBUG_KEY.equals(key) || + PREFS_JS_MINIFY_DEBUG_KEY.equals(key)) { + mListener.onInternalSettingsChanged(); + } } } @@ -119,4 +121,8 @@ public class DevInternalSettings implements public void setRemoteJSDebugEnabled(boolean remoteJSDebugEnabled) { mPreferences.edit().putBoolean(PREFS_REMOTE_JS_DEBUG_KEY, remoteJSDebugEnabled).apply(); } + + public interface Listener { + void onInternalSettingsChanged(); + } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerImpl.java b/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerImpl.java index 8df95e2a9..40adde916 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerImpl.java +++ b/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerImpl.java @@ -86,7 +86,10 @@ import okhttp3.ws.WebSocket; * {@code } * {@code } */ -public class DevSupportManagerImpl implements DevSupportManager, PackagerCommandListener { +public class DevSupportManagerImpl implements + DevSupportManager, + PackagerCommandListener, + DevInternalSettings.Listener { private static final int JAVA_ERROR_COOKIE = -1; private static final int JSEXCEPTION_ERROR_COOKIE = -1; @@ -623,6 +626,8 @@ public class DevSupportManagerImpl implements DevSupportManager, PackagerCommand reload(); } + public void onInternalSettingsChanged() { reloadSettings(); } + @Override public void handleReloadJS() { UiThreadUtil.assertOnUiThread();