need to pull

This commit is contained in:
24nicholsl 2025-02-25 11:54:13 -05:00
commit 0e35c000a5
5 changed files with 156 additions and 25 deletions

View File

@ -36,10 +36,11 @@ public class AutoActivity extends AppCompatActivity {
private Button l1Button; private Button l1Button;
private Button processorButton; private Button processorButton;
private Button netButton; private Button netButton;
private String eventString, matchString, TeamString; private String eventString, matchString, TeamString, startingPostionString;
public static final String Event_Key = "EVENTCONFIRM"; public static final String Event_Key = "EVENTCONFIRM";
public static final String Match_key = "MATCHCONFIRM"; public static final String Match_key = "MATCHCONFIRM";
public static final String Team_key = "TEAMCONFIRM"; public static final String Team_key = "TEAMCONFIRM";
public static final String Postion_key = "POSTIONKEY";
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -55,6 +56,7 @@ public class AutoActivity extends AppCompatActivity {
eventString = intentinput.getStringExtra(MainActivity.Event_Key); eventString = intentinput.getStringExtra(MainActivity.Event_Key);
matchString = intentinput.getStringExtra(MainActivity.Match_key); matchString = intentinput.getStringExtra(MainActivity.Match_key);
TeamString = intentinput.getStringExtra(MainActivity.Team_key); TeamString = intentinput.getStringExtra(MainActivity.Team_key);
startingPostionString = intentinput.getStringExtra(MainActivity.Postion_key);
l4Button = (Button) findViewById(R.id.button_L4); l4Button = (Button) findViewById(R.id.button_L4);
@ -144,6 +146,7 @@ public class AutoActivity extends AppCompatActivity {
intent.putExtra(Event_Key, eventString); intent.putExtra(Event_Key, eventString);
intent.putExtra(Match_key, matchString); intent.putExtra(Match_key, matchString);
intent.putExtra(Team_key, TeamString); intent.putExtra(Team_key, TeamString);
intent.putExtra(Postion_key, startingPostionString);
startActivity(intent); startActivity(intent);
return true; return true;
}); });

View File

@ -7,7 +7,9 @@ import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import androidx.activity.EdgeToEdge; import androidx.activity.EdgeToEdge;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@ -36,6 +38,8 @@ public class MainActivity extends AppCompatActivity {
private String Match_numberString; private String Match_numberString;
private String EventString; private String EventString;
private String TeamString; private String TeamString;
private String startingPostionString;
public static final String Postion_key = "POSTIONKEY";
public static final String Event_Key = "EVENTCONFIRM"; public static final String Event_Key = "EVENTCONFIRM";
public static final String Match_key = "MATCHCONFIRM"; public static final String Match_key = "MATCHCONFIRM";
public static final String Team_key = "TEAMCONFIRM"; public static final String Team_key = "TEAMCONFIRM";
@ -61,12 +65,17 @@ public class MainActivity extends AppCompatActivity {
nextButton.setOnClickListener(new View.OnClickListener() { nextButton.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
Submit submit = new Submit();
submit.renameFileagain(MainActivity.this, "unuploaded.csv");
Match_numberString = Match_number.getText().toString(); Match_numberString = Match_number.getText().toString();
EventString = Event.getText().toString(); EventString = Event.getText().toString();
TeamString = Team.getText().toString(); TeamString = Team.getText().toString();
makeIntent(); if ((Match_numberString == null || Match_numberString.isEmpty()) ||
(EventString == null || EventString.isEmpty()) ||
(TeamString == null || TeamString.isEmpty()) ||
(startingPostionString == null || startingPostionString.isEmpty())){
Toast.makeText(getApplicationContext(), "Fill in EVERYTHING", Toast.LENGTH_SHORT).show();
}else {
makeIntent();
}
} }
}); });
@ -75,7 +84,43 @@ public class MainActivity extends AppCompatActivity {
public void onClick(View view) { public void onClick(View view) {
Submit submit = new Submit(); Submit submit = new Submit();
submit.uploadSheets(MainActivity.this, "unuploaded.csv"); submit.uploadSheets(MainActivity.this, EventString+Match_number+TeamString+".csv");
}
});
RadioButton Rbutton1 = findViewById(R.id.Rbutton1);
Rbutton1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startingPostionString = "1";
}
});
RadioButton Rbutton2 = findViewById(R.id.Rbutton2);
Rbutton2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startingPostionString = "2";
}
});
RadioButton Rbutton3 = findViewById(R.id.Rbutton3);
Rbutton3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startingPostionString = "3";
}
});
RadioButton Rbutton4 = findViewById(R.id.Rbutton4);
Rbutton4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startingPostionString = "4";
}
});
RadioButton Rbutton5 = findViewById(R.id.Rbutton5);
Rbutton5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startingPostionString = "5";
} }
}); });
@ -154,14 +199,18 @@ public class MainActivity extends AppCompatActivity {
} }
} }
private void makeIntent() private void makeIntent()
{ {
Intent intent = new Intent(this, AutoActivity.class); Intent intent = new Intent(this, AutoActivity.class);
intent.putExtra(Event_Key, EventString); intent.putExtra(Event_Key, EventString);
intent.putExtra(Match_key, Match_numberString); intent.putExtra(Match_key, Match_numberString);
intent.putExtra(Team_key, TeamString); intent.putExtra(Team_key, TeamString);
intent.putExtra(Postion_key, startingPostionString);
startActivity(intent); startActivity(intent);
} }
} }

