ui: compact particle validation controls

This commit is contained in:
OpenAI Codex
2026-09-02 20:26:57 +08:00
parent 00b3510ddb
commit f4d519ca78
3 changed files with 55 additions and 140 deletions

View File

@@ -147,16 +147,25 @@ class ParticleCoreLayerValidationActivity : AppCompatActivity() {
return
}
layer.setProperties(PaintPropertyValue("raster-particle-time-mix", timeMix))
status.text = "40-02 T0 east / T1 north timeMix=$timeMix"
status.text = statusText()
Log.i(TAG, "ParticleGPU: test timeMix=$timeMix; expect no Field upload or simulation rebuild")
}
private fun statusText(): String = when {
!enabled -> getString(R.string.particle_validation_disabled_status)
maskMode == MASK_OCEAN_A -> getString(R.string.particle_validation_ocean_a_status)
maskMode == MASK_OCEAN_B -> getString(R.string.particle_validation_ocean_b_status)
active -> getString(R.string.particle_validation_global_active_status)
else -> getString(R.string.particle_validation_global_static_status)
private fun statusText(): String {
val mask = when (maskMode) {
MASK_OCEAN_A -> "OCEAN A"
MASK_OCEAN_B -> "OCEAN B"
else -> "GLOBAL"
}
val runtime = if (enabled) if (active) "ACTIVE" else "STATIC" else "DISABLED"
val fields = if (timeWindowMode) {
"T0 EAST · T1 NORTH"
} else if (fixtureMode == FIXTURE_UNIFORM_NORTH) {
"NORTH"
} else {
"EAST"
}
return "$mask · $runtime · $fields · MIX ${(timeMix * 100).toInt()}%"
}
private fun validationStyle(active: Boolean, enabled: Boolean): String {

View File

@@ -15,167 +15,63 @@
android:layout_gravity="bottom"
android:background="#DD102030"
android:orientation="vertical"
android:padding="12dp">
android:padding="4dp">
<TextView
android:id="@+id/validationStatus"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="36dp"
android:ellipsize="end"
android:gravity="center_vertical"
android:maxLines="1"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:text="@string/particle_validation_active_status"
android:textColor="@android:color/white" />
android:textColor="@android:color/white"
android:textSize="12sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="34dp"
android:orientation="horizontal">
<Button
android:id="@+id/validationUniformEast"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/particle_validation_uniform_east" />
<Button
android:id="@+id/validationUniformNorth"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/particle_validation_uniform_north" />
<Button android:id="@+id/validationUniformEast" style="@style/ParticleValidationButton" android:layout_width="0dp" android:layout_weight="1" android:text="@string/particle_validation_uniform_east" />
<Button android:id="@+id/validationUniformNorth" style="@style/ParticleValidationButton" android:layout_width="0dp" android:layout_weight="1" android:text="@string/particle_validation_uniform_north" />
<Button android:id="@+id/validationTimeWindow" style="@style/ParticleValidationButton" android:layout_width="0dp" android:layout_weight="1" android:text="@string/particle_validation_time_window" />
<Button android:id="@+id/validationAdvanceWindow" style="@style/ParticleValidationButton" android:layout_width="0dp" android:layout_weight="1" android:text="@string/particle_validation_advance_window" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="34dp"
android:orientation="horizontal">
<Button
android:id="@+id/validationTimeWindow"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/particle_validation_time_window" />
<Button
android:id="@+id/validationAdvanceWindow"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/particle_validation_advance_window" />
<Button android:id="@+id/validationMix0" style="@style/ParticleValidationButton" android:layout_width="0dp" android:layout_weight="1" android:text="@string/particle_validation_mix_0" />
<Button android:id="@+id/validationMix50" style="@style/ParticleValidationButton" android:layout_width="0dp" android:layout_weight="1" android:text="@string/particle_validation_mix_50" />
<Button android:id="@+id/validationMix100" style="@style/ParticleValidationButton" android:layout_width="0dp" android:layout_weight="1" android:text="@string/particle_validation_mix_100" />
<Button android:id="@+id/validationActive" style="@style/ParticleValidationButton" android:layout_width="0dp" android:layout_weight="1" android:text="@string/particle_validation_active" />
<Button android:id="@+id/validationStatic" style="@style/ParticleValidationButton" android:layout_width="0dp" android:layout_weight="1" android:text="@string/particle_validation_static" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="34dp"
android:orientation="horizontal">
<Button
android:id="@+id/validationMix0"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/particle_validation_mix_0" />
<Button
android:id="@+id/validationMix50"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/particle_validation_mix_50" />
<Button
android:id="@+id/validationMix100"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/particle_validation_mix_100" />
<Button android:id="@+id/validationDisable" style="@style/ParticleValidationButton" android:layout_width="0dp" android:layout_weight="1" android:text="@string/particle_validation_disable" />
<Button android:id="@+id/validationEnable" style="@style/ParticleValidationButton" android:layout_width="0dp" android:layout_weight="1" android:text="@string/particle_validation_enable" />
<Button android:id="@+id/validationGlobal" style="@style/ParticleValidationButton" android:layout_width="0dp" android:layout_weight="1" android:text="@string/particle_validation_global" />
<Button android:id="@+id/validationOceanA" style="@style/ParticleValidationButton" android:layout_width="0dp" android:layout_weight="1" android:text="@string/particle_validation_ocean_a" />
<Button android:id="@+id/validationOceanB" style="@style/ParticleValidationButton" android:layout_width="0dp" android:layout_weight="1" android:text="@string/particle_validation_ocean_b" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="34dp"
android:orientation="horizontal">
<Button
android:id="@+id/validationActive"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/particle_validation_active" />
<Button
android:id="@+id/validationStatic"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/particle_validation_static" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/validationDisable"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/particle_validation_disable" />
<Button
android:id="@+id/validationEnable"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/particle_validation_enable" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/validationGlobal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/particle_validation_global" />
<Button
android:id="@+id/validationOceanA"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/particle_validation_ocean_a" />
<Button
android:id="@+id/validationOceanB"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/particle_validation_ocean_b" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/validationDateline"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/particle_validation_dateline" />
<Button
android:id="@+id/validationWorldWrap"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/particle_validation_world_wrap" />
<Button android:id="@+id/validationDateline" style="@style/ParticleValidationButton" android:layout_width="0dp" android:layout_weight="1" android:text="@string/particle_validation_dateline" />
<Button android:id="@+id/validationWorldWrap" style="@style/ParticleValidationButton" android:layout_width="0dp" android:layout_weight="1" android:text="@string/particle_validation_world_wrap" />
</LinearLayout>
</LinearLayout>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="ParticleValidationButton">
<item name="android:layout_height">32dp</item>
<item name="android:minHeight">32dp</item>
<item name="android:minWidth">0dp</item>
<item name="android:padding">0dp</item>
<item name="android:textSize">11sp</item>
</style>
</resources>