From 6f4452ed8ae8ba2187616060cec94c5fdab0e8b8 Mon Sep 17 00:00:00 2001 From: AbstainInsain Date: Mon, 8 Jun 2026 20:30:59 -0700 Subject: [PATCH 1/7] added slowed acheivement actions --- .idea/deploymentTargetSelector.xml | 6 +++ .../scouting_app/activities/SubmitData.java | 44 ++++++++++++++++-- .../main/res/drawable/achievement_open.png | Bin 0 -> 8406 bytes app/src/main/res/layout/submit_data.xml | 11 +++++ 4 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 app/src/main/res/drawable/achievement_open.png diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index 94d25b24..8779cac9 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -13,6 +13,12 @@ + + + + \ No newline at end of file diff --git a/app/src/main/java/com/team3663/scouting_app/activities/SubmitData.java b/app/src/main/java/com/team3663/scouting_app/activities/SubmitData.java index 1f01cd8f..90c50adc 100644 --- a/app/src/main/java/com/team3663/scouting_app/activities/SubmitData.java +++ b/app/src/main/java/com/team3663/scouting_app/activities/SubmitData.java @@ -208,10 +208,7 @@ public void run() { submitDataBinding.textAchievementDesc.setText(myAchievement.description); //Animation animation = AnimationUtils.loadAnimation(SubmitData.this, R.anim.blink); - - submitDataBinding.imageAchievement.setVisibility(View.VISIBLE); - submitDataBinding.textAchievementTitle.setVisibility(View.VISIBLE); - submitDataBinding.textAchievementDesc.setVisibility(View.VISIBLE); + animateAchievementStart(); }); // in_submitDataBinding.imageAchievement.startAnimation(animation); @@ -237,6 +234,7 @@ private class AchievementTimerTaskEnd extends TimerTask { @Override public void run() { SubmitData.this.runOnUiThread(() -> { + submitDataBinding.imageAchievementOpen.setVisibility(View.INVISIBLE); submitDataBinding.imageAchievement.setVisibility(View.INVISIBLE); submitDataBinding.textAchievementTitle.setVisibility(View.INVISIBLE); submitDataBinding.textAchievementDesc.setVisibility(View.INVISIBLE); @@ -278,6 +276,7 @@ private void initAchievements() { ArrayList pop_list = Achievements.popAchievements(); // Keep Achievements invisible + submitDataBinding.imageAchievementOpen.setVisibility(View.INVISIBLE); submitDataBinding.imageAchievement.setVisibility(View.INVISIBLE); submitDataBinding.textAchievementTitle.setVisibility(View.INVISIBLE); submitDataBinding.textAchievementDesc.setVisibility(View.INVISIBLE); @@ -304,6 +303,43 @@ private void initAchievements() { } } + public void animateAchievementStart() { + final float openingScaleValue = 1.2f; + // Show the opening logo overlay + submitDataBinding.imageAchievementOpen.setVisibility(View.VISIBLE); + + //scale opening image at begening + submitDataBinding.imageAchievementOpen.animate().scaleX(openingScaleValue).scaleY(openingScaleValue).setDuration(1000) + .withEndAction(new Runnable() { + @Override + public void run() { + submitDataBinding.imageAchievementOpen.animate().scaleX(1.0f).scaleY(1.0f).setDuration(1000); + } + }); + + // FORCE THE PIVOT TO THE LEFT EDGE (0 horizontal, middle vertical) + submitDataBinding.imageAchievement.setPivotX(0f); + + // Set the achievement image visibility and shrink it to 0 immediately + submitDataBinding.imageAchievement.setScaleX(0.0f); + submitDataBinding.imageAchievement.setVisibility(View.VISIBLE); + + // Scale it up smoothly to full size from the left pivot + submitDataBinding.imageAchievement.animate() + .scaleX(1.0f) + .setDuration(100) + .withEndAction(new Runnable() { + @Override + public void run() { + // 5. Reveal the text details after the scaling finishes + submitDataBinding.imageAchievement.setVisibility(View.VISIBLE); + submitDataBinding.textAchievementTitle.setVisibility(View.VISIBLE); + submitDataBinding.textAchievementDesc.setVisibility(View.VISIBLE); + } + }) + .start(); + } + // ============================================================================================= // Function: initMatch // Description: Initialize the Match field diff --git a/app/src/main/res/drawable/achievement_open.png b/app/src/main/res/drawable/achievement_open.png new file mode 100644 index 0000000000000000000000000000000000000000..c0035ba469d3e6e815c6998c76846a7e39143c90 GIT binary patch literal 8406 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/submit_data.xml b/app/src/main/res/layout/submit_data.xml index 880ad340..470aed60 100644 --- a/app/src/main/res/layout/submit_data.xml +++ b/app/src/main/res/layout/submit_data.xml @@ -172,6 +172,17 @@ app:layout_constraintBottom_toBottomOf="parent" app:srcCompat="@drawable/achievement" /> + + Date: Mon, 8 Jun 2026 20:57:34 -0700 Subject: [PATCH 2/7] added achievements --- .../scouting_app/activities/SubmitData.java | 53 +++++++++++++++---- 1 file changed, 43 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/team3663/scouting_app/activities/SubmitData.java b/app/src/main/java/com/team3663/scouting_app/activities/SubmitData.java index 90c50adc..6ed5d0e1 100644 --- a/app/src/main/java/com/team3663/scouting_app/activities/SubmitData.java +++ b/app/src/main/java/com/team3663/scouting_app/activities/SubmitData.java @@ -185,8 +185,8 @@ private class popOneAndGo_TimerTask extends TimerTask { @Override public void run() { - achievement_timer.schedule(new AchievementTimerTaskStart(myAchievement), 1); - achievement_timer.schedule(new AchievementTimerTaskEnd(isLast), Constants.Achievements.DISPLAY_TIME); + achievement_timer.schedule(new AchievementTimerTaskStart(myAchievement), 500); + achievement_timer.schedule(new AchievementTimerTaskEnd(isLast), Constants.Achievements.DISPLAY_TIME + 500); } } @@ -234,10 +234,7 @@ private class AchievementTimerTaskEnd extends TimerTask { @Override public void run() { SubmitData.this.runOnUiThread(() -> { - submitDataBinding.imageAchievementOpen.setVisibility(View.INVISIBLE); - submitDataBinding.imageAchievement.setVisibility(View.INVISIBLE); - submitDataBinding.textAchievementTitle.setVisibility(View.INVISIBLE); - submitDataBinding.textAchievementDesc.setVisibility(View.INVISIBLE); + animateAchievementEnd(); }); if (isLast) closeAchievements(); @@ -309,11 +306,11 @@ public void animateAchievementStart() { submitDataBinding.imageAchievementOpen.setVisibility(View.VISIBLE); //scale opening image at begening - submitDataBinding.imageAchievementOpen.animate().scaleX(openingScaleValue).scaleY(openingScaleValue).setDuration(1000) + submitDataBinding.imageAchievementOpen.animate().scaleX(openingScaleValue).scaleY(openingScaleValue).setDuration(500) .withEndAction(new Runnable() { @Override public void run() { - submitDataBinding.imageAchievementOpen.animate().scaleX(1.0f).scaleY(1.0f).setDuration(1000); + submitDataBinding.imageAchievementOpen.animate().scaleX(1.0f).scaleY(1.0f).setDuration(500); } }); @@ -327,11 +324,11 @@ public void run() { // Scale it up smoothly to full size from the left pivot submitDataBinding.imageAchievement.animate() .scaleX(1.0f) - .setDuration(100) + .setDuration(750) .withEndAction(new Runnable() { @Override public void run() { - // 5. Reveal the text details after the scaling finishes + // Reveal the text details after the scaling finishes submitDataBinding.imageAchievement.setVisibility(View.VISIBLE); submitDataBinding.textAchievementTitle.setVisibility(View.VISIBLE); submitDataBinding.textAchievementDesc.setVisibility(View.VISIBLE); @@ -340,6 +337,42 @@ public void run() { .start(); } + public void animateAchievementEnd() { + final float openingScaleValue = 1.2f; + // Show the opening logo overlay + submitDataBinding.imageAchievementOpen.setVisibility(View.VISIBLE); + + //scale opening image at begening + submitDataBinding.imageAchievementOpen.animate().scaleX(openingScaleValue).scaleY(openingScaleValue).setDuration(500) + .withEndAction(new Runnable() { + @Override + public void run() { + submitDataBinding.imageAchievementOpen.animate().scaleX(1.0f).scaleY(1.0f).setDuration(500); + } + }); + + // FORCE THE PIVOT TO THE LEFT EDGE (0 horizontal, middle vertical) + submitDataBinding.imageAchievement.setPivotX(0f); + + // Set the achievement image visibility and shrink it to 0 immediately + submitDataBinding.imageAchievement.setScaleX(1.0f); + submitDataBinding.imageAchievement.setVisibility(View.VISIBLE); + + // Scale it up smoothly to full size from the left pivot + submitDataBinding.imageAchievement.animate() + .scaleX(0.0f) + .setDuration(750) + .withEndAction(new Runnable() { + @Override + public void run() { + submitDataBinding.imageAchievementOpen.setVisibility(View.INVISIBLE); + submitDataBinding.textAchievementDesc.setVisibility(View.INVISIBLE); + submitDataBinding.textAchievementTitle.setVisibility(View.INVISIBLE); + } + }) + .start(); + } + // ============================================================================================= // Function: initMatch // Description: Initialize the Match field From 98a3fff6528a46d247839aab64ea5fcf97839a57 Mon Sep 17 00:00:00 2001 From: AbstainInsain Date: Tue, 9 Jun 2026 10:25:51 -0700 Subject: [PATCH 3/7] added end animation --- .../team3663/scouting_app/activities/SubmitData.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/team3663/scouting_app/activities/SubmitData.java b/app/src/main/java/com/team3663/scouting_app/activities/SubmitData.java index 6ed5d0e1..49d6a5c9 100644 --- a/app/src/main/java/com/team3663/scouting_app/activities/SubmitData.java +++ b/app/src/main/java/com/team3663/scouting_app/activities/SubmitData.java @@ -347,6 +347,9 @@ public void animateAchievementEnd() { .withEndAction(new Runnable() { @Override public void run() { + submitDataBinding.imageAchievementOpen.setVisibility(View.INVISIBLE); + submitDataBinding.textAchievementDesc.setVisibility(View.INVISIBLE); + submitDataBinding.textAchievementTitle.setVisibility(View.INVISIBLE); submitDataBinding.imageAchievementOpen.animate().scaleX(1.0f).scaleY(1.0f).setDuration(500); } }); @@ -362,14 +365,6 @@ public void run() { submitDataBinding.imageAchievement.animate() .scaleX(0.0f) .setDuration(750) - .withEndAction(new Runnable() { - @Override - public void run() { - submitDataBinding.imageAchievementOpen.setVisibility(View.INVISIBLE); - submitDataBinding.textAchievementDesc.setVisibility(View.INVISIBLE); - submitDataBinding.textAchievementTitle.setVisibility(View.INVISIBLE); - } - }) .start(); } From 293cb6050733a424ce20ced9aac18f354c31187e Mon Sep 17 00:00:00 2001 From: AbstainInsain Date: Mon, 22 Jun 2026 19:55:02 -0700 Subject: [PATCH 4/7] successfully made the text disapear before the image scaled down --- .idea/deploymentTargetSelector.xml | 4 +-- .../scouting_app/activities/SubmitData.java | 25 ++++++++++--------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index 8779cac9..b407e9e5 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -4,10 +4,10 @@