summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/providersetup/activities
diff options
context:
space:
mode:
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.java5
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupActivity.java43
-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();
}