diff --git a/app/src/main/java/com/ridgebotics/ridgescout/ui/scouting/MatchScoutingFragment.java b/app/src/main/java/com/ridgebotics/ridgescout/ui/scouting/MatchScoutingFragment.java
index ffcdd1f..be0acb8 100644
--- a/app/src/main/java/com/ridgebotics/ridgescout/ui/scouting/MatchScoutingFragment.java
+++ b/app/src/main/java/com/ridgebotics/ridgescout/ui/scouting/MatchScoutingFragment.java
@@ -49,8 +49,9 @@ public class MatchScoutingFragment extends Fragment {
alliance_position = SettingsManager.getAllyPos();
username = SettingsManager.getUsername();
- binding.username.setText(username);
- binding.alliancePosText.setText(alliance_position);
+ binding.bindicator.setUsername(username);
+ binding.bindicator.setAlliancePos(alliance_position);
+ binding.bindicator.bringToFront();
binding.matchTeamCard.setVisibility(View.GONE);
clear_fields();
@@ -66,7 +67,7 @@ public class MatchScoutingFragment extends Fragment {
- binding.nextButton.setOnClickListener(v -> {
+ binding.bindicator.match_indicator_next_button.setOnClickListener(v -> {
if(edited) save();
SettingsManager.setMatchNum(cur_match_num+1);
cur_match_num += 1;
@@ -75,21 +76,21 @@ public class MatchScoutingFragment extends Fragment {
});
if(SettingsManager.getEnableQuickAlliancePosChange())
- binding.fileIndicator.setOnClickListener(v -> {
+ binding.bindicator.setOnClickListener(v -> {
// if(e.getAction() != MotionEvent.ACTION_MOVE) return true;
// System.out.println(e.getAxisValue(0));
if(edited) save();
alliance_position = incrementMatchPos(alliance_position);
SettingsManager.setAllyPos(alliance_position);
- binding.alliancePosText.setText(alliance_position);
+ binding.bindicator.setAlliancePos(alliance_position);
update_match_num();
update_scouting_data();
// return true;
});
- binding.backButton.setOnClickListener(v -> {
+ binding.bindicator.match_indicator_back_button.setOnClickListener(v -> {
if(edited) save();
SettingsManager.setMatchNum(cur_match_num-1);
cur_match_num -= 1;
@@ -159,7 +160,7 @@ public class MatchScoutingFragment extends Fragment {
}
public void set_indicator_color(int color){
- binding.fileIndicator.setBackgroundColor(color);
+ binding.bindicator.setColor(color);
}
public void update_asm(){
@@ -239,18 +240,18 @@ public class MatchScoutingFragment extends Fragment {
edited = false;
- binding.matchnum.setText(String.valueOf(cur_match_num+1));
+ binding.bindicator.setMatchNum(String.valueOf(cur_match_num+1));
if(cur_match_num <= 0){
- binding.backButton.setVisibility(View.GONE);
+ binding.bindicator.match_indicator_back_button.setVisibility(View.GONE);
}else{
- binding.backButton.setVisibility(View.VISIBLE);
+ binding.bindicator.match_indicator_back_button.setVisibility(View.VISIBLE);
}
if(cur_match_num >= event.matches.size()-1){
- binding.nextButton.setVisibility(View.GONE);
+ binding.bindicator.match_indicator_next_button.setVisibility(View.GONE);
}else{
- binding.nextButton.setVisibility(View.VISIBLE);
+ binding.bindicator.match_indicator_next_button.setVisibility(View.VISIBLE);
}
}
@@ -272,7 +273,7 @@ public class MatchScoutingFragment extends Fragment {
break;
}
- binding.barTeamNum.setText(String.valueOf(team_num));
+ binding.bindicator.setTeamNum(String.valueOf(team_num));
frcTeam team = null;
for(int i=0; i < event.teams.size(); i++){
@@ -385,7 +386,7 @@ public class MatchScoutingFragment extends Fragment {
private void enableRescoutButton(){
set_indicator_color(rescout ? rescout_color : saved_color);
- binding.fileIndicator.setOnLongClickListener(v -> {
+ binding.bindicator.setOnLongClickListener(v -> {
rescout = !rescout;
if(rescout){
set_indicator_color(rescout_color);
@@ -402,6 +403,6 @@ public class MatchScoutingFragment extends Fragment {
}
private void disableRescoutButton(){
- binding.fileIndicator.setOnLongClickListener(null);
+ binding.bindicator.setOnLongClickListener(null);
}
}
diff --git a/app/src/main/java/com/ridgebotics/ridgescout/ui/views/MatchScoutingIndicator.java b/app/src/main/java/com/ridgebotics/ridgescout/ui/views/MatchScoutingIndicator.java
new file mode 100644
index 0000000..8571d85
--- /dev/null
+++ b/app/src/main/java/com/ridgebotics/ridgescout/ui/views/MatchScoutingIndicator.java
@@ -0,0 +1,91 @@
+package com.ridgebotics.ridgescout.ui.views;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.Color;
+import android.graphics.PorterDuff;
+import android.graphics.drawable.Drawable;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+import androidx.constraintlayout.widget.ConstraintLayout;
+
+import com.ridgebotics.ridgescout.R;
+import com.ridgebotics.ridgescout.types.frcTeam;
+
+import org.w3c.dom.Text;
+
+// A view for displaying information about a team.
+public class MatchScoutingIndicator extends RelativeLayout {
+ public MatchScoutingIndicator(Context context, @Nullable AttributeSet attrs) {
+ super(context, attrs);
+ init(context);
+ }
+
+ public MatchScoutingIndicator(Context context) {
+ super(context);
+ init(context);
+ }
+
+ public TextView match_indicator_alliance_pos_text;
+ public TextView match_indicator_bar_team_num;
+ public TextView match_indicator_matchnum;
+ public TextView match_indicator_username;
+ public ImageButton match_indicator_back_button;
+ public ImageButton match_indicator_next_button;
+ private ConstraintLayout box;
+ private View coloredBackground;
+
+ public void init(Context context) {
+ LayoutInflater.from(context).inflate(R.layout.view_match_scouting_indicator, this, true);
+ match_indicator_back_button = findViewById(R.id.match_indicator_back_button);
+ match_indicator_next_button = findViewById(R.id.match_indicator_next_button);
+ match_indicator_alliance_pos_text = findViewById(R.id.match_indicator_alliance_pos_text);
+ match_indicator_username = findViewById(R.id.match_indicator_username);
+ match_indicator_matchnum = findViewById(R.id.match_indicator_matchnum);
+ match_indicator_bar_team_num = findViewById(R.id.match_indicator_bar_team_num);
+ box = findViewById(R.id.file_indicator_box);
+ coloredBackground = findViewById(R.id.match_indicator_background);
+ }
+
+ public void setUsername(String username){
+ match_indicator_username.setText(username);
+ }
+
+ public void setAlliancePos(String alliancePos){
+ match_indicator_alliance_pos_text.setText(alliancePos);
+ }
+
+ public void setMatchNum(String matchNum){
+ match_indicator_matchnum.setText(matchNum);
+ }
+
+ public void setTeamNum(String teamNum){
+ match_indicator_bar_team_num.setText(teamNum);
+ }
+
+ public void setColor(int color){
+ Drawable drawable = box.getBackground();
+ drawable.mutate();
+ drawable.setColorFilter(color, PorterDuff.Mode.SRC_ATOP);
+
+ float[] hsv = new float[3];
+ Color.colorToHSV(color,hsv);
+
+ coloredBackground.setBackgroundColor(
+ Color.HSVToColor(220, new float[]{
+ hsv[0],
+ Math.min(hsv[1], 0.75f),
+ Math.min(hsv[2], 0.5f)
+ })
+ );
+ }
+}
diff --git a/app/src/main/res/.DS_Store b/app/src/main/res/.DS_Store
new file mode 100644
index 0000000..746f05c
Binary files /dev/null and b/app/src/main/res/.DS_Store differ
diff --git a/app/src/main/res/drawable/triangle_left.xml b/app/src/main/res/drawable/triangle_left.xml
new file mode 100644
index 0000000..87ed119
--- /dev/null
+++ b/app/src/main/res/drawable/triangle_left.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/triangle_right.xml b/app/src/main/res/drawable/triangle_right.xml
new file mode 100644
index 0000000..a4cabee
--- /dev/null
+++ b/app/src/main/res/drawable/triangle_right.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/layout/fragment_scouting_match.xml b/app/src/main/res/layout/fragment_scouting_match.xml
index b494abd..21e688a 100644
--- a/app/src/main/res/layout/fragment_scouting_match.xml
+++ b/app/src/main/res/layout/fragment_scouting_match.xml
@@ -5,16 +5,28 @@
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
+
+
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="0.0">
@@ -25,16 +37,15 @@
android:layout_alignParentEnd="true"
android:layout_margin="5dp"
android:background="@drawable/border"
- android:padding="10dp"
- android:orientation="horizontal">
+ android:orientation="horizontal"
+ android:padding="10dp">
-
+ android:text="Scouting Notice"
+ android:textAppearance="@style/TextAppearance.MaterialComponents.Subtitle1">
@@ -46,75 +57,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/view_match_scouting_indicator.xml b/app/src/main/res/layout/view_match_scouting_indicator.xml
new file mode 100644
index 0000000..98ebcf2
--- /dev/null
+++ b/app/src/main/res/layout/view_match_scouting_indicator.xml
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+