Skip to content

Commit

Permalink
Add a upload mode selector
Browse files Browse the repository at this point in the history
Used in the scanner to upload data to the correct locations in the sheet.
  • Loading branch information
deadman96385 committed Feb 29, 2024
1 parent 73add98 commit 42bcb66
Show file tree
Hide file tree
Showing 3 changed files with 142 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,21 @@ public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
//}
});

binding.buttonGroupUploadMode.setOnPositionChangedListener(position -> {
switch (position) {
case 0:
configPreference.setString("uploadMode", "Crowd");
break;
case 1:
configPreference.setString("uploadMode","Speciality");
break;
case 2:
configPreference.setString("uploadMode","Pit");
break;

}
});

binding.testButton.setOnClickListener(view1 ->
PowerPreference.showDebugScreen(true));

Expand Down Expand Up @@ -337,8 +352,26 @@ private void saveData(String bar_string) {
// Add non-split data to the list
raw_data.add(new String[] {bar_string});

String uploadData = null;
String uploadLines = null;

switch (configPreference.getString("uploadMode")) {
case "Crowd":
uploadData = "upload_data";
uploadLines = "seen_lines";
break;
case "Speciality":
uploadData = "special_upload_data";
uploadLines = "special_seen_lines";
break;
case "Pit":
uploadData = "pit_upload_data";
uploadLines = "pit_seen_lines";
break;
}

// Create a HashSet to keep track of the lines we've already seen
Set<String> seenLines = listPreference.getObject("seen_lines", Set.class,
Set<String> seenLines = listPreference.getObject(uploadLines, Set.class,
new HashSet<>());

// Check for duplicate and don't upload role qr data
Expand All @@ -348,10 +381,10 @@ private void saveData(String bar_string) {
seenLines.add(bar_string);

// Save the HashSet to the shared preferences
listPreference.setObject("seen_lines", seenLines);
listPreference.setObject(uploadLines, seenLines);

// Save the data to the shared preferences
matchPreference.setObject("upload_data", raw_data);
matchPreference.setObject(uploadData, raw_data);
}
}

Expand Down Expand Up @@ -468,13 +501,15 @@ private void refreshUI() {
binding.buttonBack.setText(R.string.back);
binding.matchSelectorText.setVisibility(View.GONE);
binding.buttonUpload.setVisibility(View.GONE);
binding.buttonGroupUploadMode.setVisibility(View.GONE);
} else {
binding.teamListDisplay.getRoot().setVisibility(View.VISIBLE);
binding.uiInsideNumberPicker.setVisibility(View.VISIBLE);
binding.scanPrompt.setVisibility(View.GONE);
binding.buttonBack.setText(R.string.back);
binding.matchSelectorText.setVisibility(View.VISIBLE);
binding.buttonUpload.setVisibility(View.VISIBLE);
binding.buttonGroupUploadMode.setVisibility(View.VISIBLE);
}

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public class SheetsUpdateTaskNew extends AsyncTask<Void, Void, AppendValuesRespo

private final Sheets sheetsService;

private static final String[] ACCOUNT_SCOPES = {SheetsScopes.SPREADSHEETS};
private static final String[] ACCOUNT_SCOPES = { SheetsScopes.SPREADSHEETS };

private String spreadsheetId;

Expand Down Expand Up @@ -74,18 +74,57 @@ public SheetsUpdateTaskNew(Activity activity) {
}

@Override protected AppendValuesResponse doInBackground(Void... voids) {
List<List<String>> columnData = new ArrayList<>(matchPreference.getObject("upload_data",
ArrayList.class, new ArrayList<>()));
List<List<String>> columnData = null;
switch (configPreference.getString("uploadMode")) {
case "Crowd":
columnData = new ArrayList<>(matchPreference.getObject("upload_data",
ArrayList.class, new ArrayList<>()));
break;
case "Pit":
columnData = new ArrayList<>(matchPreference.getObject("pit_upload_data",
ArrayList.class, new ArrayList<>()));
break;
case "Speciality":
columnData = new ArrayList<>(matchPreference.getObject("special_upload_data",
ArrayList.class, new ArrayList<>()));
break;
}


try {
// Sheet name and range to upload data to
String range;

if (configPreference.getBoolean("altMode", false)) {
// Royal Twrecks
range = "Raw Data!A2:BL700";
} else {
// Databits
range = "SuperRawDatabase!A2:BL700";
String range = null;

boolean altMode = configPreference.getBoolean("altMode", false);

switch (configPreference.getString("uploadMode")) {
case "Crowd":
if (altMode) {
// Royal Twrecks
range = "Raw Data!A2:BL700";
} else {
// Databits
range = "SuperRawDatabase!A2:BL700";
}
break;
case "Pit":
if (altMode) {
// Royal Twrecks
range = "Raw Data!A2:BL700";
} else {
// Databits
range = "PitData!A2:Z700";
}
break;
case "Speciality":
if (altMode) {
// Royal Twrecks
range = "Raw Data!A2:BL700";
} else {
// Databits
range = "SuperSpecializedRawData!A2:X700";
}
break;
}

// Configure a new value range to store the data
Expand Down
54 changes: 54 additions & 0 deletions app/src/main/res/layout/fragment_scanner.xml
Original file line number Diff line number Diff line change
Expand Up @@ -104,4 +104,58 @@
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent=".17" />

<com.addisonelliott.segmentedbutton.SegmentedButtonGroup
android:id="@+id/buttonGroup_uploadMode"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:elevation="2dp"
app:layout_constraintBottom_toTopOf="@+id/match_selector_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:sbg_divider="@color/accent_color"
app:sbg_dividerPadding="@dimen/sbg_dividerPadding"
app:sbg_dividerWidth="@dimen/sbg_dividerWidth"
app:sbg_position="0"
app:sbg_radius="2dp"
app:sbg_ripple="true"
app:sbg_selectedBackground="@color/accent_color"
app:sbg_selectionAnimationDuration="250"
app:sbg_selectionAnimationInterpolator="fastOutSlowIn"
>

<com.addisonelliott.segmentedbutton.SegmentedButton
android:layout_width="7dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:padding="5dp"
app:autoSizeTextType="uniform"
app:sb_selectedTextColor="@color/white"
app:sb_text="Crowd"
app:sb_textColor="@color/white"
/>

<com.addisonelliott.segmentedbutton.SegmentedButton
android:layout_width="7dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:padding="5dp"
app:autoSizeTextType="uniform"
app:sb_selectedTextColor="@color/white"
app:sb_text="Specialty"
app:sb_textColor="@color/white"
/>

<com.addisonelliott.segmentedbutton.SegmentedButton
android:layout_width="7dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:padding="5dp"
app:autoSizeTextType="uniform"
app:sb_selectedTextColor="@color/white"
app:sb_text="Pit"
app:sb_textColor="@color/white"
/>
</com.addisonelliott.segmentedbutton.SegmentedButtonGroup>
</androidx.constraintlayout.widget.ConstraintLayout>

0 comments on commit 42bcb66

Please sign in to comment.