Skip to content

Commit c0b36b8

Browse files
authored
Merge pull request #11614 from rmtilde/fix-related-items-enque-popup-crash
Fix related items list enqueue popup crash
2 parents 90404a2 + 66ec596 commit c0b36b8

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

app/src/main/java/org/schabi/newpipe/fragments/list/videos/RelatedItemsFragment.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import androidx.annotation.NonNull;
1212
import androidx.annotation.Nullable;
13+
import androidx.fragment.app.Fragment;
1314
import androidx.preference.PreferenceManager;
1415

1516
import org.schabi.newpipe.R;
@@ -18,8 +19,10 @@
1819
import org.schabi.newpipe.extractor.InfoItem;
1920
import org.schabi.newpipe.extractor.ListExtractor;
2021
import org.schabi.newpipe.extractor.stream.StreamInfo;
22+
import org.schabi.newpipe.extractor.stream.StreamInfoItem;
2123
import org.schabi.newpipe.fragments.list.BaseListInfoFragment;
2224
import org.schabi.newpipe.info_list.ItemViewMode;
25+
import org.schabi.newpipe.info_list.dialog.InfoItemDialog;
2326
import org.schabi.newpipe.ktx.ViewUtils;
2427

2528
import java.io.Serializable;
@@ -173,4 +176,27 @@ protected ItemViewMode getItemViewMode() {
173176
}
174177
return mode;
175178
}
179+
180+
@Override
181+
protected void showInfoItemDialog(final StreamInfoItem item) {
182+
// Try and attach the InfoItemDialog to the parent fragment of the RelatedItemsFragment
183+
// so that its context is not lost when the RelatedItemsFragment is reinitialized,
184+
// e.g. when a new stream is loaded in a parent VideoDetailFragment.
185+
final Fragment parentFragment = getParentFragment();
186+
if (parentFragment != null) {
187+
try {
188+
new InfoItemDialog.Builder(
189+
parentFragment.getActivity(),
190+
parentFragment.getContext(),
191+
parentFragment,
192+
item
193+
).create().show();
194+
} catch (final IllegalArgumentException e) {
195+
InfoItemDialog.Builder.reportErrorDuringInitialization(e, item);
196+
}
197+
} else {
198+
super.showInfoItemDialog(item);
199+
}
200+
}
201+
176202
}

0 commit comments

Comments
 (0)