Skip to content

Commit c232193

Browse files
authored
Merge pull request #12083 from har-123/bugfix/11894_fix_duplicate_menu_options
Fix duplicate menu options in ChannelFragment
2 parents d321e57 + f289bea commit c232193

File tree

1 file changed

+69
-62
lines changed

1 file changed

+69
-62
lines changed

app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelFragment.java

Lines changed: 69 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)