package com.henninghall.date_picker; import java.util.HashMap; import cn.carbswang.android.numberpickerview.library.NumberPickerView; public class EmptyWheelUpdater { private final PickerView pickerView; private final HashMap views; private int[] ids = { R.id.empty1, R.id.empty2, R.id.empty3 }; EmptyWheelUpdater(PickerView pickerView) { this.pickerView = pickerView; this.views = getViews(); } private HashMap getViews() { HashMap views = new HashMap<>(); for (int id: ids) { NumberPickerView view = (NumberPickerView) pickerView.findViewById(id); views.put(id, view); } return views; } void update(Mode mode) { hideAll(); int numberOfVisibleWheels = pickerView.getVisibleWheels().size(); int emptyViewsToAdd = numberOfVisibleWheels - 1; int numberOfPickerWheelsBeforeMode = getNumberOfPickerWheelsBeforeMode(mode); for (int i = 0; i < emptyViewsToAdd; i++) { int index = numberOfPickerWheelsBeforeMode + 1 + i * 2; pickerView.wheelsWrapper.addView(views.get(ids[i]), index); } } private int getNumberOfPickerWheelsBeforeMode(Mode mode) { if(mode == Mode.date) return 1; if(mode == Mode.datetime) return 4; if(mode == Mode.time) return 5; return 0; } private void hideAll() { for (NumberPickerView view: views.values()) { pickerView.wheelsWrapper.removeView(view); } } }