mirror of https://github.com/NekoX-Dev/NekoX.git
Option to hide message
This commit is contained in:
parent
3168b0d38f
commit
865e4b9b9a
|
@ -46551,6 +46551,7 @@ public class TLRPC {
|
||||||
public boolean isThreadMessage; //custom
|
public boolean isThreadMessage; //custom
|
||||||
public String translatedMessage; //custom
|
public String translatedMessage; //custom
|
||||||
public boolean translated; // custom
|
public boolean translated; // custom
|
||||||
|
public boolean hide; // custom
|
||||||
|
|
||||||
public static Message TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) {
|
public static Message TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) {
|
||||||
Message result = null;
|
Message result = null;
|
||||||
|
|
|
@ -144,6 +144,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean voiceTransitionInPorgress;
|
boolean voiceTransitionInPorgress;
|
||||||
|
|
||||||
public void setVoiceTransitionInProgress(boolean b) {
|
public void setVoiceTransitionInProgress(boolean b) {
|
||||||
voiceTransitionInPorgress = b;
|
voiceTransitionInPorgress = b;
|
||||||
invalidate();
|
invalidate();
|
||||||
|
@ -778,9 +779,10 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
private SparseArray<Rect> accessibilityVirtualViewBounds = new SparseArray<>();
|
private SparseArray<Rect> accessibilityVirtualViewBounds = new SparseArray<>();
|
||||||
private int currentFocusedVirtualView = -1;
|
private int currentFocusedVirtualView = -1;
|
||||||
|
|
||||||
private boolean isBlockedUserMessage() {
|
private boolean needHideMessage() {
|
||||||
return MessagesController.getInstance(currentAccount).blockePeers.indexOfKey(
|
return currentMessageObject.messageOwner.hide ||
|
||||||
currentMessageObject.getFromChatId()) >= 0 && NekoConfig.ignoreBlocked;
|
MessagesController.getInstance(currentAccount).blockePeers.indexOfKey(currentMessageObject.getFromChatId()) >= 0 &&
|
||||||
|
NekoConfig.ignoreBlocked;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ChatMessageCell(Context context) {
|
public ChatMessageCell(Context context) {
|
||||||
|
@ -2295,7 +2297,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updatePlayingMessageProgress() {
|
public void updatePlayingMessageProgress() {
|
||||||
if (currentMessageObject == null) {
|
if (currentMessageObject == null || needHide) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2413,7 +2415,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
invalidate();
|
invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentMessageObject == null || currentMessageObject.textLayoutBlocks == null) {
|
if (currentMessageObject == null || currentMessageObject.textLayoutBlocks == null || needHide) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
position -= textY;
|
position -= textY;
|
||||||
|
@ -2552,7 +2554,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateSecretTimeText(MessageObject messageObject) {
|
private void updateSecretTimeText(MessageObject messageObject) {
|
||||||
if (messageObject == null || !messageObject.needDrawBluredPreview()) {
|
if (messageObject == null || !messageObject.needDrawBluredPreview() || needHide) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String str = messageObject.getSecretTimeString();
|
String str = messageObject.getSecretTimeString();
|
||||||
|
@ -2975,7 +2977,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
drawVideoSize = false;
|
drawVideoSize = false;
|
||||||
canStreamVideo = false;
|
canStreamVideo = false;
|
||||||
animatingNoSound = 0;
|
animatingNoSound = 0;
|
||||||
drawSideButton = !isRepliesChat && checkNeedDrawShareButton(messageObject) && (currentPosition == null || currentPosition.last) ? 1 : 0;
|
drawSideButton = !isRepliesChat && checkNeedDrawShareButton(messageObject) && (currentPosition == null || currentPosition.last) && totalHeight != 0 ? 1 : 0;
|
||||||
if (isPinnedChat || drawSideButton == 1 && messageObject.messageOwner.fwd_from != null && !messageObject.isOutOwner() && messageObject.messageOwner.fwd_from.saved_from_peer != null && messageObject.getDialogId() == UserConfig.getInstance(currentAccount).getClientUserId()) {
|
if (isPinnedChat || drawSideButton == 1 && messageObject.messageOwner.fwd_from != null && !messageObject.isOutOwner() && messageObject.messageOwner.fwd_from.saved_from_peer != null && messageObject.getDialogId() == UserConfig.getInstance(currentAccount).getClientUserId()) {
|
||||||
drawSideButton = 2;
|
drawSideButton = 2;
|
||||||
}
|
}
|
||||||
|
@ -3970,7 +3972,8 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
currentPhotoFilterThumb = String.format(Locale.US, "%d_%d_b", w, h);
|
currentPhotoFilterThumb = String.format(Locale.US, "%d_%d_b", w, h);
|
||||||
|
|
||||||
if (webDocument != null) {
|
if (webDocument != null) {
|
||||||
/*TODO*/photoImage.setImage(ImageLocation.getForWebFile(webDocument), currentPhotoFilter, null, null, webDocument.size, null, messageObject, 1);
|
/*TODO*/
|
||||||
|
photoImage.setImage(ImageLocation.getForWebFile(webDocument), currentPhotoFilter, null, null, webDocument.size, null, messageObject, 1);
|
||||||
} else {
|
} else {
|
||||||
if (documentAttachType == DOCUMENT_ATTACH_TYPE_WALLPAPER) {
|
if (documentAttachType == DOCUMENT_ATTACH_TYPE_WALLPAPER) {
|
||||||
if (messageObject.mediaExists) {
|
if (messageObject.mediaExists) {
|
||||||
|
@ -4003,13 +4006,16 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
photoImage.setAllowDecodeSingleFrame(true);
|
photoImage.setAllowDecodeSingleFrame(true);
|
||||||
photoImage.setAllowStartAnimation(true);
|
photoImage.setAllowStartAnimation(true);
|
||||||
photoImage.startAnimation();
|
photoImage.startAnimation();
|
||||||
/*TODO*/photoImage.setImage(ImageLocation.getForDocument(documentAttach), ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForDocument(currentPhotoObjectThumb, documentAttach), currentPhotoFilterThumb, null, documentAttach.size, null, messageObject, 0);
|
/*TODO*/
|
||||||
|
photoImage.setImage(ImageLocation.getForDocument(documentAttach), ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForDocument(currentPhotoObjectThumb, documentAttach), currentPhotoFilterThumb, null, documentAttach.size, null, messageObject, 0);
|
||||||
autoPlayingMedia = true;
|
autoPlayingMedia = true;
|
||||||
} else {
|
} else {
|
||||||
if (currentPhotoObjectThumb != null) {
|
if (currentPhotoObjectThumb != null) {
|
||||||
/*TODO*/photoImage.setImage(ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, 0, null, messageObject, 0);
|
/*TODO*/
|
||||||
|
photoImage.setImage(ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, 0, null, messageObject, 0);
|
||||||
} else {
|
} else {
|
||||||
/*TODO*/photoImage.setImage(null, null, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoObject instanceof TLRPC.TL_photoStrippedSize || "s".equals(currentPhotoObject.type) ? currentPhotoFilterThumb : currentPhotoFilter, 0, null, messageObject, 0);
|
/*TODO*/
|
||||||
|
photoImage.setImage(null, null, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoObject instanceof TLRPC.TL_photoStrippedSize || "s".equals(currentPhotoObject.type) ? currentPhotoFilterThumb : currentPhotoFilter, 0, null, messageObject, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (documentAttachType == DOCUMENT_ATTACH_TYPE_GIF || documentAttachType == DOCUMENT_ATTACH_TYPE_ROUND) {
|
} else if (documentAttachType == DOCUMENT_ATTACH_TYPE_GIF || documentAttachType == DOCUMENT_ATTACH_TYPE_ROUND) {
|
||||||
|
@ -4027,23 +4033,28 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
autoPlayingMedia = true;
|
autoPlayingMedia = true;
|
||||||
TLRPC.VideoSize videoSize = MessageObject.getDocumentVideoThumb(document);
|
TLRPC.VideoSize videoSize = MessageObject.getDocumentVideoThumb(document);
|
||||||
if (!messageObject.mediaExists && videoSize != null && (currentPhotoObject == null || currentPhotoObjectThumb == null)) {
|
if (!messageObject.mediaExists && videoSize != null && (currentPhotoObject == null || currentPhotoObjectThumb == null)) {
|
||||||
/*TODO*/photoImage.setImage(ImageLocation.getForDocument(document), document.size < 1024 * 32 ? null : ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForDocument(videoSize, documentAttach), null, ImageLocation.getForDocument(currentPhotoObject != null ? currentPhotoObject : currentPhotoObjectThumb, documentAttach), currentPhotoObject != null ? filter : currentPhotoFilterThumb, null, document.size, null, messageObject, 0);
|
/*TODO*/
|
||||||
|
photoImage.setImage(ImageLocation.getForDocument(document), document.size < 1024 * 32 ? null : ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForDocument(videoSize, documentAttach), null, ImageLocation.getForDocument(currentPhotoObject != null ? currentPhotoObject : currentPhotoObjectThumb, documentAttach), currentPhotoObject != null ? filter : currentPhotoFilterThumb, null, document.size, null, messageObject, 0);
|
||||||
} else {
|
} else {
|
||||||
/*TODO*/photoImage.setImage(ImageLocation.getForDocument(document), document.size < 1024 * 32 ? null : ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForDocument(currentPhotoObject, documentAttach), filter, ImageLocation.getForDocument(currentPhotoObjectThumb, documentAttach), currentPhotoFilterThumb, null, document.size, null, messageObject, 0);
|
/*TODO*/
|
||||||
|
photoImage.setImage(ImageLocation.getForDocument(document), document.size < 1024 * 32 ? null : ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForDocument(currentPhotoObject, documentAttach), filter, ImageLocation.getForDocument(currentPhotoObjectThumb, documentAttach), currentPhotoFilterThumb, null, document.size, null, messageObject, 0);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/*TODO*/photoImage.setImage(null, null, ImageLocation.getForDocument(currentPhotoObject, documentAttach), filter, 0, null, currentMessageObject, 0);
|
/*TODO*/
|
||||||
|
photoImage.setImage(null, null, ImageLocation.getForDocument(currentPhotoObject, documentAttach), filter, 0, null, currentMessageObject, 0);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
boolean photoExist = messageObject.mediaExists;
|
boolean photoExist = messageObject.mediaExists;
|
||||||
String fileName = FileLoader.getAttachFileName(currentPhotoObject);
|
String fileName = FileLoader.getAttachFileName(currentPhotoObject);
|
||||||
if (hasGamePreview || photoExist || DownloadController.getInstance(currentAccount).canDownloadMedia(currentMessageObject) || FileLoader.getInstance(currentAccount).isLoadingFile(fileName)) {
|
if (hasGamePreview || photoExist || DownloadController.getInstance(currentAccount).canDownloadMedia(currentMessageObject) || FileLoader.getInstance(currentAccount).isLoadingFile(fileName)) {
|
||||||
photoNotSet = false;
|
photoNotSet = false;
|
||||||
/*TODO*/photoImage.setImage(ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, 0, null, messageObject, 0);
|
/*TODO*/
|
||||||
|
photoImage.setImage(ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, 0, null, messageObject, 0);
|
||||||
} else {
|
} else {
|
||||||
photoNotSet = true;
|
photoNotSet = true;
|
||||||
if (currentPhotoObjectThumb != null) {
|
if (currentPhotoObjectThumb != null) {
|
||||||
/*TODO*/photoImage.setImage(null, null, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), String.format(Locale.US, "%d_%d_b", w, h), 0, null, messageObject, 0);
|
/*TODO*/
|
||||||
|
photoImage.setImage(null, null, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), String.format(Locale.US, "%d_%d_b", w, h), 0, null, messageObject, 0);
|
||||||
} else {
|
} else {
|
||||||
photoImage.setImageBitmap((Drawable) null);
|
photoImage.setImageBitmap((Drawable) null);
|
||||||
}
|
}
|
||||||
|
@ -5366,13 +5377,15 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
TLRPC.Document document = messageObject.getDocument();
|
TLRPC.Document document = messageObject.getDocument();
|
||||||
|
|
||||||
if (currentMessageObject.videoEditedInfo != null && currentMessageObject.videoEditedInfo.canAutoPlaySourceVideo()) {
|
if (currentMessageObject.videoEditedInfo != null && currentMessageObject.videoEditedInfo.canAutoPlaySourceVideo()) {
|
||||||
/*TODO*/photoImage.setImage(ImageLocation.getForPath(currentMessageObject.videoEditedInfo.originalPath), ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForDocument(currentPhotoObjectThumb, document), currentPhotoFilterThumb, null, messageObject.getDocument().size, null, messageObject, 0);
|
/*TODO*/
|
||||||
|
photoImage.setImage(ImageLocation.getForPath(currentMessageObject.videoEditedInfo.originalPath), ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForDocument(currentPhotoObjectThumb, document), currentPhotoFilterThumb, null, messageObject.getDocument().size, null, messageObject, 0);
|
||||||
photoImage.setMediaStartEndTime(currentMessageObject.videoEditedInfo.startTime / 1000, currentMessageObject.videoEditedInfo.endTime / 1000);
|
photoImage.setMediaStartEndTime(currentMessageObject.videoEditedInfo.startTime / 1000, currentMessageObject.videoEditedInfo.endTime / 1000);
|
||||||
} else {
|
} else {
|
||||||
if (!messageIdChanged && !dataChanged) {
|
if (!messageIdChanged && !dataChanged) {
|
||||||
photoImage.setCrossfadeWithOldImage(true);
|
photoImage.setCrossfadeWithOldImage(true);
|
||||||
}
|
}
|
||||||
/*TODO*/photoImage.setImage(ImageLocation.getForDocument(document), ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForDocument(currentPhotoObjectThumb, document), currentPhotoFilterThumb, null, messageObject.getDocument().size, null, messageObject, 0);
|
/*TODO*/
|
||||||
|
photoImage.setImage(ImageLocation.getForDocument(document), ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForDocument(currentPhotoObjectThumb, document), currentPhotoFilterThumb, null, messageObject.getDocument().size, null, messageObject, 0);
|
||||||
}
|
}
|
||||||
} else if (messageObject.type == MessageObject.TYPE_PHOTO) {
|
} else if (messageObject.type == MessageObject.TYPE_PHOTO) {
|
||||||
if (messageObject.useCustomPhoto) {
|
if (messageObject.useCustomPhoto) {
|
||||||
|
@ -5423,41 +5436,50 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
photoImage.setCrossfadeDuration(250);
|
photoImage.setCrossfadeDuration(250);
|
||||||
}
|
}
|
||||||
if (localFile == 0 && videoSize != null && (currentPhotoObject == null || currentPhotoObjectThumb == null)) {
|
if (localFile == 0 && videoSize != null && (currentPhotoObject == null || currentPhotoObjectThumb == null)) {
|
||||||
/*TODO*/photoImage.setImage(ImageLocation.getForDocument(document), ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForDocument(videoSize, documentAttach), null, ImageLocation.getForDocument(currentPhotoObject != null ? currentPhotoObject : currentPhotoObjectThumb, documentAttach), currentPhotoObject != null ? currentPhotoFilter : currentPhotoFilterThumb, null, document.size, null, messageObject, 0);
|
/*TODO*/
|
||||||
|
photoImage.setImage(ImageLocation.getForDocument(document), ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForDocument(videoSize, documentAttach), null, ImageLocation.getForDocument(currentPhotoObject != null ? currentPhotoObject : currentPhotoObjectThumb, documentAttach), currentPhotoObject != null ? currentPhotoFilter : currentPhotoFilterThumb, null, document.size, null, messageObject, 0);
|
||||||
} else {
|
} else {
|
||||||
/*TODO*/photoImage.setImage(ImageLocation.getForDocument(document), ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, null, document.size, null, messageObject, 0);
|
/*TODO*/
|
||||||
|
photoImage.setImage(ImageLocation.getForDocument(document), ImageLoader.AUTOPLAY_FILTER, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, null, document.size, null, messageObject, 0);
|
||||||
}
|
}
|
||||||
} else if (localFile == 1) {
|
} else if (localFile == 1) {
|
||||||
/*TODO*/photoImage.setImage(ImageLocation.getForPath(messageObject.isSendError() ? null : messageObject.messageOwner.attachPath), null, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, null, 0, null, messageObject, 0);
|
/*TODO*/
|
||||||
|
photoImage.setImage(ImageLocation.getForPath(messageObject.isSendError() ? null : messageObject.messageOwner.attachPath), null, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, null, 0, null, messageObject, 0);
|
||||||
} else {
|
} else {
|
||||||
if (videoSize != null && (currentPhotoObject == null || currentPhotoObjectThumb == null)) {
|
if (videoSize != null && (currentPhotoObject == null || currentPhotoObjectThumb == null)) {
|
||||||
/*TODO*/photoImage.setImage(ImageLocation.getForDocument(document), null, ImageLocation.getForDocument(videoSize, documentAttach), null, ImageLocation.getForDocument(currentPhotoObject != null ? currentPhotoObject : currentPhotoObjectThumb, documentAttach), currentPhotoObject != null ? currentPhotoFilter : currentPhotoFilterThumb, null, document.size, null, messageObject, 0);
|
/*TODO*/
|
||||||
|
photoImage.setImage(ImageLocation.getForDocument(document), null, ImageLocation.getForDocument(videoSize, documentAttach), null, ImageLocation.getForDocument(currentPhotoObject != null ? currentPhotoObject : currentPhotoObjectThumb, documentAttach), currentPhotoObject != null ? currentPhotoFilter : currentPhotoFilterThumb, null, document.size, null, messageObject, 0);
|
||||||
} else {
|
} else {
|
||||||
/*TODO*/photoImage.setImage(ImageLocation.getForDocument(document), null, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, null, document.size, null, messageObject, 0);
|
/*TODO*/
|
||||||
|
photoImage.setImage(ImageLocation.getForDocument(document), null, ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, null, document.size, null, messageObject, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (messageObject.videoEditedInfo != null && messageObject.type == MessageObject.TYPE_ROUND_VIDEO && !currentMessageObject.needDrawBluredPreview()) {
|
if (messageObject.videoEditedInfo != null && messageObject.type == MessageObject.TYPE_ROUND_VIDEO && !currentMessageObject.needDrawBluredPreview()) {
|
||||||
/*TODO*/photoImage.setImage(ImageLocation.getForPath(messageObject.videoEditedInfo.originalPath), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, 0, null, messageObject, 0);
|
/*TODO*/
|
||||||
|
photoImage.setImage(ImageLocation.getForPath(messageObject.videoEditedInfo.originalPath), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, 0, null, messageObject, 0);
|
||||||
photoImage.setMediaStartEndTime(currentMessageObject.videoEditedInfo.startTime / 1000, currentMessageObject.videoEditedInfo.endTime / 1000);
|
photoImage.setMediaStartEndTime(currentMessageObject.videoEditedInfo.startTime / 1000, currentMessageObject.videoEditedInfo.endTime / 1000);
|
||||||
} else {
|
} else {
|
||||||
if (!messageIdChanged && !currentMessageObject.needDrawBluredPreview()) {
|
if (!messageIdChanged && !currentMessageObject.needDrawBluredPreview()) {
|
||||||
photoImage.setCrossfadeWithOldImage(true);
|
photoImage.setCrossfadeWithOldImage(true);
|
||||||
photoImage.setCrossfadeDuration(250);
|
photoImage.setCrossfadeDuration(250);
|
||||||
}
|
}
|
||||||
/*TODO*/photoImage.setImage(ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, 0, null, messageObject, 0);
|
/*TODO*/
|
||||||
|
photoImage.setImage(ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, 0, null, messageObject, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (messageObject.videoEditedInfo != null && messageObject.type == MessageObject.TYPE_ROUND_VIDEO && !currentMessageObject.needDrawBluredPreview()) {
|
if (messageObject.videoEditedInfo != null && messageObject.type == MessageObject.TYPE_ROUND_VIDEO && !currentMessageObject.needDrawBluredPreview()) {
|
||||||
/*TODO*/photoImage.setImage(ImageLocation.getForPath(messageObject.videoEditedInfo.originalPath), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, 0, null, messageObject, currentMessageObject.shouldEncryptPhotoOrVideo() ? 2 : 0);
|
/*TODO*/
|
||||||
|
photoImage.setImage(ImageLocation.getForPath(messageObject.videoEditedInfo.originalPath), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, 0, null, messageObject, currentMessageObject.shouldEncryptPhotoOrVideo() ? 2 : 0);
|
||||||
photoImage.setMediaStartEndTime(currentMessageObject.videoEditedInfo.startTime / 1000, currentMessageObject.videoEditedInfo.endTime / 1000);
|
photoImage.setMediaStartEndTime(currentMessageObject.videoEditedInfo.startTime / 1000, currentMessageObject.videoEditedInfo.endTime / 1000);
|
||||||
} else {
|
} else {
|
||||||
if (!messageIdChanged && !currentMessageObject.needDrawBluredPreview()) {
|
if (!messageIdChanged && !currentMessageObject.needDrawBluredPreview()) {
|
||||||
photoImage.setCrossfadeWithOldImage(true);
|
photoImage.setCrossfadeWithOldImage(true);
|
||||||
photoImage.setCrossfadeDuration(250);
|
photoImage.setCrossfadeDuration(250);
|
||||||
}
|
}
|
||||||
/*TODO*/photoImage.setImage(ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, 0, null, messageObject, currentMessageObject.shouldEncryptPhotoOrVideo() ? 2 : 0);
|
/*TODO*/
|
||||||
|
photoImage.setImage(ImageLocation.getForObject(currentPhotoObject, photoParentObject), currentPhotoFilter, ImageLocation.getForObject(currentPhotoObjectThumb, photoParentObject), currentPhotoFilterThumb, 0, null, messageObject, currentMessageObject.shouldEncryptPhotoOrVideo() ? 2 : 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5862,8 +5884,26 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
|
|
||||||
seekBarWaveform.setProgress(0);
|
seekBarWaveform.setProgress(0);
|
||||||
}
|
}
|
||||||
if (isBlockedUserMessage()) {
|
needHide = needHideMessage();
|
||||||
|
if (needHide) {
|
||||||
totalHeight = 0;
|
totalHeight = 0;
|
||||||
|
drawTime = false;
|
||||||
|
needNewVisiblePart = false;
|
||||||
|
needReplyImage = false;
|
||||||
|
drawCommentButton = false;
|
||||||
|
drawForwardedName = false;
|
||||||
|
drawInstantView = false;
|
||||||
|
drawBackground = false;
|
||||||
|
drawCommentNumber = false;
|
||||||
|
drawImageButton = false;
|
||||||
|
drawJoinChannelView = false;
|
||||||
|
drawJoinGroupView = false;
|
||||||
|
drawMediaCheckBox = false;
|
||||||
|
drawName = false;
|
||||||
|
drawNameLayout = false;
|
||||||
|
drawPhotoImage = false;
|
||||||
|
drawBackground = false;
|
||||||
|
isAvatarVisible = false;
|
||||||
}
|
}
|
||||||
updateWaveform();
|
updateWaveform();
|
||||||
updateButtonState(false, dataChanged && !messageObject.cancelEditing, true);
|
updateButtonState(false, dataChanged && !messageObject.cancelEditing, true);
|
||||||
|
@ -5879,6 +5919,8 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
}
|
}
|
||||||
accessibilityVirtualViewBounds.clear();
|
accessibilityVirtualViewBounds.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean needHide;
|
||||||
|
|
||||||
public void checkVideoPlayback(boolean allowStart) {
|
public void checkVideoPlayback(boolean allowStart) {
|
||||||
if (currentMessageObject.isVideo()) {
|
if (currentMessageObject.isVideo()) {
|
||||||
|
@ -6627,7 +6669,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
inLayout = false;
|
inLayout = false;
|
||||||
}
|
}
|
||||||
updateSelectionTextPosition();
|
updateSelectionTextPosition();
|
||||||
setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), totalHeight + keyboardHeight);
|
setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), needHide ? 0: totalHeight + keyboardHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void forceResetMessageObject() {
|
public void forceResetMessageObject() {
|
||||||
|
@ -6667,7 +6709,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
@SuppressLint("DrawAllocation")
|
@SuppressLint("DrawAllocation")
|
||||||
@Override
|
@Override
|
||||||
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
|
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
|
||||||
if (currentMessageObject == null) {
|
if (currentMessageObject == null || needHide) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (changed || !wasLayout) {
|
if (changed || !wasLayout) {
|
||||||
|
@ -7130,7 +7172,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
int size = AndroidUtilities.dp(48);
|
int size = AndroidUtilities.dp(48);
|
||||||
buttonX = this.buttonX = (int) (photoImage.getImageX() + (photoImage.getImageWidth() - size) / 2.0f);
|
buttonX = this.buttonX = (int) (photoImage.getImageX() + (photoImage.getImageWidth() - size) / 2.0f);
|
||||||
buttonY = this.buttonY = (int) (photoImage.getImageY() + (photoImage.getImageHeight() - size) / 2.0f);
|
buttonY = this.buttonY = (int) (photoImage.getImageY() + (photoImage.getImageHeight() - size) / 2.0f);
|
||||||
radialProgress.setProgressRect((int) buttonX, (int ) buttonY, (int) buttonX + size, (int) buttonY + size);
|
radialProgress.setProgressRect((int) buttonX, (int) buttonY, (int) buttonX + size, (int) buttonY + size);
|
||||||
}
|
}
|
||||||
imageDrawn = photoImage.draw(canvas);
|
imageDrawn = photoImage.draw(canvas);
|
||||||
}
|
}
|
||||||
|
@ -7490,7 +7532,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
canvas.translate(timeAudioX + songX, AndroidUtilities.dp(13) + namesOffset + mediaOffsetY);
|
canvas.translate(timeAudioX + songX, AndroidUtilities.dp(13) + namesOffset + mediaOffsetY);
|
||||||
songLayout.draw(canvas);
|
songLayout.draw(canvas);
|
||||||
canvas.restore();
|
canvas.restore();
|
||||||
|
|
||||||
boolean showSeekbar = MediaController.getInstance().isPlayingMessage(currentMessageObject);
|
boolean showSeekbar = MediaController.getInstance().isPlayingMessage(currentMessageObject);
|
||||||
if (showSeekbar && toSeekBarProgress != 1f) {
|
if (showSeekbar && toSeekBarProgress != 1f) {
|
||||||
toSeekBarProgress += 16f / 100f;
|
toSeekBarProgress += 16f / 100f;
|
||||||
|
@ -7498,7 +7540,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
toSeekBarProgress = 1f;
|
toSeekBarProgress = 1f;
|
||||||
}
|
}
|
||||||
invalidate();
|
invalidate();
|
||||||
} else if (!showSeekbar && toSeekBarProgress != 0){
|
} else if (!showSeekbar && toSeekBarProgress != 0) {
|
||||||
toSeekBarProgress -= 16f / 100f;
|
toSeekBarProgress -= 16f / 100f;
|
||||||
if (toSeekBarProgress < 0) {
|
if (toSeekBarProgress < 0) {
|
||||||
toSeekBarProgress = 0;
|
toSeekBarProgress = 0;
|
||||||
|
@ -8763,7 +8805,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
if (setCurrentDiceValue(!memCache && !currentMessageObject.wasUnread)) {
|
if (setCurrentDiceValue(!memCache && !currentMessageObject.wasUnread)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!thumb && !currentMessageObject.mediaExists && !currentMessageObject.attachPathExists && (currentMessageObject.type == 0 && (documentAttachType == DOCUMENT_ATTACH_TYPE_WALLPAPER || documentAttachType == DOCUMENT_ATTACH_TYPE_NONE || documentAttachType == DOCUMENT_ATTACH_TYPE_STICKER) || currentMessageObject.type == MessageObject.TYPE_PHOTO)){
|
if (!thumb && !currentMessageObject.mediaExists && !currentMessageObject.attachPathExists && (currentMessageObject.type == 0 && (documentAttachType == DOCUMENT_ATTACH_TYPE_WALLPAPER || documentAttachType == DOCUMENT_ATTACH_TYPE_NONE || documentAttachType == DOCUMENT_ATTACH_TYPE_STICKER) || currentMessageObject.type == MessageObject.TYPE_PHOTO)) {
|
||||||
currentMessageObject.mediaExists = true;
|
currentMessageObject.mediaExists = true;
|
||||||
updateButtonState(false, true, false);
|
updateButtonState(false, true, false);
|
||||||
}
|
}
|
||||||
|
@ -10313,7 +10355,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
int additionalTop = 0;
|
int additionalTop = 0;
|
||||||
if (currentPosition != null) {
|
if (currentPosition != null) {
|
||||||
if ((currentPosition.flags & MessageObject.POSITION_FLAG_TOP) == 0) {
|
if ((currentPosition.flags & MessageObject.POSITION_FLAG_TOP) == 0) {
|
||||||
additionalTop -= AndroidUtilities.dp( 3);
|
additionalTop -= AndroidUtilities.dp(3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return additionalTop + (drawPinnedTop ? 0 : AndroidUtilities.dp(1));
|
return additionalTop + (drawPinnedTop ? 0 : AndroidUtilities.dp(1));
|
||||||
|
@ -11023,7 +11065,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
|
|
||||||
int restore = Integer.MIN_VALUE;
|
int restore = Integer.MIN_VALUE;
|
||||||
if (renderingAlpha != 1.0f) {
|
if (renderingAlpha != 1.0f) {
|
||||||
rect.set(captionX, captionY, captionX + captionLayout.getWidth(), captionY + captionLayout.getHeight());
|
rect.set(captionX, captionY, captionX + captionLayout.getWidth(), captionY + captionLayout.getHeight());
|
||||||
restore = canvas.saveLayerAlpha(rect, (int) (255 * renderingAlpha), Canvas.ALL_SAVE_FLAG);
|
restore = canvas.saveLayerAlpha(rect, (int) (255 * renderingAlpha), Canvas.ALL_SAVE_FLAG);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11077,7 +11119,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
boolean drawSelectionBackground = i == 1;
|
boolean drawSelectionBackground = i == 1;
|
||||||
if (i == 1) {
|
if (i == 1) {
|
||||||
curentAplha *= currentSelectedBackgroundAlpha;
|
curentAplha *= currentSelectedBackgroundAlpha;
|
||||||
} else if (!shouldDrawTimeOnMedia()){
|
} else if (!shouldDrawTimeOnMedia()) {
|
||||||
curentAplha *= (1f - currentSelectedBackgroundAlpha);
|
curentAplha *= (1f - currentSelectedBackgroundAlpha);
|
||||||
}
|
}
|
||||||
if (transitionParams.animateShouldDrawTimeOnMedia && transitionParams.animateChangeProgress != 1f) {
|
if (transitionParams.animateShouldDrawTimeOnMedia && transitionParams.animateChangeProgress != 1f) {
|
||||||
|
@ -11232,7 +11274,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
transitionParams.lastStatusDrawableParams = transitionParams.createStatusDrawableParams();
|
transitionParams.lastStatusDrawableParams = transitionParams.createStatusDrawableParams();
|
||||||
|
|
||||||
if (drawClock && fromParent && getParent() != null) {
|
if (drawClock && fromParent && getParent() != null) {
|
||||||
((View)getParent()).invalidate();
|
((View) getParent()).invalidate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11287,7 +11329,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
transitionParams.lastStatusDrawableParams = transitionParams.createStatusDrawableParams();
|
transitionParams.lastStatusDrawableParams = transitionParams.createStatusDrawableParams();
|
||||||
|
|
||||||
if (drawClock && fromParent && getParent() != null) {
|
if (drawClock && fromParent && getParent() != null) {
|
||||||
((View)getParent()).invalidate();
|
((View) getParent()).invalidate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
canvas.save();
|
canvas.save();
|
||||||
|
@ -11341,7 +11383,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
if (!outDrawClock && !isBroadcast && !outIsBroadcast && outDrawCheck2 && drawCheck2 && !outDrawCheck1 && drawCheck1) {
|
if (!outDrawClock && !isBroadcast && !outIsBroadcast && outDrawCheck2 && drawCheck2 && !outDrawCheck1 && drawCheck1) {
|
||||||
drawStatusDrawable(canvas, drawCheck1, drawCheck2, drawClock, drawError, isBroadcast, alpha, bigRadius, timeYOffset, layoutHeight, statusDrawableProgress, true, drawSelectionBackground);
|
drawStatusDrawable(canvas, drawCheck1, drawCheck2, drawClock, drawError, isBroadcast, alpha, bigRadius, timeYOffset, layoutHeight, statusDrawableProgress, true, drawSelectionBackground);
|
||||||
} else {
|
} else {
|
||||||
drawStatusDrawable(canvas, outDrawCheck1, outDrawCheck2, outDrawClock, outDrawError, outIsBroadcast, alpha, bigRadius, timeYOffset, layoutHeight,1f - statusDrawableProgress, false, drawSelectionBackground);
|
drawStatusDrawable(canvas, outDrawCheck1, outDrawCheck2, outDrawClock, outDrawError, outIsBroadcast, alpha, bigRadius, timeYOffset, layoutHeight, 1f - statusDrawableProgress, false, drawSelectionBackground);
|
||||||
drawStatusDrawable(canvas, drawCheck1, drawCheck2, drawClock, drawError, isBroadcast, alpha, bigRadius, timeYOffset, layoutHeight, statusDrawableProgress, false, drawSelectionBackground);
|
drawStatusDrawable(canvas, drawCheck1, drawCheck2, drawClock, drawError, isBroadcast, alpha, bigRadius, timeYOffset, layoutHeight, statusDrawableProgress, false, drawSelectionBackground);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -11371,7 +11413,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
statusDrawableProgress = 0f;
|
statusDrawableProgress = 0f;
|
||||||
statusDrawableAnimator = ValueAnimator.ofFloat(0,1f);
|
statusDrawableAnimator = ValueAnimator.ofFloat(0, 1f);
|
||||||
if (moveCheckTransition) {
|
if (moveCheckTransition) {
|
||||||
statusDrawableAnimator.setDuration(220);
|
statusDrawableAnimator.setDuration(220);
|
||||||
} else {
|
} else {
|
||||||
|
@ -11417,7 +11459,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
clockDrawable = drawSelectionBackground ? Theme.chat_msgInSelectedClockDrawable : Theme.chat_msgInClockDrawable;
|
clockDrawable = drawSelectionBackground ? Theme.chat_msgInSelectedClockDrawable : Theme.chat_msgInClockDrawable;
|
||||||
}
|
}
|
||||||
float timeY = shouldDrawTimeOnMedia() ? photoImage.getImageY2() + additionalTimeOffsetY - AndroidUtilities.dp(9.0f) : layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 9.5f : 8.5f) + timeYOffset;
|
float timeY = shouldDrawTimeOnMedia() ? photoImage.getImageY2() + additionalTimeOffsetY - AndroidUtilities.dp(9.0f) : layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 9.5f : 8.5f) + timeYOffset;
|
||||||
setDrawableBounds(clockDrawable, timeX + (currentMessageObject.scheduled ? 0 : AndroidUtilities.dp(11)), timeY - clockDrawable.getIntrinsicHeight());
|
setDrawableBounds(clockDrawable, timeX + (currentMessageObject.scheduled ? 0 : AndroidUtilities.dp(11)), timeY - clockDrawable.getIntrinsicHeight());
|
||||||
clockDrawable.setAlpha((int) (255 * alpha));
|
clockDrawable.setAlpha((int) (255 * alpha));
|
||||||
if (useScale) {
|
if (useScale) {
|
||||||
canvas.save();
|
canvas.save();
|
||||||
|
@ -11780,7 +11822,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
canvas.translate(AndroidUtilities.dp(4) * (1f - progress), 0);
|
canvas.translate(AndroidUtilities.dp(4) * (1f - progress), 0);
|
||||||
}
|
}
|
||||||
drawable = drawSelectionBackground ? Theme.chat_msgOutCheckReadSelectedDrawable : Theme.chat_msgOutCheckReadDrawable;
|
drawable = drawSelectionBackground ? Theme.chat_msgOutCheckReadSelectedDrawable : Theme.chat_msgOutCheckReadDrawable;
|
||||||
setDrawableBounds(drawable, layoutWidth - AndroidUtilities.dp(22.5f) - drawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 9 : 8) - drawable.getIntrinsicHeight() + timeYOffset);
|
setDrawableBounds(drawable, layoutWidth - AndroidUtilities.dp(22.5f) - drawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 9 : 8) - drawable.getIntrinsicHeight() + timeYOffset);
|
||||||
} else {
|
} else {
|
||||||
drawable = drawSelectionBackground ? Theme.chat_msgOutCheckSelectedDrawable : Theme.chat_msgOutCheckDrawable;
|
drawable = drawSelectionBackground ? Theme.chat_msgOutCheckSelectedDrawable : Theme.chat_msgOutCheckDrawable;
|
||||||
setDrawableBounds(drawable, layoutWidth - AndroidUtilities.dp(18.5f) - drawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 9 : 8) - drawable.getIntrinsicHeight() + timeYOffset);
|
setDrawableBounds(drawable, layoutWidth - AndroidUtilities.dp(18.5f) - drawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(pinnedBottom || pinnedTop ? 9 : 8) - drawable.getIntrinsicHeight() + timeYOffset);
|
||||||
|
@ -11951,7 +11993,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
} else {
|
} else {
|
||||||
imageW = 0;
|
imageW = 0;
|
||||||
}
|
}
|
||||||
if (drawLoadingProgress && loadingProgressLayout != null){
|
if (drawLoadingProgress && loadingProgressLayout != null) {
|
||||||
imageW = 0;
|
imageW = 0;
|
||||||
infoW = (int) loadingProgressLayout.getLineWidth(0);
|
infoW = (int) loadingProgressLayout.getLineWidth(0);
|
||||||
} else {
|
} else {
|
||||||
|
@ -12079,7 +12121,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
StaticLayout docTitleLayout = this.docTitleLayout;
|
StaticLayout docTitleLayout = this.docTitleLayout;
|
||||||
StaticLayout infoLayout = this.infoLayout;
|
StaticLayout infoLayout = this.infoLayout;
|
||||||
float alpha = 1f;
|
float alpha = 1f;
|
||||||
if (transitionParams.animateLocationIsExpired){
|
if (transitionParams.animateLocationIsExpired) {
|
||||||
progress = transitionParams.lastDrawLocationExpireProgress;
|
progress = transitionParams.lastDrawLocationExpireProgress;
|
||||||
text = transitionParams.lastDrawLocationExpireText;
|
text = transitionParams.lastDrawLocationExpireText;
|
||||||
docTitleLayout = transitionParams.lastDrawDocTitleLayout;
|
docTitleLayout = transitionParams.lastDrawDocTitleLayout;
|
||||||
|
@ -12832,6 +12874,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
}
|
}
|
||||||
|
|
||||||
public int computeHeight(MessageObject object, MessageObject.GroupedMessages groupedMessages) {
|
public int computeHeight(MessageObject object, MessageObject.GroupedMessages groupedMessages) {
|
||||||
|
if (needHide) return 0;
|
||||||
/*if (object.type == 2 || object.type == 12 || object.type == 9 ||
|
/*if (object.type == 2 || object.type == 12 || object.type == 9 ||
|
||||||
object.type == 4 || object.type == 14 || object.type == 10 || object.type == 11 ||
|
object.type == 4 || object.type == 14 || object.type == 10 || object.type == 11 ||
|
||||||
object.type == MessageObject.TYPE_ROUND_VIDEO) {
|
object.type == MessageObject.TYPE_ROUND_VIDEO) {
|
||||||
|
@ -12987,7 +13030,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
AccessibilityNodeInfo info = AccessibilityNodeInfo.obtain(ChatMessageCell.this);
|
AccessibilityNodeInfo info = AccessibilityNodeInfo.obtain(ChatMessageCell.this);
|
||||||
onInitializeAccessibilityNodeInfo(info);
|
onInitializeAccessibilityNodeInfo(info);
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
if (isChat && currentUser!=null && !currentMessageObject.isOut()) {
|
if (isChat && currentUser != null && !currentMessageObject.isOut()) {
|
||||||
sb.append(UserObject.getUserName(currentUser));
|
sb.append(UserObject.getUserName(currentUser));
|
||||||
sb.append('\n');
|
sb.append('\n');
|
||||||
}
|
}
|
||||||
|
@ -13009,7 +13052,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
if (currentMessageObject.isMusic()) {
|
if (currentMessageObject.isMusic()) {
|
||||||
sb.append("\n");
|
sb.append("\n");
|
||||||
sb.append(LocaleController.formatString("AccDescrMusicInfo", R.string.AccDescrMusicInfo, currentMessageObject.getMusicAuthor(), currentMessageObject.getMusicTitle()));
|
sb.append(LocaleController.formatString("AccDescrMusicInfo", R.string.AccDescrMusicInfo, currentMessageObject.getMusicAuthor(), currentMessageObject.getMusicTitle()));
|
||||||
} else if (currentMessageObject.isVoice() || currentMessageObject.isRoundVideo()){
|
} else if (currentMessageObject.isVoice() || currentMessageObject.isRoundVideo()) {
|
||||||
sb.append(", ");
|
sb.append(", ");
|
||||||
sb.append(LocaleController.formatDuration(currentMessageObject.getDuration()));
|
sb.append(LocaleController.formatDuration(currentMessageObject.getDuration()));
|
||||||
if (currentMessageObject.isContentUnread()) {
|
if (currentMessageObject.isContentUnread()) {
|
||||||
|
|
|
@ -1091,6 +1091,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
private final static int unpin = 106;
|
private final static int unpin = 106;
|
||||||
private final static int save = 107;
|
private final static int save = 107;
|
||||||
private final static int delete_history = 108;
|
private final static int delete_history = 108;
|
||||||
|
private final static int hide = 109;
|
||||||
|
|
||||||
private final static int bot_help = 30;
|
private final static int bot_help = 30;
|
||||||
private final static int bot_settings = 31;
|
private final static int bot_settings = 31;
|
||||||
|
@ -1904,6 +1905,12 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
ArrayList<MessageObject> messages = getSelectedMessages();
|
ArrayList<MessageObject> messages = getSelectedMessages();
|
||||||
forwardMessages(messages, false, true, 0, UserConfig.getInstance(currentAccount).getClientUserId());
|
forwardMessages(messages, false, true, 0, UserConfig.getInstance(currentAccount).getClientUserId());
|
||||||
undoView.showWithAction(getUserConfig().getClientUserId(), UndoView.ACTION_FWD_MESSAGES, messages.size());
|
undoView.showWithAction(getUserConfig().getClientUserId(), UndoView.ACTION_FWD_MESSAGES, messages.size());
|
||||||
|
} else if (id == hide) {
|
||||||
|
ArrayList<MessageObject> messages = getSelectedMessages();
|
||||||
|
for (MessageObject message : messages) {
|
||||||
|
message.messageOwner.hide = true;
|
||||||
|
}
|
||||||
|
getMessageHelper().resetMessageContent(dialog_id, messages);
|
||||||
} else if (id == delete) {
|
} else if (id == delete) {
|
||||||
if (getParentActivity() == null) {
|
if (getParentActivity() == null) {
|
||||||
return;
|
return;
|
||||||
|
@ -2558,6 +2565,10 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
actionModeOtherItem.addSubItem(unpin, R.drawable.deproko_baseline_pin_undo_24, LocaleController.getString("UnpinMessage", R.string.UnpinMessage));
|
actionModeOtherItem.addSubItem(unpin, R.drawable.deproko_baseline_pin_undo_24, LocaleController.getString("UnpinMessage", R.string.UnpinMessage));
|
||||||
actionModeOtherItem.addSubItem(save, R.drawable.baseline_bookmark_24, LocaleController.getString("AddToSavedMessages", R.string.AddToSavedMessages));
|
actionModeOtherItem.addSubItem(save, R.drawable.baseline_bookmark_24, LocaleController.getString("AddToSavedMessages", R.string.AddToSavedMessages));
|
||||||
|
|
||||||
|
if (NekoConfig.showMessageHide) {
|
||||||
|
actionModeOtherItem.addSubItem(hide, R.drawable.baseline_remove_circle_24, LocaleController.getString("Hide", R.string.Hide));
|
||||||
|
}
|
||||||
|
|
||||||
actionMode.getItem(reply).setVisibility(ChatObject.canSendMessages(currentChat) && selectedMessagesIds[0].size() + selectedMessagesIds[1].size() == 1 ? View.VISIBLE : View.GONE);
|
actionMode.getItem(reply).setVisibility(ChatObject.canSendMessages(currentChat) && selectedMessagesIds[0].size() + selectedMessagesIds[1].size() == 1 ? View.VISIBLE : View.GONE);
|
||||||
actionMode.getItem(edit).setVisibility(canEditMessagesCount == 1 && selectedMessagesIds[0].size() + selectedMessagesIds[1].size() == 1 ? View.VISIBLE : View.GONE);
|
actionMode.getItem(edit).setVisibility(canEditMessagesCount == 1 && selectedMessagesIds[0].size() + selectedMessagesIds[1].size() == 1 ? View.VISIBLE : View.GONE);
|
||||||
actionMode.getItem(copy).setVisibility(selectedMessagesCanCopyIds[0].size() + selectedMessagesCanCopyIds[1].size() != 0 ? View.VISIBLE : View.GONE);
|
actionMode.getItem(copy).setVisibility(selectedMessagesCanCopyIds[0].size() + selectedMessagesCanCopyIds[1].size() != 0 ? View.VISIBLE : View.GONE);
|
||||||
|
@ -19193,6 +19204,11 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
options.add(89);
|
options.add(89);
|
||||||
icons.add(R.drawable.menu_info);
|
icons.add(R.drawable.menu_info);
|
||||||
}
|
}
|
||||||
|
if (NekoConfig.showMessageHide) {
|
||||||
|
items.add(LocaleController.getString("Hide", R.string.Hide));
|
||||||
|
options.add(204);
|
||||||
|
icons.add(R.drawable.baseline_remove_circle_24);
|
||||||
|
}
|
||||||
boolean canViewStats = false;
|
boolean canViewStats = false;
|
||||||
if (message.messageOwner.views > 0 || message.messageOwner.forwards > 0) {
|
if (message.messageOwner.views > 0 || message.messageOwner.forwards > 0) {
|
||||||
if (message.messageOwner.fwd_from != null && message.messageOwner.fwd_from.channel_post != 0) {
|
if (message.messageOwner.fwd_from != null && message.messageOwner.fwd_from.channel_post != 0) {
|
||||||
|
@ -19364,6 +19380,11 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
icons.add(R.drawable.baseline_vpn_key_24);
|
icons.add(R.drawable.baseline_vpn_key_24);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (NekoConfig.showMessageHide) {
|
||||||
|
items.add(LocaleController.getString("Hide", R.string.Hide));
|
||||||
|
options.add(204);
|
||||||
|
icons.add(R.drawable.baseline_remove_circle_24);
|
||||||
|
}
|
||||||
items.add(LocaleController.getString("Delete", R.string.Delete));
|
items.add(LocaleController.getString("Delete", R.string.Delete));
|
||||||
options.add(1);
|
options.add(1);
|
||||||
icons.add(selectedObject.messageOwner.ttl_period != 0 ? R.drawable.msg_delete_auto : R.drawable.baseline_delete_24);
|
icons.add(selectedObject.messageOwner.ttl_period != 0 ? R.drawable.msg_delete_auto : R.drawable.baseline_delete_24);
|
||||||
|
@ -20737,6 +20758,18 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
case 204: {
|
||||||
|
if (selectedObjectGroup != null) {
|
||||||
|
for (MessageObject object : selectedObjectGroup.messages) {
|
||||||
|
object.messageOwner.hide = true;
|
||||||
|
}
|
||||||
|
getMessageHelper().resetMessageContent(dialog_id, selectedObjectGroup.messages);
|
||||||
|
} else {
|
||||||
|
selectedObject.messageOwner.hide = true;
|
||||||
|
getMessageHelper().resetMessageContent(dialog_id, selectedObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
selectedObject = null;
|
selectedObject = null;
|
||||||
selectedObjectGroup = null;
|
selectedObjectGroup = null;
|
||||||
|
|
|
@ -46,6 +46,15 @@ public class MessageHelper extends BaseController {
|
||||||
getNotificationCenter().postNotificationName(NotificationCenter.replaceMessagesObjects, dialog_id, arrayList, false);
|
getNotificationCenter().postNotificationName(NotificationCenter.replaceMessagesObjects, dialog_id, arrayList, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void resetMessageContent(long dialog_id, ArrayList<MessageObject> messageObjects) {
|
||||||
|
ArrayList<MessageObject> arrayList = new ArrayList<>();
|
||||||
|
for (MessageObject messageObject : messageObjects) {
|
||||||
|
MessageObject obj = new MessageObject(currentAccount, messageObject.messageOwner, true, true);
|
||||||
|
arrayList.add(obj);
|
||||||
|
}
|
||||||
|
getNotificationCenter().postNotificationName(NotificationCenter.replaceMessagesObjects, dialog_id, arrayList, false);
|
||||||
|
}
|
||||||
|
|
||||||
public static MessageHelper getInstance(int num) {
|
public static MessageHelper getInstance(int num) {
|
||||||
MessageHelper localInstance = Instance.get(num);
|
MessageHelper localInstance = Instance.get(num);
|
||||||
if (localInstance == null) {
|
if (localInstance == null) {
|
||||||
|
|
|
@ -59,6 +59,7 @@ public class NekoConfig {
|
||||||
public static boolean showMessageDetails;
|
public static boolean showMessageDetails;
|
||||||
public static boolean showTranslate;
|
public static boolean showTranslate;
|
||||||
public static boolean showRepeat;
|
public static boolean showRepeat;
|
||||||
|
public static boolean showMessageHide;
|
||||||
|
|
||||||
public static boolean hidePhone;
|
public static boolean hidePhone;
|
||||||
public static int typeface;
|
public static int typeface;
|
||||||
|
@ -218,6 +219,8 @@ public class NekoConfig {
|
||||||
showMessageDetails = preferences.getBoolean("showMessageDetails", false);
|
showMessageDetails = preferences.getBoolean("showMessageDetails", false);
|
||||||
showTranslate = preferences.getBoolean("showTranslate", true);
|
showTranslate = preferences.getBoolean("showTranslate", true);
|
||||||
showRepeat = preferences.getBoolean("showRepeat", false);
|
showRepeat = preferences.getBoolean("showRepeat", false);
|
||||||
|
showMessageHide = preferences.getBoolean("showMessageHide", false);
|
||||||
|
|
||||||
eventType = preferences.getInt("eventType", 0);
|
eventType = preferences.getInt("eventType", 0);
|
||||||
actionBarDecoration = preferences.getInt("actionBarDecoration", 0);
|
actionBarDecoration = preferences.getInt("actionBarDecoration", 0);
|
||||||
newYear = preferences.getBoolean("newYear", false);
|
newYear = preferences.getBoolean("newYear", false);
|
||||||
|
@ -371,6 +374,14 @@ public class NekoConfig {
|
||||||
editor.apply();
|
editor.apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void toggleShowHide() {
|
||||||
|
showMessageHide = !showMessageHide;
|
||||||
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
||||||
|
SharedPreferences.Editor editor = preferences.edit();
|
||||||
|
editor.putBoolean("showMessageHide", showMessageHide);
|
||||||
|
editor.apply();
|
||||||
|
}
|
||||||
|
|
||||||
public static void toggleIPv6() {
|
public static void toggleIPv6() {
|
||||||
useIPv6 = !useIPv6;
|
useIPv6 = !useIPv6;
|
||||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
||||||
|
|
|
@ -386,7 +386,7 @@ public class NekoChatSettingsActivity extends BaseFragment implements Notificati
|
||||||
linearLayoutInviteContainer.setOrientation(LinearLayout.VERTICAL);
|
linearLayoutInviteContainer.setOrientation(LinearLayout.VERTICAL);
|
||||||
linearLayout.addView(linearLayoutInviteContainer, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT));
|
linearLayout.addView(linearLayoutInviteContainer, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT));
|
||||||
|
|
||||||
int count = NekoXConfig.developerMode ? 9 : 8;
|
int count = NekoXConfig.developerMode ? 10 : 9;
|
||||||
for (int a = 0; a < count; a++) {
|
for (int a = 0; a < count; a++) {
|
||||||
TextCheckCell textCell = new TextCheckCell(context);
|
TextCheckCell textCell = new TextCheckCell(context);
|
||||||
switch (a) {
|
switch (a) {
|
||||||
|
@ -423,6 +423,10 @@ public class NekoChatSettingsActivity extends BaseFragment implements Notificati
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 8: {
|
case 8: {
|
||||||
|
textCell.setTextAndCheck(LocaleController.getString("Hide", R.string.Hide), NekoConfig.showMessageHide, false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 9: {
|
||||||
textCell.setTextAndCheck(LocaleController.getString("MessageDetails", R.string.MessageDetails), NekoConfig.showMessageDetails, false);
|
textCell.setTextAndCheck(LocaleController.getString("MessageDetails", R.string.MessageDetails), NekoConfig.showMessageDetails, false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -474,6 +478,11 @@ public class NekoChatSettingsActivity extends BaseFragment implements Notificati
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 8: {
|
case 8: {
|
||||||
|
NekoConfig.toggleShowHide();
|
||||||
|
textCell.setChecked(NekoConfig.showMessageHide);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 9: {
|
||||||
NekoConfig.toggleShowMessageDetails();
|
NekoConfig.toggleShowMessageDetails();
|
||||||
textCell.setChecked(NekoConfig.showMessageDetails);
|
textCell.setChecked(NekoConfig.showMessageDetails);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue