From fde4a21fd17af43d89f5dc91d17704ee27a71734 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20Lo=CC=81pez=20Man=CC=83as?= Date: Mon, 3 Nov 2025 19:28:09 +0300 Subject: [PATCH 1/4] fix_ fixed InfoWindow creation in KmlParser --- .../src/main/java/com/google/maps/android/data/Renderer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/main/java/com/google/maps/android/data/Renderer.java b/library/src/main/java/com/google/maps/android/data/Renderer.java index 1f59fc257..83ab6d741 100644 --- a/library/src/main/java/com/google/maps/android/data/Renderer.java +++ b/library/src/main/java/com/google/maps/android/data/Renderer.java @@ -1159,7 +1159,7 @@ public View getInfoContents(@NonNull Marker arg0) { TextView infoWindowText = view.findViewById(R.id.window); if (arg0.getSnippet() != null) { infoWindowText.setText(Html.fromHtml(arg0.getTitle() + "
" + arg0.getSnippet())); - } else { + } else if (arg0.getTitle() != null) { infoWindowText.setText(Html.fromHtml(arg0.getTitle())); } return view; From 838b5d1f69039e72650fe176c1d7b29c0c8b8001 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20Lo=CC=81pez=20Man=CC=83as?= Date: Mon, 3 Nov 2025 19:47:09 +0300 Subject: [PATCH 2/4] fix: changed if structure --- .../java/com/google/maps/android/data/Renderer.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/library/src/main/java/com/google/maps/android/data/Renderer.java b/library/src/main/java/com/google/maps/android/data/Renderer.java index 83ab6d741..8510e9127 100644 --- a/library/src/main/java/com/google/maps/android/data/Renderer.java +++ b/library/src/main/java/com/google/maps/android/data/Renderer.java @@ -1154,13 +1154,16 @@ public View getInfoWindow(@NonNull Marker arg0) { return null; } + @Override public View getInfoContents(@NonNull Marker arg0) { View view = LayoutInflater.from(mContext).inflate(R.layout.amu_info_window, null); - TextView infoWindowText = view.findViewById(R.id.window); - if (arg0.getSnippet() != null) { - infoWindowText.setText(Html.fromHtml(arg0.getTitle() + "
" + arg0.getSnippet())); - } else if (arg0.getTitle() != null) { - infoWindowText.setText(Html.fromHtml(arg0.getTitle())); + if (arg0.getTitle() != null) { + TextView infoWindowText = view.findViewById(R.id.window); + if (arg0.getSnippet() != null) { + infoWindowText.setText(Html.fromHtml(arg0.getTitle() + "
" + arg0.getSnippet())); + } else { + infoWindowText.setText(Html.fromHtml(arg0.getTitle())); + } } return view; } From 86f3627e26c7902aaf5f74bd6f75b6e29d42f0c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20Lo=CC=81pez=20Man=CC=83as?= Date: Tue, 4 Nov 2025 13:17:22 +0300 Subject: [PATCH 3/4] fix: no InfoWindow when the title is null --- .../google/maps/android/data/Renderer.java | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/library/src/main/java/com/google/maps/android/data/Renderer.java b/library/src/main/java/com/google/maps/android/data/Renderer.java index 8510e9127..03b43f799 100644 --- a/library/src/main/java/com/google/maps/android/data/Renderer.java +++ b/library/src/main/java/com/google/maps/android/data/Renderer.java @@ -1145,26 +1145,33 @@ private void setMarkerInfoWindow(KmlStyle style, Marker marker, /** * Creates a new InfoWindowAdapter and sets text if marker snippet or title is set. This allows - * the info window to have custom HTML. + * the info window to have custom HTML. If the marker has no title, the InfoWindow is deactivated. */ private void createInfoWindow() { mMarkers.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() { - public View getInfoWindow(@NonNull Marker arg0) { + public View getInfoWindow(@NonNull Marker marker) { return null; } @Override - public View getInfoContents(@NonNull Marker arg0) { + public View getInfoContents(@NonNull Marker marker) { + if (marker.getTitle() == null) { + return null; + } + View view = LayoutInflater.from(mContext).inflate(R.layout.amu_info_window, null); - if (arg0.getTitle() != null) { - TextView infoWindowText = view.findViewById(R.id.window); - if (arg0.getSnippet() != null) { - infoWindowText.setText(Html.fromHtml(arg0.getTitle() + "
" + arg0.getSnippet())); - } else { - infoWindowText.setText(Html.fromHtml(arg0.getTitle())); - } + TextView infoWindowText = view.findViewById(R.id.window); + + String title = marker.getTitle(); + String snippet = marker.getSnippet(); + + if (snippet != null) { + infoWindowText.setText(Html.fromHtml(title + "
" + snippet)); + } else { + infoWindowText.setText(Html.fromHtml(title)); } + return view; } }); From d8683e1f74d0f9e4fee928f17b6ecebff2f9725f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20Lo=CC=81pez=20Man=CC=83as?= Date: Tue, 4 Nov 2025 20:06:10 +0300 Subject: [PATCH 4/4] fix: minor chore --- .../java/com/google/maps/android/data/Renderer.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/library/src/main/java/com/google/maps/android/data/Renderer.java b/library/src/main/java/com/google/maps/android/data/Renderer.java index 03b43f799..31a846df5 100644 --- a/library/src/main/java/com/google/maps/android/data/Renderer.java +++ b/library/src/main/java/com/google/maps/android/data/Renderer.java @@ -1156,21 +1156,21 @@ public View getInfoWindow(@NonNull Marker marker) { @Override public View getInfoContents(@NonNull Marker marker) { - if (marker.getTitle() == null) { + String title = marker.getTitle(); + if (title == null) { return null; } View view = LayoutInflater.from(mContext).inflate(R.layout.amu_info_window, null); TextView infoWindowText = view.findViewById(R.id.window); - String title = marker.getTitle(); - String snippet = marker.getSnippet(); + StringBuilder infoText = new StringBuilder(title); + String snippet = marker.getSnippet(); if (snippet != null) { - infoWindowText.setText(Html.fromHtml(title + "
" + snippet)); - } else { - infoWindowText.setText(Html.fromHtml(title)); + infoText.append("
").append(snippet); } + infoWindowText.setText(Html.fromHtml(infoText.toString())); return view; }