Skip to content

Commit 2060288

Browse files
committed
Added some doc and abstracted more methods
1 parent 4b06536 commit 2060288

1 file changed

Lines changed: 27 additions & 3 deletions

File tree

app/src/main/java/org/schabi/newpipe/player/helper/PlaybackParameterDialog.java

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ public Dialog onCreateDialog(@Nullable final Bundle savedInstanceState) {
172172
}
173173

174174
/*//////////////////////////////////////////////////////////////////////////
175-
// Control Views
175+
// UI Initialization and Control
176176
//////////////////////////////////////////////////////////////////////////*/
177177

178178
private void initUI() {
@@ -265,8 +265,7 @@ private void initUI() {
265265
isChecked -> {
266266
if (!isChecked) {
267267
// when unchecked, slide back to the minimum of current tempo or pitch
268-
setSliders(Math.min(pitchPercent, tempo));
269-
updateCallback();
268+
ensureHookIsValidAndUpdateCallBack();
270269
}
271270
});
272271

@@ -277,6 +276,8 @@ private void initUI() {
277276
});
278277
}
279278

279+
// -- General formatting --
280+
280281
private void setText(
281282
final TextView textView,
282283
final DoubleFunction<String> formatter,
@@ -285,6 +286,8 @@ private void setText(
285286
Objects.requireNonNull(textView).setText(formatter.apply(value));
286287
}
287288

289+
// -- Steps --
290+
288291
private void registerOnStepClickListener(
289292
final TextView stepTextView,
290293
final DoubleSupplier currentValueSupplier,
@@ -310,6 +313,8 @@ private void registerOnSemitoneStepClickListener(
310313
});
311314
}
312315

316+
// -- Pitch --
317+
313318
private void setupPitchControlModeTextView(
314319
final boolean semitones,
315320
final TextView textView
@@ -367,6 +372,9 @@ private void changePitchControlMode(final boolean semitones) {
367372
this.onPitchPercentSliderUpdated(newPitchPercent);
368373
updateCallback();
369374
}
375+
} else if (!binding.unhookCheckbox.isChecked()) {
376+
// When changing to percent it's possible that tempo is != pitch
377+
ensureHookIsValidAndUpdateCallBack();
370378
}
371379
}
372380

@@ -377,6 +385,8 @@ private boolean isCurrentPitchControlModeSemitone() {
377385
PITCH_CTRL_MODE_PERCENT);
378386
}
379387

388+
// -- Steps (Set) --
389+
380390
private void setupStepTextView(
381391
final double stepSizeValue,
382392
final TextView textView
@@ -430,6 +440,8 @@ private double getCurrentStepSize() {
430440
.getFloat(getString(R.string.adjustment_step_key), (float) DEFAULT_STEP);
431441
}
432442

443+
// -- Additional options --
444+
433445
private void setAndUpdateSkipSilence(final boolean newSkipSilence) {
434446
this.skipSilence = newSkipSilence;
435447
binding.skipSilenceCheckbox.setChecked(newSkipSilence);
@@ -461,6 +473,18 @@ private void bindCheckboxWithBoolPref(
461473
});
462474
}
463475

476+
/**
477+
* Ensures that the slider hook is valid and if not sets and updates the sliders accordingly.
478+
* <br/>
479+
* You have to ensure by yourself that the hooking is active.
480+
*/
481+
private void ensureHookIsValidAndUpdateCallBack() {
482+
if (tempo != pitchPercent) {
483+
setSliders(Math.min(tempo, pitchPercent));
484+
updateCallback();
485+
}
486+
}
487+
464488
/*//////////////////////////////////////////////////////////////////////////
465489
// Sliders
466490
//////////////////////////////////////////////////////////////////////////*/

0 commit comments

Comments
 (0)