Compare commits
7
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2260585cfe | ||
|
|
3c682c1b30 | ||
|
|
f30bf103be | ||
|
|
c461bcc433 | ||
|
|
c6501d00f2 | ||
|
|
b907747755 | ||
|
|
18fc5596ef |
Vendored
-54
@@ -1,54 +0,0 @@
|
||||
// CI pipeline for BowlEye (PinPoint). Builds the Debug APK and runs unit
|
||||
// tests on every push. Runs on the team19 VM's Jenkins install, using the
|
||||
// Android SDK at /opt/android-sdk (see docs/ for the VM setup this depends on).
|
||||
pipeline {
|
||||
agent any
|
||||
|
||||
options {
|
||||
timeout(time: 45, unit: 'MINUTES')
|
||||
disableConcurrentBuilds()
|
||||
buildDiscarder(logRotator(numToKeepStr: '20'))
|
||||
}
|
||||
|
||||
environment {
|
||||
ANDROID_HOME = '/opt/android-sdk'
|
||||
ANDROID_SDK_ROOT = '/opt/android-sdk'
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Checkout') {
|
||||
steps {
|
||||
checkout scm
|
||||
}
|
||||
}
|
||||
|
||||
stage('Prepare SDK pointer') {
|
||||
steps {
|
||||
// AGP will also pick up ANDROID_HOME from the environment, but
|
||||
// writing local.properties explicitly keeps this working even
|
||||
// if the job ever runs on a different agent/environment setup.
|
||||
sh 'echo "sdk.dir=/opt/android-sdk" > local.properties'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build Debug APK') {
|
||||
steps {
|
||||
sh 'chmod +x ./gradlew'
|
||||
sh './gradlew assembleDebug --no-daemon --stacktrace'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Unit Tests') {
|
||||
steps {
|
||||
sh './gradlew testDebugUnitTest --no-daemon --stacktrace'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post {
|
||||
always {
|
||||
junit allowEmptyResults: true, testResults: '**/build/test-results/**/*.xml'
|
||||
archiveArtifacts artifacts: 'app/build/outputs/apk/**/*.apk', allowEmptyArchive: true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -445,6 +445,10 @@ class BowlingCameraActivity : AppCompatActivity(), CameraXController.Callback {
|
||||
binding.textPoseFeedback.text = getString(R.string.pose_phase_slide_and_release)
|
||||
binding.textPoseFeedback.setBackgroundColor(ContextCompat.getColor(this, R.color.Slide_and_release_ready))
|
||||
}
|
||||
BowlingPhase.FOLLOW_THROUGH -> {
|
||||
binding.textPoseFeedback.text = getString(R.string.pose_phase_follow_through)
|
||||
binding.textPoseFeedback.setBackgroundColor(ContextCompat.getColor(this, R.color.Follow_through_ready))
|
||||
}
|
||||
else -> {
|
||||
binding.textPoseFeedback.text = correction ?: getString(R.string.pose_phase_waiting)
|
||||
binding.textPoseFeedback.setBackgroundColor(ContextCompat.getColor(this, R.color.Starting_stance_waiting))
|
||||
|
||||
@@ -406,6 +406,7 @@ class CameraXController(
|
||||
BowlingPhase.BACK_SWING -> "Backswing"
|
||||
BowlingPhase.POWER_STEP -> "Power Step"
|
||||
BowlingPhase.SLIDE_AND_RELEASE -> "Slide & Release"
|
||||
BowlingPhase.FOLLOW_THROUGH -> "Follow Through"
|
||||
}
|
||||
val colorRes = when (phase) {
|
||||
BowlingPhase.STARTING_STANCE -> R.color.Starting_stance_ready
|
||||
@@ -414,6 +415,7 @@ class CameraXController(
|
||||
BowlingPhase.BACK_SWING -> R.color.Back_swing_ready
|
||||
BowlingPhase.POWER_STEP -> R.color.Power_step_ready
|
||||
BowlingPhase.SLIDE_AND_RELEASE -> R.color.Slide_and_release_ready
|
||||
BowlingPhase.FOLLOW_THROUGH -> R.color.Follow_through_ready
|
||||
}
|
||||
val textPaint = overlayTextPaint.apply { textSize = 14f * scale }
|
||||
val textWidth = textPaint.measureText(label)
|
||||
|
||||
@@ -21,5 +21,6 @@
|
||||
<color name="Back_swing_ready">#CC9C27B0</color> <!-- purple -->
|
||||
<color name="Power_step_ready">#CCFF9800</color> <!-- orange/amber -->
|
||||
<color name="Slide_and_release_ready">#CCE91E63</color> <!-- pink/red -->
|
||||
<color name="Follow_through_ready">#CC00BCD4</color> <!-- cyan -->
|
||||
<color name="final_position_highlight">#FFFFD600</color>
|
||||
</resources>
|
||||
@@ -55,7 +55,8 @@
|
||||
<string name="pose_phase_pushaway">Pushaway</string>
|
||||
<string name="pose_phase_back_swing">Backswing</string>
|
||||
<string name="pose_phase_power_step">Power Step</string>
|
||||
<string name="pose_phase_slide_and_release">Slide & Release</string>
|
||||
<string name="pose_phase_slide_and_release">Slide and Release</string>
|
||||
<string name="pose_phase_follow_through">Follow Through</string>
|
||||
<string name="pose_phase_waiting">Waiting for stance…</string>
|
||||
<string name="pose_metrics_format">Torso: %1$s · Knee L: %2$s R: %3$s\nElbow L: %4$s R: %5$s</string>
|
||||
</resources>
|
||||
@@ -1,5 +1,5 @@
|
||||
[versions]
|
||||
agp = "9.4.0"
|
||||
agp = "9.3.0"
|
||||
coreKtx = "1.18.0"
|
||||
junit = "4.13.2"
|
||||
junitVersion = "1.3.0"
|
||||
|
||||
Reference in New Issue
Block a user