diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java b/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java
index 95b7e665d..de9c9b43b 100644
--- a/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java
+++ b/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java
@@ -270,6 +270,45 @@ public class ConversationsListController extends BaseController implements Searc
currentUser = userUtils.getCurrentUser();
if (currentUser != null) {
+ if (!currentUser.hasSpreedFeatureCapability("no-ping")) {
+ // Talk 4+
+ new LovelyStandardDialog(getActivity(), LovelyStandardDialog.ButtonLayout.HORIZONTAL)
+ .setTopColorRes(R.color.nc_darkRed)
+ .setIcon(DisplayUtils.getTintedDrawable(context.getResources(),
+ R.drawable.ic_timer_black_24dp, R.color.bg_default))
+ .setPositiveButtonColor(context.getResources().getColor(R.color.nc_darkRed))
+ .setCancelable(false)
+ .setTitle(R.string.nc_settings_server_eol_title)
+ .setMessage(R.string.nc_settings_server_eol)
+ .setPositiveButton(R.string.nc_settings_remove_account, new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ boolean otherUserExists = userUtils.scheduleUserForDeletionWithId(currentUser.getId());
+
+ OneTimeWorkRequest accountRemovalWork = new OneTimeWorkRequest.Builder(AccountRemovalWorker.class).build();
+ WorkManager.getInstance().enqueue(accountRemovalWork);
+
+ if (otherUserExists && getView() != null) {
+ onViewBound(getView());
+ onAttach(getView());
+ } else if (!otherUserExists) {
+ getRouter().setRoot(RouterTransaction.with(
+ new ServerSelectionController())
+ .pushChangeHandler(new VerticalChangeHandler())
+ .popChangeHandler(new VerticalChangeHandler()));
+ }
+ }
+ })
+ .setNegativeButton(R.string.nc_cancel, new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ getRouter().pushController(RouterTransaction.with(new SwitchAccountController()));
+ }
+ })
+ .setInstanceStateHandler(ID_DELETE_CONVERSATION_DIALOG, saveStateHandler)
+ .show();
+ }
+
credentials = ApiUtils.getCredentials(currentUser.getUsername(), currentUser.getToken());
shouldUseLastMessageLayout = currentUser.hasSpreedFeatureCapability("last-room-activity");
if (getActivity() != null && getActivity() instanceof MainActivity) {
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f6daad2d0..aa79b6cbf 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -85,6 +85,7 @@
Please confirm your intent to remove the current account.
Remove account
Add a new account
+ Unsupported server
The server version is too old and not supported by this version of the
Android app
The server version is very old and will not be supported in the next