Compare commits

...

10 Commits

Author SHA1 Message Date
0b0b0410fa fixed stuff 2026-10-02 16:31:25 -04:00
1a5252f48d finsihed generator 2026-10-01 16:20:58 -04:00
e87e2fd85d finsihed generator 2026-10-01 10:59:11 -04:00
f37db4ace0 added layout for end screen 2026-09-30 11:19:16 -04:00
64208bef11 fixed the levels 2026-09-29 11:30:07 -04:00
f1bb8d28b4 fixed the levels 2026-09-29 11:06:29 -04:00
4a27c34db6 fixed the levels 2026-09-29 10:57:04 -04:00
252811daa5 added level option in checkbox screen 2026-09-29 10:38:02 -04:00
df66702b62 removed unnecessary stuff from copying MakeTeleActivity code into MakeCheckActivity 2026-09-15 14:38:17 +00:00
135d9ae243 made code server work 2026-09-15 14:31:57 +00:00
13 changed files with 363 additions and 34 deletions

View File

@@ -27,6 +27,18 @@
<option name="screenX" value="720" />
<option name="screenY" value="1280" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="36" />
<option name="brand" value="qti" />
<option name="codename" value="Frogger" />
<option name="id" value="Frogger" />
<option name="labId" value="google" />
<option name="manufacturer" value="Nothing" />
<option name="name" value="Phone (4a)" />
<option name="screenDensity" value="480" />
<option name="screenX" value="1224" />
<option name="screenY" value="2720" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="33" />
<option name="brand" value="Infinix" />
@@ -1053,6 +1065,18 @@
<option name="screenX" value="1440" />
<option name="screenY" value="3088" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="36" />
<option name="brand" value="samsung" />
<option name="codename" value="dm3qksx" />
<option name="id" value="dm3qksx" />
<option name="labId" value="google" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy S23 Ultra" />
<option name="screenDensity" value="450" />
<option name="screenX" value="1080" />
<option name="screenY" value="2316" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="34" />
<option name="brand" value="motorola" />
@@ -1506,6 +1530,18 @@
<option name="screenX" value="720" />
<option name="screenY" value="1600" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="35" />
<option name="brand" value="Xiaomi" />
<option name="codename" value="houji" />
<option name="id" value="houji" />
<option name="labId" value="google" />
<option name="manufacturer" value="Xiaomi" />
<option name="name" value="14" />
<option name="screenDensity" value="480" />
<option name="screenX" value="1200" />
<option name="screenY" value="2670" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="34" />
<option name="brand" value="google" />

31
.idea/workspace.xml generated
View File

@@ -24,8 +24,8 @@
}</component>
<component name="GithubPullRequestsUISettings"><![CDATA[{
"selectedUrlAndAccountId": {
"url": "https://github.com/missluce54/Reefscape-Scouting-App.git",
"accountId": "ed4354f5-1e2d-42fe-ae13-72a548075395"
"url": "https://github.com/missluce54/Reefscape-Scouting-App",
"accountId": "4df7fa0d-c486-4a64-b4eb-b84d7595dcb0"
}
}]]></component>
<component name="ProjectColorInfo">{
@@ -37,20 +37,21 @@
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">{
&quot;keyToString&quot;: {
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.cidr.known.project.marker&quot;: &quot;true&quot;,
&quot;RunOnceActivity.git.unshallow&quot;: &quot;true&quot;,
&quot;RunOnceActivity.readMode.enableVisualFormatting&quot;: &quot;true&quot;,
&quot;android.gradle.sync.needed&quot;: &quot;true&quot;,
&quot;cf.first.check.clang-format&quot;: &quot;false&quot;,
&quot;cidr.known.project.marker&quot;: &quot;true&quot;,
&quot;git-widget-placeholder&quot;: &quot;main&quot;,
&quot;kotlin-language-version-configured&quot;: &quot;true&quot;,
&quot;last_opened_file_path&quot;: &quot;C:/Users/cayde/Desktop/ScoutingApp&quot;
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"RunOnceActivity.ShowReadmeOnStart": "true",
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
"RunOnceActivity.cidr.known.project.marker": "true",
"RunOnceActivity.git.unshallow": "true",
"RunOnceActivity.readMode.enableVisualFormatting": "true",
"android.gradle.sync.needed": "true",
"cf.first.check.clang-format": "false",
"cidr.known.project.marker": "true",
"git-widget-placeholder": "main",
"kotlin-language-version-configured": "true",
"last_opened_file_path": "C:/Users/cayde/Desktop/ScoutingApp"
}
}</component>
}]]></component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="e6962293-3789-4c0b-8e8d-572b4ba78f5f" name="Changes" comment="" />

View File

@@ -3,6 +3,9 @@
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="29" />
<application
android:allowBackup="true"
@@ -63,6 +66,10 @@
android:name=".MakeCheckActivity"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".EndActivity"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
</application>
</manifest>

View File

@@ -46,6 +46,8 @@ public class Data {
private String CheckBox4;
private int climbLevels;
public String getBase64() {
return base64;
@@ -286,6 +288,12 @@ public class Data {
return CheckBox4;
}
public int getClimbLevels(){
return climbLevels;}
public void setClimbLevels(int climbLevels){
this.climbLevels = climbLevels;
}
}

View File

@@ -0,0 +1,155 @@
package com.example.generator;
import android.content.ContentValues;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.widget.TextView;
import android.widget.Toast;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import com.google.android.material.button.MaterialButton;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.io.OutputStream;
public class EndActivity extends AppCompatActivity {
private String ColorP = "";
private String ColorS = "";
private int mainColorResP = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_end);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
if (EventsActivity.Data.getColorS() != null) {
ColorS = EventsActivity.Data.getColorS();
}
if (EventsActivity.Data.getColorP() != null) {
ColorP = EventsActivity.Data.getColorP();
}
MaterialButton backButton = findViewById(R.id.backButton);
MaterialButton nextButton = findViewById(R.id.nextButton);
backButton.setOnClickListener((v) -> {
Intent intent = new Intent(this, MakeAutoActivity.class);
startActivity(intent);
});
nextButton.setOnClickListener((v) -> {
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("ColorP", ColorP);
jsonObject.put("ColorS", ColorS);
jsonObject.put("startingPositions", EventsActivity.Data.getNumPos());
jsonObject.put("eventn1", EventsActivity.Data.getEventn1());
jsonObject.put("eventa1", EventsActivity.Data.getEventa1());
jsonObject.put("eventn2", EventsActivity.Data.getEventn2());
jsonObject.put("eventa2", EventsActivity.Data.getEventa2());
jsonObject.put("eventn3", EventsActivity.Data.getEventn3());
jsonObject.put("eventa3", EventsActivity.Data.getEventa3());
jsonObject.put("eventn4", EventsActivity.Data.getEventn4());
jsonObject.put("eventa4", EventsActivity.Data.getEventa4());
jsonObject.put("numScoreObjects", EventsActivity.Data.getNumScoreOb());
jsonObject.put("ScoreOb1", EventsActivity.Data.getScoreOb1());
jsonObject.put("ScoreOb2", EventsActivity.Data.getScoreOb2());
jsonObject.put("ScoreOb3", EventsActivity.Data.getScoreOb3());
jsonObject.put("ScoreOb4", EventsActivity.Data.getScoreOb4());
jsonObject.put("ScoreOb5", EventsActivity.Data.getScoreOb5());
jsonObject.put("ScoreOb6", EventsActivity.Data.getScoreOb6());
jsonObject.put("ScoreOb7", EventsActivity.Data.getScoreOb7());
jsonObject.put("ScoreOb8", EventsActivity.Data.getScoreOb8());
jsonObject.put("ScoreOb9", EventsActivity.Data.getScoreOb9());
jsonObject.put("NumButtonObAuto", new JSONArray(EventsActivity.Data.getNumButtonObAuto()));
jsonObject.put("NumButtonObTeleop", new JSONArray(EventsActivity.Data.getNumButtonObTeleop()));
jsonObject.put("valueButtonsAuto", new JSONArray(EventsActivity.Data.getValueButtonsAuto()));
jsonObject.put("valueButtonsTele", new JSONArray(EventsActivity.Data.getValueButtonsTele()));
jsonObject.put("numCheckBoxes", EventsActivity.Data.getNumCheckBoxes());
jsonObject.put("CheckBox1", EventsActivity.Data.getCheckBox1());
jsonObject.put("CheckBox2", EventsActivity.Data.getCheckBox2());
jsonObject.put("CheckBox3", EventsActivity.Data.getCheckBox3());
jsonObject.put("CheckBox4", EventsActivity.Data.getCheckBox4());
jsonObject.put("climbLevels", EventsActivity.Data.getClimbLevels());
String jsonString = jsonObject.toString(4);
TextView textView = findViewById(R.id.textView4);
textView.setText(jsonString);
jsonObject.put("Base64", EventsActivity.Data.getBase64());
jsonString = jsonObject.toString(4);
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DISPLAY_NAME, "ScountInfo.json");
values.put(MediaStore.MediaColumns.MIME_TYPE, "json/plain");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
values.put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_DOWNLOADS);
}
Uri externalUri;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
externalUri = MediaStore.Downloads.EXTERNAL_CONTENT_URI;
} else {
externalUri = MediaStore.Files.getContentUri("external");
}
Uri fileUri = getContentResolver().insert(externalUri, values);
if (fileUri != null) {
try (OutputStream outputStream = getContentResolver().openOutputStream(fileUri)) {
if (outputStream != null) {
outputStream.write(jsonString.getBytes());
outputStream.flush();
Toast.makeText(this, "File saved to Downloads", Toast.LENGTH_SHORT).show();
}
}
} else {
throw new IOException();
}
} catch (JSONException | IOException e) {
throw new RuntimeException(e);
}
});
switch (ColorP) {
case "Green": mainColorResP = R.color.greenMain; break;
case "Blue": mainColorResP = R.color.blueMain; break;
case "Pink": mainColorResP = R.color.pinkMain; break;
case "Purple": mainColorResP = R.color.purpleMain; break;
case "Red": mainColorResP = R.color.redMain; break;
case "Yellow": mainColorResP = R.color.yellowMain; break;
default: mainColorResP = R.color.orangeMain; break;
}
if (mainColorResP != 0) {
int actualColor = ContextCompat.getColor(this, mainColorResP);
ColorStateList tintList = ColorStateList.valueOf(actualColor);
ViewCompat.setBackgroundTintList(nextButton, tintList);
ViewCompat.setBackgroundTintList(backButton, tintList);
nextButton.setStrokeWidth(0);
backButton.setStrokeWidth(0);
}
}
}

