use of com.google.android.material.slider.RangeSlider in project ods-android by Orange-OpenSource.
the class SliderMainDemoFragment method onCreateDemoView.
@Override
public View onCreateDemoView(LayoutInflater layoutInflater, @Nullable ViewGroup viewGroup, @Nullable Bundle bundle) {
View view = layoutInflater.inflate(R.layout.cat_slider_fragment, viewGroup, false);
Slider slider = view.findViewById(R.id.slider);
slider.addOnSliderTouchListener(touchListener);
RangeSlider rangeSlider = view.findViewById(R.id.range_slider);
rangeSlider.addOnSliderTouchListener(rangeSliderTouchListener);
Button button = view.findViewById(R.id.button);
button.setOnClickListener(v -> slider.setValue(slider.getValueTo()));
return view;
}
use of com.google.android.material.slider.RangeSlider in project Osmand by osmandapp.
the class DownloadTilesFragment method setupSlider.
private void setupSlider(@NonNull View view, @NonNull ITileSource tileSource) {
int currentZoom = mapView.getZoom();
int maxZoom = tileSource.getMaximumZoomSupported();
int minZoom = Math.min(currentZoom, maxZoom);
RangeSlider slider = view.findViewById(R.id.zooms_range_slider);
UiUtilities.setupSlider(slider, nightMode, ColorUtilities.getActiveColor(app, nightMode), true);
slider.clearOnChangeListeners();
boolean multipleZoomsSupported = minZoom < maxZoom;
slider.setEnabled(multipleZoomsSupported);
if (multipleZoomsSupported) {
slider.setValueFrom(minZoom);
slider.setValueTo(maxZoom);
slider.setValues(((float) selectedMinZoom), ((float) selectedMaxZoom));
slider.addOnChangeListener((slider1, value, fromUser) -> {
List<Float> minMax = slider.getValues();
selectedMinZoom = minMax.get(0).intValue();
selectedMaxZoom = minMax.get(1).intValue();
setupTilesPreview();
setupMinMaxZoom();
setupTilesDownloadInfo(view, tileSource);
});
}
}
use of com.google.android.material.slider.RangeSlider in project Osmand by osmandapp.
the class GpsFiltersCard method setupSlider.
private void setupSlider(@NonNull final View container, @NonNull final GpsFilter filter) {
boolean range = filter.isRangeSupported();
boolean enabled = filter.getMinValue() != filter.getMaxValue();
Slider slider = container.findViewById(R.id.filter_slider);
RangeSlider rangeSlider = container.findViewById(R.id.filter_range_slider);
AndroidUiHelper.updateVisibility(slider, !range);
AndroidUiHelper.updateVisibility(rangeSlider, range);
if (range) {
rangeSlider.setEnabled(enabled);
rangeSlider.clearOnChangeListeners();
if (enabled) {
rangeSlider.setValueFrom((float) filter.getMinValue());
rangeSlider.setValueTo((float) filter.getMaxValue());
rangeSlider.setValues(((float) filter.getSelectedMinValue()), ((float) filter.getSelectedMaxValue()));
rangeSlider.addOnChangeListener((slider1, value, fromUser) -> {
List<Float> values = rangeSlider.getValues();
if (fromUser && values.size() == 2) {
filter.updateValues((values.get(0)), values.get(1));
updateDisplayedFilterNumbers(container, filter);
if (gpxDataItem != null) {
boolean updated = gpxDbHelper.updateGpsFilters(gpxDataItem, filteredSelectedGpxFile);
if (updated) {
gpsFilterHelper.filterGpxFile(filteredSelectedGpxFile, true);
}
}
}
});
}
UiUtilities.setupSlider(rangeSlider, nightMode, ColorUtilities.getActiveColor(app, nightMode), false);
} else {
slider.setEnabled(enabled);
slider.clearOnChangeListeners();
if (enabled) {
slider.setValueFrom((float) filter.getMinValue());
slider.setValueTo((float) filter.getMaxValue());
slider.setValue((float) filter.getSelectedMaxValue());
slider.addOnChangeListener((slider1, value, fromUser) -> {
if (fromUser) {
filter.updateValue((slider.getValue()));
updateDisplayedFilterNumbers(container, filter);
if (gpxDataItem != null) {
boolean updated = gpxDbHelper.updateGpsFilters(gpxDataItem, filteredSelectedGpxFile);
if (updated) {
gpsFilterHelper.filterGpxFile(filteredSelectedGpxFile, true);
}
}
}
});
}
UiUtilities.setupSlider(slider, nightMode, ColorUtilities.getActiveColor(app, nightMode));
}
}
use of com.google.android.material.slider.RangeSlider in project Osmand by osmandapp.
the class InputZoomLevelsBottomSheet method createMenuItems.
@Override
public void createMenuItems(Bundle savedInstanceState) {
OsmandApplication app = requiredMyApplication();
if (savedInstanceState != null) {
minZoom = savedInstanceState.getInt(MIN_ZOOM_KEY);
maxZoom = savedInstanceState.getInt(MAX_ZOOM_KEY);
dialogDescrRes = savedInstanceState.getInt(DIALOG_DESCR_RES_KEY);
sliderDescrRes = savedInstanceState.getInt(SLIDER_DESCR_RES_KEY);
newMapSource = savedInstanceState.getBoolean(NEW_MAP_SOURCE);
}
LayoutInflater inflater = UiUtilities.getInflater(app, nightMode);
TitleItem titleItem = new TitleItem(getString(R.string.shared_string_zoom_levels));
items.add(titleItem);
final View sliderView = inflater.inflate(R.layout.zoom_levels_with_descr, null);
((TextView) sliderView.findViewById(R.id.slider_descr)).setText(sliderDescrRes);
TextView dialogDescrTv = sliderView.findViewById(R.id.dialog_descr);
if (dialogDescrRes == R.string.map_source_zoom_levels_descr) {
String mapSource = getString(R.string.map_source);
String overlayUnderlay = getString(R.string.pref_overlay);
String dialogDesr = getString(dialogDescrRes, mapSource, overlayUnderlay);
dialogDescrTv.setText(UiUtilities.createCustomFontSpannable(FontCache.getRobotoMedium(app), dialogDesr, mapSource, overlayUnderlay));
} else {
dialogDescrTv.setText(getString(dialogDescrRes));
}
final TextView minZoomValue = sliderView.findViewById(R.id.zoom_value_min);
minZoomValue.setText(String.valueOf(minZoom));
final TextView maxZoomValue = sliderView.findViewById(R.id.zoom_value_max);
maxZoomValue.setText(String.valueOf(maxZoom));
RangeSlider slider = sliderView.findViewById(R.id.zoom_slider);
int colorProfile = app.getSettings().getApplicationMode().getProfileColor(nightMode);
UiUtilities.setupSlider(slider, nightMode, colorProfile, true);
slider.setValueFrom(SLIDER_FROM);
slider.setValueTo(SLIDER_TO);
slider.setValues((float) minZoom, (float) maxZoom);
slider.addOnChangeListener(new RangeSlider.OnChangeListener() {
@Override
public void onValueChange(@NonNull RangeSlider slider, float value, boolean fromUser) {
List<Float> values = slider.getValues();
if (values.size() > 0) {
minZoomValue.setText(String.valueOf(values.get(0).intValue()));
maxZoomValue.setText(String.valueOf(values.get(1).intValue()));
}
}
});
slider.addOnSliderTouchListener(new RangeSlider.OnSliderTouchListener() {
@Override
public void onStartTrackingTouch(@NonNull RangeSlider slider) {
}
@Override
public void onStopTrackingTouch(@NonNull RangeSlider slider) {
List<Float> values = slider.getValues();
if (values.size() > 0) {
minZoom = values.get(0).intValue();
maxZoom = values.get(1).intValue();
}
}
});
final SimpleBottomSheetItem sliderItem = (SimpleBottomSheetItem) new SimpleBottomSheetItem.Builder().setCustomView(sliderView).create();
items.add(sliderItem);
}
use of com.google.android.material.slider.RangeSlider in project OsmAnd by osmandapp.
the class InputZoomLevelsBottomSheet method createMenuItems.
@Override
public void createMenuItems(Bundle savedInstanceState) {
OsmandApplication app = requiredMyApplication();
if (savedInstanceState != null) {
minZoom = savedInstanceState.getInt(MIN_ZOOM_KEY);
maxZoom = savedInstanceState.getInt(MAX_ZOOM_KEY);
dialogDescrRes = savedInstanceState.getInt(DIALOG_DESCR_RES_KEY);
sliderDescrRes = savedInstanceState.getInt(SLIDER_DESCR_RES_KEY);
newMapSource = savedInstanceState.getBoolean(NEW_MAP_SOURCE);
}
LayoutInflater inflater = UiUtilities.getInflater(app, nightMode);
TitleItem titleItem = new TitleItem(getString(R.string.shared_string_zoom_levels));
items.add(titleItem);
final View sliderView = inflater.inflate(R.layout.zoom_levels_with_descr, null);
((TextView) sliderView.findViewById(R.id.slider_descr)).setText(sliderDescrRes);
TextView dialogDescrTv = sliderView.findViewById(R.id.dialog_descr);
if (dialogDescrRes == R.string.map_source_zoom_levels_descr) {
String mapSource = getString(R.string.map_source);
String overlayUnderlay = getString(R.string.pref_overlay);
String dialogDesr = getString(dialogDescrRes, mapSource, overlayUnderlay);
dialogDescrTv.setText(UiUtilities.createCustomFontSpannable(FontCache.getRobotoMedium(app), dialogDesr, mapSource, overlayUnderlay));
} else {
dialogDescrTv.setText(getString(dialogDescrRes));
}
final TextView minZoomValue = sliderView.findViewById(R.id.zoom_value_min);
minZoomValue.setText(String.valueOf(minZoom));
final TextView maxZoomValue = sliderView.findViewById(R.id.zoom_value_max);
maxZoomValue.setText(String.valueOf(maxZoom));
RangeSlider slider = sliderView.findViewById(R.id.zoom_slider);
int colorProfile = app.getSettings().getApplicationMode().getProfileColor(nightMode);
UiUtilities.setupSlider(slider, nightMode, colorProfile, true);
slider.setValueFrom(SLIDER_FROM);
slider.setValueTo(SLIDER_TO);
slider.setValues((float) minZoom, (float) maxZoom);
slider.addOnChangeListener(new RangeSlider.OnChangeListener() {
@Override
public void onValueChange(@NonNull RangeSlider slider, float value, boolean fromUser) {
List<Float> values = slider.getValues();
if (values.size() > 0) {
minZoomValue.setText(String.valueOf(values.get(0).intValue()));
maxZoomValue.setText(String.valueOf(values.get(1).intValue()));
}
}
});
slider.addOnSliderTouchListener(new RangeSlider.OnSliderTouchListener() {
@Override
public void onStartTrackingTouch(@NonNull RangeSlider slider) {
}
@Override
public void onStopTrackingTouch(@NonNull RangeSlider slider) {
List<Float> values = slider.getValues();
if (values.size() > 0) {
minZoom = values.get(0).intValue();
maxZoom = values.get(1).intValue();
}
}
});
final SimpleBottomSheetItem sliderItem = (SimpleBottomSheetItem) new SimpleBottomSheetItem.Builder().setCustomView(sliderView).create();
items.add(sliderItem);
}
Aggregations