1
0
mirror of https://github.com/MGislv/NekoX.git synced 2024-06-30 10:14:04 +00:00
This commit is contained in:
luvletter2333 2022-02-28 16:00:41 +08:00
parent 9fd741ffa0
commit 1c57ed952e
No known key found for this signature in database
GPG Key ID: A26A8880836E1978
10 changed files with 55 additions and 37 deletions

View File

@ -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<Long> 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);

View File

@ -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() {

View File

@ -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();

View File

@ -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());

View File

@ -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<Integer> 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);
}

View File

@ -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);

View File

@ -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<Integer> ids = new ArrayList<>();

View File

@ -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);

View File

@ -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);
}

View File

@ -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)) {