View File

@@ -40,7 +40,7 @@ public class MainActivity extends AppCompatActivity {
startActivity(intent);
});
Button DebugButton = (Button) findViewById(R.id.Debug);
//DebugButton.setVisibility(View.GONE);
DebugButton.setVisibility(View.GONE);
DebugButton.setOnClickListener((v) -> {
Intent intent = new Intent(this, DebugActivity.class);
startActivity(intent);

View File

@@ -25,12 +25,6 @@ public class MakeCheckActivity extends AppCompatActivity {
private EditText Ob2;
private EditText Ob3;
private EditText Ob4;
private EditText Ob5;
private EditText Ob6;
private EditText Ob7;
private EditText Ob8;
private EditText Ob9;
private String ColorP = "";
private String ColorS = "";
private int mainColorResP = 0;
@@ -51,6 +45,7 @@ public class MakeCheckActivity extends AppCompatActivity {
EditText Ob2 = (EditText) findViewById(R.id.CheckBox2);
EditText Ob3 = (EditText) findViewById(R.id.CheckBox3);
EditText Ob4 = (EditText) findViewById(R.id.CheckBox4);
EditText Ob5 = (EditText) findViewById(R.id.Levels);
Ob1.setVisibility(View.GONE);
Ob2.setVisibility(View.GONE);
Ob3.setVisibility(View.GONE);
@@ -103,8 +98,11 @@ public class MakeCheckActivity extends AppCompatActivity {
EventsActivity.Data.setCheckBox2(Ob2.getText().toString());
EventsActivity.Data.setCheckBox3(Ob3.getText().toString());
EventsActivity.Data.setCheckBox4(Ob4.getText().toString());
EventsActivity.Data.setNumCheckBoxes(Integer.parseInt(CheckBoxObjects.getText().toString()));
Intent intent = new Intent(this, MakeAutoActivity2.class);
String levelsStr = Ob5.getText().toString().trim();
EventsActivity.Data.setClimbLevels(levelsStr.isEmpty() ? 0 : Integer.parseInt(levelsStr));
String checkBoxesStr = CheckBoxObjects.getText().toString().trim();
EventsActivity.Data.setNumCheckBoxes(checkBoxesStr.isEmpty() ? 0 : Integer.parseInt(checkBoxesStr));
Intent intent = new Intent(this, EndActivity.class);
startActivity(intent);
});

View File

@@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black"
tools:context=".EndActivity">
<TextView
android:id="@+id/textPine4"
android:layout_width="0dp"
android:layout_height="32dp"
android:ems="10"
android:text="generate config file"
android:textAlignment="center"
android:textColor="@color/white"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/nextButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginEnd="8dp"
android:backgroundTint="@color/orangeMain"
android:text="Make file"
app:cornerRadius="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/backButton" />
<Button
android:id="@+id/backButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="4dp"
android:backgroundTint="@color/orangeMain"
android:text="Back"
app:cornerRadius="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/nextButton"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/textView5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Preview of file (without base64 image)"
android:textAlignment="center"
android:textColor="@color/white"
app:layout_constraintBottom_toTopOf="@+id/scrollView2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textPine4" />
<ScrollView
android:id="@+id/scrollView2"
android:layout_width="409dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/nextButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView5">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/textView4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/white" />
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -10,7 +10,7 @@
<TextView
android:id="@+id/textPine4"
android:id="@+id/textViewTitle"
android:layout_width="0dp"
android:layout_height="32dp"
android:ems="10"
@@ -163,7 +163,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textPine4" />
app:layout_constraintTop_toBottomOf="@+id/textViewTitle" />
<Button
android:id="@+id/nextButton"

View File

@@ -9,7 +9,7 @@
tools:context=".MakeAutoActivity2">
<TextView
android:id="@+id/textPine4"
android:id="@+id/textViewTitle"
android:layout_width="0dp"
android:layout_height="32dp"
android:ems="10"
@@ -33,7 +33,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textPine4" />
app:layout_constraintTop_toBottomOf="@+id/textViewTitle" />
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabLayout"

View File

@@ -10,7 +10,7 @@
<TextView
android:id="@+id/textPine4"
android:id="@+id/textViewTitle"
android:layout_width="0dp"
android:layout_height="32dp"
android:ems="10"
@@ -37,6 +37,21 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/NumCheckBox" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/Levels"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="How many levels?"
android:imeOptions="actionDone"
android:inputType="text|textCapSentences"
android:maxLines="1"
android:textColor="@color/white"
android:textColorHint="@color/gray_hint"
app:layout_constraintBottom_toTopOf="@+id/backButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/CheckBox2"
android:layout_width="0dp"
@@ -94,7 +109,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textPine4" />
app:layout_constraintTop_toBottomOf="@+id/textViewTitle" />
<Button
android:id="@+id/nextButton"
@@ -127,13 +142,35 @@
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="there is 2 check boxes by defualt you can't edit, in auto 'doesn't have auto' and in teleop 'robot dead'"
android:gravity="center_horizontal"
android:text="there is 2 check boxes by defualt you can't edit, in auto 'doesn't have auto' and in teleop 'robot dead'"
android:textColor="@color/white"
app:layout_constraintBottom_toTopOf="@+id/backButton"
app:layout_constraintBottom_toTopOf="@+id/guideline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/CheckBox3" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintGuide_percent="0.5"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="How many climb levels"
android:textColor="@color/white"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.545"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -9,7 +9,7 @@
tools:context=".MakeTeleActivity">
<TextView
android:id="@+id/textPine4"
android:id="@+id/textViewTitle"
android:layout_width="0dp"
android:layout_height="32dp"
android:ems="10"
@@ -33,7 +33,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textPine4" />
app:layout_constraintTop_toBottomOf="@+id/textViewTitle" />
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabLayout"

0
Generator/gradlew vendored Normal file → Executable file
View File