diff --git a/src/main/java/org/thoughtcrime/securesms/relay/RelayListActivity.java b/src/main/java/org/thoughtcrime/securesms/relay/RelayListActivity.java index dcb2de0a3..5ed04a2e4 100644 --- a/src/main/java/org/thoughtcrime/securesms/relay/RelayListActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/relay/RelayListActivity.java @@ -7,6 +7,7 @@ import android.view.MenuItem; import androidx.annotation.NonNull; import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AlertDialog; import androidx.recyclerview.widget.DividerItemDecoration; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -65,8 +66,6 @@ public class RelayListActivity extends BaseActionBarActivity loadRelays(); } - } - private void loadRelays() { Util.runOnAnyBackgroundThread(() -> { String mainRelayAddr = ""; @@ -110,6 +109,23 @@ public class RelayListActivity extends BaseActionBarActivity startActivity(intent); } + @Override + public void onRelayDelete(EnteredLoginParam relay) { + new AlertDialog.Builder(this) + .setTitle(R.string.remove_transport) + .setMessage(getString(R.string.confirm_remove_transport, relay.addr)) + .setPositiveButton(R.string.ok, (dialog, which) -> { + try { + rpc.deleteTransport(accId, relay.addr); + loadRelays(); + } catch (RpcException e) { + Log.e(TAG, "RPC.deleteTransport() failed", e); + } + }) + .setNegativeButton(R.string.cancel, null) + .show(); + } + @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { if (item.getItemId() == android.R.id.home) { diff --git a/src/main/java/org/thoughtcrime/securesms/relay/RelayListAdapter.java b/src/main/java/org/thoughtcrime/securesms/relay/RelayListAdapter.java index f0bf1b8b5..365b9babf 100644 --- a/src/main/java/org/thoughtcrime/securesms/relay/RelayListAdapter.java +++ b/src/main/java/org/thoughtcrime/securesms/relay/RelayListAdapter.java @@ -7,6 +7,7 @@ import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; import org.thoughtcrime.securesms.R; @@ -25,6 +26,7 @@ public class RelayListAdapter extends RecyclerView.Adapter relays, String mainRelayAddr) { + public void setRelays(@Nullable List relays, String mainRelayAddr) { this.relays = relays != null ? relays : new ArrayList<>(); this.mainRelayAddr = mainRelayAddr; notifyDataSetChanged(); @@ -65,17 +67,20 @@ public class RelayListAdapter extends RecyclerView.Adapter { if (listener != null) { @@ -88,6 +93,12 @@ public class RelayListAdapter extends RecyclerView.Adapter { + if (listener != null) { + listener.onRelayDelete(relay); + } + }); } } } diff --git a/src/main/res/layout/relay_list_item.xml b/src/main/res/layout/relay_list_item.xml index 08b192914..f028ebe3b 100644 --- a/src/main/res/layout/relay_list_item.xml +++ b/src/main/res/layout/relay_list_item.xml @@ -49,4 +49,18 @@ android:background="@drawable/touch_highlight_background" android:src="@drawable/ic_create_white_24dp" app:tint="?attr/conversation_list_item_date_color" /> + + +