View File

@ -2,7 +2,12 @@ package com.example.scoutingapp;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import android.os.Build;
import android.util.Log; import android.util.Log;
import android.widget.Toast;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.json.gson.GsonFactory; import com.google.api.client.json.gson.GsonFactory;
@ -24,6 +29,13 @@ import java.util.List;
public class Submit { public class Submit {
void uploadSheets(Context context, String csvFileString) { void uploadSheets(Context context, String csvFileString) {
if (!isWifiConnected(context)) {
Log.e("NetworkError", "No Wi-Fi connection. Cannot upload.");
Toast.makeText(context, "upload failed, Upload later", Toast.LENGTH_SHORT).show();
return;
}
new Thread(() -> { new Thread(() -> {
try { try {
//adds account info //adds account info
@ -52,16 +64,15 @@ public class Submit {
String range = "Data!a2:O2"; String range = "Data!a2:O2";
//inserts data to the sheet //inserts data to the sheet
sheetsService.spreadsheets().values() sheetsService.spreadsheets().values()
.append(spreadsheetId, range, body) .append(spreadsheetId, range, body)
.setValueInputOption("USER_ENTERED") .setValueInputOption("USER_ENTERED")
.setInsertDataOption("INSERT_ROWS") .setInsertDataOption("INSERT_ROWS")
.execute(); .execute();
Log.d("GoogleSheets", "Data uploaded to Google Sheets successfully."); Log.d("GoogleSheets", "Data uploaded to Google Sheets successfully.");
deleteCSVFile(context); deleteCSVFile(context, csvFileString);
} catch (Exception e) { } catch (Exception e) {
Log.d("GoogleSheets", "Error uploading data", e); Log.e("GoogleSheetFailed", "Failed to upload");
renameFile(context, csvFileString);
} }
}).start(); }).start();
} }
@ -81,7 +92,7 @@ public class Submit {
} }
public void deleteCSVFile(Context context) { public void deleteCSVFile(Context context, String csvFileString) {
// Get the directory containing the files // Get the directory containing the files
File directory = context.getFilesDir(); File directory = context.getFilesDir();
@ -89,20 +100,24 @@ public class Submit {
File[] files = directory.listFiles(); File[] files = directory.listFiles();
if (files != null) { if (files != null) {
// Iterate through each file in the directory
for (File file : files) { for (File file : files) {
// Deletes the file // Check if the file name matches the given string
if (file.delete()) { if (file.getName().equals(csvFileString)) {
Log.d("CSVDelete", file.getName() + " deleted successfully."); if (file.delete()) {
} else { Log.d("CSVDelete", file.getName() + " deleted successfully.");
Log.d("CSVDelete", "Failed to delete " + file.getName()); } else {
Log.d("CSVDelete", "Failed to delete " + file.getName());
}
return; // Exit after deleting the file
} }
} }
Log.d("CSVDelete", "File " + csvFileString + " not found.");
} else { } else {
Log.d("CSVDelete", "No files found in the directory."); Log.d("CSVDelete", "No files found in the directory.");
} }
} }
public void renameFile(Context context, String csvFileString) { public void renameFile(Context context, String csvFileString) {
File csvFile = new File(context.getFilesDir(), csvFileString); File csvFile = new File(context.getFilesDir(), csvFileString);
@ -111,7 +126,7 @@ public class Submit {
return; return;
} }
File renamedFile = new File(context.getFilesDir(), "unuploaded.csv"); File renamedFile = new File(context.getFilesDir(), csvFileString);
if (csvFile.renameTo(renamedFile)) { if (csvFile.renameTo(renamedFile)) {
Log.d("CSVRename", "File renamed successfully to: " + renamedFile.getAbsolutePath()); Log.d("CSVRename", "File renamed successfully to: " + renamedFile.getAbsolutePath());
@ -136,4 +151,16 @@ public class Submit {
Log.d("CSVRenameFail", "File renaming failed. Possible reasons: file is in use, permission issue, or incorrect file path."); Log.d("CSVRenameFail", "File renaming failed. Possible reasons: file is in use, permission issue, or incorrect file path.");
} }
} }
}
public boolean isWifiConnected(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm != null) {
android.net.Network network = cm.getActiveNetwork();
if (network == null) return false;
NetworkCapabilities capabilities = cm.getNetworkCapabilities(network);
return capabilities != null && capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI);
}
return false;
}
}

