diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java b/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java index 1756f5147..0bc35e518 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java @@ -4230,6 +4230,7 @@ public class AndroidUtilities { // Sets FLAG_SECURE to true, until it gets unregistered (when returned callback is run) // Useful for having multiple reasons to have this flag on. public static Runnable registerFlagSecure(Window window) { + if (NekoXConfig.disableFlagSecure) return () -> {}; final long reasonId = (long) (Math.random() * 999999999); final ArrayList reasonIds; if (flagSecureReasons.containsKey(window)) { @@ -4252,7 +4253,7 @@ public class AndroidUtilities { } final boolean value = flagSecureReasons.containsKey(window) && flagSecureReasons.get(window).size() > 0; try { - if (value) { + if (value && !NekoXConfig.disableFlagSecure) { window.setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE); } else { window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java b/TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java index 5b6e6cb84..e27e7991f 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java @@ -5888,7 +5888,7 @@ public class MessageObject { } public boolean canForwardMessage() { - return NekoXConfig.disableFlagSecure || !(messageOwner instanceof TLRPC.TL_message_secret) && !needDrawBluredPreview() && !isLiveLocation() && type != 16 && !isSponsored() && !messageOwner.noforwards; + return !(messageOwner instanceof TLRPC.TL_message_secret) && !needDrawBluredPreview() && !isLiveLocation() && type != 16 && !isSponsored() && !messageOwner.noforwards; } public boolean canEditMedia() { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java index 19407a0bb..fca8436ef 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java @@ -2923,6 +2923,14 @@ public class MessagesController extends BaseController implements NotificationCe return isChatNoForwards(getChat(chatId)); } + public boolean isChatNoForwardsWithOverride(long chatId) { + return isChatNoForwards(getChat(chatId)) && !NekoXConfig.disableFlagSecure; + } + + public boolean isChatNoForwardsWithOverride(TLRPC.Chat chat) { + return isChatNoForwards(chat) && !NekoXConfig.disableFlagSecure; + } + public TLRPC.User getUser(Long id) { if (id == 0) { return UserConfig.getInstance(currentAccount).getCurrentUser(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java index b71b2b6e6..e417d49cc 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java @@ -2677,7 +2677,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate private boolean checkTextSelection(MotionEvent event) { TextSelectionHelper.ChatListTextSelectionHelper textSelectionHelper = delegate.getTextSelectionHelper(); - if (textSelectionHelper == null || MessagesController.getInstance(currentAccount).isChatNoForwards(currentMessageObject.getChatId()) || (currentMessageObject.messageOwner != null && currentMessageObject.messageOwner.noforwards)) { + if (textSelectionHelper == null || MessagesController.getInstance(currentAccount).isChatNoForwardsWithOverride(currentMessageObject.getChatId()) || (currentMessageObject.messageOwner != null && currentMessageObject.messageOwner.noforwards && !NekoXConfig.disableFlagSecure)) { return false; } boolean hasTextBlocks = currentMessageObject.textLayoutBlocks != null && !currentMessageObject.textLayoutBlocks.isEmpty(); @@ -3512,7 +3512,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate drawVideoSize = false; canStreamVideo = false; animatingNoSound = 0; - if (MessagesController.getInstance(currentAccount).isChatNoForwards(messageObject.getChatId()) || (messageObject.messageOwner != null && messageObject.messageOwner.noforwards)) { + if (MessagesController.getInstance(currentAccount).isChatNoForwardsWithOverride(messageObject.getChatId()) || (messageObject.messageOwner != null && messageObject.messageOwner.noforwards && !NekoXConfig.disableFlagSecure)) { drawSideButton = 0; } else { drawSideButton = !isRepliesChat && checkNeedDrawShareButton(messageObject) && (currentPosition == null || currentPosition.last) && !needHide ? 1 : 0; @@ -6746,7 +6746,7 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate } private void updateFlagSecure() { - boolean flagSecure = currentMessageObject != null && currentMessageObject.messageOwner != null && currentMessageObject.messageOwner.noforwards; + boolean flagSecure = currentMessageObject != null && currentMessageObject.messageOwner != null && currentMessageObject.messageOwner.noforwards && !NekoXConfig.disableFlagSecure; Activity activity = AndroidUtilities.findActivity(getContext()); if (flagSecure && unregisterFlagSecure == null && activity != null) { unregisterFlagSecure = AndroidUtilities.registerFlagSecure(activity.getWindow()); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java index d4cd40345..75a50f06f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java @@ -3039,7 +3039,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not boolean noforward = getMessagesController().isChatNoForwards(currentChat); - if (currentEncryptedChat == null || NekoXConfig.disableFlagSecure && !noforward) { + if (currentEncryptedChat == null || !noforward) { actionModeOtherItem.addSubItem(nkbtn_forward_noquote, R.drawable.baseline_fast_forward_24, LocaleController.getString("NoQuoteForward", R.string.NoQuoteForward)); actionModeOtherItem.addSubItem(star, R.drawable.baseline_favorite_20, LocaleController.getString("AddToFavorites", R.string.AddToFavorites)); actionModeOtherItem.addSubItem(save_to, R.drawable.msg_download, LocaleController.getString("SaveToMusic", R.string.SaveToMusic)); @@ -3060,7 +3060,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not actionMode.getItem(nkactionbarbtn_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(copy).setVisibility(!getMessagesController().isChatNoForwards(currentChat) && selectedMessagesCanCopyIds[0].size() + selectedMessagesCanCopyIds[1].size() != 0 ? View.VISIBLE : View.GONE); + actionMode.getItem(copy).setVisibility(!getMessagesController().isChatNoForwardsWithOverride(currentChat) && selectedMessagesCanCopyIds[0].size() + selectedMessagesCanCopyIds[1].size() != 0 ? View.VISIBLE : View.GONE); actionMode.getItem(delete).setVisibility(cantDeleteMessagesCount == 0 ? View.VISIBLE : View.GONE); actionModeOtherItem.setSubItemVisibility(star, selectedMessagesCanStarIds[0].size() + selectedMessagesCanStarIds[1].size() != 0); @@ -9832,6 +9832,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } private boolean hasSelectedNoforwardsMessage() { + try { for (int i = 0; i < selectedMessagesIds.length; ++i) { for (int j = 0; j < selectedMessagesIds[i].size(); ++j) { @@ -10900,7 +10901,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } private void showTextSelectionHint(MessageObject messageObject) { - if (getParentActivity() == null || getMessagesController().isChatNoForwards(messageObject.getChatId()) || (messageObject != null && messageObject.messageOwner != null && messageObject.messageOwner.noforwards)) { + if (getParentActivity() == null || (getMessagesController().isChatNoForwardsWithOverride(messageObject.getChatId()) || (messageObject != null && messageObject.messageOwner != null && messageObject.messageOwner.noforwards && !NekoXConfig.disableFlagSecure))) { return; } CharSequence text; @@ -13724,7 +13725,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (selectedMessagesIds[index].indexOfKey(messageObject.getId()) >= 0) { selectedMessagesIds[index].remove(messageObject.getId()); if (reportType < 0) { - if ((messageObject.type == 0 || messageObject.isAnimatedEmoji() || messageObject.caption != null) && !(messageObject.messageOwner != null && messageObject.messageOwner.noforwards)) { + if ((messageObject.type == 0 || messageObject.isAnimatedEmoji() || messageObject.caption != null) && !(messageObject.messageOwner != null && messageObject.messageOwner.noforwards && !NekoXConfig.disableFlagSecure)) { selectedMessagesCanCopyIds[index].remove(messageObject.getId()); } if (!messageObject.isAnimatedEmoji() && (messageObject.isSticker() || messageObject.isAnimatedSticker()) && MessageObject.isStickerHasSet(messageObject.getDocument())) { @@ -13736,7 +13737,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (!messageObject.canDeleteMessage(chatMode == MODE_SCHEDULED, currentChat)) { cantDeleteMessagesCount--; } - boolean noforwards = getMessagesController().isChatNoForwards(currentChat); + boolean noforwards = getMessagesController().isChatNoForwardsWithOverride(currentChat); if (chatMode == MODE_SCHEDULED || !messageObject.canForwardMessage() || noforwards) { cantForwardMessagesCount--; } else { @@ -13761,7 +13762,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } selectedMessagesIds[index].put(messageObject.getId(), messageObject); if (reportType < 0) { - if ((messageObject.type == 0 || messageObject.isAnimatedEmoji() || messageObject.caption != null) && !(messageObject.messageOwner != null && messageObject.messageOwner.noforwards)) { + if ((messageObject.type == 0 || messageObject.isAnimatedEmoji() || messageObject.caption != null) && !(messageObject.messageOwner != null && messageObject.messageOwner.noforwards && !NekoXConfig.disableFlagSecure)) { selectedMessagesCanCopyIds[index].put(messageObject.getId(), messageObject); } if (!messageObject.isAnimatedEmoji() && (messageObject.isSticker() || messageObject.isAnimatedSticker()) && MessageObject.isStickerHasSet(messageObject.getDocument())) { @@ -13885,7 +13886,8 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } int copyVisible = copyItem.getVisibility(); - copyItem.setVisibility(!noforwards && selectedMessagesCanCopyIds[0].size() + selectedMessagesCanCopyIds[1].size() != 0 ? View.VISIBLE : View.GONE); + boolean noforwardsOverride = noforwards && !NekoXConfig.disableFlagSecure; + copyItem.setVisibility(!noforwardsOverride && selectedMessagesCanCopyIds[0].size() + selectedMessagesCanCopyIds[1].size() != 0 ? View.VISIBLE : View.GONE); actionModeOtherItem.setSubItemVisibility(star, getMediaDataController().canAddStickerToFavorites() && (selectedMessagesCanStarIds[0].size() + selectedMessagesCanStarIds[1].size()) == selectedCount); if (selectItem != null) { ArrayList ids = new ArrayList<>(); @@ -21443,6 +21445,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } allowPin = allowPin && message.getId() > 0 && (message.messageOwner.action == null || message.messageOwner.action instanceof TLRPC.TL_messageActionEmpty); boolean noforwards = getMessagesController().isChatNoForwards(currentChat) || message.messageOwner.noforwards; + boolean noforwardsOverride = noforwards && !NekoXConfig.disableFlagSecure; boolean allowUnpin = message.getDialogId() != mergeDialogId && allowPin && (pinnedMessageObjects.containsKey(message.getId()) || groupedMessages != null && !groupedMessages.messages.isEmpty() && pinnedMessageObjects.containsKey(groupedMessages.messages.get(0).getId())); boolean allowEdit = message.canEditMessage(currentChat) && !chatActivityEnterView.hasAudioToSend() && message.getDialogId() != mergeDialogId; if (allowEdit && groupedMessages != null) { @@ -21499,7 +21502,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } if (type == -1) { - if ((selectedObject.type == 0 || selectedObject.isAnimatedEmoji() || getMessageCaption(selectedObject, selectedObjectGroup) != null) && !noforwards) { + if ((selectedObject.type == 0 || selectedObject.isAnimatedEmoji() || getMessageCaption(selectedObject, selectedObjectGroup) != null) && !noforwardsOverride) { items.add(LocaleController.getString("Copy", R.string.Copy)); options.add(OPTION_COPY); icons.add(R.drawable.baseline_content_copy_24); @@ -21573,7 +21576,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not items.add(LocaleController.getString("Retry", R.string.Retry)); options.add(OPTION_RETRY); icons.add(R.drawable.baseline_replay_24); - if (!noforwards) { + if (!noforwardsOverride) { items.add(LocaleController.getString("Copy", R.string.Copy)); options.add(OPTION_COPY); icons.add(R.drawable.baseline_content_copy_24); @@ -21604,7 +21607,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not options.add(8); icons.add(R.drawable.baseline_reply_24); } - if ((selectedObject.type == 0 || selectedObject.isDice() || selectedObject.isAnimatedEmoji() || getMessageCaption(selectedObject, selectedObjectGroup) != null) && !noforwards) { + if ((selectedObject.type == 0 || selectedObject.isDice() || selectedObject.isAnimatedEmoji() || getMessageCaption(selectedObject, selectedObjectGroup) != null) && !noforwardsOverride) { items.add(LocaleController.getString("Copy", R.string.Copy)); options.add(3); icons.add(R.drawable.baseline_content_copy_24); @@ -21646,24 +21649,24 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not options.add(26); icons.add(R.drawable.msg_pollstop); } - } else if (selectedObject.isMusic() && !noforwards) { + } else if (selectedObject.isMusic() && !noforwardsOverride) { items.add(LocaleController.getString("SaveToMusic", R.string.SaveToMusic)); options.add(OPTION_SAVE_TO_DOWNLOADS_OR_MUSIC); icons.add(R.drawable.msg_download); - } else if (selectedObject.isDocument() && !noforwards) { + } else if (selectedObject.isDocument() && !noforwardsOverride) { items.add(LocaleController.getString("SaveToDownloads", R.string.SaveToDownloads)); options.add(OPTION_SAVE_TO_DOWNLOADS_OR_MUSIC); icons.add(R.drawable.msg_download); } } - } else if (type == 3 && !noforwards) { + } else if (type == 3 && !noforwardsOverride) { if (selectedObject.messageOwner.media instanceof TLRPC.TL_messageMediaWebPage && MessageObject.isNewGifDocument(selectedObject.messageOwner.media.webpage.document)) { items.add(LocaleController.getString("SaveToGIFs", R.string.SaveToGIFs)); options.add(11); icons.add(R.drawable.deproko_baseline_gif_24); } } else if (type == 4) { - if (!noforwards) { + if (!noforwardsOverride) { if (selectedObject.isVideo()) { if (!selectedObject.needDrawBluredPreview()) { items.add(LocaleController.getString("SaveToGallery", R.string.SaveToGallery)); @@ -21680,7 +21683,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not items.add(LocaleController.getString("ShareFile", R.string.ShareFile)); options.add(6); icons.add(R.drawable.baseline_share_24); - } else if (selectedObject.getDocument() != null) { + } else if (selectedObject.getDocument() != null) { if (MessageObject.isNewGifDocument(selectedObject.getDocument())) { items.add(LocaleController.getString("SaveToGIFs", R.string.SaveToGIFs)); options.add(11); @@ -21734,7 +21737,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not items.add(LocaleController.getString("ImportSettings", R.string.ImportSettings)); icons.add(R.drawable.baseline_security_24); } - if (!noforwards) { + if (!noforwardsOverride) { items.add(LocaleController.getString("SaveToDownloads", R.string.SaveToDownloads)); options.add(OPTION_SAVE_TO_DOWNLOADS_OR_MUSIC); icons.add(R.drawable.baseline_file_download_24); @@ -21742,7 +21745,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not options.add(6); icons.add(R.drawable.baseline_share_24); } - } else if (type == 6 && !noforwards) { + } else if (type == 6 && !noforwardsOverride) { items.add(LocaleController.getString("SaveToGallery", R.string.SaveToGallery)); options.add(7); icons.add(R.drawable.baseline_image_24); @@ -21791,7 +21794,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not icons.add(R.drawable.baseline_person_add_24); } if (!TextUtils.isEmpty(selectedObject.messageOwner.media.phone_number)) { - if (!noforwards) { + if (!noforwardsOverride) { items.add(LocaleController.getString("Copy", R.string.Copy)); options.add(16); icons.add(R.drawable.baseline_content_copy_24); @@ -21820,6 +21823,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } boolean noforward = getMessagesController().isChatNoForwards(currentChat); + boolean noforwardOverride = noforward && !NekoXConfig.disableFlagSecure; if (!selectedObject.isSponsored() && chatMode != MODE_SCHEDULED && !selectedObject.needDrawBluredPreview() && !selectedObject.isLiveLocation() && selectedObject.type != 16 && !noforwards) { items.add(LocaleController.getString("Forward", R.string.Forward)); options.add(2); @@ -21984,7 +21988,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not options.add(8); icons.add(R.drawable.baseline_reply_24); } - if ((selectedObject.type == 0 || selectedObject.isAnimatedEmoji() || getMessageCaption(selectedObject, selectedObjectGroup) != null) && !noforwards) { + if ((selectedObject.type == 0 || selectedObject.isAnimatedEmoji() || getMessageCaption(selectedObject, selectedObjectGroup) != null) && !noforwardsOverride) { items.add(LocaleController.getString("Copy", R.string.Copy)); options.add(3); icons.add(R.drawable.baseline_content_copy_24); @@ -22002,7 +22006,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not icons.add(R.drawable.baseline_forum_24); items.add(LocaleController.getString("ViewInChat", R.string.ViewInChat)); } - if (type == 4 && !noforwards) { + if (type == 4 && !noforwardsOverride) { if (selectedObject.isVideo()) { items.add(LocaleController.getString("SaveToGallery", R.string.SaveToGallery)); options.add(4); @@ -22057,7 +22061,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not icons.add(R.drawable.baseline_person_add_24); } if (!TextUtils.isEmpty(selectedObject.messageOwner.media.phone_number)) { - if (!noforwards) { + if (!noforwardsOverride) { items.add(LocaleController.getString("Copy", R.string.Copy)); options.add(16); icons.add(R.drawable.baseline_content_copy_24); @@ -24841,8 +24845,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not return; } boolean noforwards = getMessagesController().isChatNoForwards(currentChat) || (messageObject != null && messageObject.messageOwner != null && messageObject.messageOwner.noforwards); + boolean noforwardsOverride = noforwards && !NekoXConfig.disableFlagSecure; if (url instanceof URLSpanMono) { - if (!noforwards) { + if (!noforwardsOverride) { ((URLSpanMono) url).copyToClipboard(); getUndoView().showWithAction(0, UndoView.ACTION_TEXT_COPIED, null); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AudioPlayerAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AudioPlayerAlert.java index ce3fe99da..959a924f0 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AudioPlayerAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AudioPlayerAlert.java @@ -1875,7 +1875,7 @@ public class AudioPlayerAlert extends BottomSheet implements NotificationCenter. } else { optionsButton.setVisibility(View.VISIBLE); } - if (MessagesController.getInstance(currentAccount).isChatNoForwards(messageObject.getChatId())) { + if (MessagesController.getInstance(currentAccount).isChatNoForwardsWithOverride(messageObject.getChatId())) { optionsButton.hideSubItem(1); optionsButton.hideSubItem(2); optionsButton.hideSubItem(5); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaLayout.java index d8b456f4e..98f78fcfa 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaLayout.java @@ -115,6 +115,7 @@ import java.util.HashMap; import java.util.HashSet; import kotlin.Unit; +import tw.nekomimi.nekogram.NekoXConfig; import tw.nekomimi.nekogram.ui.BottomBuilder; import tw.nekomimi.nekogram.utils.AlertUtil; import tw.nekomimi.nekogram.utils.ProxyUtil; @@ -2249,6 +2250,7 @@ public class SharedMediaLayout extends FrameLayout implements NotificationCenter } } private boolean hasNoforwardsMessage() { + if (NekoXConfig.disableFlagSecure) return false; boolean hasNoforwardsMessage = false; for (int a = 1; a >= 0; a--) { ArrayList ids = new ArrayList<>(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java index 58d7b103b..0910813f5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java @@ -10316,6 +10316,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat isVideo = newMessageObject.isVideo(); boolean isInvoice = newMessageObject.isInvoice(); boolean noforwards = MessagesController.getInstance(currentAccount).isChatNoForwards(newMessageObject.getChatId()) || (newMessageObject.messageOwner != null && newMessageObject.messageOwner.noforwards); + boolean noforwardsOverride = noforwards && !NekoXConfig.disableFlagSecure; if (isInvoice) { setItemVisible(masksItem, false, true); menuItem.hideSubItem(gallery_menu_delete); @@ -10327,7 +10328,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat nameTextView.setText(""); dateTextView.setText(""); } else { - allowShare = !noforwards; + allowShare = !noforwardsOverride; if (newMessageObject.isNewGif() && allowShare) { menuItem.showSubItem(gallery_menu_savegif); } @@ -10341,7 +10342,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat menuItem.showSubItem(gallery_menu_openin); setItemVisible(pipItem, true, false); } else if (isVideo) { - if (!noforwards || (slideshowMessageId == 0 ? newMessageObject.messageOwner.media.webpage != null && newMessageObject.messageOwner.media.webpage.url != null : + if (!noforwardsOverride || (slideshowMessageId == 0 ? newMessageObject.messageOwner.media.webpage != null && newMessageObject.messageOwner.media.webpage.url != null : imagesArr.get(0).messageOwner.media.webpage != null && imagesArr.get(0).messageOwner.media.webpage.url != null)) { menuItem.showSubItem(gallery_menu_openin); } else { @@ -10437,7 +10438,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (!newMessageObject.canDeleteMessage(parentChatActivity != null && parentChatActivity.isInScheduleMode(), null)) { menuItem.hideSubItem(gallery_menu_delete); } - allowShare = !noforwards; + allowShare = !noforwardsOverride; bottomButtonsLayout.setVisibility(View.VISIBLE); paintButton.setVisibility(View.GONE); shareItem.setVisibility(allowShare ? View.VISIBLE : View.GONE); @@ -10516,7 +10517,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat setItemVisible(sendNoQuoteItem, false, false); setItemVisible(sendItem, false, false); } - if (isEmbedVideo || newMessageObject.messageOwner.ttl != 0 && newMessageObject.messageOwner.ttl < 60 * 60 || noforwards) { + if (isEmbedVideo || newMessageObject.messageOwner.ttl != 0 && newMessageObject.messageOwner.ttl < 60 * 60 || noforwardsOverride) { allowShare = false; menuItem.hideSubItem(gallery_menu_save); bottomButtonsLayout.setVisibility(View.GONE); @@ -10601,14 +10602,14 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } else { actionBar.setTitle(LocaleController.formatString("Of", R.string.Of, switchingToIndex + 1, imagesArrLocations.size())); } - boolean noforwards = avatarsDialogId != 0 && MessagesController.getInstance(currentAccount).isChatNoForwards(-avatarsDialogId); - if (noforwards) { + boolean noforwardsOverrided = avatarsDialogId != 0 && MessagesController.getInstance(currentAccount).isChatNoForwardsWithOverride(-avatarsDialogId); + if (noforwardsOverrided) { menuItem.hideSubItem(gallery_menu_save); } else { menuItem.showSubItem(gallery_menu_save); } menuItem.showSubItem(gallery_menu_scan); - allowShare = !noforwards; + allowShare = !noforwardsOverrided; shareButton.setVisibility(allowShare && shareItem.getVisibility() != View.VISIBLE ? View.VISIBLE : View.GONE); bottomButtonsLayout.setVisibility(!videoPlayerControlVisible ? View.VISIBLE : View.GONE); if (bottomButtonsLayout.getVisibility() == View.VISIBLE) { @@ -10818,7 +10819,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (switchingToIndex < 0 || switchingToIndex >= size) { return; } - allowShare = !MessagesController.getInstance(currentAccount).isChatNoForwards(-currentDialogId); + allowShare = !MessagesController.getInstance(currentAccount).isChatNoForwardsWithOverride(-currentDialogId); TLRPC.PageBlock pageBlock = pageBlocksAdapter.get(switchingToIndex); caption = pageBlocksAdapter.getCaption(switchingToIndex); isVideo = pageBlocksAdapter.isVideo(switchingToIndex); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java index cf06b3b1f..ff3f4821d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java @@ -6846,7 +6846,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. //otherItem.addSubItem(edit_avatar, R.drawable.photo_paint, LocaleController.getString("EditPhoto", R.string.EditPhoto)); otherItem.addSubItem(delete_avatar, R.drawable.baseline_delete_24, LocaleController.getString("Delete", R.string.Delete)); } - if (getMessagesController().isChatNoForwards(currentChat)) { + if (getMessagesController().isChatNoForwardsWithOverride(currentChat)) { otherItem.hideSubItem(gallery_menu_save); } diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/NekoXConfig.java b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/NekoXConfig.java index 04348325a..364949123 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/NekoXConfig.java +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/NekoXConfig.java @@ -131,6 +131,7 @@ public class NekoXConfig { if (hasDeveloper != null) return hasDeveloper; hasDeveloper = false; + if (BuildVars.DEBUG_VERSION) hasDeveloper = true; for (int acc : SharedConfig.activeAccounts) { long myId = UserConfig.getInstance(acc).clientUserId; if (ArrayUtil.contains(NekoXConfig.developers, myId)) {