From b4cae9f6105da6a8cb622a33e40a43b943308f63 Mon Sep 17 00:00:00 2001 From: Astatin3 <77305074+Astatin3@users.noreply.github.com> Date: Sun, 28 Jul 2024 09:28:00 -0600 Subject: [PATCH] Fix navigation crashes, add transitions --- README.md | 2 +- .../scoutingapp2025/MainActivity.java | 29 +++++ .../ui/data/CompileFragment.java | 1 - .../ui/scouting/MatchScoutingFragment.java | 6 +- .../ui/scouting/PitScoutingFragment.java | 6 +- .../{TBAView.java => TBAFragment.java} | 9 +- .../ui/transfer/TransferFragment.java | 30 ++--- ...tor.java => TransferSelectorFragment.java} | 10 +- app/src/main/res/anim/enter_anim.xml | 8 ++ app/src/main/res/anim/exit_anim.xml | 12 ++ app/src/main/res/anim/pop_enter_anim.xml | 8 ++ app/src/main/res/anim/pop_exit_anim.xml | 12 ++ ...outing.xml => fragment_scouting_match.xml} | 4 +- ...scouting.xml => fragment_scouting_pit.xml} | 0 .../main/res/navigation/mobile_navigation.xml | 110 ++++++++++++++---- gradle/libs.versions.toml | 2 +- 16 files changed, 181 insertions(+), 68 deletions(-) rename app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/{TBAView.java => TBAFragment.java} (97%) rename app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/{TransferSelector.java => TransferSelectorFragment.java} (73%) create mode 100644 app/src/main/res/anim/enter_anim.xml create mode 100644 app/src/main/res/anim/exit_anim.xml create mode 100644 app/src/main/res/anim/pop_enter_anim.xml create mode 100644 app/src/main/res/anim/pop_exit_anim.xml rename app/src/main/res/layout/{fragment_match_scouting.xml => fragment_scouting_match.xml} (96%) rename app/src/main/res/layout/{fragment_pit_scouting.xml => fragment_scouting_pit.xml} (100%) diff --git a/README.md b/README.md index 6fb1a4e..20f1ed8 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,6 @@ Ridgebotics 2025 scouting app in Android #### Data Analysis: - Make a word cloud for the compiled mode of text input type #### Functionality: -- Fix navigation crashes. - Make pit and match data field builder UIs. I don't want to have to keep editing a variable @@ -32,6 +31,7 @@ Ridgebotics 2025 scouting app in Android - Add "history" view type to the teams view menu. - Sentiment analysis of text input type #### Functionality: +- Fix navigation crashes. - Make everything use Fragments instead of views that toggle visibility - Make the file browser UI - Bluetooth data sync diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/MainActivity.java b/app/src/main/java/com/astatin3/scoutingapp2025/MainActivity.java index 826e14a..45e1dd7 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/MainActivity.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/MainActivity.java @@ -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); + } } \ No newline at end of file diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/ui/data/CompileFragment.java b/app/src/main/java/com/astatin3/scoutingapp2025/ui/data/CompileFragment.java index 35dbe51..142bd06 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/ui/data/CompileFragment.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/ui/data/CompileFragment.java @@ -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; diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/ui/scouting/MatchScoutingFragment.java b/app/src/main/java/com/astatin3/scoutingapp2025/ui/scouting/MatchScoutingFragment.java index 0c1e5ff..6c6c443 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/ui/scouting/MatchScoutingFragment.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/ui/scouting/MatchScoutingFragment.java @@ -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(); diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/ui/scouting/PitScoutingFragment.java b/app/src/main/java/com/astatin3/scoutingapp2025/ui/scouting/PitScoutingFragment.java index dc21c40..4b7e50e 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/ui/scouting/PitScoutingFragment.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/ui/scouting/PitScoutingFragment.java @@ -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(); diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/TBAView.java b/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/TBAFragment.java similarity index 97% rename from app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/TBAView.java rename to app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/TBAFragment.java index cc0e6f1..9d1701b 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/TBAView.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/TBAFragment.java @@ -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"; diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/TransferFragment.java b/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/TransferFragment.java index 1acbd7a..ad128bb 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/TransferFragment.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/TransferFragment.java @@ -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); } diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/TransferSelector.java b/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/TransferSelectorFragment.java similarity index 73% rename from app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/TransferSelector.java rename to app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/TransferSelectorFragment.java index 18d5c01..ef69111 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/TransferSelector.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/TransferSelectorFragment.java @@ -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; diff --git a/app/src/main/res/anim/enter_anim.xml b/app/src/main/res/anim/enter_anim.xml new file mode 100644 index 0000000..c6d9966 --- /dev/null +++ b/app/src/main/res/anim/enter_anim.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/exit_anim.xml b/app/src/main/res/anim/exit_anim.xml new file mode 100644 index 0000000..cb9fe07 --- /dev/null +++ b/app/src/main/res/anim/exit_anim.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/pop_enter_anim.xml b/app/src/main/res/anim/pop_enter_anim.xml new file mode 100644 index 0000000..79b997c --- /dev/null +++ b/app/src/main/res/anim/pop_enter_anim.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/pop_exit_anim.xml b/app/src/main/res/anim/pop_exit_anim.xml new file mode 100644 index 0000000..0b9e9cc --- /dev/null +++ b/app/src/main/res/anim/pop_exit_anim.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_match_scouting.xml b/app/src/main/res/layout/fragment_scouting_match.xml similarity index 96% rename from app/src/main/res/layout/fragment_match_scouting.xml rename to app/src/main/res/layout/fragment_scouting_match.xml index 65a8c02..fc45d10 100644 --- a/app/src/main/res/layout/fragment_match_scouting.xml +++ b/app/src/main/res/layout/fragment_scouting_match.xml @@ -9,8 +9,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toBottomOf="@id/back_button"> + app:layout_constraintEnd_toEndOf="parent"> diff --git a/app/src/main/res/layout/fragment_pit_scouting.xml b/app/src/main/res/layout/fragment_scouting_pit.xml similarity index 100% rename from app/src/main/res/layout/fragment_pit_scouting.xml rename to app/src/main/res/layout/fragment_scouting_pit.xml diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml index 1aff6cc..b6b0c69 100644 --- a/app/src/main/res/navigation/mobile_navigation.xml +++ b/app/src/main/res/navigation/mobile_navigation.xml @@ -12,16 +12,24 @@ tools:layout="@layout/fragment_scouting"> + app:destination="@id/navigation_match_scouting" + app:enterAnim="@anim/enter_anim" + app:exitAnim="@anim/exit_anim" + app:popEnterAnim="@anim/enter_anim" + app:popExitAnim="@anim/pop_exit_anim"/> + app:destination="@id/navigation_team_selector" + app:enterAnim="@anim/enter_anim" + app:exitAnim="@anim/exit_anim" + app:popEnterAnim="@anim/enter_anim" + app:popExitAnim="@anim/pop_exit_anim" /> + tools:layout="@layout/fragment_scouting_match"> + app:destination="@id/navigation_pit_scouting" + app:enterAnim="@anim/enter_anim" + app:exitAnim="@anim/exit_anim" + app:popEnterAnim="@anim/enter_anim" + app:popExitAnim="@anim/pop_exit_anim" /> + app:destination="@id/navigation_data_teams" + app:enterAnim="@anim/enter_anim" + app:exitAnim="@anim/exit_anim" + app:popEnterAnim="@anim/enter_anim" + app:popExitAnim="@anim/pop_exit_anim" /> + tools:layout="@layout/fragment_scouting_pit"/> @@ -53,16 +69,32 @@ tools:layout="@layout/fragment_data"> + app:destination="@id/navigation_data_status" + app:enterAnim="@anim/enter_anim" + app:exitAnim="@anim/exit_anim" + app:popEnterAnim="@anim/enter_anim" + app:popExitAnim="@anim/pop_exit_anim" /> + app:destination="@id/navigation_team_selector" + app:enterAnim="@anim/enter_anim" + app:exitAnim="@anim/exit_anim" + app:popEnterAnim="@anim/enter_anim" + app:popExitAnim="@anim/pop_exit_anim" /> + app:destination="@id/navigation_data_compile" + app:enterAnim="@anim/enter_anim" + app:exitAnim="@anim/exit_anim" + app:popEnterAnim="@anim/enter_anim" + app:popExitAnim="@anim/pop_exit_anim" /> + app:destination="@id/navigation_data_fields_chooser" + app:enterAnim="@anim/enter_anim" + app:exitAnim="@anim/exit_anim" + app:popEnterAnim="@anim/enter_anim" + app:popExitAnim="@anim/pop_exit_anim" /> + app:destination="@id/navigation_data_fields" + app:enterAnim="@anim/enter_anim" + app:exitAnim="@anim/exit_anim" + app:popEnterAnim="@anim/enter_anim" + app:popExitAnim="@anim/pop_exit_anim" /> + app:destination="@id/navigation_tba" + app:enterAnim="@anim/enter_anim" + app:exitAnim="@anim/exit_anim" + app:popEnterAnim="@anim/enter_anim" + app:popExitAnim="@anim/pop_exit_anim" /> + app:destination="@id/navigation_file_selector" + app:enterAnim="@anim/enter_anim" + app:exitAnim="@anim/exit_anim" + app:popEnterAnim="@anim/enter_anim" + app:popExitAnim="@anim/pop_exit_anim" /> + app:destination="@id/navigation_transfer_selector" + app:enterAnim="@anim/enter_anim" + app:exitAnim="@anim/exit_anim" + app:popEnterAnim="@anim/enter_anim" + app:popExitAnim="@anim/pop_exit_anim" /> + app:destination="@id/navigation_transfer_selector" + app:enterAnim="@anim/enter_anim" + app:exitAnim="@anim/exit_anim" + app:popEnterAnim="@anim/enter_anim" + app:popExitAnim="@anim/pop_exit_anim" /> + app:destination="@id/navigation_code_generator" + app:enterAnim="@anim/enter_anim" + app:exitAnim="@anim/exit_anim" + app:popEnterAnim="@anim/enter_anim" + app:popExitAnim="@anim/pop_exit_anim" /> + app:destination="@id/navigation_bluetooth_sender" + app:enterAnim="@anim/enter_anim" + app:exitAnim="@anim/exit_anim" + app:popEnterAnim="@anim/enter_anim" + app:popExitAnim="@anim/pop_exit_anim" /> + app:destination="@id/navigation_code_scanner" + app:enterAnim="@anim/enter_anim" + app:exitAnim="@anim/exit_anim" + app:popEnterAnim="@anim/enter_anim" + app:popExitAnim="@anim/pop_exit_anim" /> + app:destination="@id/navigation_bluetooth_receiver" + app:enterAnim="@anim/enter_anim" + app:exitAnim="@anim/exit_anim" + app:popEnterAnim="@anim/enter_anim" + app:popExitAnim="@anim/pop_exit_anim" /> diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8aa1fd6..149495f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.5.0" +agp = "8.5.1" junit = "4.13.2" junitVersion = "1.1.5" espressoCore = "3.5.1"