summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java
diff options
context:
space:
mode:
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.java63
1 files changed, 23 insertions, 40 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 6ebb149c..7f80a99d 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
@@ -14,9 +14,7 @@ import android.widget.RadioButton;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
-import androidx.viewpager2.widget.ViewPager2;
import java.util.ArrayList;
@@ -25,33 +23,22 @@ import se.leap.bitmaskclient.base.models.Provider;
import se.leap.bitmaskclient.base.models.ProviderObservable;
import se.leap.bitmaskclient.databinding.FProviderSelectionBinding;
import se.leap.bitmaskclient.providersetup.activities.CancelCallback;
-import se.leap.bitmaskclient.providersetup.activities.SetupActivityCallback;
import se.leap.bitmaskclient.providersetup.fragments.viewmodel.ProviderSelectionViewModel;
import se.leap.bitmaskclient.providersetup.fragments.viewmodel.ProviderSelectionViewModelFactory;
-public class ProviderSelectionFragment extends Fragment implements CancelCallback {
+public class ProviderSelectionFragment extends BaseSetupFragment implements CancelCallback {
private ProviderSelectionViewModel viewModel;
private ArrayList<RadioButton> radioButtons;
- private SetupActivityCallback setupCallback;
private FProviderSelectionBinding binding;
- private final ViewPager2.OnPageChangeCallback onPageChangeCallback = new ViewPager2.OnPageChangeCallback() {
- @Override
- public void onPageSelected(int position) {
- super.onPageSelected(position);
- if (position == 0) {
- if (setupCallback != null) {
- setupCallback.setCancelButtonHidden(!ProviderObservable.getInstance().getCurrentProvider().isConfigured());
- setupCallback.setNavigationButtonHidden(false);
- }
- }
- }
- };
+ private ProviderSelectionFragment(int position) {
+ super(position);
+ }
- public static ProviderSelectionFragment newInstance() {
- return new ProviderSelectionFragment();
+ public static ProviderSelectionFragment newInstance(int position) {
+ return new ProviderSelectionFragment(position);
}
@Override
@@ -92,13 +79,11 @@ public class ProviderSelectionFragment extends Fragment implements CancelCallbac
}
binding.providerDescription.setText(viewModel.getProviderDescription(getContext()));
binding.editCustomProvider.setVisibility(viewModel.getEditProviderVisibility());
- if (setupCallback != null) {
- setupCallback.onSetupStepValidationChanged(viewModel.isValidConfig());
- if (checkedId != ADD_PROVIDER) {
- setupCallback.onProviderSelected(viewModel.getProvider(checkedId));
- } else if (viewModel.isValidConfig()) {
- setupCallback.onProviderSelected(new Provider(binding.editCustomProvider.getText().toString()));
- }
+ setupActivityCallback.onSetupStepValidationChanged(viewModel.isValidConfig());
+ if (checkedId != ADD_PROVIDER) {
+ setupActivityCallback.onProviderSelected(viewModel.getProvider(checkedId));
+ } else if (viewModel.isValidConfig()) {
+ setupActivityCallback.onProviderSelected(new Provider(binding.editCustomProvider.getText().toString()));
}
});
binding.providerRadioGroup.check(viewModel.getSelected());
@@ -110,10 +95,9 @@ public class ProviderSelectionFragment extends Fragment implements CancelCallbac
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
viewModel.setCustomUrl(s.toString());
- if (setupCallback == null) return;
- setupCallback.onSetupStepValidationChanged(viewModel.isValidConfig());
+ setupActivityCallback.onSetupStepValidationChanged(viewModel.isValidConfig());
if (viewModel.isValidConfig()) {
- setupCallback.onProviderSelected(new Provider(s.toString()));
+ setupActivityCallback.onProviderSelected(new Provider(s.toString()));
}
}
@@ -124,23 +108,22 @@ public class ProviderSelectionFragment extends Fragment implements CancelCallbac
}
@Override
+ public void onFragmentSelected() {
+ super.onFragmentSelected();
+ setupActivityCallback.setCancelButtonHidden(!ProviderObservable.getInstance().getCurrentProvider().isConfigured());
+ setupActivityCallback.setNavigationButtonHidden(false);
+ }
+
+ @Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
- if (getActivity() instanceof SetupActivityCallback) {
- setupCallback = (SetupActivityCallback) getActivity();
- setupCallback.registerOnPageChangeCallback(onPageChangeCallback);
- setupCallback.registerCancelCallback(this);
- }
+ setupActivityCallback.registerCancelCallback(this);
}
@Override
public void onDetach() {
+ setupActivityCallback.removeCancelCallback(this);
super.onDetach();
- if (setupCallback != null) {
- setupCallback.removeOnPageChangeCallback(onPageChangeCallback);
- setupCallback.removeCancelCallback(this);
- }
- setupCallback = null;
}
@Override
@@ -158,7 +141,7 @@ public class ProviderSelectionFragment extends Fragment implements CancelCallbac
@Override
public void onResume() {
super.onResume();
- setupCallback.onSetupStepValidationChanged(viewModel.isValidConfig());
+ setupActivityCallback.onSetupStepValidationChanged(viewModel.isValidConfig());
}
@Override