Fix possible IllegalArgumentException and ClassCastException

This commit is contained in:
Vitaliy 2020-05-18 18:02:55 +03:00
parent d90b2956c5
commit 93ce36c0ff
2 changed files with 21 additions and 20 deletions

View file

@ -25,6 +25,7 @@
android:id="@+id/ZoomToDownload"
style="@style/Widget.Styled.Slider"
android:layout_width="fill_parent"
android:stepSize="1"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/content_padding"
android:layout_marginRight="@dimen/content_padding"

View file

@ -51,11 +51,12 @@ public class DownloadTilesDialog {
public void openDialog(){
BaseMapLayer mainLayer = mapView.getMainLayer();
if(!(mainLayer instanceof MapTileLayer) || !((MapTileLayer) mainLayer).isVisible()){
if (!(mainLayer instanceof MapTileLayer) || !((MapTileLayer) mainLayer).isVisible()) {
Toast.makeText(ctx, R.string.maps_could_not_be_downloaded, Toast.LENGTH_SHORT).show();
return;
}
final ITileSource mapSource = ((MapTileLayer) mainLayer).getMap();
if(mapSource == null || !mapSource.couldBeDownloadedFromInternet()){
if (mapSource == null || !mapSource.couldBeDownloadedFromInternet()) {
Toast.makeText(ctx, R.string.maps_could_not_be_downloaded, Toast.LENGTH_SHORT).show();
return;
}
@ -66,29 +67,28 @@ public class DownloadTilesDialog {
// calculate pixel rectangle
AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
LayoutInflater inflater = (LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LayoutInflater inflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.download_tiles, null);
((TextView)view.findViewById(R.id.MinZoom)).setText(zoom+""); //$NON-NLS-1$
((TextView)view.findViewById(R.id.MaxZoom)).setText(max+""); //$NON-NLS-1$
((TextView) view.findViewById(R.id.MinZoom)).setText(String.valueOf(zoom));
((TextView) view.findViewById(R.id.MaxZoom)).setText(String.valueOf(max));
final Slider slider = (Slider) view.findViewById(R.id.ZoomToDownload);
slider.setValueTo(max - zoom);
int progress = (max - zoom) / 2;
slider.setValue(progress);
final TextView downloadText = ((TextView) view.findViewById(R.id.DownloadDescription));
final String template = ctx.getString(R.string.tiles_to_download_estimated_size);
updateLabel(zoom, rb.getLatLonBounds(), downloadText, template, (int) slider.getValue());
slider.addOnChangeListener(new Slider.OnChangeListener() {
@Override
public void onValueChange(@NonNull Slider slider, float value, boolean fromUser) {
updateLabel(zoom, rb.getLatLonBounds(), downloadText, template, (int) value);
}
});
if (max > zoom) {
slider.setValueTo(max - zoom);
int progress = (max - zoom) / 2;
slider.setValue(progress);
slider.addOnChangeListener(new Slider.OnChangeListener() {
@Override
public void onValueChange(@NonNull Slider slider, float value, boolean fromUser) {
updateLabel(zoom, rb.getLatLonBounds(), downloadText, template, (int) value);
}
});
}
builder.setPositiveButton(R.string.shared_string_download, new DialogInterface.OnClickListener(){
@Override