Commit 7d0f8d30 authored by Rafael Kellermann Streit's avatar Rafael Kellermann Streit Committed by GitHub

Merge pull request #519 from RocketChat/fix/custom-room-types

Fallback room type to group ("p") if admin adds a custom room type
parents b546f323 dc4438f0
......@@ -179,7 +179,7 @@ object RestApiHelper {
var restApiUrl: String? = null
when (roomType) {
Room.TYPE_CHANNEL -> restApiUrl = "/api/v1/channels.messages"
Room.TYPE_PRIVATE -> restApiUrl = "/api/v1/groups.messages"
Room.TYPE_GROUP -> restApiUrl = "/api/v1/groups.messages"
Room.TYPE_DIRECT_MESSAGE -> restApiUrl = "/api/v1/dm.messages"
}
return restApiUrl
......@@ -195,7 +195,7 @@ object RestApiHelper {
var restApiUrl: String? = null
when (roomType) {
Room.TYPE_CHANNEL -> restApiUrl = "/api/v1/channels.files"
Room.TYPE_PRIVATE -> restApiUrl = "/api/v1/groups.files"
Room.TYPE_GROUP -> restApiUrl = "/api/v1/groups.files"
Room.TYPE_DIRECT_MESSAGE -> restApiUrl = "/api/v1/dm.files"
}
return restApiUrl
......@@ -211,7 +211,7 @@ object RestApiHelper {
var restApiUrl: String? = null
when (roomType) {
Room.TYPE_CHANNEL -> restApiUrl = "/api/v1/channels.members"
Room.TYPE_PRIVATE -> restApiUrl = "/api/v1/groups.members"
Room.TYPE_GROUP -> restApiUrl = "/api/v1/groups.members"
Room.TYPE_DIRECT_MESSAGE -> restApiUrl = "/api/v1/dm.members"
}
return restApiUrl
......
......@@ -23,14 +23,14 @@ public class ChannelRoomListHeader implements RoomListHeader {
@Override
public boolean owns(RoomSidebar roomSidebar) {
return roomSidebar.getType().equals(Room.TYPE_CHANNEL) || roomSidebar.getType().equals(Room.TYPE_PRIVATE);
return roomSidebar.getType().equals(Room.TYPE_CHANNEL) || roomSidebar.getType().equals(Room.TYPE_GROUP);
}
@Override
public boolean shouldShow(@NonNull List<RoomSidebar> roomSidebarList) {
for (RoomSidebar roomSidebar: roomSidebarList) {
if ((roomSidebar.getType().equals(Room.TYPE_CHANNEL)
|| roomSidebar.getType().equals(Room.TYPE_PRIVATE))
|| roomSidebar.getType().equals(Room.TYPE_GROUP))
&& !roomSidebar.isAlert()
&& !roomSidebar.isFavorite()) {
return true;
......
......@@ -2,6 +2,7 @@ package chat.rocket.android.layouthelper.chatroom.roomlist;
import android.support.v7.widget.RecyclerView;
import chat.rocket.android.helper.Logger;
import chat.rocket.android.widget.internal.RoomListItemView;
import chat.rocket.core.models.Room;
import chat.rocket.core.models.RoomSidebar;
......@@ -92,14 +93,16 @@ public class RoomListItemViewHolder extends RecyclerView.ViewHolder {
case Room.TYPE_CHANNEL:
itemView.showPublicChannelIcon();
break;
case Room.TYPE_PRIVATE:
case Room.TYPE_GROUP:
itemView.showPrivateChannelIcon();
break;
case Room.TYPE_LIVECHAT:
itemView.showLivechatChannelIcon();
break;
default:
throw new AssertionError("Room type doesn't satisfies the method documentation. Room type is:" + roomType);
default: {
itemView.showPrivateChannelIcon();
Logger.report(new AssertionError("Room type doesn't satisfies the method documentation. Room type is:" + roomType));
}
}
}
}
\ No newline at end of file
......@@ -6,7 +6,7 @@ import com.google.auto.value.AutoValue;
public abstract class Room {
public static final String TYPE_CHANNEL = "c";
public static final String TYPE_PRIVATE = "p";
public static final String TYPE_GROUP = "p";
public static final String TYPE_DIRECT_MESSAGE = "d";
public static final String TYPE_LIVECHAT = "l";
......@@ -35,7 +35,7 @@ public abstract class Room {
}
public boolean isPrivate() {
return TYPE_PRIVATE.equals(getType());
return TYPE_GROUP.equals(getType());
}
public boolean isDirectMessage() {
......
......@@ -2,9 +2,10 @@ package chat.rocket.core.models
class RoomSidebar {
lateinit var id: String
lateinit var roomId: String
lateinit var roomName: String
lateinit var type: String
lateinit var roomId: String
var type: String? = null
get() = RoomType.get(field) ?: Room.TYPE_GROUP
var userStatus: String? = null
var isAlert: Boolean = false
var isFavorite: Boolean = false
......
package chat.rocket.core.models;
import org.jetbrains.annotations.Nullable;
public enum RoomType {
CHANNEL("c"),
GROUP("p"),
DIRECT_MESSAGE("d"),
LIVECHAT("l")
;
private final String type;
RoomType(String type) {
this.type = type;
}
@Nullable
public static String get(@Nullable String type) {
for (RoomType roomType : RoomType.values()) {
if (roomType.type.equals(type)) {
return roomType.type;
}
}
return null;
}
}
......@@ -16,7 +16,7 @@ public abstract class SpotlightRoom {
}
public boolean isPrivate() {
return Room.TYPE_PRIVATE.equals(getType());
return Room.TYPE_GROUP.equals(getType());
}
public boolean isDirectMessage() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment