summaryrefslogtreecommitdiff
path: root/main/src/main/java/de/blinkt/openvpn/fragments/ConnectionsAdapter.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/main/java/de/blinkt/openvpn/fragments/ConnectionsAdapter.java')
-rw-r--r--main/src/main/java/de/blinkt/openvpn/fragments/ConnectionsAdapter.java37
1 files changed, 35 insertions, 2 deletions
diff --git a/main/src/main/java/de/blinkt/openvpn/fragments/ConnectionsAdapter.java b/main/src/main/java/de/blinkt/openvpn/fragments/ConnectionsAdapter.java
index 05adef0d..9fd7c04f 100644
--- a/main/src/main/java/de/blinkt/openvpn/fragments/ConnectionsAdapter.java
+++ b/main/src/main/java/de/blinkt/openvpn/fragments/ConnectionsAdapter.java
@@ -5,17 +5,20 @@
package de.blinkt.openvpn.fragments;
+import android.app.AlertDialog;
import android.content.Context;
+import android.content.DialogInterface;
import android.support.v7.widget.RecyclerView;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.BaseAdapter;
+import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
+import android.widget.ImageButton;
import android.widget.RadioGroup;
import android.widget.Switch;
import android.widget.TextView;
@@ -52,6 +55,7 @@ public class ConnectionsAdapter extends RecyclerView.Adapter<ConnectionsAdapter.
private final EditText mCustomOptionText;
private final CheckBox mCustomOptionCB;
private final View mCustomOptionsLayout;
+ private final ImageButton mDeleteButton;
public ConnectionsHolder(View card) {
super(card);
@@ -63,6 +67,7 @@ public class ConnectionsAdapter extends RecyclerView.Adapter<ConnectionsAdapter.
mCustomOptionText = (EditText) card.findViewById(R.id.customoptions);
mProtoGroup = (RadioGroup) card.findViewById(R.id.udptcpradiogroup);
mCustomOptionsLayout = card.findViewById(R.id.custom_options_layout);
+ mDeleteButton = (ImageButton) card.findViewById(R.id.remove_connection);
}
}
@@ -116,6 +121,25 @@ public class ConnectionsAdapter extends RecyclerView.Adapter<ConnectionsAdapter.
}
});
+ cH.mDeleteButton.setOnClickListener(
+ new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ AlertDialog.Builder ab = new AlertDialog.Builder(mContext);
+ ab.setTitle(R.string.query_delete_remote);
+ ab.setPositiveButton(R.string.keep, null);
+ ab.setNegativeButton(R.string.delete, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ removeRemote(i);
+ notifyItemRemoved(i);
+ }
+ });
+ ab.create().show();
+ }
+ }
+ );
+
cH.mServerNameView.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
@@ -154,6 +178,15 @@ public class ConnectionsAdapter extends RecyclerView.Adapter<ConnectionsAdapter.
}
+ private void removeRemote(int idx) {
+ Connection[] mConnections2 = Arrays.copyOf(mConnections, mConnections.length-1);
+ for (int i=idx+1;i<mConnections.length;i++){
+ mConnections2[i-1]=mConnections[i];
+ }
+ mConnections = mConnections2;
+ displayWarningifNoneEnabled();
+ }
+
@Override
public int getItemCount() {
return mConnections.length;
@@ -173,7 +206,7 @@ public class ConnectionsAdapter extends RecyclerView.Adapter<ConnectionsAdapter.
mConnections = Arrays.copyOf(mConnections, mConnections.length+1);
mConnections[mConnections.length-1] = new Connection();
notifyItemInserted(mConnections.length-1);
-
+ displayWarningifNoneEnabled();
}
public void saveProfile() {