NekoX/TMessagesProj/src/main/java/org/telegram/messenger/ChatObject.java

108 lines
4.6 KiB
Java
Raw Normal View History

2015-09-24 22:52:02 +02:00
/*
2015-10-29 18:10:07 +01:00
* This is the source code of Telegram for Android v. 3.x.x.
2015-09-24 22:52:02 +02:00
* It is licensed under GNU GPL v. 2 or later.
* You should have received a copy of the license in this archive (see LICENSE).
*
2017-03-31 01:58:05 +02:00
* Copyright Nikolai Kudashov, 2013-2017.
2015-09-24 22:52:02 +02:00
*/
package org.telegram.messenger;
import org.telegram.tgnet.TLRPC;
public class ChatObject {
public static final int CHAT_TYPE_CHAT = 0;
public static final int CHAT_TYPE_BROADCAST = 1;
public static final int CHAT_TYPE_CHANNEL = 2;
public static final int CHAT_TYPE_USER = 3;
2015-11-26 22:04:02 +01:00
public static final int CHAT_TYPE_MEGAGROUP = 4;
2015-09-24 22:52:02 +02:00
public static boolean isLeftFromChat(TLRPC.Chat chat) {
2015-11-26 22:04:02 +01:00
return chat == null || chat instanceof TLRPC.TL_chatEmpty || chat instanceof TLRPC.TL_chatForbidden || chat instanceof TLRPC.TL_channelForbidden || chat.left || chat.deactivated;
2015-09-24 22:52:02 +02:00
}
public static boolean isKickedFromChat(TLRPC.Chat chat) {
2017-07-08 18:32:04 +02:00
return chat == null || chat instanceof TLRPC.TL_chatEmpty || chat instanceof TLRPC.TL_chatForbidden || chat instanceof TLRPC.TL_channelForbidden || chat.kicked || chat.deactivated || chat.banned_rights != null && chat.banned_rights.view_messages;
2015-09-24 22:52:02 +02:00
}
public static boolean isNotInChat(TLRPC.Chat chat) {
2015-11-26 22:04:02 +01:00
return chat == null || chat instanceof TLRPC.TL_chatEmpty || chat instanceof TLRPC.TL_chatForbidden || chat instanceof TLRPC.TL_channelForbidden || chat.left || chat.kicked || chat.deactivated;
2015-09-24 22:52:02 +02:00
}
public static boolean isChannel(TLRPC.Chat chat) {
return chat instanceof TLRPC.TL_channel || chat instanceof TLRPC.TL_channelForbidden;
}
2017-12-08 18:35:59 +01:00
public static boolean isMegagroup(TLRPC.Chat chat) {
return (chat instanceof TLRPC.TL_channel || chat instanceof TLRPC.TL_channelForbidden) && chat.megagroup;
}
2017-07-08 18:32:04 +02:00
public static boolean hasAdminRights(TLRPC.Chat chat) {
return chat != null && (chat.creator || chat.admin_rights != null && chat.admin_rights.flags != 0);
}
public static boolean canChangeChatInfo(TLRPC.Chat chat) {
return chat != null && (chat.creator || chat.admin_rights != null && chat.admin_rights.change_info);
}
public static boolean canAddAdmins(TLRPC.Chat chat) {
return chat != null && (chat.creator || chat.admin_rights != null && chat.admin_rights.add_admins);
}
public static boolean canBlockUsers(TLRPC.Chat chat) {
return chat != null && (chat.creator || chat.admin_rights != null && chat.admin_rights.ban_users);
}
public static boolean canSendStickers(TLRPC.Chat chat) {
return chat == null || chat != null && (chat.banned_rights == null || !chat.banned_rights.send_media && !chat.banned_rights.send_stickers);
}
public static boolean canSendEmbed(TLRPC.Chat chat) {
return chat == null || chat != null && (chat.banned_rights == null || !chat.banned_rights.send_media && !chat.banned_rights.embed_links);
}
public static boolean canSendMessages(TLRPC.Chat chat) {
return chat == null || chat != null && (chat.banned_rights == null || !chat.banned_rights.send_messages);
}
public static boolean canPost(TLRPC.Chat chat) {
return chat != null && (chat.creator || chat.admin_rights != null && chat.admin_rights.post_messages);
}
public static boolean canAddViaLink(TLRPC.Chat chat) {
return chat != null && (chat.creator || chat.admin_rights != null && chat.admin_rights.invite_link);
}
public static boolean canAddUsers(TLRPC.Chat chat) {
return chat != null && (chat.creator || chat.admin_rights != null && chat.admin_rights.invite_users);
}
public static boolean canEditInfo(TLRPC.Chat chat) {
return chat != null && (chat.creator || chat.admin_rights != null && chat.admin_rights.change_info);
}
2015-09-24 22:52:02 +02:00
public static boolean isChannel(int chatId) {
TLRPC.Chat chat = MessagesController.getInstance().getChat(chatId);
return chat instanceof TLRPC.TL_channel || chat instanceof TLRPC.TL_channelForbidden;
}
public static boolean isCanWriteToChannel(int chatId) {
TLRPC.Chat chat = MessagesController.getInstance().getChat(chatId);
2017-07-08 18:32:04 +02:00
return chat != null && (chat.creator || chat.admin_rights != null && chat.admin_rights.post_messages || chat.megagroup);
2015-09-24 22:52:02 +02:00
}
public static boolean canWriteToChat(TLRPC.Chat chat) {
2017-07-08 18:32:04 +02:00
return !isChannel(chat) || chat.creator || chat.admin_rights != null && chat.admin_rights.post_messages || !chat.broadcast;
2015-09-24 22:52:02 +02:00
}
public static TLRPC.Chat getChatByDialog(long did) {
int lower_id = (int) did;
int high_id = (int) (did >> 32);
2015-10-29 18:10:07 +01:00
if (lower_id < 0) {
return MessagesController.getInstance().getChat(-lower_id);
2015-09-24 22:52:02 +02:00
}
return null;
}
}