If inexact seekt is used, hide 5,15,25 seconds seek duration options when opening settings
This commit is contained in:
parent
4674431829
commit
57504acd00
|
@ -11,6 +11,8 @@ import androidx.preference.ListPreference;
|
||||||
|
|
||||||
import com.google.android.material.snackbar.Snackbar;
|
import com.google.android.material.snackbar.Snackbar;
|
||||||
|
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
import org.schabi.newpipe.R;
|
import org.schabi.newpipe.R;
|
||||||
import org.schabi.newpipe.util.PermissionHelper;
|
import org.schabi.newpipe.util.PermissionHelper;
|
||||||
|
|
||||||
|
@ -26,19 +28,28 @@ public class VideoAudioSettingsFragment extends BasePreferenceFragment {
|
||||||
Resources res = getResources();
|
Resources res = getResources();
|
||||||
String[] durationsValues = res.getStringArray(R.array.seek_duration_value);
|
String[] durationsValues = res.getStringArray(R.array.seek_duration_value);
|
||||||
String[] durationsDescriptions = res.getStringArray(R.array.seek_duration_description);
|
String[] durationsDescriptions = res.getStringArray(R.array.seek_duration_description);
|
||||||
|
List<String> durationsValResult = new LinkedList<>();
|
||||||
|
List<String> durationsDesResult = new LinkedList<>();
|
||||||
int currentDurationValue;
|
int currentDurationValue;
|
||||||
|
final boolean inexactSeek = getPreferenceManager().getSharedPreferences()
|
||||||
|
.getBoolean(res.getString(R.string.use_inexact_seek_key), false);
|
||||||
|
|
||||||
for (int i = 0; i < durationsDescriptions.length; i++) {
|
for (int i = 0; i < durationsDescriptions.length; i++) {
|
||||||
currentDurationValue = Integer.parseInt(durationsValues[i]) / 1000;
|
currentDurationValue = Integer.parseInt(durationsValues[i]) / 1000;
|
||||||
try {
|
if (inexactSeek && currentDurationValue % 10 != 5) {
|
||||||
durationsDescriptions[i] = String.format(
|
try {
|
||||||
|
durationsValResult.add(durationsValues[i]);
|
||||||
|
durationsDesResult.add(String.format(
|
||||||
res.getQuantityString(R.plurals.dynamic_seek_duration_description, currentDurationValue),
|
res.getQuantityString(R.plurals.dynamic_seek_duration_description, currentDurationValue),
|
||||||
currentDurationValue);
|
currentDurationValue));
|
||||||
} catch (Resources.NotFoundException ignored) {
|
} catch (Resources.NotFoundException ignored) {
|
||||||
//if this happens, the translation is missing, and the english string will be displayed instead
|
//if this happens, the translation is missing, and the english string will be displayed instead
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ListPreference durations = (ListPreference) findPreference(getString(R.string.seek_duration_key));
|
ListPreference durations = (ListPreference) findPreference(getString(R.string.seek_duration_key));
|
||||||
durations.setEntries(durationsDescriptions);
|
durations.setEntryValues(durationsValResult.toArray(new CharSequence[0]));
|
||||||
|
durations.setEntries(durationsDesResult.toArray(new CharSequence[0]));
|
||||||
|
|
||||||
listener = (sharedPreferences, s) -> {
|
listener = (sharedPreferences, s) -> {
|
||||||
|
|
||||||
|
@ -62,7 +73,6 @@ public class VideoAudioSettingsFragment extends BasePreferenceFragment {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||||
addPreferencesFromResource(R.xml.video_audio_settings);
|
addPreferencesFromResource(R.xml.video_audio_settings);
|
||||||
|
|
Loading…
Reference in New Issue