diff options
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java')
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java | 56 |
1 files changed, 26 insertions, 30 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java index ba3ff4aa..e8f37e43 100644 --- a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java +++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java @@ -34,14 +34,13 @@ public class ProviderSelectionFragment extends BaseSetupFragment implements Canc private FProviderSelectionBinding binding; - private ProviderSelectionFragment(int position) { - super(position); - } - public static ProviderSelectionFragment newInstance(int position) { - return new ProviderSelectionFragment(position); + ProviderSelectionFragment fragment = new ProviderSelectionFragment(); + fragment.setArguments(initBundle(position)); + return fragment; } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -72,6 +71,20 @@ public class ProviderSelectionFragment extends BaseSetupFragment implements Canc radioButtons.add(radioButton); binding.editCustomProvider.setVisibility(viewModel.getEditProviderVisibility()); + return binding.getRoot(); + } + + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + setupActivityCallback.registerCancelCallback(this); + } + + @Override + public void onFragmentSelected() { + super.onFragmentSelected(); + setupActivityCallback.setCancelButtonHidden(true); + setupActivityCallback.setNavigationButtonHidden(false); binding.providerRadioGroup.setOnCheckedChangeListener((group, checkedId) -> { viewModel.setSelected(checkedId); for (RadioButton rb : radioButtons) { @@ -86,7 +99,6 @@ public class ProviderSelectionFragment extends BaseSetupFragment implements Canc setupActivityCallback.onProviderSelected(new Provider(binding.editCustomProvider.getText().toString())); } }); - binding.providerRadioGroup.check(viewModel.getSelected()); binding.editCustomProvider.addTextChangedListener(new TextWatcher() { @Override @@ -95,9 +107,11 @@ public class ProviderSelectionFragment extends BaseSetupFragment implements Canc @Override public void onTextChanged(CharSequence s, int start, int before, int count) { viewModel.setCustomUrl(s.toString()); - setupActivityCallback.onSetupStepValidationChanged(viewModel.isValidConfig()); - if (viewModel.isValidConfig()) { - setupActivityCallback.onProviderSelected(new Provider(s.toString())); + if (viewModel.isCustomProviderSelected()) { + setupActivityCallback.onSetupStepValidationChanged(viewModel.isValidConfig()); + if (viewModel.isValidConfig()) { + setupActivityCallback.onProviderSelected(new Provider(s.toString())); + } } } @@ -110,33 +124,15 @@ public class ProviderSelectionFragment extends BaseSetupFragment implements Canc ViewHelper.hideKeyboardFrom(getContext(), v); } }); - return binding.getRoot(); - } - - @Override - public void onFragmentSelected() { - super.onFragmentSelected(); - setupActivityCallback.setCancelButtonHidden(true); - setupActivityCallback.setNavigationButtonHidden(false); - } - - @Override - public void onAttach(@NonNull Context context) { - super.onAttach(context); - setupActivityCallback.registerCancelCallback(this); - } - - @Override - public void onDetach() { - setupActivityCallback.removeCancelCallback(this); - super.onDetach(); + binding.providerRadioGroup.check(viewModel.getSelected()); } @Override public void onDestroyView() { - super.onDestroyView(); + setupActivityCallback.removeCancelCallback(this); binding = null; radioButtons = null; + super.onDestroyView(); } @Override |