fix(map): bring back the compact filter button and floating layers control
The split carried over the wrong versions of two bits of chrome. The filter toggle had become a full-width grey TextView bar, 48dp of "Map Filters ▼" sitting above the map. Restored to what it was: a small "☰ Filters" button on a wrap-content row. The Leaflet layers control was being created with collapsed:false, which pins the whole Streets/Satellite list open as a box over the map. collapsed:true is what renders it as the floating corner button that opens on tap. Its 13px font rule came back with it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
655b01be50
commit
be517f56a5
@@ -32,7 +32,7 @@ private boolean mapReady;
|
||||
|
||||
private LinearLayout filterPanel;
|
||||
private ScrollView filterScroll;
|
||||
private TextView filterHeader;
|
||||
private Button filterButton;
|
||||
private boolean filtersExpanded = false;
|
||||
|
||||
private Spinner deviceSpinner;
|
||||
@@ -171,36 +171,47 @@ protected void onCreate(Bundle state) {
|
||||
)
|
||||
);
|
||||
|
||||
filterHeader =
|
||||
new TextView(this);
|
||||
/*
|
||||
* Compact filter button -- a small button that sits on its own row,
|
||||
* not a full-width grey bar eating 48dp above the map.
|
||||
*/
|
||||
LinearLayout filterHeaderRow =
|
||||
new LinearLayout(this);
|
||||
|
||||
filterHeader.setText(
|
||||
"Map Filters ▼"
|
||||
filterHeaderRow.setOrientation(
|
||||
LinearLayout.HORIZONTAL
|
||||
);
|
||||
|
||||
filterHeader.setTextSize(16);
|
||||
filterHeader.setTextColor(Color.DKGRAY);
|
||||
|
||||
filterHeader.setGravity(
|
||||
filterHeaderRow.setGravity(
|
||||
Gravity.CENTER_VERTICAL
|
||||
);
|
||||
|
||||
filterHeader.setPadding(
|
||||
dp(14),
|
||||
dp(10),
|
||||
dp(14),
|
||||
dp(10)
|
||||
filterHeaderRow.setPadding(
|
||||
dp(8),
|
||||
dp(2),
|
||||
dp(8),
|
||||
dp(2)
|
||||
);
|
||||
|
||||
filterHeader.setBackgroundColor(
|
||||
Color.rgb(238, 238, 238)
|
||||
filterButton =
|
||||
new Button(this);
|
||||
|
||||
filterButton.setText("☰ Filters");
|
||||
filterButton.setTextSize(13);
|
||||
|
||||
filterHeaderRow.addView(
|
||||
filterButton,
|
||||
new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.WRAP_CONTENT,
|
||||
LinearLayout.LayoutParams.WRAP_CONTENT
|
||||
)
|
||||
);
|
||||
|
||||
root.addView(
|
||||
filterHeader,
|
||||
filterHeaderRow,
|
||||
new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT,
|
||||
dp(48)
|
||||
LinearLayout.LayoutParams.WRAP_CONTENT
|
||||
)
|
||||
);
|
||||
|
||||
@@ -255,7 +266,7 @@ protected void onCreate(Bundle state) {
|
||||
)
|
||||
);
|
||||
|
||||
filterHeader.setOnClickListener(
|
||||
filterButton.setOnClickListener(
|
||||
new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
@@ -1066,11 +1077,7 @@ private void setFiltersExpanded(
|
||||
: View.GONE
|
||||
);
|
||||
|
||||
filterHeader.setText(
|
||||
expanded
|
||||
? "Map Filters ▲"
|
||||
: "Map Filters ▼"
|
||||
);
|
||||
filterButton.setText("☰ Filters");
|
||||
}
|
||||
|
||||
private TextView filterLabel(
|
||||
|
||||
@@ -549,6 +549,7 @@ public final class MapHtmlBuilder {
|
||||
+ "<style>"
|
||||
+ "html,body,#map{height:100%;margin:0}"
|
||||
+ ".leaflet-popup-content{font:14px sans-serif;line-height:1.5}"
|
||||
+ ".leaflet-control-layers{font:13px sans-serif}"
|
||||
|
||||
+ ".phone-bearing{"
|
||||
+ "position:relative;"
|
||||
@@ -600,10 +601,13 @@ public final class MapHtmlBuilder {
|
||||
|
||||
+ "map=L.map('map',{layers:[streets]}).setView([20,0],2);"
|
||||
|
||||
// collapsed:true is what makes this the floating corner button
|
||||
// that opens on tap. collapsed:false pins the whole list open
|
||||
// over the map as a permanent box.
|
||||
+ "L.control.layers({"
|
||||
+ "'Streets':streets,"
|
||||
+ "'Satellite':sat"
|
||||
+ "},null,{collapsed:false}).addTo(map);"
|
||||
+ "},null,{collapsed:true}).addTo(map);"
|
||||
|
||||
+ "var phone=null,phoneShown=false,"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user