diff options
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/providersetup/activities')
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/providersetup/activities/CancelCallback.java | 5 | ||||
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupActivity.java | 43 | ||||
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupActivityCallback.java (renamed from app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupInterface.java) | 13 |
3 files changed, 55 insertions, 6 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/CancelCallback.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/CancelCallback.java new file mode 100644 index 00000000..a3f387d8 --- /dev/null +++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/CancelCallback.java @@ -0,0 +1,5 @@ +package se.leap.bitmaskclient.providersetup.activities; + +public interface CancelCallback { + void onCanceled(); +} diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupActivity.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupActivity.java index f62f959d..33e9cbbd 100644 --- a/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupActivity.java +++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupActivity.java @@ -4,6 +4,8 @@ import static android.view.View.GONE; import static android.view.View.VISIBLE; import static androidx.appcompat.app.ActionBar.DISPLAY_SHOW_CUSTOM; +import static se.leap.bitmaskclient.tor.TorStatusObservable.TorStatus.OFF; + import androidx.annotation.ColorInt; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; @@ -13,22 +15,29 @@ import androidx.viewpager2.widget.ViewPager2; import android.annotation.SuppressLint; import android.content.Context; import android.os.Bundle; +import android.util.Log; import android.view.Gravity; import android.view.View; -import android.widget.Button; import android.widget.Toast; +import java.util.HashSet; +import java.util.Iterator; + import se.leap.bitmaskclient.BuildConfig; import se.leap.bitmaskclient.R; import se.leap.bitmaskclient.base.models.Provider; import se.leap.bitmaskclient.base.views.ActionBarTitle; import se.leap.bitmaskclient.databinding.ActivitySetupBinding; import se.leap.bitmaskclient.providersetup.SetupViewPagerAdapter; +import se.leap.bitmaskclient.tor.TorServiceCommand; +import se.leap.bitmaskclient.tor.TorStatusObservable; -public class SetupActivity extends AppCompatActivity implements SetupInterface { +public class SetupActivity extends AppCompatActivity implements SetupActivityCallback { + private static final String TAG = SetupActivity.class.getSimpleName(); ActivitySetupBinding binding; Provider provider; + private final HashSet<CancelCallback> cancelCallbacks = new HashSet<>(); @SuppressLint("ClickableViewAccessibility") @Override @@ -66,6 +75,17 @@ public class SetupActivity extends AppCompatActivity implements SetupInterface { } binding.viewPager.setCurrentItem(newPos); }); + binding.setupCancelButton.setOnClickListener(v -> { + binding.viewPager.setCurrentItem(0, false); + if (TorStatusObservable.getStatus() != OFF) { + Log.d(TAG, "SHUTDOWN - cancelSettingUpProvider"); + TorServiceCommand.stopTorServiceAsync(this); + } + provider = null; + for (CancelCallback cancelCallback : cancelCallbacks) { + cancelCallback.onCanceled(); + } + }); setupActionBar(); } @@ -116,13 +136,23 @@ public class SetupActivity extends AppCompatActivity implements SetupInterface { } @Override + public void registerCancelCallback(CancelCallback cancelCallback) { + cancelCallbacks.add(cancelCallback); + } + + @Override + public void removeCancelCallback(CancelCallback cancelCallback) { + cancelCallbacks.remove(cancelCallback); + } + + @Override public void setNavigationButtonHidden(boolean isHidden) { binding.setupNextButton.setVisibility(isHidden ? GONE : VISIBLE); } @Override - public void onCanceled() { - binding.viewPager.setCurrentItem(0); + public void setCancelButtonHidden(boolean isHidden) { + binding.setupCancelButton.setVisibility(isHidden ? GONE : VISIBLE); } @Override @@ -131,6 +161,11 @@ public class SetupActivity extends AppCompatActivity implements SetupInterface { } @Override + public void onConfigurationSuccess() { + binding.viewPager.setCurrentItem(binding.viewPager.getCurrentItem() + 1); + } + + @Override public Provider getSelectedProvider() { return provider; } diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupInterface.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupActivityCallback.java index 1438ee5d..8fe4118d 100644 --- a/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupInterface.java +++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupActivityCallback.java @@ -4,16 +4,25 @@ import androidx.viewpager2.widget.ViewPager2; import se.leap.bitmaskclient.base.models.Provider; -public interface SetupInterface { +public interface SetupActivityCallback { void onSetupStepValidationChanged(boolean isValid); void registerOnPageChangeCallback(ViewPager2.OnPageChangeCallback callback); void removeOnPageChangeCallback(ViewPager2.OnPageChangeCallback callback); + + void registerCancelCallback(CancelCallback cancelCallback); + + void removeCancelCallback(CancelCallback cancelCallback); + + void setNavigationButtonHidden(boolean isHidden); - void onCanceled(); + + void setCancelButtonHidden(boolean isHidden); void onProviderSelected(Provider provider); + void onConfigurationSuccess(); + Provider getSelectedProvider(); } |