Skip to content

Commit b18b3d0

Browse files
committed
Added help for instances
1 parent 5bf5701 commit b18b3d0

File tree

5 files changed

+41
-9
lines changed

5 files changed

+41
-9
lines changed

app/src/main/java/org/schabi/newpipe/settings/services/instances/AbstractServiceInstanceListFragment.java

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,14 @@ public abstract class AbstractServiceInstanceListFragment<I extends Instance> ex
5151
protected static final int TYPES_CONTAINER_ANIMATION_DURATION = 500;
5252

5353
@StringRes
54-
protected final int title;
54+
protected final int titleRes;
5555

56-
protected final List<? extends InstanceTypeCreator<? extends I>> instanceTypeCreators;
5756
protected final InstanceManager<I> manager;
57+
protected final List<? extends InstanceTypeCreator<? extends I>> instanceTypeCreators;
58+
59+
@Nullable
60+
@StringRes
61+
protected final Integer helpTextMsgRes;
5862

5963
protected final List<I> currentInstances = new ArrayList<>();
6064
protected I selectedInstance;
@@ -66,13 +70,15 @@ public abstract class AbstractServiceInstanceListFragment<I extends Instance> ex
6670
protected CompositeDisposable disposables = new CompositeDisposable();
6771

6872
protected AbstractServiceInstanceListFragment(
69-
@StringRes final int title,
73+
@StringRes final int titleRes,
7074
@NonNull final InstanceManager<I> manager,
71-
@NonNull final List<? extends InstanceTypeCreator<? extends I>> instanceTypeCreators
75+
@NonNull final List<? extends InstanceTypeCreator<? extends I>> instanceTypeCreators,
76+
@Nullable @StringRes final Integer helpTextMsgRes
7277
) {
73-
this.title = title;
78+
this.titleRes = titleRes;
7479
this.manager = manager;
7580
this.instanceTypeCreators = instanceTypeCreators;
81+
this.helpTextMsgRes = helpTextMsgRes;
7682
}
7783

7884
@Override
@@ -118,7 +124,7 @@ public void onViewCreated(
118124
@Override
119125
public void onResume() {
120126
super.onResume();
121-
ThemeHelper.setTitleToAppCompatActivity(getActivity(), getString(title));
127+
ThemeHelper.setTitleToAppCompatActivity(getActivity(), getString(titleRes));
122128
}
123129

124130
@Override
@@ -145,6 +151,8 @@ public void onCreateOptionsMenu(@NonNull final Menu menu,
145151
@NonNull final MenuInflater inflater) {
146152
super.onCreateOptionsMenu(menu, inflater);
147153
inflater.inflate(R.menu.menu_chooser_fragment, menu);
154+
155+
menu.findItem(R.id.menu_item_instance_help).setVisible(helpTextMsgRes != null);
148156
}
149157

150158
@Override
@@ -153,6 +161,10 @@ public boolean onOptionsItemSelected(final MenuItem item) {
153161
restoreDefaults();
154162
return true;
155163
}
164+
if (item.getItemId() == R.id.menu_item_instance_help) {
165+
openHelp();
166+
return true;
167+
}
156168

157169
return super.onOptionsItemSelected(item);
158170
}
@@ -191,6 +203,18 @@ protected void restoreDefaults() {
191203
.show();
192204
}
193205

206+
protected void openHelp() {
207+
if (helpTextMsgRes == null) {
208+
return;
209+
}
210+
211+
new AlertDialog.Builder(requireContext())
212+
.setTitle(R.string.help)
213+
.setMessage(helpTextMsgRes)
214+
.setPositiveButton(R.string.ok, null)
215+
.show();
216+
}
217+
194218
protected void onFABCreateButtonClicked() {
195219
final List<InstanceTypeCreator<? extends I>> availableInstanceTypeCreators =
196220
instanceTypeCreators.stream()

app/src/main/java/org/schabi/newpipe/settings/services/instances/peertube/PeertubeInstanceListFragment.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ public PeertubeInstanceListFragment() {
1515
super(
1616
R.string.peertube_instance_url_title,
1717
PeertubeInstanceManager.MANAGER,
18-
Collections.singletonList(new PeerTubeInstanceTypeCreator()));
18+
Collections.singletonList(new PeerTubeInstanceTypeCreator()),
19+
null);
1920
}
2021

2122
public static class PeerTubeInstanceTypeCreator

app/src/main/java/org/schabi/newpipe/settings/services/instances/youtubelike/YouTubeLikeInstanceListFragment.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ public YouTubeLikeInstanceListFragment() {
2727
YoutubeLikeInstanceManager.MANAGER,
2828
Arrays.asList(
2929
new YouTubeInstanceTypeCreator(),
30-
new InvidiousInstanceTypeCreator()));
30+
new InvidiousInstanceTypeCreator()),
31+
R.string.yt_like_instance_list_help);
3132
}
3233

3334

app/src/main/res/menu/menu_chooser_fragment.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,9 @@
55
android:title="@string/restore_defaults"
66
android:icon="@drawable/ic_settings_backup_restore"
77
app:showAsAction="always" />
8+
<item
9+
android:id="@+id/menu_item_instance_help"
10+
android:icon="@drawable/ic_help"
11+
android:title="@string/help"
12+
app:showAsAction="ifRoom" />
813
</menu>

app/src/main/res/values/strings.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,8 @@
131131
<string name="peertube_instance_url_title">PeerTube instances</string>
132132
<string name="peertube_instance_url_summary">Select your favorite PeerTube instances</string>
133133
<string name="yt_like_instance_url_title">YouTube-Like instances</string>
134-
<string name="yt_like_instance_url_summary">Manage YouTube-Like instances</string>
134+
<string name="yt_like_instance_url_summary">Manage YouTube-Like service instances</string>
135+
<string name="yt_like_instance_list_help">This page allows you to manage YouTube-Like service instances.\n\nAn instance provides a alternative way of fetching and delivering content (like a proxy), which can be helpful if the direct extraction fails.\n\nFurthermore it may also provide improved performance, better privacy / tracking protection and additional information.\nHowever keep in mind that an instance might not implement all features and thus limitations may occur.</string>
135136
<string name="publicly_available_instances_help">A list of publicly available instances can be found at %s</string>
136137
<string name="add_instance">Add %s instance</string>
137138
<string name="enter_instance_url">Enter instance URL</string>

0 commit comments

Comments
 (0)