From 46219e0a6a2322b0c1a8424a559e3e9dc5211166 Mon Sep 17 00:00:00 2001 From: Astatin3 <77305074+Astatin3@users.noreply.github.com> Date: Thu, 27 Jun 2024 22:12:36 -0600 Subject: [PATCH] Start using the fields in scouting --- .../scoutingapp2025/MainActivity.java | 7 ++ .../ScoutingVersion.java | 6 +- .../fields.java | 48 ++++----- .../scoutingapp2025/types/frcEvent.java | 6 +- .../scoutingapp2025/types/frcMatch.java | 4 +- .../scoutingapp2025/types/frcTeam.java | 5 +- .../ui/scouting/matchScoutingView.java | 97 ++++++++++++++----- .../ui/scouting/scoutingFragment.java | 5 - .../scoutingapp2025/ui/transfer/TBAView.java | 6 +- .../{ => ui/transfer}/codeScanTask.java | 2 +- .../ui/transfer/scannerView.java | 1 - .../utility/AutoSaveManager.java | 75 ++++++++++++++ .../{ => utility}/BuiltByteParser.java | 4 +- .../{ => utility}/ByteBuilder.java | 6 +- .../{ui => utility}/JSONUtil.java | 2 +- .../{ => utility}/RequestTask.java | 2 +- 16 files changed, 200 insertions(+), 76 deletions(-) rename app/src/main/java/com/astatin3/scoutingapp2025/{ScoutingDataVersion => scoutingData}/ScoutingVersion.java (98%) rename app/src/main/java/com/astatin3/scoutingapp2025/{ScoutingDataVersion => scoutingData}/fields.java (78%) rename app/src/main/java/com/astatin3/scoutingapp2025/{ => ui/transfer}/codeScanTask.java (97%) create mode 100644 app/src/main/java/com/astatin3/scoutingapp2025/utility/AutoSaveManager.java rename app/src/main/java/com/astatin3/scoutingapp2025/{ => utility}/BuiltByteParser.java (97%) rename app/src/main/java/com/astatin3/scoutingapp2025/{ => utility}/ByteBuilder.java (97%) rename app/src/main/java/com/astatin3/scoutingapp2025/{ui => utility}/JSONUtil.java (92%) rename app/src/main/java/com/astatin3/scoutingapp2025/{ => utility}/RequestTask.java (98%) diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/MainActivity.java b/app/src/main/java/com/astatin3/scoutingapp2025/MainActivity.java index 0d55581..d51566e 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/MainActivity.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/MainActivity.java @@ -2,6 +2,7 @@ package com.astatin3.scoutingapp2025; import android.os.Bundle; +import com.astatin3.scoutingapp2025.scoutingData.fields; import com.google.android.material.bottomnavigation.BottomNavigationView; import androidx.appcompat.app.AppCompatActivity; @@ -21,7 +22,13 @@ public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { + latestSettings.update(); + + if(!fileEditor.fileExist(fields.fieldsFilename)){ + fields.save(); + } + super.onCreate(savedInstanceState); binding = ActivityMainBinding.inflate(getLayoutInflater()); diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/ScoutingDataVersion/ScoutingVersion.java b/app/src/main/java/com/astatin3/scoutingapp2025/scoutingData/ScoutingVersion.java similarity index 98% rename from app/src/main/java/com/astatin3/scoutingapp2025/ScoutingDataVersion/ScoutingVersion.java rename to app/src/main/java/com/astatin3/scoutingapp2025/scoutingData/ScoutingVersion.java index df84690..b66aba8 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/ScoutingDataVersion/ScoutingVersion.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/scoutingData/ScoutingVersion.java @@ -1,7 +1,7 @@ -package com.astatin3.scoutingapp2025.ScoutingDataVersion; +package com.astatin3.scoutingapp2025.scoutingData; -import com.astatin3.scoutingapp2025.BuiltByteParser; -import com.astatin3.scoutingapp2025.ByteBuilder; +import com.astatin3.scoutingapp2025.utility.BuiltByteParser; +import com.astatin3.scoutingapp2025.utility.ByteBuilder; import java.util.ArrayList; diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/ScoutingDataVersion/fields.java b/app/src/main/java/com/astatin3/scoutingapp2025/scoutingData/fields.java similarity index 78% rename from app/src/main/java/com/astatin3/scoutingapp2025/ScoutingDataVersion/fields.java rename to app/src/main/java/com/astatin3/scoutingapp2025/scoutingData/fields.java index c845db7..3b31a81 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/ScoutingDataVersion/fields.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/scoutingData/fields.java @@ -1,8 +1,8 @@ -package com.astatin3.scoutingapp2025.ScoutingDataVersion; +package com.astatin3.scoutingapp2025.scoutingData; -import com.astatin3.scoutingapp2025.BuiltByteParser; -import com.astatin3.scoutingapp2025.ByteBuilder; import com.astatin3.scoutingapp2025.fileEditor; +import com.astatin3.scoutingapp2025.utility.BuiltByteParser; +import com.astatin3.scoutingapp2025.utility.ByteBuilder; import java.util.ArrayList; @@ -10,26 +10,26 @@ public class fields { public static ScoutingVersion sv = new ScoutingVersion(); public static final String fieldsFilename = "data.fields"; - public static ScoutingVersion.inputType[][] values = new ScoutingVersion.inputType[][]{}; +// public static ScoutingVersion.inputType[][] values = new ScoutingVersion.inputType[][]{}; -// public static ScoutingVersion.inputType[][] values = new ScoutingVersion.inputType[][] { -// { -// sv.new notesType("name", "Unset-Username"), -// sv.new sliderType("How good is robot", 5, 0, 10) -// }, { -// sv.new notesType("name", "Unset-Username"), -// sv.new sliderType("How good is robot", 5, 0, 10), -// sv.new notesType("notes", "No-Notes") -// }, { -// sv.new notesType("name", "Unset-Username"), -// sv.new notesType("notes", "No-Notes") -// }, { -// sv.new notesType("name", "Unset-Username") -// }, { -// sv.new notesType("name", "Unset-Username"), -// sv.new sliderType("How good is robot", 5, 0, 10) -// } -// }; + public static ScoutingVersion.inputType[][] values = new ScoutingVersion.inputType[][] { + { + sv.new notesType("name", "Unset-Username"), + sv.new sliderType("How good is robot", 5, 0, 10) + }, { + sv.new notesType("name", "Unset-Username"), + sv.new sliderType("How good is robot", 5, 0, 10), + sv.new notesType("notes", "No-Notes") + }, { + sv.new notesType("name", "Unset-Username"), + sv.new notesType("notes", "No-Notes") + }, { + sv.new notesType("name", "Unset-Username") + }, { + sv.new notesType("name", "Unset-Username"), + sv.new sliderType("How good is robot", 5, 0, 10) + } + }; public static boolean save(){ try { @@ -57,6 +57,8 @@ public class fields { public static boolean load(){ byte[] bytes = fileEditor.readFile(fieldsFilename); + System.out.println(bytes); + try { BuiltByteParser bbp = new BuiltByteParser(bytes); ArrayList objects = bbp.parse(); @@ -67,7 +69,7 @@ public class fields { } return true; - } catch (BuiltByteParser.byteParsingExeption e) { + } catch (Exception e) { e.printStackTrace(); return false; } diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/types/frcEvent.java b/app/src/main/java/com/astatin3/scoutingapp2025/types/frcEvent.java index 0cdc9e4..90e8ebc 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/types/frcEvent.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/types/frcEvent.java @@ -1,11 +1,9 @@ package com.astatin3.scoutingapp2025.types; -import android.util.Log; - import androidx.annotation.NonNull; -import com.astatin3.scoutingapp2025.BuiltByteParser; -import com.astatin3.scoutingapp2025.ByteBuilder; +import com.astatin3.scoutingapp2025.utility.BuiltByteParser; +import com.astatin3.scoutingapp2025.utility.ByteBuilder; import java.util.ArrayList; diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/types/frcMatch.java b/app/src/main/java/com/astatin3/scoutingapp2025/types/frcMatch.java index ba0b628..e11bac1 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/types/frcMatch.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/types/frcMatch.java @@ -2,8 +2,8 @@ package com.astatin3.scoutingapp2025.types; import androidx.annotation.NonNull; -import com.astatin3.scoutingapp2025.BuiltByteParser; -import com.astatin3.scoutingapp2025.ByteBuilder; +import com.astatin3.scoutingapp2025.utility.BuiltByteParser; +import com.astatin3.scoutingapp2025.utility.ByteBuilder; import java.util.ArrayList; import java.util.Arrays; diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/types/frcTeam.java b/app/src/main/java/com/astatin3/scoutingapp2025/types/frcTeam.java index db8b6a2..b12fe47 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/types/frcTeam.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/types/frcTeam.java @@ -2,11 +2,10 @@ package com.astatin3.scoutingapp2025.types; import androidx.annotation.NonNull; -import com.astatin3.scoutingapp2025.BuiltByteParser; -import com.astatin3.scoutingapp2025.ByteBuilder; +import com.astatin3.scoutingapp2025.utility.BuiltByteParser; +import com.astatin3.scoutingapp2025.utility.ByteBuilder; import java.util.ArrayList; -import java.util.Arrays; public class frcTeam { public static final int typecode = 252; diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/ui/scouting/matchScoutingView.java b/app/src/main/java/com/astatin3/scoutingapp2025/ui/scouting/matchScoutingView.java index f6eae1f..19d669e 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/ui/scouting/matchScoutingView.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/ui/scouting/matchScoutingView.java @@ -1,8 +1,8 @@ package com.astatin3.scoutingapp2025.ui.scouting; -import static com.astatin3.scoutingapp2025.ScoutingDataVersion.fields.sv; - import android.content.Context; +import android.os.Handler; +import android.os.Looper; import android.util.AttributeSet; import android.view.View; import android.widget.RelativeLayout; @@ -11,14 +11,18 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.constraintlayout.widget.ConstraintLayout; -import com.astatin3.scoutingapp2025.ScoutingDataVersion.ScoutingVersion; -import com.astatin3.scoutingapp2025.ScoutingDataVersion.fields; +import com.astatin3.scoutingapp2025.scoutingData.ScoutingVersion; +import com.astatin3.scoutingapp2025.scoutingData.fields; import com.astatin3.scoutingapp2025.SettingsVersionStack.latestSettings; import com.astatin3.scoutingapp2025.databinding.FragmentScoutingBinding; import com.astatin3.scoutingapp2025.fileEditor; import com.astatin3.scoutingapp2025.types.frcEvent; import com.astatin3.scoutingapp2025.types.frcMatch; import com.astatin3.scoutingapp2025.types.frcTeam; +import com.astatin3.scoutingapp2025.utility.AutoSaveManager; +import com.google.android.material.slider.Slider; + +import java.util.ArrayList; public class matchScoutingView extends ConstraintLayout { public matchScoutingView(Context context) { @@ -33,6 +37,11 @@ public class matchScoutingView extends ConstraintLayout { String evcode; int cur_match_num; frcEvent event; + AutoSaveManager asm = new AutoSaveManager(this::save); + + public void save(){ + System.out.println("Saved!"); + } public void init(FragmentScoutingBinding tmp_binding){ binding = tmp_binding; @@ -82,8 +91,7 @@ public class matchScoutingView extends ConstraintLayout { update_scouting_data(); } - public void update_scouting_data(){ - frcMatch match = event.matches.get(cur_match_num); + private frcTeam get_team(frcMatch match){ // Get team number String[] split = alliance_position.split("-"); @@ -109,40 +117,85 @@ public class matchScoutingView extends ConstraintLayout { } } + return team; + } + + ArrayList views = new ArrayList<>(); + + public void update_scouting_data(){ + + asm.start(); + + frcMatch match = event.matches.get(cur_match_num); + frcTeam team = get_team(match); + binding.teamName.setText(team.teamName); binding.teamDescription.setText(team.getDescription()); - fields.load(); + for(int i = 0; i < views.size(); i++){ + binding.MatchScoutArea.removeView(views.get(i)); + } + + views = new ArrayList<>(); + + boolean success = fields.load(); + + if(!success){ + TextView tv = new TextView(getContext()); + tv.setText("Failed to load fields.\nTry to either download or create match scouting fields."); + tv.setTextAlignment(View.TEXT_ALIGNMENT_CENTER); + binding.MatchScoutArea.addView(tv); + views.add(tv); + return; + } + + if(fields.values.length == 0){ + return; + } + ScoutingVersion.inputType[] values = fields.values[fields.values.length-1]; - int prev_text = binding.teamDescription.getId(); +// int prev_text = binding.teamDescription.getId(); for(int i = 0 ; i < values.length; i++){ TextView tv = new TextView(getContext()); + tv.setTextAlignment(View.TEXT_ALIGNMENT_CENTER); + tv.setTextSize(24); + binding.MatchScoutArea.addView(tv); + views.add(tv); -// RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); -//// params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE); -// params.addRule(RelativeLayout.ALIGN_LEFT, prev_text); -// tv.setLayoutParams(params); - - - String text = "Fallback"; switch (values[i].getInputType()){ case SLIDER: - text = "Slider"; + ScoutingVersion.sliderType sliderType = (ScoutingVersion.sliderType) values[i]; + tv.setText(sliderType.name); + + Slider slider = new Slider(getContext()); + + slider.setStepSize((float) 1 / sliderType.max); + slider.setValue((int) sliderType.default_value / (float) sliderType.max); + + slider.addOnChangeListener(new Slider.OnChangeListener() { + @Override + public void onValueChange(@NonNull Slider slider, float value, boolean fromUser) { + System.out.println(value * sliderType.max); + asm.update(); + } + }); + + binding.MatchScoutArea.addView(slider); + views.add(slider); break; case DROPDOWN: - text = "Dropdown"; + ScoutingVersion.dropdownType dropdownType = (ScoutingVersion.dropdownType) values[i]; + tv.setText(dropdownType.name); break; case NOTES_INPUT: - text = "Notes"; + ScoutingVersion.notesType notesType = (ScoutingVersion.notesType) values[i]; + tv.setText(notesType.name); break; } - System.out.println(text); - tv.setText(text); - binding.MatchScoutArea.addView(tv); - prev_text = tv.getId(); +// prev_text = tv.getId(); } } } diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/ui/scouting/scoutingFragment.java b/app/src/main/java/com/astatin3/scoutingapp2025/ui/scouting/scoutingFragment.java index f8e9783..a62b19e 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/ui/scouting/scoutingFragment.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/ui/scouting/scoutingFragment.java @@ -10,14 +10,9 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; -import com.astatin3.scoutingapp2025.BuiltByteParser; -import com.astatin3.scoutingapp2025.ByteBuilder; -import com.astatin3.scoutingapp2025.ScoutingDataVersion.fields; import com.astatin3.scoutingapp2025.SettingsVersionStack.latestSettings; import com.astatin3.scoutingapp2025.databinding.FragmentScoutingBinding; -import java.util.Arrays; - public class scoutingFragment extends Fragment { private FragmentScoutingBinding binding; diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/TBAView.java b/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/TBAView.java index dbd65c2..d2641dd 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/TBAView.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/TBAView.java @@ -12,25 +12,23 @@ import android.widget.TableLayout; import android.widget.TableRow; import android.widget.TextView; -import com.astatin3.scoutingapp2025.RequestTask; +import com.astatin3.scoutingapp2025.utility.RequestTask; import com.astatin3.scoutingapp2025.types.frcEvent; import com.astatin3.scoutingapp2025.types.frcMatch; import com.astatin3.scoutingapp2025.types.frcTeam; import com.astatin3.scoutingapp2025.databinding.FragmentTransferBinding; import com.astatin3.scoutingapp2025.fileEditor; -import com.astatin3.scoutingapp2025.ui.JSONUtil; +import com.astatin3.scoutingapp2025.utility.JSONUtil; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; -import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Comparator; import java.util.Date; -import java.util.Objects; public class TBAView extends ScrollView { private final String TBAAddress = "https://www.thebluealliance.com/api/v3/"; diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/codeScanTask.java b/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/codeScanTask.java similarity index 97% rename from app/src/main/java/com/astatin3/scoutingapp2025/codeScanTask.java rename to app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/codeScanTask.java index 14255da..6512b43 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/codeScanTask.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/codeScanTask.java @@ -1,4 +1,4 @@ -package com.astatin3.scoutingapp2025; +package com.astatin3.scoutingapp2025.ui.transfer; import android.graphics.Bitmap; import android.os.AsyncTask; diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/scannerView.java b/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/scannerView.java index 42bfc91..3760897 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/scannerView.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/scannerView.java @@ -27,7 +27,6 @@ import androidx.lifecycle.LifecycleOwner; import com.astatin3.scoutingapp2025.databinding.FragmentTransferBinding; import com.astatin3.scoutingapp2025.fileEditor; -import com.astatin3.scoutingapp2025.codeScanTask; import com.google.common.util.concurrent.ListenableFuture; import java.nio.ByteBuffer; diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/utility/AutoSaveManager.java b/app/src/main/java/com/astatin3/scoutingapp2025/utility/AutoSaveManager.java new file mode 100644 index 0000000..7d73179 --- /dev/null +++ b/app/src/main/java/com/astatin3/scoutingapp2025/utility/AutoSaveManager.java @@ -0,0 +1,75 @@ +package com.astatin3.scoutingapp2025.utility; + +import android.os.Handler; +import android.os.Looper; + +public class AutoSaveManager { + private static final long AUTO_SAVE_DELAY = 5000; // 5 seconds + + private final Handler handler; + private final Runnable autoSaveRunnable; + private boolean isAutoSaveScheduled = false; + private final AutoSaveFunction autoSaveFunction; + private boolean isRunning = false; + + // Functional interface for the auto-save function + @FunctionalInterface + public interface AutoSaveFunction { + void save(); + } + + public AutoSaveManager(AutoSaveFunction autoSaveFunction) { + this.autoSaveFunction = autoSaveFunction; + handler = new Handler(Looper.getMainLooper()); + autoSaveRunnable = new Runnable() { + @Override + public void run() { + performAutoSave(); + isAutoSaveScheduled = false; + } + }; + } + + public void start() { + isRunning = true; + } + + public void stop() { + isRunning = false; + handler.removeCallbacks(autoSaveRunnable); + isAutoSaveScheduled = false; + } + + public void update() { + if (!isRunning) { + return; // Don't schedule auto-saves when not running + } + + // Cancel any previously scheduled auto-save + handler.removeCallbacks(autoSaveRunnable); + + // Schedule a new auto-save + handler.postDelayed(autoSaveRunnable, AUTO_SAVE_DELAY); + isAutoSaveScheduled = true; + } + + private void performAutoSave() { + if (isRunning) { + // Call the provided auto-save function + autoSaveFunction.save(); + } + } + + public void onDestroy() { + // Remove any pending auto-save tasks when the activity or fragment is destroyed + stop(); + } + + public boolean isAutoSaveScheduled() { + return isAutoSaveScheduled; + } + + public boolean isRunning() { + return isRunning; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/BuiltByteParser.java b/app/src/main/java/com/astatin3/scoutingapp2025/utility/BuiltByteParser.java similarity index 97% rename from app/src/main/java/com/astatin3/scoutingapp2025/BuiltByteParser.java rename to app/src/main/java/com/astatin3/scoutingapp2025/utility/BuiltByteParser.java index 99734bb..5e5bb97 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/BuiltByteParser.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/utility/BuiltByteParser.java @@ -1,6 +1,6 @@ -package com.astatin3.scoutingapp2025; +package com.astatin3.scoutingapp2025.utility; -import android.util.Log; +import com.astatin3.scoutingapp2025.fileEditor; import java.nio.charset.StandardCharsets; import java.util.ArrayList; diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/ByteBuilder.java b/app/src/main/java/com/astatin3/scoutingapp2025/utility/ByteBuilder.java similarity index 97% rename from app/src/main/java/com/astatin3/scoutingapp2025/ByteBuilder.java rename to app/src/main/java/com/astatin3/scoutingapp2025/utility/ByteBuilder.java index 78c1592..ed5e133 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/ByteBuilder.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/utility/ByteBuilder.java @@ -1,9 +1,7 @@ -package com.astatin3.scoutingapp2025; +package com.astatin3.scoutingapp2025.utility; -import android.util.Log; +import com.astatin3.scoutingapp2025.fileEditor; -import java.nio.ByteBuffer; -import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.ArrayList; diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/ui/JSONUtil.java b/app/src/main/java/com/astatin3/scoutingapp2025/utility/JSONUtil.java similarity index 92% rename from app/src/main/java/com/astatin3/scoutingapp2025/ui/JSONUtil.java rename to app/src/main/java/com/astatin3/scoutingapp2025/utility/JSONUtil.java index 084705f..d8740d1 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/ui/JSONUtil.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/utility/JSONUtil.java @@ -1,4 +1,4 @@ -package com.astatin3.scoutingapp2025.ui; +package com.astatin3.scoutingapp2025.utility; import org.json.JSONArray; diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/RequestTask.java b/app/src/main/java/com/astatin3/scoutingapp2025/utility/RequestTask.java similarity index 98% rename from app/src/main/java/com/astatin3/scoutingapp2025/RequestTask.java rename to app/src/main/java/com/astatin3/scoutingapp2025/utility/RequestTask.java index c59cad3..dac06db 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/RequestTask.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/utility/RequestTask.java @@ -1,4 +1,4 @@ -package com.astatin3.scoutingapp2025; +package com.astatin3.scoutingapp2025.utility; import android.os.AsyncTask;