mirror of
https://github.com/Team4388/RidgeScout.git
synced 2026-06-09 08:38:03 -06:00
Fix navigation crashes, add transitions
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.astatin3.scoutingapp2025;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import com.astatin3.scoutingapp2025.scoutingData.fields;
|
||||
import com.astatin3.scoutingapp2025.utility.SentimentAnalysis;
|
||||
@@ -11,8 +12,11 @@ import com.google.android.material.bottomnavigation.BottomNavigationView;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.navigation.AnimBuilder;
|
||||
import androidx.navigation.NavController;
|
||||
import androidx.navigation.NavDestination;
|
||||
import androidx.navigation.NavOptions;
|
||||
import androidx.navigation.NavOptionsBuilder;
|
||||
import androidx.navigation.Navigation;
|
||||
import androidx.navigation.ui.AppBarConfiguration;
|
||||
import androidx.navigation.ui.NavigationUI;
|
||||
@@ -20,9 +24,13 @@ import androidx.navigation.ui.NavigationUI;
|
||||
import com.astatin3.scoutingapp2025.databinding.ActivityMainBinding;
|
||||
|
||||
import com.astatin3.scoutingapp2025.SettingsVersionStack.latestSettings;
|
||||
import com.google.android.material.navigation.NavigationBarView;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import kotlin.Unit;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
|
||||
|
||||
@@ -96,15 +104,36 @@ public class MainActivity extends AppCompatActivity {
|
||||
R.id.navigation_settings)
|
||||
.build();
|
||||
|
||||
// appBarConfiguration.set
|
||||
|
||||
navController = Navigation.findNavController(this, R.id.nav_host_fragment_activity_main);
|
||||
|
||||
|
||||
NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
|
||||
NavigationUI.setupWithNavController(navView, navController);
|
||||
|
||||
navView.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() {
|
||||
@Override
|
||||
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
|
||||
clearBackStack();
|
||||
navController.navigate(item.getItemId(), savedInstanceState, new NavOptions.Builder()
|
||||
.setEnterAnim(R.anim.enter_anim)
|
||||
.setExitAnim(R.anim.exit_anim)
|
||||
.setPopEnterAnim(R.anim.pop_enter_anim)
|
||||
.setPopExitAnim(R.anim.pop_exit_anim).build()
|
||||
);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onSupportNavigateUp() {
|
||||
return navController.navigateUp() || super.onSupportNavigateUp();
|
||||
}
|
||||
|
||||
private void clearBackStack() {
|
||||
navController.popBackStack(navController.getGraph().getStartDestinationId(), false);
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,6 @@ import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.astatin3.scoutingapp2025.databinding.FragmentDataCompileBinding;
|
||||
import com.astatin3.scoutingapp2025.databinding.FragmentPitScoutingBinding;
|
||||
|
||||
public class CompileFragment extends Fragment {
|
||||
FragmentDataCompileBinding binding;
|
||||
|
||||
+3
-3
@@ -14,7 +14,7 @@ import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.astatin3.scoutingapp2025.SettingsVersionStack.latestSettings;
|
||||
import com.astatin3.scoutingapp2025.databinding.FragmentMatchScoutingBinding;
|
||||
import com.astatin3.scoutingapp2025.databinding.FragmentScoutingMatchBinding;
|
||||
import com.astatin3.scoutingapp2025.scoutingData.ScoutingDataWriter;
|
||||
import com.astatin3.scoutingapp2025.types.data.dataType;
|
||||
import com.astatin3.scoutingapp2025.types.frcMatch;
|
||||
@@ -29,12 +29,12 @@ import java.util.function.Function;
|
||||
|
||||
public class MatchScoutingFragment extends Fragment {
|
||||
|
||||
private FragmentMatchScoutingBinding binding;
|
||||
private FragmentScoutingMatchBinding binding;
|
||||
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
|
||||
@Nullable Bundle savedInstanceState) {
|
||||
binding = FragmentMatchScoutingBinding.inflate(inflater, container, false);
|
||||
binding = FragmentScoutingMatchBinding.inflate(inflater, container, false);
|
||||
|
||||
DataManager.reload_match_fields();
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.astatin3.scoutingapp2025.SettingsVersionStack.latestSettings;
|
||||
import com.astatin3.scoutingapp2025.databinding.FragmentPitScoutingBinding;
|
||||
import com.astatin3.scoutingapp2025.databinding.FragmentScoutingPitBinding;
|
||||
import com.astatin3.scoutingapp2025.scoutingData.ScoutingDataWriter;
|
||||
import com.astatin3.scoutingapp2025.types.data.dataType;
|
||||
import com.astatin3.scoutingapp2025.types.frcTeam;
|
||||
@@ -29,7 +29,7 @@ import java.util.function.Function;
|
||||
|
||||
public class PitScoutingFragment extends Fragment {
|
||||
|
||||
FragmentPitScoutingBinding binding;
|
||||
FragmentScoutingPitBinding binding;
|
||||
|
||||
private static frcTeam team;
|
||||
public static void setTeam(frcTeam tmpteam){
|
||||
@@ -40,7 +40,7 @@ public class PitScoutingFragment extends Fragment {
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
|
||||
@Nullable Bundle savedInstanceState) {
|
||||
|
||||
binding = FragmentPitScoutingBinding.inflate(inflater, container, false);
|
||||
binding = FragmentScoutingPitBinding.inflate(inflater, container, false);
|
||||
|
||||
username = latestSettings.settings.get_username();
|
||||
DataManager.reload_pit_fields();
|
||||
|
||||
+1
-8
@@ -1,15 +1,11 @@
|
||||
package com.astatin3.scoutingapp2025.ui.transfer;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.ScrollView;
|
||||
import android.widget.TableLayout;
|
||||
import android.widget.TableRow;
|
||||
import android.widget.TextView;
|
||||
@@ -18,17 +14,14 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.astatin3.scoutingapp2025.databinding.FragmentDataCompileBinding;
|
||||
import com.astatin3.scoutingapp2025.databinding.FragmentTransferTbaBinding;
|
||||
import com.astatin3.scoutingapp2025.utility.AlertManager;
|
||||
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.utility.fileEditor;
|
||||
import com.astatin3.scoutingapp2025.utility.JSONUtil;
|
||||
import com.google.android.material.tabs.TabLayout;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
@@ -41,7 +34,7 @@ import java.util.Calendar;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
|
||||
public class TBAView extends Fragment {
|
||||
public class TBAFragment extends Fragment {
|
||||
private final String TBAAddress = "https://www.thebluealliance.com/api/v3/";
|
||||
private final String TBAHeader = "X-TBA-Auth-Key: tjEKSZojAU2pgbs2mBt06SKyOakVhLutj3NwuxLTxPKQPLih11aCIwRIVFXKzY4e";
|
||||
|
||||
@@ -4,33 +4,19 @@ import static androidx.navigation.fragment.FragmentKt.findNavController;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.os.Bundle;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.TableLayout;
|
||||
import android.widget.TableRow;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.navigation.Navigation;
|
||||
|
||||
import com.astatin3.scoutingapp2025.R;
|
||||
import com.astatin3.scoutingapp2025.SettingsVersionStack.latestSettings;
|
||||
import com.astatin3.scoutingapp2025.databinding.FragmentTransferBinding;
|
||||
import com.astatin3.scoutingapp2025.types.file;
|
||||
import com.astatin3.scoutingapp2025.ui.transfer.bluetooth.BluetoothSenderFragment;
|
||||
import com.astatin3.scoutingapp2025.ui.transfer.codes.CodeGeneratorView;
|
||||
import com.astatin3.scoutingapp2025.ui.transfer.codes.CodeOverlayView;
|
||||
import com.astatin3.scoutingapp2025.utility.ByteBuilder;
|
||||
import com.astatin3.scoutingapp2025.utility.fileEditor;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class TransferFragment extends Fragment {
|
||||
private FragmentTransferBinding binding;
|
||||
@@ -102,17 +88,17 @@ public class TransferFragment extends Fragment {
|
||||
FileSelectorFragment.setOnSelect(data -> {
|
||||
CodeGeneratorView.setData(data);
|
||||
BluetoothSenderFragment.set_data(data);
|
||||
TransferSelector.setOnSelect(new TransferSelector.onSelect() {
|
||||
TransferSelectorFragment.setOnSelect(new TransferSelectorFragment.onSelect() {
|
||||
@Override
|
||||
public void onSelectCodes(TransferSelector self) {
|
||||
public void onSelectCodes(TransferSelectorFragment self) {
|
||||
findNavController(self).navigate(R.id.action_navigation_transfer_selector_to_navigation_code_generator);
|
||||
}
|
||||
@Override
|
||||
public void onSelectBluetooth(TransferSelector self) {
|
||||
public void onSelectBluetooth(TransferSelectorFragment self) {
|
||||
findNavController(self).navigate(R.id.action_navigation_transfer_selector_to_navigation_bluetooth_sender);
|
||||
}
|
||||
@Override
|
||||
public void onSelectWifi(TransferSelector self) {}
|
||||
public void onSelectWifi(TransferSelectorFragment self) {}
|
||||
});
|
||||
findNavController(this).navigate(R.id.action_navigation_file_selector_to_navigation_transfer_selector);
|
||||
});
|
||||
@@ -123,19 +109,19 @@ public class TransferFragment extends Fragment {
|
||||
|
||||
|
||||
private void start_download(){
|
||||
TransferSelector.setOnSelect(new TransferSelector.onSelect() {
|
||||
TransferSelectorFragment.setOnSelect(new TransferSelectorFragment.onSelect() {
|
||||
@Override
|
||||
public void onSelectCodes(TransferSelector self) {
|
||||
public void onSelectCodes(TransferSelectorFragment self) {
|
||||
findNavController(self).navigate(R.id.action_navigation_transfer_selector_to_navigation_code_scanner);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSelectBluetooth(TransferSelector self) {
|
||||
public void onSelectBluetooth(TransferSelectorFragment self) {
|
||||
findNavController(self).navigate(R.id.action_navigation_transfer_selector_to_navigation_bluetooth_receiver);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSelectWifi(TransferSelector self) {}
|
||||
public void onSelectWifi(TransferSelectorFragment self) {}
|
||||
});
|
||||
findNavController(this).navigate(R.id.action_navigation_transfer_to_navigation_transfer_selector);
|
||||
}
|
||||
|
||||
+5
-5
@@ -11,19 +11,19 @@ import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.astatin3.scoutingapp2025.databinding.FragmentTransferSelectorBinding;
|
||||
|
||||
public class TransferSelector extends Fragment {
|
||||
public class TransferSelectorFragment extends Fragment {
|
||||
|
||||
// Declaring three blank funcs in one line lol
|
||||
private static onSelect onselect = new onSelect() {@Override public void onSelectCodes(TransferSelector self) {}@Override public void onSelectBluetooth(TransferSelector self) {} @Override public void onSelectWifi(TransferSelector self) {}};
|
||||
private static onSelect onselect = new onSelect() {@Override public void onSelectCodes(TransferSelectorFragment self) {}@Override public void onSelectBluetooth(TransferSelectorFragment self) {} @Override public void onSelectWifi(TransferSelectorFragment self) {}};
|
||||
|
||||
public static void setOnSelect(onSelect tmp) {
|
||||
onselect = tmp;
|
||||
}
|
||||
|
||||
public interface onSelect {
|
||||
void onSelectCodes(TransferSelector self);
|
||||
void onSelectBluetooth(TransferSelector self);
|
||||
void onSelectWifi(TransferSelector self);
|
||||
void onSelectCodes(TransferSelectorFragment self);
|
||||
void onSelectBluetooth(TransferSelectorFragment self);
|
||||
void onSelectWifi(TransferSelectorFragment self);
|
||||
}
|
||||
|
||||
FragmentTransferSelectorBinding binding;
|
||||
Reference in New Issue
Block a user