diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditChallengeRatingFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditChallengeRatingFragment.java index 33196cd..ec4b724 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditChallengeRatingFragment.java +++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditChallengeRatingFragment.java @@ -12,6 +12,7 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import androidx.navigation.NavBackStackEntry; import androidx.navigation.NavController; @@ -20,19 +21,20 @@ import androidx.navigation.Navigation; import com.majinnaibu.monstercards.R; import com.majinnaibu.monstercards.data.enums.ChallengeRating; import com.majinnaibu.monstercards.helpers.ArrayHelper; -import com.majinnaibu.monstercards.ui.shared.MCFragment; import com.majinnaibu.monstercards.utils.TextChangedListener; -public class EditChallengeRatingFragment extends MCFragment { +public class EditChallengeRatingFragment extends Fragment { private EditMonsterViewModel mViewModel; private ViewHolder mHolder; @Override - public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { NavController navController = Navigation.findNavController(requireActivity(), R.id.nav_host_fragment); NavBackStackEntry backStackEntry = navController.getBackStackEntry(R.id.edit_monster_navigation); mViewModel = new ViewModelProvider(backStackEntry).get(EditMonsterViewModel.class); + + // Inflate the layout for this fragment View root = inflater.inflate(R.layout.fragment_edit_challenge_rating, container, false); mHolder = new ViewHolder(root); @@ -82,10 +84,10 @@ public class EditChallengeRatingFragment extends MCFragment { final EditText customChallengeRatingDescription; final EditText customProficiencyBonus; - ViewHolder(@NonNull View root) { + ViewHolder(View root) { challengeRating = root.findViewById(R.id.challengeRating); customChallengeRatingDescription = root.findViewById(R.id.customChallengeRatingDescription); customProficiencyBonus = root.findViewById(R.id.customProficiencyBonus); } } -} +} \ No newline at end of file diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditMonsterFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditMonsterFragment.java index 51bb80a..a7975bd 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditMonsterFragment.java +++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditMonsterFragment.java @@ -83,37 +83,32 @@ public class EditMonsterFragment extends MCFragment { mHolder.basicInfoButton.setOnClickListener(v -> { NavDirections action = EditMonsterFragmentDirections.actionEditMonsterFragmentToEditBasicInfoFragment(); - View view = getView(); - assert view != null; - Navigation.findNavController(view).navigate(action); + Navigation.findNavController(requireView()).navigate(action); }); mHolder.armorButton.setOnClickListener(v -> { NavDirections action = EditMonsterFragmentDirections.actionEditMonsterFragmentToEditArmorFragment(); - View view = getView(); - assert view != null; - Navigation.findNavController(view).navigate(action); + Navigation.findNavController(requireView()).navigate(action); }); mHolder.speedButton.setOnClickListener(v -> { NavDirections action = EditMonsterFragmentDirections.actionEditMonsterFragmentToEditSpeedFragment(); - View view = getView(); - assert view != null; - Navigation.findNavController(view).navigate(action); + Navigation.findNavController(requireView()).navigate(action); }); mHolder.abilityScoresButton.setOnClickListener(v -> { NavDirections action = EditMonsterFragmentDirections.actionEditMonsterFragmentToEditAbilityScoresFragment(); - View view = getView(); - assert view != null; - Navigation.findNavController(view).navigate(action); + Navigation.findNavController(requireView()).navigate(action); }); mHolder.savingThrows.setOnClickListener(v -> { NavDirections action = EditMonsterFragmentDirections.actionEditMonsterFragmentToEditSavingThrowsFragment(); - View view = getView(); - assert view != null; - Navigation.findNavController(view).navigate(action); + Navigation.findNavController(requireView()).navigate(action); + }); + + mHolder.challengeRating.setOnClickListener(v -> { + NavDirections action = EditMonsterFragmentDirections.actionEditMonsterFragmentToEditChallengeRatingFragment(); + Navigation.findNavController(requireView()).navigate(action); }); requireActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(), new OnBackPressedCallback(true) { diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditMonsterViewModel.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditMonsterViewModel.java index 0d782ca..5c0c022 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditMonsterViewModel.java +++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditMonsterViewModel.java @@ -729,6 +729,15 @@ public class EditMonsterViewModel extends ViewModel { mCustomProficiencyBonus.setValue(proficiencyBonus); } + public void setCustomProficiencyBonus(String proficiencyBonus) { + Integer parsedValue = StringHelper.parseInt(proficiencyBonus); + this.setCustomProficiencyBonus(parsedValue != null ? parsedValue : 0); + } + + public String getCustomProficiencyBonusValueAsString() { + return mCustomProficiencyBonus.getValue().toString(); + } + public LiveData getBlindsightRange() { return mBlindsightRange; } diff --git a/Android/app/src/main/res/layout/fragment_edit_armor.xml b/Android/app/src/main/res/layout/fragment_edit_armor.xml index 36c4206..765d887 100644 --- a/Android/app/src/main/res/layout/fragment_edit_armor.xml +++ b/Android/app/src/main/res/layout/fragment_edit_armor.xml @@ -24,7 +24,6 @@ android:id="@+id/naturalArmorBonus" android:layout_width="match_parent" android:layout_height="wrap_content" - android:digits="0123456789" android:hint="@string/label_natural_armor_bonus" android:importantForAutofill="no" android:inputType="numberSigned" @@ -48,7 +47,6 @@ android:id="@+id/shieldBonus" android:layout_width="match_parent" android:layout_height="wrap_content" - android:digits="0123456789" android:hint="@string/label_shield_bonus" android:importantForAutofill="no" android:inputType="numberSigned" diff --git a/Android/app/src/main/res/navigation/mobile_navigation.xml b/Android/app/src/main/res/navigation/mobile_navigation.xml index fe6f878..56c5290 100644 --- a/Android/app/src/main/res/navigation/mobile_navigation.xml +++ b/Android/app/src/main/res/navigation/mobile_navigation.xml @@ -87,6 +87,9 @@ + + \ No newline at end of file diff --git a/Android/app/src/main/res/values/strings.xml b/Android/app/src/main/res/values/strings.xml index 9934f06..ad74cda 100644 --- a/Android/app/src/main/res/values/strings.xml +++ b/Android/app/src/main/res/values/strings.xml @@ -28,7 +28,9 @@ Condition Immunities Constitution Custom Armor + Custom CR Custom HP + Custom Proficiency Bonus Custom Speed Damage Immunities Damage Resistances