plectrum

Plectrum: instrument tuner for Android
Log | Files | Refs | README | LICENSE

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 }