@@ -120,67 +120,6 @@ private void setInitialData(final int sid, final String u, final String title) {
120120 // LifeCycle
121121 //////////////////////////////////////////////////////////////////////////*/
122122
123- @ Override
124- public void onCreate (final Bundle savedInstanceState ) {
125- super .onCreate (savedInstanceState );
126- menuProvider = new MenuProvider () {
127- @ Override
128- public void onCreateMenu (@ NonNull final Menu menu ,
129- @ NonNull final MenuInflater inflater ) {
130- inflater .inflate (R .menu .menu_channel , menu );
131-
132- if (DEBUG ) {
133- Log .d (TAG , "onCreateOptionsMenu() called with: "
134- + "menu = [" + menu + "], inflater = [" + inflater + "]" );
135- }
136-
137- }
138-
139- @ Override
140- public void onPrepareMenu (@ NonNull final Menu menu ) {
141- menuRssButton = menu .findItem (R .id .menu_item_rss );
142- menuNotifyButton = menu .findItem (R .id .menu_item_notify );
143- updateRssButton ();
144- updateNotifyButton (channelSubscription );
145- }
146-
147- @ Override
148- public boolean onMenuItemSelected (@ NonNull final MenuItem item ) {
149- switch (item .getItemId ()) {
150- case R .id .menu_item_notify :
151- final boolean value = !item .isChecked ();
152- item .setEnabled (false );
153- setNotify (value );
154- break ;
155- case R .id .action_settings :
156- NavigationHelper .openSettings (requireContext ());
157- break ;
158- case R .id .menu_item_rss :
159- if (currentInfo != null ) {
160- ShareUtils .openUrlInApp (requireContext (), currentInfo .getFeedUrl ());
161- }
162- break ;
163- case R .id .menu_item_openInBrowser :
164- if (currentInfo != null ) {
165- ShareUtils .openUrlInBrowser (requireContext (),
166- currentInfo .getOriginalUrl ());
167- }
168- break ;
169- case R .id .menu_item_share :
170- if (currentInfo != null ) {
171- ShareUtils .shareText (requireContext (), name ,
172- currentInfo .getOriginalUrl (), currentInfo .getAvatars ());
173- }
174- break ;
175- default :
176- return false ;
177- }
178- return true ;
179- }
180- };
181- activity .addMenuProvider (menuProvider );
182- }
183-
184123 @ Override
185124 public void onAttach (@ NonNull final Context context ) {
186125 super .onAttach (context );
@@ -195,6 +134,67 @@ public View onCreateView(@NonNull final LayoutInflater inflater,
195134 return binding .getRoot ();
196135 }
197136
137+ @ Override
138+ public void onViewCreated (@ NonNull final View rootView , final Bundle savedInstanceState ) {
139+ super .onViewCreated (rootView , savedInstanceState );
140+ menuProvider = new MenuProvider () {
141+ @ Override
142+ public void onCreateMenu (@ NonNull final Menu menu ,
143+ @ NonNull final MenuInflater inflater ) {
144+ inflater .inflate (R .menu .menu_channel , menu );
145+
146+ if (DEBUG ) {
147+ Log .d (TAG , "onCreateOptionsMenu() called with: "
148+ + "menu = [" + menu + "], inflater = [" + inflater + "]" );
149+ }
150+
151+ }
152+
153+ @ Override
154+ public void onPrepareMenu (@ NonNull final Menu menu ) {
155+ menuRssButton = menu .findItem (R .id .menu_item_rss );
156+ menuNotifyButton = menu .findItem (R .id .menu_item_notify );
157+ updateRssButton ();
158+ updateNotifyButton (channelSubscription );
159+ }
160+
161+ @ Override
162+ public boolean onMenuItemSelected (@ NonNull final MenuItem item ) {
163+ switch (item .getItemId ()) {
164+ case R .id .menu_item_notify :
165+ final boolean value = !item .isChecked ();
166+ item .setEnabled (false );
167+ setNotify (value );
168+ break ;
169+ case R .id .action_settings :
170+ NavigationHelper .openSettings (requireContext ());
171+ break ;
172+ case R .id .menu_item_rss :
173+ if (currentInfo != null ) {
174+ ShareUtils .openUrlInApp (requireContext (), currentInfo .getFeedUrl ());
175+ }
176+ break ;
177+ case R .id .menu_item_openInBrowser :
178+ if (currentInfo != null ) {
179+ ShareUtils .openUrlInBrowser (requireContext (),
180+ currentInfo .getOriginalUrl ());
181+ }
182+ break ;
183+ case R .id .menu_item_share :
184+ if (currentInfo != null ) {
185+ ShareUtils .shareText (requireContext (), name ,
186+ currentInfo .getOriginalUrl (), currentInfo .getAvatars ());
187+ }
188+ break ;
189+ default :
190+ return false ;
191+ }
192+ return true ;
193+ }
194+ };
195+ activity .addMenuProvider (menuProvider );
196+ }
197+
198198 @ Override // called from onViewCreated in BaseFragment.onViewCreated
199199 protected void initViews (final View rootView , final Bundle savedInstanceState ) {
200200 super .initViews (rootView , savedInstanceState );
@@ -232,6 +232,14 @@ protected void initListeners() {
232232 binding .subChannelTitleView .setOnClickListener (openSubChannel );
233233 }
234234
235+ @ Override
236+ public void onDestroyView () {
237+ super .onDestroyView ();
238+ if (menuProvider != null ) {
239+ activity .removeMenuProvider (menuProvider );
240+ }
241+ }
242+
235243 @ Override
236244 public void onDestroy () {
237245 super .onDestroy ();
@@ -240,7 +248,6 @@ public void onDestroy() {
240248 }
241249 disposables .clear ();
242250 binding = null ;
243- activity .removeMenuProvider (menuProvider );
244251 menuProvider = null ;
245252 }
246253
0 commit comments