2727import java .util .HashMap ;
2828
2929public class RNExternalDisplayManager extends ViewGroupManager <RNExternalDisplayView >
30- implements ExternalDisplayHelper . Listener , RNExternalDisplayManagerInterface <RNExternalDisplayView > {
30+ implements RNExternalDisplayManagerInterface <RNExternalDisplayView > {
3131 public static final String REACT_CLASS = "RNExternalDisplay" ;
32- private ExternalDisplayHelper helper ;
32+ private static final String TAG = "RNExternalDisplayEvent" ;
3333 private ReactApplicationContext reactContext ;
34- private Map <RNExternalDisplayView , RNExternalDisplayView > views = new HashMap <RNExternalDisplayView , RNExternalDisplayView >();
34+ // private Map<RNExternalDisplayView, RNExternalDisplayView> views = new HashMap<RNExternalDisplayView, RNExternalDisplayView>();
3535
3636 private final ViewManagerDelegate <RNExternalDisplayView > mDelegate ;
3737
@@ -54,22 +54,28 @@ public String getName() {
5454
5555 @ Override
5656 public RNExternalDisplayView createViewInstance (ThemedReactContext context ) {
57- if (this .helper == null ) {
58- this .helper = new ExternalDisplayHelper (reactContext , this );
57+ // Retrieve the module to access the helper
58+ RNExternalDisplayModule module = context .getNativeModule (RNExternalDisplayModule .class );
59+ ExternalDisplayHelper helper = null ;
60+ if (module != null ) {
61+ helper = module .getExternalDisplayHelper ();
62+ } else {
5963 }
60- RNExternalDisplayView view = new RNExternalDisplayView ( context , this . helper );
61- views . put ( view , view );
64+
65+ RNExternalDisplayView view = new RNExternalDisplayView ( context , helper );
6266 return view ;
6367 }
6468
6569 @ Override
6670 public void onDropViewInstance (RNExternalDisplayView view ) {
67- views .remove (view );
71+ // views.remove(view);
6872 super .onDropViewInstance (view );
6973 view .onDropInstance ();
7074 }
71-
75+ /*
7276 private void checkScreen() {
77+ Log.d("RNExternalDisplayEvent", "RNExternalDisplayManager checkScreen");
78+
7379 int screenId = -1;
7480 for (RNExternalDisplayView view : views.values()) {
7581 int viewScreenId = view.getScreen();
@@ -83,45 +89,16 @@ private void checkScreen() {
8389 }
8490 }
8591
92+ */
93+
8694 @ ReactProp (name = "screen" )
87- public void setScreen (RNExternalDisplayView view , @ Nullable String screen ) {
95+ public void setScreen (RNExternalDisplayView view , String screen ) {
8896 view .setScreen (screen );
89- checkScreen ();
97+ // checkScreen();
9098 }
9199
92100 @ ReactProp (name = "fallbackInMainScreen" , defaultBoolean = false )
93101 public void setFallbackInMainScreen (RNExternalDisplayView view , boolean fallbackInMainScreen ) {
94102 view .setFallbackInMainScreen (fallbackInMainScreen );
95103 }
96-
97- private void sendEvent (String eventName , @ Nullable WritableMap params ) {
98- reactContext
99- .getJSModule (DeviceEventManagerModule .RCTDeviceEventEmitter .class )
100- .emit (eventName , params );
101- }
102-
103- public void onDisplayAdded (Display [] displays , int displayId ) {
104- sendEvent (
105- "@RNExternalDisplay_screenDidConnect" ,
106- Arguments .makeNativeMap (
107- ExternalDisplayHelper .getScreenInfo (displays )
108- )
109- );
110- }
111- public void onDisplayChanged (Display [] displays , int displayId ) {
112- sendEvent (
113- "@RNExternalDisplay_screenDidChange" ,
114- Arguments .makeNativeMap (
115- ExternalDisplayHelper .getScreenInfo (displays )
116- )
117- );
118- }
119- public void onDisplayRemoved (Display [] displays , int displayId ) {
120- sendEvent (
121- "@RNExternalDisplay_screenDidDisconnect" ,
122- Arguments .makeNativeMap (
123- ExternalDisplayHelper .getScreenInfo (displays )
124- )
125- );
126- }
127104}
0 commit comments