diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java b/app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java index cfebc83e6..2dd2e396a 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java @@ -176,7 +176,7 @@ public class ConversationItem extends AbstractFlexibleItem invitedUsers = new ArrayList<>(); private ArrayList invitedGroups = new ArrayList<>(); @@ -278,7 +278,7 @@ public class OperationsMenuController extends BaseController { invite = invitedGroups.get(0); } - if (conversationType.equals(Conversation.RoomType.ROOM_PUBLIC_CALL) || + if (conversationType.equals(Conversation.ConversationType.ROOM_PUBLIC_CALL) || !currentUser.hasSpreedCapabilityWithName("empty-group-room")) { retrofitBucket = ApiUtils.getRetrofitBucketForCreateRoom(currentUser.getBaseUrl(), "3", invite, null); @@ -307,7 +307,7 @@ public class OperationsMenuController extends BaseController { @Override public void onNext(RoomOverall roomOverall) { conversation = roomOverall.getOcs().getData(); - if (conversationType.equals(Conversation.RoomType.ROOM_PUBLIC_CALL) && isGroupCallWorkaroundFinal) { + if (conversationType.equals(Conversation.ConversationType.ROOM_PUBLIC_CALL) && isGroupCallWorkaroundFinal) { performGroupCallWorkaround(credentials); } else { inviteUsersToAConversation(); diff --git a/app/src/main/java/com/nextcloud/talk/jobs/NotificationWorker.java b/app/src/main/java/com/nextcloud/talk/jobs/NotificationWorker.java index a64140f2f..a79b776e9 100644 --- a/app/src/main/java/com/nextcloud/talk/jobs/NotificationWorker.java +++ b/app/src/main/java/com/nextcloud/talk/jobs/NotificationWorker.java @@ -140,12 +140,12 @@ public class NotificationWorker extends Worker { Conversation conversation = roomOverall.getOcs().getData(); intent.putExtra(BundleKeys.KEY_ROOM, Parcels.wrap(conversation)); - if (conversation.getType().equals(Conversation.RoomType.ROOM_TYPE_ONE_TO_ONE_CALL) || + if (conversation.getType().equals(Conversation.ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL) || (!TextUtils.isEmpty(conversation.getObjectType()) && "share:password".equals (conversation.getObjectType()))) { context.startActivity(intent); } else { - if (conversation.getType().equals(Conversation.RoomType.ROOM_GROUP_CALL)) { + if (conversation.getType().equals(Conversation.ConversationType.ROOM_GROUP_CALL)) { conversationType = "group"; } else { conversationType = "public"; diff --git a/app/src/main/java/com/nextcloud/talk/models/json/converters/EnumRoomTypeConverter.java b/app/src/main/java/com/nextcloud/talk/models/json/converters/EnumRoomTypeConverter.java index 1d429e003..0d4d062d4 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/converters/EnumRoomTypeConverter.java +++ b/app/src/main/java/com/nextcloud/talk/models/json/converters/EnumRoomTypeConverter.java @@ -23,23 +23,23 @@ package com.nextcloud.talk.models.json.converters; import com.bluelinelabs.logansquare.typeconverters.IntBasedTypeConverter; import com.nextcloud.talk.models.json.rooms.Conversation; -public class EnumRoomTypeConverter extends IntBasedTypeConverter { +public class EnumRoomTypeConverter extends IntBasedTypeConverter { @Override - public Conversation.RoomType getFromInt(int i) { + public Conversation.ConversationType getFromInt(int i) { switch (i) { case 1: - return Conversation.RoomType.ROOM_TYPE_ONE_TO_ONE_CALL; + return Conversation.ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL; case 2: - return Conversation.RoomType.ROOM_GROUP_CALL; + return Conversation.ConversationType.ROOM_GROUP_CALL; case 3: - return Conversation.RoomType.ROOM_PUBLIC_CALL; + return Conversation.ConversationType.ROOM_PUBLIC_CALL; default: - return Conversation.RoomType.DUMMY; + return Conversation.ConversationType.DUMMY; } } @Override - public int convertToInt(Conversation.RoomType object) { + public int convertToInt(Conversation.ConversationType object) { switch (object) { case DUMMY: return 0; diff --git a/app/src/main/java/com/nextcloud/talk/models/json/rooms/Conversation.java b/app/src/main/java/com/nextcloud/talk/models/json/rooms/Conversation.java index e2603814a..ae3562289 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/rooms/Conversation.java +++ b/app/src/main/java/com/nextcloud/talk/models/json/rooms/Conversation.java @@ -45,7 +45,7 @@ public class Conversation { @JsonField(name = "displayName") public String displayName; @JsonField(name = "type", typeConverter = EnumRoomTypeConverter.class) - public RoomType type; + public ConversationType type; @JsonField(name = "count") public long count; @JsonField(name = "lastPing") @@ -79,7 +79,7 @@ public class Conversation { NotificationLevel notificationLevel; public boolean isPublic() { - return (RoomType.ROOM_PUBLIC_CALL.equals(type)); + return (ConversationType.ROOM_PUBLIC_CALL.equals(type)); } public boolean isGuest() { @@ -93,11 +93,12 @@ public class Conversation { } public boolean isNameEditable() { - return (canModerate() && !RoomType.ROOM_TYPE_ONE_TO_ONE_CALL.equals(type)); + return (canModerate() && !ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL.equals(type)); } - public boolean isDeletable() { - return (canModerate() && ((participants != null && participants.size() > 2) || numberOfGuests > 0)); + public boolean canLeave() { + return !canModerate() || (getType() != ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL && getCount() > 1); + } public enum NotificationLevel { @@ -108,7 +109,7 @@ public class Conversation { } @Parcel - public enum RoomType { + public enum ConversationType { DUMMY, ROOM_TYPE_ONE_TO_ONE_CALL, ROOM_GROUP_CALL, diff --git a/app/src/main/java/com/nextcloud/talk/models/json/websocket/RoomPropertiesWebSocketMessage.java b/app/src/main/java/com/nextcloud/talk/models/json/websocket/RoomPropertiesWebSocketMessage.java index 2e3fe77f3..5c0b2489c 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/websocket/RoomPropertiesWebSocketMessage.java +++ b/app/src/main/java/com/nextcloud/talk/models/json/websocket/RoomPropertiesWebSocketMessage.java @@ -35,5 +35,5 @@ public class RoomPropertiesWebSocketMessage { String name; @JsonField(name = "type", typeConverter = EnumRoomTypeConverter.class) - Conversation.RoomType roomType; + Conversation.ConversationType roomType; }