fix(map): make filter panel compact and scrollable

This commit is contained in:
n0tst3v3
2026-08-19 00:50:25 -06:00
parent d5150ba126
commit dc63fffb67
@@ -22,6 +22,7 @@ import android.widget.ArrayAdapter;
import android.widget.Button; import android.widget.Button;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.Spinner; import android.widget.Spinner;
import android.widget.TextView; import android.widget.TextView;
@@ -48,6 +49,8 @@ implements SensorEventListener {
private LinearLayout filterPanel; private LinearLayout filterPanel;
private ScrollView filterScroll;
private Spinner categorySpinner; private Spinner categorySpinner;
private Spinner deviceSpinner; private Spinner deviceSpinner;
@@ -207,7 +210,6 @@ implements SensorEventListener {
dp(4) dp(4)
); );
filterPanel.setVisibility(View.GONE);
/* /*
* Category. * Category.
@@ -387,13 +389,30 @@ implements SensorEventListener {
filterPanel.addView(showAll); filterPanel.addView(showAll);
root.addView( /*
filterPanel, * Bounded to a third of the screen and scrollable, so every
new LinearLayout.LayoutParams( * control stays reachable on short screens.
LinearLayout.LayoutParams.MATCH_PARENT, */
LinearLayout.LayoutParams.WRAP_CONTENT filterScroll = new ScrollView(this);
)
); filterScroll.setVisibility(View.GONE);
filterScroll.addView(
filterPanel,
new android.widget.FrameLayout.LayoutParams(
android.widget.FrameLayout.LayoutParams.MATCH_PARENT,
android.widget.FrameLayout.LayoutParams.WRAP_CONTENT
)
);
root.addView(
filterScroll,
new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
0,
1
)
);
/* /*
* WebView map. * WebView map.
@@ -436,13 +455,13 @@ implements SensorEventListener {
} }
); );
root.addView( root.addView(
web, web,
new LinearLayout.LayoutParams( new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT,
0, 0,
1 2
) )
); );
setContentView(root); setContentView(root);
@@ -476,19 +495,12 @@ implements SensorEventListener {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
if (filterPanel.getVisibility() filterScroll.setVisibility(
== View.VISIBLE) { filterScroll.getVisibility()
== View.VISIBLE
filterPanel.setVisibility( ? View.GONE
View.GONE : View.VISIBLE
); );
} else {
filterPanel.setVisibility(
View.VISIBLE
);
}
} }
} }
); );
@@ -646,8 +658,8 @@ implements SensorEventListener {
/* /*
* Collapse after applying. * Collapse after applying.
*/ */
filterPanel.setVisibility( filterScroll.setVisibility(
View.GONE View.GONE
); );
} }
} }
@@ -696,10 +708,10 @@ implements SensorEventListener {
private LinearLayout.LayoutParams compactParams() { private LinearLayout.LayoutParams compactParams() {
return new LinearLayout.LayoutParams( return new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT,
dp(42) dp(38)
); );
} }
private TextView smallLabel(String text) { private TextView smallLabel(String text) {