You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

56 lines
1.6 KiB

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<Integer, NumberPickerView> views;
private int[] ids = {
R.id.empty1,
R.id.empty2,
R.id.empty3
};
EmptyWheelUpdater(PickerView pickerView) {
this.pickerView = pickerView;
this.views = getViews();
}
private HashMap<Integer, NumberPickerView> getViews() {
HashMap<Integer, NumberPickerView> 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);
}
}
}