MISSION UPDATE // FLAGS
This is intended as a minimal reference CL for setting up a new flag,
and including a tiny amount of new code behind that flag.
In what is truly a shocking coincidence, the new code plants a little
yellow flag on the planet you've landed on.
Bug: 320150798
Test: adb shell am start -n android/com.android.internal.app.PlatLogoActivity
Flag: systemui:flag_flag
Change-Id: I9527df96a4fb3d0b73704ac2a455bf8820c56951
diff --git a/packages/EasterEgg/Android.bp b/packages/EasterEgg/Android.bp
index 0caf505..6f4f9ca 100644
--- a/packages/EasterEgg/Android.bp
+++ b/packages/EasterEgg/Android.bp
@@ -48,6 +48,8 @@
},
static_libs: [
+ "easter_egg_flags_lib",
+
"androidx.core_core",
"androidx.annotation_annotation",
"androidx.recyclerview_recyclerview",
@@ -72,3 +74,16 @@
kotlincflags: ["-Xjvm-default=all"],
}
+
+java_aconfig_library {
+ name: "easter_egg_flags_lib",
+ aconfig_declarations: "easter_egg_flags",
+}
+
+aconfig_declarations {
+ name: "easter_egg_flags",
+ package: "com.android.egg.flags",
+ srcs: [
+ "easter_egg_flags.aconfig",
+ ],
+}
diff --git a/packages/EasterEgg/easter_egg_flags.aconfig b/packages/EasterEgg/easter_egg_flags.aconfig
new file mode 100644
index 0000000..3268a4f
--- /dev/null
+++ b/packages/EasterEgg/easter_egg_flags.aconfig
@@ -0,0 +1,8 @@
+package: "com.android.egg.flags"
+
+flag {
+ name: "flag_flag"
+ namespace: "systemui"
+ description: "Flags are planted on planets when you land. Yes, it's a flag for flags."
+ bug: "320150798"
+}
diff --git a/packages/EasterEgg/src/com/android/egg/landroid/Universe.kt b/packages/EasterEgg/src/com/android/egg/landroid/Universe.kt
index fec3ab3..11dce61 100644
--- a/packages/EasterEgg/src/com/android/egg/landroid/Universe.kt
+++ b/packages/EasterEgg/src/com/android/egg/landroid/Universe.kt
@@ -174,7 +174,9 @@
ship = Spacecraft()
- ship.pos = star.pos + Vec2.makeWithAngleMag(PIf / 4, PLANET_ORBIT_RANGE.start)
+ // in the test universe, start the ship near the outermost planet
+ ship.pos = planets.last().pos + Vec2(planets.first().radius * 1.5f, 0f)
+
ship.angle = 0f
add(ship)
diff --git a/packages/EasterEgg/src/com/android/egg/landroid/VisibleUniverse.kt b/packages/EasterEgg/src/com/android/egg/landroid/VisibleUniverse.kt
index 24b9c6a..6baf36e 100644
--- a/packages/EasterEgg/src/com/android/egg/landroid/VisibleUniverse.kt
+++ b/packages/EasterEgg/src/com/android/egg/landroid/VisibleUniverse.kt
@@ -31,6 +31,8 @@
import java.lang.Float.max
import kotlin.math.sqrt
+import com.android.egg.flags.Flags.flagFlag
+
const val DRAW_ORBITS = true
const val DRAW_GRAVITATIONAL_FIELDS = true
const val DRAW_STAR_GRAVITATIONAL_FIELDS = true
@@ -279,8 +281,23 @@
fun ZoomedDrawScope.drawLanding(landing: Landing) {
val v = landing.planet.pos + Vec2.makeWithAngleMag(landing.angle, landing.planet.radius)
- drawLine(Color.Red, v + Vec2(-5f, -5f), v + Vec2(5f, 5f), strokeWidth = 1f / zoom)
- drawLine(Color.Red, v + Vec2(5f, -5f), v + Vec2(-5f, 5f), strokeWidth = 1f / zoom)
+
+ if (flagFlag()) {
+ val strokeWidth = 2f / zoom
+ val height = 80f
+ rotateRad(landing.angle, pivot = v) {
+ translate(v.x, v.y) {
+ drawPath(
+ Path().apply {
+ moveTo(0f, 0f)
+ lineTo(height, 0f)
+ lineTo(height * 0.875f, height * 0.25f)
+ lineTo(height * 0.75f, 0f)
+ close()
+ }, Color.Yellow, style = Stroke(width = strokeWidth))
+ }
+ }
+ }
}
fun ZoomedDrawScope.drawSpark(spark: Spark) {