diff --git a/Generator/.idea/planningMode.xml b/Generator/.idea/planningMode.xml
index b38f2cc..c085dcb 100644
--- a/Generator/.idea/planningMode.xml
+++ b/Generator/.idea/planningMode.xml
@@ -4,6 +4,8 @@
diff --git a/Generator/app/build.gradle.kts b/Generator/app/build.gradle.kts
index 013b1b0..6b94ed0 100644
--- a/Generator/app/build.gradle.kts
+++ b/Generator/app/build.gradle.kts
@@ -11,8 +11,8 @@ android {
minSdk = 23
targetSdk = 34
versionCode = 5
-
versionName = "2.3"
+ multiDexEnabled = true // Required since you added the multidex dependency
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
@@ -26,6 +26,7 @@ android {
)
}
}
+
compileOptions {
isCoreLibraryDesugaringEnabled = true
sourceCompatibility = JavaVersion.VERSION_17
@@ -36,42 +37,51 @@ android {
resources {
excludes += "META-INF/DEPENDENCIES"
excludes += "META-INF/INDEX.LIST"
+ // CRITICAL: WPILib libraries include desktop JNI files.
+ // This prevents duplicate file and incompatible native architecture errors.
+ excludes += "**/libntcore.dylib"
+ excludes += "**/ntcore.dll"
+ excludes += "**/libntcore.so"
+ excludes += "**/libwpiutil.dylib"
+ excludes += "**/wpiutil.dll"
+ excludes += "**/libwpiutil.so"
}
}
}
+
dependencies {
+ // Desugaring & MultiDex
+ coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5")
+ implementation("androidx.multidex:multidex:2.0.1")
+
+ // Core Android UI
implementation(libs.activity.ktx)
implementation(libs.appcompat)
implementation(libs.material)
implementation(libs.activity)
implementation(libs.constraintlayout)
- dependencies {
- coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5")
- implementation("androidx.multidex:multidex:2.0.1")
- // Core Android UI
- implementation(libs.appcompat)
- implementation(libs.material)
- implementation(libs.activity)
- implementation(libs.constraintlayout)
+ // FRC NetworkTables Dependencies (Kotlin DSL Syntax)
+ implementation(libs.ntcore.java)
+ implementation(libs.wpiutil.java)
- // Google Sheets & Core API (The "1.x" branch fix)
- implementation("com.google.apis:google-api-services-sheets:v4-rev581-1.25.0")
- implementation("com.google.api-client:google-api-client:1.32.1")
- implementation("com.google.oauth-client:google-oauth-client:1.32.1")
- implementation("com.google.http-client:google-http-client-gson:1.42.3")
- implementation("com.google.auth:google-auth-library-oauth2-http:1.15.0")
-
- // JSON & Networking (Consolidated to stable versions)
- implementation("com.google.code.gson:gson:2.10.1")
- implementation("com.fasterxml.jackson.core:jackson-databind:2.15.2")
- implementation("com.squareup.okhttp3:okhttp:4.12.0")
-
- // Testing
- testImplementation(libs.junit)
- androidTestImplementation(libs.ext.junit)
- androidTestImplementation(libs.espresso.core)
+ // Google Sheets & Core API
+ implementation("com.google.apis:google-api-services-sheets:v4-rev581-1.25.0") {
+ exclude(group = "com.google.guava", module = "listenablefuture")
}
+ implementation("com.google.api-client:google-api-client:1.32.1")
+ implementation("com.google.oauth-client:google-oauth-client:1.32.1")
+ implementation("com.google.http-client:google-http-client-gson:1.42.3")
+ implementation("com.google.auth:google-auth-library-oauth2-http:1.15.0")
+ // JSON & Networking
+ implementation("com.google.code.gson:gson:2.10.1")
+ implementation("com.fasterxml.jackson.core:jackson-databind:2.15.2")
+ implementation("com.squareup.okhttp3:okhttp:4.12.0")
+
+ // Testing
+ testImplementation(libs.junit)
+ androidTestImplementation(libs.ext.junit)
+ androidTestImplementation(libs.espresso.core)
}
diff --git a/Generator/app/src/main/AndroidManifest.xml b/Generator/app/src/main/AndroidManifest.xml
index 88d560e..faec459 100644
--- a/Generator/app/src/main/AndroidManifest.xml
+++ b/Generator/app/src/main/AndroidManifest.xml
@@ -1,6 +1,7 @@
+
{
@@ -30,8 +55,33 @@ public class EventsActivity extends AppCompatActivity {
startActivity(intent);
});
nextButton.setOnClickListener((v) -> {
- Intent intent = new Intent(this, ColorActivity.class);
- startActivity(intent);
+ String Eventn1 = eventn1.getText().toString();
+ String Eventn2 = eventn2.getText().toString();
+ String Eventn3 = eventn3.getText().toString();
+ String Eventn4 = eventn4.getText().toString();
+
+ String Eventa1 = eventa1.getText().toString();
+ String Eventa2 = eventa2.getText().toString();
+ String Eventa3 = eventa3.getText().toString();
+ String Eventa4 = eventa4.getText().toString();
+ if (Eventn1.matches("") ||
+ Eventn2.matches("") ||
+ Eventa1.matches("") ||
+ Eventa2.matches("")) {
+ Toast.makeText(this, "fill at least events 1 and 2", Toast.LENGTH_LONG).show();
+ } else {
+ Data.setEventn1(Eventn1);
+ Data.setEventn2(Eventn2);
+ Data.setEventn3(Eventn3);
+ Data.setEventn4(Eventn4);
+
+ Data.setEventa1(Eventa1);
+ Data.setEventa2(Eventa2);
+ Data.setEventa3(Eventa3);
+ Data.setEventa4(Eventa4);
+
+ Intent intent = new Intent(this, ColorActivity.class);
+ startActivity(intent); }
});
}
}
\ No newline at end of file
diff --git a/Generator/app/src/main/java/com/example/generator/MainActivity.java b/Generator/app/src/main/java/com/example/generator/MainActivity.java
index 2dd91c1..2b1b6f6 100644
--- a/Generator/app/src/main/java/com/example/generator/MainActivity.java
+++ b/Generator/app/src/main/java/com/example/generator/MainActivity.java
@@ -10,8 +10,10 @@ import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
+
public class MainActivity extends AppCompatActivity {
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -27,5 +29,6 @@ public class MainActivity extends AppCompatActivity {
Intent intent = new Intent(this, EventsActivity.class);
startActivity(intent);
});
+
}
}
\ No newline at end of file
diff --git a/Generator/app/src/main/java/com/example/generator/MakeAutoActivity.java b/Generator/app/src/main/java/com/example/generator/MakeAutoActivity.java
index 2f78f8b..4874168 100644
--- a/Generator/app/src/main/java/com/example/generator/MakeAutoActivity.java
+++ b/Generator/app/src/main/java/com/example/generator/MakeAutoActivity.java
@@ -10,6 +10,7 @@ import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
+
public class MakeAutoActivity extends AppCompatActivity {
@Override
diff --git a/Generator/app/src/main/java/com/example/generator/MakeStartingActivity.java b/Generator/app/src/main/java/com/example/generator/MakeStartingActivity.java
index 4d79b48..fc7f8f8 100644
--- a/Generator/app/src/main/java/com/example/generator/MakeStartingActivity.java
+++ b/Generator/app/src/main/java/com/example/generator/MakeStartingActivity.java
@@ -23,12 +23,13 @@ import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
+
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.util.Objects;
public class MakeStartingActivity extends AppCompatActivity {
- public static Data Data = new Data();
+
private ImageView imageView;
private int numPos = -1;
@@ -65,7 +66,7 @@ public class MakeStartingActivity extends AppCompatActivity {
});
- switch (Data.getColorS()) {
+ switch (EventsActivity.Data.getColorS()) {
case "Orange":
ColorS = "Orange";
mainColorResS = R.color.orangeMain;
@@ -103,7 +104,7 @@ public class MakeStartingActivity extends AppCompatActivity {
break;
}
- switch (Data.getColorP()) {
+ switch (EventsActivity.Data.getColorP()) {
case "Orange":
ColorP = "Orange";
mainColorResP = R.color.orangeMain;
@@ -176,8 +177,8 @@ public class MakeStartingActivity extends AppCompatActivity {
Toast.makeText(this, "choose a image", Toast.LENGTH_SHORT).show();
Log.d("test", Base64img);
} else {
- Data.setNumPos(numPos);
- Data.setBase64(Base64img);
+ EventsActivity.Data.setNumPos(numPos);
+ EventsActivity.Data.setBase64(Base64img);
Intent intent = new Intent(this, StartingPreview.class);
startActivity(intent);
}
diff --git a/Generator/app/src/main/java/com/example/generator/StartingPreview.java b/Generator/app/src/main/java/com/example/generator/StartingPreview.java
index 5f78a6a..9f45bc4 100644
--- a/Generator/app/src/main/java/com/example/generator/StartingPreview.java
+++ b/Generator/app/src/main/java/com/example/generator/StartingPreview.java
@@ -21,6 +21,7 @@ import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
+
public class StartingPreview extends AppCompatActivity {
private int mainColorResP = 0;
@@ -44,7 +45,7 @@ public class StartingPreview extends AppCompatActivity {
- switch (MakeStartingActivity.Data.getColorS()) {
+ switch (EventsActivity.Data.getColorS()) {
case "Orange":
ColorS = "Orange";
mainColorResS = R.color.orangeMain;
@@ -82,7 +83,7 @@ public class StartingPreview extends AppCompatActivity {
break;
}
- switch (MakeStartingActivity.Data.getColorP ()) {
+ switch (EventsActivity.Data.getColorP ()) {
case "Orange":
ColorP = "Orange";
mainColorResP = R.color.orangeMain;
@@ -121,7 +122,7 @@ public class StartingPreview extends AppCompatActivity {
}
ImageView imageView2 = findViewById(R.id.imageView2);
- String imageBase64 = MakeStartingActivity.Data.getBase64();
+ String imageBase64 = EventsActivity.Data.getBase64();
if (imageBase64 != null && !imageBase64.isEmpty()) {
try {
@@ -136,7 +137,7 @@ public class StartingPreview extends AppCompatActivity {
RadioGroup radioGroup = findViewById(R.id.radioGroup);
int totalPositions;
- totalPositions = MakeStartingActivity.Data.getNumPos();
+ totalPositions = EventsActivity.Data.getNumPos();
int whiteColor = ContextCompat.getColor(this, R.color.white);
int mainColor = ContextCompat.getColor(this, R.color.orangeMain);
ColorStateList buttonTintList = ColorStateList.valueOf(mainColor);
@@ -169,5 +170,6 @@ public class StartingPreview extends AppCompatActivity {
Intent intent = new Intent(this, MakeAutoActivity.class);
startActivity(intent);
});
+
}
}
\ No newline at end of file
diff --git a/Generator/app/src/main/res/drawable/looppng.webp b/Generator/app/src/main/res/drawable/looppng.webp
new file mode 100644
index 0000000..61fa691
Binary files /dev/null and b/Generator/app/src/main/res/drawable/looppng.webp differ
diff --git a/Generator/app/src/main/res/layout/activity_events.xml b/Generator/app/src/main/res/layout/activity_events.xml
index 44b7180..716e21b 100644
--- a/Generator/app/src/main/res/layout/activity_events.xml
+++ b/Generator/app/src/main/res/layout/activity_events.xml
@@ -9,6 +9,128 @@
tools:context=".EventsActivity">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+