1515import java .util .Map ;
1616import java .util .UUID ;
1717
18+ import io .flutter .Log ;
1819import io .flutter .embedding .android .FlutterFragment ;
1920import io .flutter .embedding .android .FlutterView ;
2021import io .flutter .embedding .android .RenderMode ;
2829import static com .idlefish .flutterboost .containers .FlutterActivityLaunchConfigs .EXTRA_URL_PARAM ;
2930
3031public class FlutterBoostFragment extends FlutterFragment implements FlutterViewContainer {
32+ private static final String TAG = "FlutterBoostFragment" ;
33+ private static final boolean DEBUG = false ;
3134 private final String who = UUID .randomUUID ().toString ();
3235 private FlutterView flutterView ;
3336 private PlatformPlugin platformPlugin ;
@@ -45,6 +48,7 @@ public void detachFromFlutterEngine() {
4548 @ Override
4649 public void onAttach (Context context ) {
4750 super .onAttach (context );
51+ if (DEBUG ) Log .e (TAG , "#onAttach: " + this );
4852 }
4953
5054 @ Override
@@ -54,6 +58,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
5458 flutterView = FlutterBoostUtils .findFlutterView (view );
5559 assert (flutterView != null );
5660 flutterView .detachFromFlutterEngine ();
61+ if (DEBUG ) Log .e (TAG , "#onCreateView: " + this );
5762 return view ;
5863 }
5964
@@ -66,6 +71,7 @@ public void onHiddenChanged(boolean hidden) {
6671 didFragmentShow ();
6772 }
6873 super .onHiddenChanged (hidden );
74+ if (DEBUG ) Log .e (TAG , "#onHiddenChanged: hidden=" + hidden + ", " + this );
6975 }
7076
7177 @ Override
@@ -77,6 +83,7 @@ public void setUserVisibleHint(boolean isVisibleToUser) {
7783 didFragmentHide ();
7884 }
7985 super .setUserVisibleHint (isVisibleToUser );
86+ if (DEBUG ) Log .e (TAG , "#setUserVisibleHint: isVisibleToUser=" + isVisibleToUser + ", " + this );
8087 }
8188
8289 @ Override
@@ -86,6 +93,7 @@ public void onResume() {
8693 didFragmentShow ();
8794 getFlutterEngine ().getLifecycleChannel ().appIsResumed ();
8895 }
96+ if (DEBUG ) Log .e (TAG , "#onResume: " + this );
8997 }
9098
9199 @ Override
@@ -98,19 +106,22 @@ public void onPause() {
98106 super .onPause ();
99107 didFragmentHide ();
100108 getFlutterEngine ().getLifecycleChannel ().appIsResumed ();
109+ if (DEBUG ) Log .e (TAG , "#onPause: " + this );
101110 }
102111
103112 @ Override
104113 public void onStop () {
105114 super .onStop ();
106115 assert (getFlutterEngine () != null );
107116 getFlutterEngine ().getLifecycleChannel ().appIsResumed ();
117+ if (DEBUG ) Log .e (TAG , "#onStop: " + this );
108118 }
109119
110120 @ Override
111121 public void onDestroyView () {
112122 super .onDestroyView ();
113123 FlutterBoost .instance ().getPlugin ().onContainerDestroyed (this );
124+ if (DEBUG ) Log .e (TAG , "#onDestroyView: " + this );
114125 }
115126
116127 @ Override
@@ -119,6 +130,7 @@ public void onDetach() {
119130 super .onDetach ();
120131 assert (engine != null );
121132 engine .getLifecycleChannel ().appIsResumed ();
133+ if (DEBUG ) Log .e (TAG , "#onDetach: " + this );
122134 }
123135
124136 @ Override
@@ -188,12 +200,16 @@ public String getCachedEngineId() {
188200 private void didFragmentShow () {
189201 platformPlugin = new PlatformPlugin (getActivity (), getFlutterEngine ().getPlatformChannel ());
190202 FlutterBoost .instance ().getPlugin ().onContainerAppeared (this );
203+ // Attache plugins to the activity.
204+ getFlutterEngine ().getActivityControlSurface ().attachToActivity (getActivity (), getActivity ().getLifecycle ());
191205 ActivityAndFragmentPatch .onResumeAttachToFlutterEngine (flutterView , getFlutterEngine ());
192206 }
193207
194208 private void didFragmentHide () {
195209 FlutterBoost .instance ().getPlugin ().onContainerDisappeared (this );
196210 ActivityAndFragmentPatch .onPauseDetachFromFlutterEngine (flutterView , getFlutterEngine ());
211+ // Plugins are no longer attached to the activity.
212+ getFlutterEngine ().getActivityControlSurface ().detachFromActivity ();
197213 platformPlugin .destroy ();
198214 platformPlugin = null ;
199215 }
0 commit comments