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"> + + + + + + + + + + + + + + + + +