NumberPickerDialog.java (1899B)
1 package com.github.cythara; 2 3 import android.app.Dialog; 4 import android.os.Bundle; 5 import android.view.ContextThemeWrapper; 6 7 import com.shawnlin.numberpicker.NumberPicker; 8 9 import androidx.appcompat.app.AlertDialog.Builder; 10 import androidx.fragment.app.DialogFragment; 11 12 public class NumberPickerDialog extends DialogFragment { 13 14 private NumberPicker.OnValueChangeListener valueChangeListener; 15 16 @Override 17 public Dialog onCreateDialog(Bundle savedInstanceState) { 18 final NumberPicker numberPicker = new NumberPicker(getActivity()); 19 numberPicker.setTag("reference_pitch_picker"); 20 21 Bundle arguments = getArguments(); 22 int currentValue = arguments.getInt("current_value", 440); 23 24 numberPicker.setMinValue(400); 25 numberPicker.setMaxValue(500); 26 numberPicker.setValue(currentValue); 27 28 if (MainActivity.isDarkModeEnabled()) { 29 int color = getResources().getColor(R.color.colorTextDark); 30 numberPicker.setTextColor(color); 31 numberPicker.setDividerColor(color); 32 numberPicker.setSelectedTextColor(color); 33 } 34 35 Builder builder = new Builder(new ContextThemeWrapper(getActivity(), 36 R.style.AppTheme)); 37 builder.setMessage(R.string.choose_a_frequency); 38 39 builder.setPositiveButton("OK", 40 (dialog, which) -> valueChangeListener.onValueChange(numberPicker, 41 numberPicker.getValue(), numberPicker.getValue())); 42 43 builder.setNegativeButton("CANCEL", (dialog, which) -> { 44 }); 45 46 builder.setView(numberPicker); 47 return builder.create(); 48 } 49 50 @Override 51 public void onPause() { 52 super.onPause(); 53 54 this.dismiss(); 55 } 56 57 void setValueChangeListener(NumberPicker.OnValueChangeListener valueChangeListener) { 58 this.valueChangeListener = valueChangeListener; 59 } 60 }