summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/AddProviderBaseActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/AddProviderBaseActivity.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/AddProviderBaseActivity.java113
1 files changed, 113 insertions, 0 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/AddProviderBaseActivity.java b/app/src/main/java/se/leap/bitmaskclient/AddProviderBaseActivity.java
new file mode 100644
index 00000000..703b6ef0
--- /dev/null
+++ b/app/src/main/java/se/leap/bitmaskclient/AddProviderBaseActivity.java
@@ -0,0 +1,113 @@
+package se.leap.bitmaskclient;
+
+import android.content.Intent;
+import android.support.design.widget.TextInputEditText;
+import android.support.design.widget.TextInputLayout;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.view.View;
+import android.widget.Button;
+
+import butterknife.InjectView;
+
+/**
+ * Created by cyberta on 30.06.18.
+ */
+
+public abstract class AddProviderBaseActivity extends ConfigWizardBaseActivity {
+
+ final public static String EXTRAS_KEY_NEW_URL = "NEW_URL";
+
+ @InjectView(R.id.text_uri_error)
+ TextInputLayout urlError;
+
+ @InjectView(R.id.text_uri)
+ TextInputEditText editUrl;
+
+ @InjectView(R.id.button_cancel)
+ Button cancelButton;
+
+
+ protected void init() {
+ if (this.getIntent().getExtras() != null) {
+ editUrl.setText(this.getIntent().getExtras().getString(ProviderListBaseActivity.EXTRAS_KEY_INVALID_URL));
+ }
+
+ setupSaveButton();
+ setupCancelButton();
+ setUpListeners();
+ setUpInitialUI();
+ }
+
+ public abstract void setupSaveButton();
+
+ private void setupCancelButton() {
+ cancelButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ private void setUpInitialUI() {
+ setProviderHeaderText(R.string.add_provider);
+ hideProgressBar();
+ }
+
+ protected void saveProvider() {
+ String entered_url = getURL();
+ if (validURL(entered_url)) {
+ Intent intent = this.getIntent();
+ intent.putExtra(EXTRAS_KEY_NEW_URL, entered_url);
+ setResult(RESULT_OK, intent);
+ finish();
+ } else {
+ editUrl.setText("");
+ urlError.setError(getString(R.string.not_valid_url_entered));
+ }
+ }
+
+ private void setUpListeners() {
+
+ editUrl.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (!validURL(getURL())) {
+ urlError.setError(getString(R.string.not_valid_url_entered));
+ } else {
+ urlError.setError(null);
+ }
+ }
+ });
+ }
+
+ private String getURL() {
+ String entered_url = editUrl.getText().toString().trim();
+ if (entered_url.contains("www.")) entered_url = entered_url.replaceFirst("www.", "");
+ if (!entered_url.startsWith("https://")) {
+ if (entered_url.startsWith("http://")) {
+ entered_url = entered_url.substring("http://".length());
+ }
+ entered_url = "https://".concat(entered_url);
+ }
+ return entered_url;
+ }
+
+ /**
+ * Checks if the entered url is valid or not.
+ *
+ * @param enteredUrl
+ * @return true if it's not empty nor contains only the protocol.
+ */
+ boolean validURL(String enteredUrl) {
+ return android.util.Patterns.WEB_URL.matcher(enteredUrl).matches();
+ }
+}