View File

@ -36,10 +36,11 @@ public class TeleActivity extends AppCompatActivity {
private Button l1Button; private Button l1Button;
private Button processorButton; private Button processorButton;
private Button netButton; private Button netButton;
private String eventString, matchString, TeamString; private String eventString, matchString, TeamString, startingPostionString;
public static final String Event_Key = "EVENTCONFIRM"; public static final String Event_Key = "EVENTCONFIRM";
public static final String Match_key = "MATCHCONFIRM"; public static final String Match_key = "MATCHCONFIRM";
public static final String Team_key = "TEAMCONFIRM"; public static final String Team_key = "TEAMCONFIRM";
public static final String Postion_key = "POSTIONKEY";
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -55,6 +56,8 @@ public class TeleActivity extends AppCompatActivity {
eventString = intentinput.getStringExtra(AutoActivity.Event_Key); eventString = intentinput.getStringExtra(AutoActivity.Event_Key);
matchString = intentinput.getStringExtra(AutoActivity.Match_key); matchString = intentinput.getStringExtra(AutoActivity.Match_key);
TeamString = intentinput.getStringExtra(AutoActivity.Team_key); TeamString = intentinput.getStringExtra(AutoActivity.Team_key);
startingPostionString = intentinput.getStringExtra(AutoActivity.Postion_key);
l4Button = (Button) findViewById(R.id.button_L4); l4Button = (Button) findViewById(R.id.button_L4);
l3Button = (Button) findViewById(R.id.button_L3); l3Button = (Button) findViewById(R.id.button_L3);
@ -184,7 +187,7 @@ public class TeleActivity extends AppCompatActivity {
public void csvMake() { public void csvMake() {
//adds the strings //adds the strings
String CSVLine = String.format( String CSVLine = String.format(
"Tele,%s,%s,%s,%s,%s,%s,%s,%s,%s", "Tele,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s",
l4Scored, l4Scored,
l3Scored, l3Scored,
l2Scored, l2Scored,
@ -193,7 +196,8 @@ public class TeleActivity extends AppCompatActivity {
netScored, netScored,
reefPickup, reefPickup,
canLeave, canLeave,
coralPickup coralPickup,
startingPostionString
); );
//makes the file //makes the file

View File

@ -89,17 +89,65 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="Team number" android:hint="Team number"
app:layout_constraintBottom_toTopOf="@+id/textInputLayout2" app:layout_constraintBottom_toTopOf="@+id/textInputLayout2"
app:layout_constraintTop_toBottomOf="@+id/textInputLayout3" app:layout_constraintEnd_toEndOf="parent"
tools:layout_editor_absoluteX="-16dp" /> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/textInputLayout" />
<Button <Button
android:id="@+id/Submit_button" android:id="@+id/Submit_button"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Submit" android:text="Submit Unuploaded data"
app:layout_constraintBottom_toTopOf="@+id/nextButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textInputLayout2" />
<RadioGroup
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="100dp"
android:layout_marginEnd="100dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/nextButton" /> app:layout_constraintTop_toBottomOf="@+id/nextButton">
<RadioButton
android:id="@+id/Rbutton1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Starting Postion 1" />
<RadioButton
android:id="@+id/Rbutton2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Starting Postion 2" />
<RadioButton
android:id="@+id/Rbutton3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Starting Postion 3" />
<RadioButton
android:id="@+id/Rbutton4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Starting Postion 4" />
<RadioButton
android:id="@+id/Rbutton5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Starting Postion 5" />
<TextView
android:id="@+id/Explain"
android:layout_width="match_parent"
android:layout_height="98dp"
android:text="To upload old data enter the Info at the top, and it is case sentitive" />
</RadioGroup>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>