mirror of https://github.com/NekoX-Dev/NekoX.git
Improves
This commit is contained in:
parent
56c53abcc4
commit
34a97553dd
|
@ -53,9 +53,11 @@ NekoX is an **free and open source** third-party Telegram client, based on Teleg
|
||||||
- Option to block others from starting a secret chat with you
|
- Option to block others from starting a secret chat with you
|
||||||
- Allow create group without invite
|
- Allow create group without invite
|
||||||
- Option to upgrade group to supergroup
|
- Option to upgrade group to supergroup
|
||||||
|
- Mark dialogs as read using tab menu
|
||||||
- Improved session dialog
|
- Improved session dialog
|
||||||
- Improved link long click menu
|
- Improved link long click menu
|
||||||
- Text replacer
|
- Text replacer
|
||||||
|
- Option to disable trending
|
||||||
- Tgx style message unpin menu
|
- Tgx style message unpin menu
|
||||||
- Built-in Material Design themes / Telegram X style icons
|
- Built-in Material Design themes / Telegram X style icons
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
apply plugin: 'com.android.application'
|
apply plugin: 'com.android.application'
|
||||||
apply plugin: 'kotlin-android'
|
apply plugin: 'kotlin-android'
|
||||||
|
|
||||||
def verName = "7.4.2-rc01"
|
def verName = "7.4.2-rc02"
|
||||||
def verCode = 176
|
def verCode = 178
|
||||||
|
|
||||||
def officialVer = "7.4.2"
|
def officialVer = "7.4.2"
|
||||||
def officialCode = 2227
|
def officialCode = 2227
|
||||||
|
|
|
@ -75,7 +75,6 @@ dialogCheckboxSquareUnchecked=-8550769
|
||||||
avatar_actionBarSelectorOrange=-2130706433
|
avatar_actionBarSelectorOrange=-2130706433
|
||||||
avatar_backgroundInProfileRed=-12627531
|
avatar_backgroundInProfileRed=-12627531
|
||||||
chat_emojiPanelNewTrending=-12627531
|
chat_emojiPanelNewTrending=-12627531
|
||||||
chat_emojiPanelStickerPackSelector=-12627531
|
|
||||||
chat_unreadMessagesStartArrowIcon=-12627531
|
chat_unreadMessagesStartArrowIcon=-12627531
|
||||||
avatar_backgroundActionBarOrange=-12627531
|
avatar_backgroundActionBarOrange=-12627531
|
||||||
windowBackgroundWhiteBlackText=-12434878
|
windowBackgroundWhiteBlackText=-12434878
|
||||||
|
|
|
@ -1,442 +0,0 @@
|
||||||
chat_unreadMessagesStartText=-12627531
|
|
||||||
chat_inFileBackgroundSelected=-12627531
|
|
||||||
chat_editDoneIcon=-12627531
|
|
||||||
radioBackgroundChecked=-12627531
|
|
||||||
dialogTextBlue=-12627531
|
|
||||||
chat_inSentClockSelected=-2143333963
|
|
||||||
avatar_backgroundActionBarGreen=-12627531
|
|
||||||
chat_goDownButtonCounterBackground=-1
|
|
||||||
chat_mediaLoaderPhotoSelected=-2147483648
|
|
||||||
actionBarActionModeDefaultTop=0
|
|
||||||
actionBarActionModeDefault=-12627531
|
|
||||||
dialogCheckboxSquareBackground=-12627531
|
|
||||||
chats_menuPhone=-2130706433
|
|
||||||
sessions_devicesImage=-8550769
|
|
||||||
chat_outViews=-2130706433
|
|
||||||
avatar_actionBarSelectorCyan=-2130706433
|
|
||||||
chat_secretTimerBackground=-12627531
|
|
||||||
chat_botKeyboardButtonText=-1
|
|
||||||
chat_outViaBotNameText=-2130706433
|
|
||||||
profile_actionPressedBackground=1073741824
|
|
||||||
key_chat_messagePanelVoiceLock=-8550769
|
|
||||||
chat_secretChatStatusText=-8550769
|
|
||||||
switchTrack=-2137088354
|
|
||||||
chat_inPreviewInstantSelectedText=-2143333963
|
|
||||||
location_sendLocationBackground=-12627531
|
|
||||||
avatar_nameInMessageViolet=-12627531
|
|
||||||
emptyListPlaceholder=-8550769
|
|
||||||
chat_inAudioSelectedProgress=-1
|
|
||||||
chats_nameMessage=-12627531
|
|
||||||
contacts_inviteBackground=-12627531
|
|
||||||
avatar_subtitleInProfileViolet=-2130706433
|
|
||||||
chat_messagePanelCancelInlineBot=-2137088354
|
|
||||||
checkbox=-12627531
|
|
||||||
chat_outAudioSeekbarFill=-1
|
|
||||||
actionBarWhiteSelector=1073741824
|
|
||||||
chat_botKeyboardButtonBackgroundPressed=-2143333963
|
|
||||||
player_time=-12627531
|
|
||||||
chat_outTimeSelectedText=-2130706433
|
|
||||||
chat_outFileProgressSelected=-12627531
|
|
||||||
chat_emojiSearchBackground=-1118482
|
|
||||||
chat_inFileProgressSelected=-1
|
|
||||||
changephoneinfo_image=-12627531
|
|
||||||
avatar_backgroundPink=-12627531
|
|
||||||
chat_inAudioPerfomerText=-1069592139
|
|
||||||
player_button=-8550769
|
|
||||||
login_progressOuter=-12627531
|
|
||||||
avatar_backgroundInProfileOrange=-12627531
|
|
||||||
chat_inContactNameText=-12627531
|
|
||||||
chats_menuPhoneCats=-2130706433
|
|
||||||
chat_outPreviewLine=-1
|
|
||||||
dialogScrollGlow=-12627531
|
|
||||||
chat_messagePanelHint=-8550769
|
|
||||||
location_sendLiveLocationBackground=-769226
|
|
||||||
windowBackgroundGray=-1118482
|
|
||||||
chat_inViaBotNameText=-2143333963
|
|
||||||
chat_outVoiceSeekbar=1627389951
|
|
||||||
dialogGrayLine=167772160
|
|
||||||
player_actionBarTitle=-12627531
|
|
||||||
chat_outFileIcon=-12627531
|
|
||||||
calls_ratingStar=-8550769
|
|
||||||
chat_adminText=-2143333963
|
|
||||||
chat_inFileProgress=-1
|
|
||||||
dialogIcon=-8550769
|
|
||||||
chat_emojiPanelEmptyText=-8550769
|
|
||||||
chat_replyPanelClose=-8550769
|
|
||||||
chat_emojiPanelBackspace=1621008030
|
|
||||||
featuredStickers_addButtonPressed=-2143333963
|
|
||||||
chat_outAudioTitleText=-1
|
|
||||||
chat_emojiPanelStickerSetNameIcon=-8550769
|
|
||||||
chat_emojiPanelBackground=-328966
|
|
||||||
chats_unreadCounter=-12627531
|
|
||||||
groupcreate_hintText=-8550769
|
|
||||||
chat_inReplyMediaMessageSelectedText=-1069592139
|
|
||||||
dialogCheckboxSquareUnchecked=-8550769
|
|
||||||
avatar_actionBarSelectorOrange=-2130706433
|
|
||||||
avatar_backgroundInProfileRed=-12627531
|
|
||||||
chat_emojiPanelNewTrending=-12627531
|
|
||||||
chat_emojiPanelStickerPackSelector=-12627531
|
|
||||||
chat_unreadMessagesStartArrowIcon=-12627531
|
|
||||||
avatar_backgroundActionBarOrange=-12627531
|
|
||||||
windowBackgroundWhiteBlackText=-12434878
|
|
||||||
avatar_backgroundActionBarBlue=-12627531
|
|
||||||
dialogTextLink=-12627531
|
|
||||||
chat_recordTime=-8550769
|
|
||||||
windowBackgroundWhiteBlueHeader=-12627531
|
|
||||||
files_folderIconBackground=-12627531
|
|
||||||
chat_messagePanelVoiceBackground=-12627531
|
|
||||||
groupcreate_onlineText=-12627531
|
|
||||||
divider=83886080
|
|
||||||
chat_topPanelLine=-12627531
|
|
||||||
avatar_backgroundViolet=-12627531
|
|
||||||
dialogTopBackground=-12627531
|
|
||||||
chat_inReplyMessageText=-12434878
|
|
||||||
dialogInputField=-8550769
|
|
||||||
windowBackgroundWhiteInputFieldActivated=-12627531
|
|
||||||
chat_outInstantSelected=-2130706433
|
|
||||||
chat_outSentCheck=-2130706433
|
|
||||||
player_placeholder=-2137088354
|
|
||||||
chat_outFileSelectedIcon=-12627531
|
|
||||||
picker_disabledButton=-2137088354
|
|
||||||
groupcreate_spanBackground=-8812853
|
|
||||||
dialogButton=-12627531
|
|
||||||
contextProgressInner1=-1118482
|
|
||||||
contextProgressInner3=-12434878
|
|
||||||
chat_inLoaderPhotoIconSelected=-12627531
|
|
||||||
actionBarDefaultSubtitle=-2130706433
|
|
||||||
contextProgressInner2=-2130706433
|
|
||||||
chat_inContactPhoneText=-1069592139
|
|
||||||
chat_inlineResultIcon=-12627531
|
|
||||||
dialogLineProgress=-12627531
|
|
||||||
chats_draft=-12627531
|
|
||||||
chat_outPreviewInstantText=-1
|
|
||||||
chat_inMenuSelected=-2143333963
|
|
||||||
avatar_backgroundOrange=-12627531
|
|
||||||
avatar_actionBarSelectorGreen=-2130706433
|
|
||||||
chat_outLocationIcon=-12627531
|
|
||||||
chat_inLoaderSelected=-12627531
|
|
||||||
location_liveLocationProgress=-12627531
|
|
||||||
dialogTextRed=-769226
|
|
||||||
chat_inBubbleShadow=-16777216
|
|
||||||
dialogProgressCircle=-12627531
|
|
||||||
chat_outAudioProgress=-12627531
|
|
||||||
stickers_menu=-8550769
|
|
||||||
avatar_subtitleInProfilePink=-2130706433
|
|
||||||
player_progress=-12627531
|
|
||||||
chat_inReplyLine=-12627531
|
|
||||||
dialogBackground=-328966
|
|
||||||
dialogLineProgressBackground=-2137088354
|
|
||||||
chat_inReplyNameText=-12627531
|
|
||||||
chat_gifSaveHintBackground=-12627531
|
|
||||||
actionBarActionModeDefaultIcon=-1
|
|
||||||
windowBackgroundWhiteRedText4=-769226
|
|
||||||
windowBackgroundWhiteRedText3=-769226
|
|
||||||
windowBackgroundWhiteRedText6=-769226
|
|
||||||
chat_goDownButtonIcon=-1
|
|
||||||
windowBackgroundWhiteRedText5=-769226
|
|
||||||
featuredStickers_delButtonPressed=-2131475658
|
|
||||||
chat_outAudioSelectedProgress=-12627531
|
|
||||||
chat_messageTextOut=-1
|
|
||||||
chat_inInstant=-12627531
|
|
||||||
groupcreate_cursor=-12627531
|
|
||||||
avatar_backgroundSaved=-12627531
|
|
||||||
returnToCallBackground=-1
|
|
||||||
checkboxSquareUnchecked=-8550769
|
|
||||||
dialogCheckboxSquareDisabled=-2143333963
|
|
||||||
chat_fieldOverlayText=-12627531
|
|
||||||
chat_messagePanelSend=-12627531
|
|
||||||
switchThumb=-657931
|
|
||||||
windowBackgroundWhiteRedText2=-769226
|
|
||||||
chats_nameIcon=-12434878
|
|
||||||
avatar_backgroundBlue=-12627531
|
|
||||||
chat_inSentClock=-2143333963
|
|
||||||
avatar_nameInMessageRed=-12627531
|
|
||||||
chat_outLoaderPhoto=-12627531
|
|
||||||
chat_botSwitchToInlineText=-12627531
|
|
||||||
avatar_backgroundInProfilePink=-12627531
|
|
||||||
avatar_nameInMessageOrange=-12627531
|
|
||||||
featuredStickers_unread=-12627531
|
|
||||||
chats_pinnedIcon=-8550769
|
|
||||||
chat_replyPanelLine=167772160
|
|
||||||
avatar_subtitleInProfileOrange=-2130706433
|
|
||||||
chat_outSentCheckSelected=-2130706433
|
|
||||||
chat_inVenueInfoSelectedText=-2143333963
|
|
||||||
dialogTextBlue2=-12627531
|
|
||||||
dialogTextBlue3=-12627531
|
|
||||||
avatar_backgroundGroupCreateSpanBlue=-12627531
|
|
||||||
dialogTextBlue4=-12627531
|
|
||||||
windowBackgroundWhiteGreenText=-12627531
|
|
||||||
chat_topPanelMessage=-8550769
|
|
||||||
chat_emojiPanelIcon=1358954496
|
|
||||||
chat_emojiPanelTrendingDescription=-8550769
|
|
||||||
calls_callReceivedGreenIcon=-12627531
|
|
||||||
chats_pinnedOverlay=-657931
|
|
||||||
windowBackgroundWhiteInputField=-8550769
|
|
||||||
avatar_backgroundRed=-12627531
|
|
||||||
chat_emojiPanelIconSelector=-12627531
|
|
||||||
chat_inForwardedNameText=-2143333963
|
|
||||||
chats_sentError=-769226
|
|
||||||
groupcreate_checkbox=-12627531
|
|
||||||
chats_actionBackground=-12627531
|
|
||||||
avatar_nameInMessageGreen=-12627531
|
|
||||||
chat_outContactNameText=-1
|
|
||||||
chat_inSiteNameText=-12627531
|
|
||||||
chat_linkSelectBackground=-2143333963
|
|
||||||
dialogLinkSelection=-2143333963
|
|
||||||
windowBackgroundWhiteBlueText=-12627531
|
|
||||||
avatar_nameInMessageCyan=-12627531
|
|
||||||
chat_mediaLoaderPhotoIconSelected=-1
|
|
||||||
chat_inLocationBackground=-12627531
|
|
||||||
radioBackground=-2137088354
|
|
||||||
contextProgressOuter1=-12627531
|
|
||||||
dialogTextGray3=-8550769
|
|
||||||
chat_inFileIcon=-1
|
|
||||||
avatar_backgroundActionBarPink=-12627531
|
|
||||||
dialogTextGray2=-8550769
|
|
||||||
dialogTextGray4=-8550769
|
|
||||||
chat_searchPanelIcons=-12627531
|
|
||||||
windowBackgroundWhiteLinkText=-12627531
|
|
||||||
chat_inAudioSeekbarSelected=1077891509
|
|
||||||
chat_outVenueInfoText=-1056964609
|
|
||||||
chat_outContactPhoneText=-1056964609
|
|
||||||
chat_inAudioTitleText=-12627531
|
|
||||||
chat_messageLinkIn=-12627531
|
|
||||||
chats_menuBackground=-328966
|
|
||||||
chat_serviceBackground=1610612736
|
|
||||||
windowBackgroundWhiteGrayLine=-8550769
|
|
||||||
chats_secretIcon=-12627531
|
|
||||||
chat_inFileBackground=-12627531
|
|
||||||
chat_inBubbleSelected=-1056964609
|
|
||||||
chat_outInstant=-1
|
|
||||||
chat_outViewsSelected=-2130706433
|
|
||||||
chat_emojiPanelShadowLine=-1118482
|
|
||||||
actionBarDefaultSearchPlaceholder=-2130706433
|
|
||||||
actionBarActionModeDefaultSelector=-16777216
|
|
||||||
chat_outForwardedNameText=-2130706433
|
|
||||||
dialogRoundCheckBox=-12627531
|
|
||||||
chat_emojiPanelTrendingTitle=-12434878
|
|
||||||
featuredStickers_delButton=-769226
|
|
||||||
returnToCallText=-12627531
|
|
||||||
switchThumbChecked=-12627531
|
|
||||||
windowBackgroundWhite=-328966
|
|
||||||
chat_outSiteNameText=-1
|
|
||||||
groupcreate_offlineText=-8550769
|
|
||||||
chat_inVoiceSeekbarSelected=1077891509
|
|
||||||
avatar_backgroundCyan=-12627531
|
|
||||||
dialogTextGray=-8550769
|
|
||||||
chat_messageLinkOut=-1056964609
|
|
||||||
chat_emojiPanelStickerSetName=-8550769
|
|
||||||
dialogRadioBackgroundChecked=-12627531
|
|
||||||
picker_badge=-12627531
|
|
||||||
chat_inVenueNameText=-12627531
|
|
||||||
chat_outFileInfoSelectedText=-1056964609
|
|
||||||
chats_tabletSelectedOverlay=-1118482
|
|
||||||
chat_outAudioDurationSelectedText=-2130706433
|
|
||||||
avatar_actionBarSelectorPink=-2130706433
|
|
||||||
dialogTextHint=-8550769
|
|
||||||
chat_topPanelTitle=-12627531
|
|
||||||
chat_inAudioCacheSeekbar=-2143333963
|
|
||||||
chat_outContactIcon=-12627531
|
|
||||||
avatar_subtitleInProfileBlue=-2130706433
|
|
||||||
featuredStickers_addButton=-12627531
|
|
||||||
chat_inFileInfoText=-1069592139
|
|
||||||
chat_inPreviewLine=-12627531
|
|
||||||
avatar_backgroundGreen=-12627531
|
|
||||||
profile_creatorIcon=-12627531
|
|
||||||
avatar_subtitleInProfileGreen=-2130706433
|
|
||||||
chats_sentCheck=-12627531
|
|
||||||
chat_outVoiceSeekbarFill=-1
|
|
||||||
chat_outReplyLine=-1
|
|
||||||
chat_inAudioSeekbarFill=-12627531
|
|
||||||
chat_messagePanelIcons=-8550769
|
|
||||||
inappPlayerTitle=-12434878
|
|
||||||
chat_inReplyMediaMessageText=-1069592139
|
|
||||||
progressCircle=-12627531
|
|
||||||
chat_botKeyboardButtonBackground=-12627531
|
|
||||||
chat_emojiPanelIconSelected=-12627531
|
|
||||||
chat_inContactBackground=-12627531
|
|
||||||
chats_menuItemIcon=-8550769
|
|
||||||
chat_outVenueInfoSelectedText=-1056964609
|
|
||||||
wallpaperFileOffset=-1
|
|
||||||
chat_outVenueNameText=-1
|
|
||||||
chat_outBubbleShadow=-15064194
|
|
||||||
checkboxSquareBackground=-12627531
|
|
||||||
files_folderIcon=-328966
|
|
||||||
chats_menuCloudBackgroundCats=-2147483648
|
|
||||||
chat_topPanelClose=-8550769
|
|
||||||
profile_adminIcon=-2143333963
|
|
||||||
chats_verifiedBackground=0
|
|
||||||
chat_inTimeSelectedText=-2143333963
|
|
||||||
chat_outFileBackgroundSelected=-1
|
|
||||||
chat_outVoiceSeekbarSelected=1627389951
|
|
||||||
windowBackgroundWhiteGrayIcon=-8550769
|
|
||||||
avatar_backgroundActionBarViolet=-12627531
|
|
||||||
profile_verifiedCheck=-1
|
|
||||||
chat_mediaTimeBackground=-2147483648
|
|
||||||
listSelectorSDK21=251658240
|
|
||||||
chat_outFileNameText=-1
|
|
||||||
picker_enabledButton=-12627531
|
|
||||||
avatar_backgroundInProfileViolet=-12627531
|
|
||||||
avatar_nameInMessagePink=-12627531
|
|
||||||
windowBackgroundWhiteGrayText=-8550769
|
|
||||||
musicPicker_buttonBackground=-12627531
|
|
||||||
avatar_actionBarSelectorViolet=-2130706433
|
|
||||||
avatar_nameInMessageBlue=-12627531
|
|
||||||
dialogTextBlack=-12434878
|
|
||||||
actionBarDefault=-12627531
|
|
||||||
location_placeLocationBackground=-12627531
|
|
||||||
profile_actionIcon=-12627531
|
|
||||||
actionBarDefaultSelector=-2130706433
|
|
||||||
chats_menuTopShadow=-2147483648
|
|
||||||
chat_outAudioPerfomerText=-1056964609
|
|
||||||
sharedMedia_startStopLoadIcon=-12627531
|
|
||||||
chat_serviceBackgroundSelected=-2147483648
|
|
||||||
inappPlayerPlayPause=-12627531
|
|
||||||
chat_inVenueInfoText=-2143333963
|
|
||||||
chat_replyPanelIcons=-12627531
|
|
||||||
checkboxSquareDisabled=-2143333963
|
|
||||||
fastScrollInactive=-8550769
|
|
||||||
chat_outSentClockSelected=-2130706433
|
|
||||||
featuredStickers_addedIcon=-12627531
|
|
||||||
chat_recordedVoicePlayPausePressed=-2130706433
|
|
||||||
chat_goDownButtonCounter=-12627531
|
|
||||||
musicPicker_checkbox=-12627531
|
|
||||||
chat_outFileBackground=-1
|
|
||||||
chats_name=-12434878
|
|
||||||
dialogBadgeBackground=-12627531
|
|
||||||
chat_outBubbleSelected=-1069592139
|
|
||||||
avatar_backgroundInProfileBlue=-12627531
|
|
||||||
chat_inFileNameText=-12627531
|
|
||||||
inappPlayerPerformer=-12434878
|
|
||||||
chat_inInstantSelected=-2143333963
|
|
||||||
chat_inLocationIcon=-1
|
|
||||||
chat_outFileInfoText=-1056964609
|
|
||||||
groupcreate_checkboxCheck=-328966
|
|
||||||
chat_unreadMessagesStartBackground=-328966
|
|
||||||
chat_inLoaderPhoto=-1
|
|
||||||
chat_inFileInfoSelectedText=-1069592139
|
|
||||||
chat_wallpaper=-657931
|
|
||||||
chat_outMenuSelected=-2130706433
|
|
||||||
fastScrollActive=-12627531
|
|
||||||
chat_outLoaderPhotoSelected=-12627531
|
|
||||||
chat_muteIcon=-2130706433
|
|
||||||
chat_selectedBackground=1077891509
|
|
||||||
chat_recordedVoiceBackground=-12627531
|
|
||||||
chat_inAudioDurationText=-2143333963
|
|
||||||
chat_secretTimeText=-1
|
|
||||||
groupcreate_sectionText=-8550769
|
|
||||||
actionBarDefaultSubmenuItem=-12434878
|
|
||||||
dialogInputFieldActivated=-12627531
|
|
||||||
login_progressInner=-1118482
|
|
||||||
chats_actionMessage=-12627531
|
|
||||||
chat_inLoaderPhotoIcon=-12627531
|
|
||||||
location_markerX=-2147483648
|
|
||||||
avatar_actionBarSelectorBlue=-2130706433
|
|
||||||
chat_addContact=-12627531
|
|
||||||
player_placeholderBackground=-657931
|
|
||||||
switchTrackChecked=-2143333963
|
|
||||||
windowBackgroundWhiteHintText=-8550769
|
|
||||||
chat_inLoader=-12627531
|
|
||||||
chat_adminSelectedText=-2143333963
|
|
||||||
groupcreate_spanText=-1
|
|
||||||
chat_outPreviewInstantSelectedText=-2130706433
|
|
||||||
player_actionBarSelector=-2143333963
|
|
||||||
key_player_progressCachedBackground=-2143333963
|
|
||||||
chat_outTimeText=-2130706433
|
|
||||||
chat_outBubble=-12627531
|
|
||||||
avatar_backgroundActionBarCyan=-12627531
|
|
||||||
chats_verifiedCheck=-12627531
|
|
||||||
chat_emojiPanelMasksIconSelected=-12627531
|
|
||||||
chats_menuItemText=-12434878
|
|
||||||
chats_message=-9079435
|
|
||||||
chat_outReplyNameText=-1
|
|
||||||
chat_outReplyMediaMessageText=-1056964609
|
|
||||||
chat_textSelectBackground=-8812853
|
|
||||||
chat_messagePanelVoiceDelete=-8550769
|
|
||||||
chats_date=-8550769
|
|
||||||
chat_messagePanelText=-12434878
|
|
||||||
player_buttonActive=-12627531
|
|
||||||
chat_outLoaderPhotoIcon=-1
|
|
||||||
chat_outContactBackground=-1
|
|
||||||
sharedMedia_linkPlaceholder=-12627531
|
|
||||||
windowBackgroundWhiteBlueText7=-12627531
|
|
||||||
windowBackgroundWhiteBlueText6=-12627531
|
|
||||||
calls_callReceivedRedIcon=-769226
|
|
||||||
chat_outLocationBackground=-1
|
|
||||||
windowBackgroundWhiteBlueText3=-12627531
|
|
||||||
windowBackgroundWhiteBlueText2=-12627531
|
|
||||||
windowBackgroundWhiteBlueText5=-12627531
|
|
||||||
windowBackgroundWhiteBlueText4=-12627531
|
|
||||||
chat_replyPanelMessage=-12434878
|
|
||||||
stickers_menuSelector=-2147483648
|
|
||||||
chat_inViewsSelected=-2143333963
|
|
||||||
windowBackgroundWhiteLinkSelection=1077891509
|
|
||||||
player_background=-328966
|
|
||||||
inappPlayerClose=-2137088354
|
|
||||||
player_actionBarSubtitle=-2143333963
|
|
||||||
chat_outAudioCacheSeekbar=-2143333963
|
|
||||||
chats_sentClock=-12627531
|
|
||||||
chat_inAudioSeekbar=1077891509
|
|
||||||
avatar_subtitleInProfileRed=-2130706433
|
|
||||||
avatar_backgroundActionBarRed=-12627531
|
|
||||||
chat_inPreviewInstantText=-12627531
|
|
||||||
chat_messagePanelVoiceShadow=-12627531
|
|
||||||
chat_inViews=-2143333963
|
|
||||||
chat_outLoaderSelected=-1
|
|
||||||
dialogButtonSelector=251658240
|
|
||||||
chats_menuItemCheck=-12627531
|
|
||||||
player_actionBarItems=-12627531
|
|
||||||
chat_sentError=-769226
|
|
||||||
avatar_actionBarSelectorRed=-2130706433
|
|
||||||
player_progressBackground=1084137118
|
|
||||||
chat_inAudioDurationSelectedText=-2143333963
|
|
||||||
windowBackgroundWhiteGrayText2=-8550769
|
|
||||||
chat_outAudioSeekbarSelected=1627389951
|
|
||||||
chat_outLoaderPhotoIconSelected=-1
|
|
||||||
player_actionBarTop=855638016
|
|
||||||
windowBackgroundWhiteGrayText7=-8550769
|
|
||||||
windowBackgroundWhiteGrayText8=-8550769
|
|
||||||
windowBackgroundWhiteGrayText5=-8550769
|
|
||||||
windowBackgroundWhiteGrayText6=-8550769
|
|
||||||
windowBackgroundWhiteGrayText3=-8550769
|
|
||||||
windowBackgroundWhiteGrayText4=-8550769
|
|
||||||
chat_inTimeText=-2143333963
|
|
||||||
dialogRadioBackground=-8550769
|
|
||||||
windowBackgroundWhiteRedText=-769226
|
|
||||||
chat_outReplyMessageText=-2130706433
|
|
||||||
chat_recordedVoiceDot=-12627531
|
|
||||||
chat_recordedVoiceProgress=-2130706433
|
|
||||||
chat_inLoaderPhotoSelected=-1
|
|
||||||
chat_inVoiceSeekbarFill=-12627531
|
|
||||||
graySection=-328966
|
|
||||||
chat_outAudioSeekbar=1627389951
|
|
||||||
chats_muteIcon=-8550769
|
|
||||||
chat_inVoiceSeekbar=1077891509
|
|
||||||
profile_verifiedBackground=0
|
|
||||||
chat_outFileProgress=-12627531
|
|
||||||
chat_outLoader=-1
|
|
||||||
chats_actionPressedBackground=1073741824
|
|
||||||
windowBackgroundWhiteGreenText2=-12627531
|
|
||||||
chat_replyPanelName=-12627531
|
|
||||||
windowBackgroundWhiteValueText=-12627531
|
|
||||||
chat_outAudioDurationText=-2130706433
|
|
||||||
chat_outMenu=-2130706433
|
|
||||||
avatar_backgroundInProfileGreen=-12627531
|
|
||||||
chat_goDownButton=-12627531
|
|
||||||
chats_secretName=-12627531
|
|
||||||
chat_inMenu=-2143333963
|
|
||||||
chat_recordVoiceCancel=-12627531
|
|
||||||
chat_inFileSelectedIcon=-1
|
|
||||||
chat_outReplyMediaMessageSelectedText=-1056964609
|
|
||||||
chat_mediaLoaderPhoto=-2147483648
|
|
||||||
avatar_backgroundInProfileCyan=-12627531
|
|
||||||
calls_ratingStarSelected=-12627531
|
|
||||||
chat_reportSpam=-769226
|
|
||||||
chat_messageTextIn=-12434878
|
|
||||||
avatar_subtitleInProfileCyan=-2130706433
|
|
||||||
chat_emojiPanelMasksIcon=-8550769
|
|
||||||
chats_attachMessage=-12627531
|
|
||||||
chat_topPanelBackground=-328966
|
|
||||||
chat_searchPanelText=-12434878
|
|
||||||
chat_outSentClock=-2130706433
|
|
||||||
dialogBackgroundGray=-657931
|
|
|
@ -36,6 +36,10 @@ import android.util.LongSparseArray;
|
||||||
import android.util.SparseArray;
|
import android.util.SparseArray;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.core.content.pm.ShortcutInfoCompat;
|
||||||
|
import androidx.core.content.pm.ShortcutManagerCompat;
|
||||||
|
import androidx.core.graphics.drawable.IconCompat;
|
||||||
|
|
||||||
import org.telegram.SQLite.SQLiteCursor;
|
import org.telegram.SQLite.SQLiteCursor;
|
||||||
import org.telegram.SQLite.SQLiteDatabase;
|
import org.telegram.SQLite.SQLiteDatabase;
|
||||||
import org.telegram.SQLite.SQLitePreparedStatement;
|
import org.telegram.SQLite.SQLitePreparedStatement;
|
||||||
|
@ -71,10 +75,6 @@ import java.util.concurrent.CountDownLatch;
|
||||||
|
|
||||||
import tw.nekomimi.nekogram.NekoConfig;
|
import tw.nekomimi.nekogram.NekoConfig;
|
||||||
|
|
||||||
import androidx.core.content.pm.ShortcutInfoCompat;
|
|
||||||
import androidx.core.content.pm.ShortcutManagerCompat;
|
|
||||||
import androidx.core.graphics.drawable.IconCompat;
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public class MediaDataController extends BaseController {
|
public class MediaDataController extends BaseController {
|
||||||
|
|
||||||
|
@ -1019,7 +1019,7 @@ public class MediaDataController extends BaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void loadFeaturedStickers(boolean cache, boolean force) {
|
public void loadFeaturedStickers(boolean cache, boolean force) {
|
||||||
/*if (loadingFeaturedStickers) {
|
if (loadingFeaturedStickers || NekoConfig.disableTrending) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
loadingFeaturedStickers = true;
|
loadingFeaturedStickers = true;
|
||||||
|
@ -1074,7 +1074,7 @@ public class MediaDataController extends BaseController {
|
||||||
processLoadedFeaturedStickers(null, null, false, (int) (System.currentTimeMillis() / 1000), req.hash);
|
processLoadedFeaturedStickers(null, null, false, (int) (System.currentTimeMillis() / 1000), req.hash);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
}*/
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processLoadedFeaturedStickers(final ArrayList<TLRPC.StickerSetCovered> res, final ArrayList<Long> unreadStickers, final boolean cache, final int date, final int hash) {
|
private void processLoadedFeaturedStickers(final ArrayList<TLRPC.StickerSetCovered> res, final ArrayList<Long> unreadStickers, final boolean cache, final int date, final int hash) {
|
||||||
|
|
|
@ -4222,7 +4222,7 @@ public class NotificationsController extends BaseController {
|
||||||
msgHeardIntent.putExtra("max_id", max_id);
|
msgHeardIntent.putExtra("max_id", max_id);
|
||||||
msgHeardIntent.putExtra("currentAccount", currentAccount);
|
msgHeardIntent.putExtra("currentAccount", currentAccount);
|
||||||
PendingIntent readPendingIntent = PendingIntent.getBroadcast(ApplicationLoader.applicationContext, internalId, msgHeardIntent, PendingIntent.FLAG_UPDATE_CURRENT);
|
PendingIntent readPendingIntent = PendingIntent.getBroadcast(ApplicationLoader.applicationContext, internalId, msgHeardIntent, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||||
NotificationCompat.Action readAction = new NotificationCompat.Action.Builder(R.drawable.deproko_baseline_check_double_24, LocaleController.getString("MarkAsRead", R.string.MarkAsRead), readPendingIntent)
|
NotificationCompat.Action readAction = new NotificationCompat.Action.Builder(R.drawable.baseline_done_all_24, LocaleController.getString("MarkAsRead", R.string.MarkAsRead), readPendingIntent)
|
||||||
.setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_MARK_AS_READ)
|
.setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_MARK_AS_READ)
|
||||||
.setShowsUserInterface(false)
|
.setShowsUserInterface(false)
|
||||||
.build();
|
.build();
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1190,7 +1190,7 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg
|
||||||
builder.addTitle(urlFinal);
|
builder.addTitle(urlFinal);
|
||||||
builder.addItems(
|
builder.addItems(
|
||||||
new String[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy), LocaleController.getString("ShareQRCode", R.string.ShareQRCode)},
|
new String[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy), LocaleController.getString("ShareQRCode", R.string.ShareQRCode)},
|
||||||
new Integer[]{R.drawable.baseline_open_in_browser_24, R.drawable.baseline_content_copy_24,R.drawable.wallet_qr }, (which, text, cell) -> {
|
new int[]{R.drawable.baseline_open_in_browser_24, R.drawable.baseline_content_copy_24, R.drawable.wallet_qr}, (which, text, cell) -> {
|
||||||
if (parentActivity == null) return Unit.INSTANCE;
|
if (parentActivity == null) return Unit.INSTANCE;
|
||||||
if (which == 0 || which == 2) {
|
if (which == 0 || which == 2) {
|
||||||
int index;
|
int index;
|
||||||
|
|
|
@ -43,6 +43,9 @@ import org.telegram.ui.Components.AnimatedFileDrawable;
|
||||||
import org.telegram.ui.Components.MediaActionDrawable;
|
import org.telegram.ui.Components.MediaActionDrawable;
|
||||||
import org.telegram.ui.Components.RadialProgress2;
|
import org.telegram.ui.Components.RadialProgress2;
|
||||||
|
|
||||||
|
import kotlin.Unit;
|
||||||
|
import tw.nekomimi.nekogram.BottomBuilder;
|
||||||
|
|
||||||
public class AvatarPreviewer {
|
public class AvatarPreviewer {
|
||||||
|
|
||||||
private static AvatarPreviewer INSTANCE;
|
private static AvatarPreviewer INSTANCE;
|
||||||
|
@ -450,18 +453,20 @@ public class AvatarPreviewer {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showBottomSheet() {
|
private void showBottomSheet() {
|
||||||
final CharSequence[] labels = new CharSequence[menuItems.length];
|
final String[] labels = new String[menuItems.length];
|
||||||
final int[] icons = new int[menuItems.length];
|
final int[] icons = new int[menuItems.length];
|
||||||
for (int i = 0; i < menuItems.length; i++) {
|
for (int i = 0; i < menuItems.length; i++) {
|
||||||
labels[i] = LocaleController.getString(menuItems[i].labelKey, menuItems[i].labelResId);
|
labels[i] = LocaleController.getString(menuItems[i].labelKey, menuItems[i].labelResId);
|
||||||
icons[i] = menuItems[i].iconResId;
|
icons[i] = menuItems[i].iconResId;
|
||||||
}
|
}
|
||||||
visibleSheet = new BottomSheet.Builder(getContext())
|
BottomBuilder visibleSheetBuilder = new BottomBuilder(getContext());
|
||||||
.setItems(labels, icons, (dialog, which) -> {
|
visibleSheetBuilder.addItems(labels, icons, (which, text, cell) -> {
|
||||||
callback.onMenuClick(menuItems[which]);
|
callback.onMenuClick(menuItems[which]);
|
||||||
setShowing(false);
|
setShowing(false);
|
||||||
})
|
return Unit.INSTANCE;
|
||||||
.setDimBehind(false);
|
});
|
||||||
|
visibleSheet = visibleSheetBuilder.create();
|
||||||
|
visibleSheet.setDimBehind(false);
|
||||||
visibleSheet.setOnDismissListener(dialog -> {
|
visibleSheet.setOnDismissListener(dialog -> {
|
||||||
visibleSheet = null;
|
visibleSheet = null;
|
||||||
setShowing(false);
|
setShowing(false);
|
||||||
|
|
|
@ -66,9 +66,6 @@ import org.telegram.ui.Components.voip.VoIPHelper;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
import kotlin.Unit;
|
|
||||||
import tw.nekomimi.nekogram.BottomBuilder;
|
|
||||||
|
|
||||||
public class CallLogActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate {
|
public class CallLogActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate {
|
||||||
|
|
||||||
private ListAdapter listViewAdapter;
|
private ListAdapter listViewAdapter;
|
||||||
|
@ -502,18 +499,18 @@ public class CallLogActivity extends BaseFragment implements NotificationCenter.
|
||||||
private void createActionMode() {
|
private void createActionMode() {
|
||||||
if (actionBar.actionModeIsExist(null)) {
|
if (actionBar.actionModeIsExist(null)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final ActionBarMenu actionMode = actionBar.createActionMode();
|
final ActionBarMenu actionMode = actionBar.createActionMode();
|
||||||
|
|
||||||
selectedDialogsCountTextView = new NumberTextView(actionMode.getContext());
|
selectedDialogsCountTextView = new NumberTextView(actionMode.getContext());
|
||||||
selectedDialogsCountTextView.setTextSize(18);
|
selectedDialogsCountTextView.setTextSize(18);
|
||||||
selectedDialogsCountTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
selectedDialogsCountTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||||
selectedDialogsCountTextView.setTextColor(Theme.getColor(Theme.key_actionBarActionModeDefaultIcon));
|
selectedDialogsCountTextView.setTextColor(Theme.getColor(Theme.key_actionBarActionModeDefaultIcon));
|
||||||
actionMode.addView(selectedDialogsCountTextView, LayoutHelper.createLinear(0, LayoutHelper.MATCH_PARENT, 1.0f, 72, 0, 0, 0));
|
actionMode.addView(selectedDialogsCountTextView, LayoutHelper.createLinear(0, LayoutHelper.MATCH_PARENT, 1.0f, 72, 0, 0, 0));
|
||||||
selectedDialogsCountTextView.setOnTouchListener((v, event) -> true);
|
selectedDialogsCountTextView.setOnTouchListener((v, event) -> true);
|
||||||
|
|
||||||
actionModeViews.add(actionMode.addItemWithWidth(delete, R.drawable.msg_delete, AndroidUtilities.dp(54), LocaleController.getString("Delete", R.string.Delete)));
|
actionModeViews.add(actionMode.addItemWithWidth(delete, R.drawable.baseline_delete_24, AndroidUtilities.dp(54), LocaleController.getString("Delete", R.string.Delete)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean addOrRemoveSelectedDialog(ArrayList<TLRPC.Message> messages, CustomCell cell) {
|
private boolean addOrRemoveSelectedDialog(ArrayList<TLRPC.Message> messages, CustomCell cell) {
|
||||||
if (messages.isEmpty()) {
|
if (messages.isEmpty()) {
|
||||||
|
|
|
@ -84,7 +84,6 @@ import org.telegram.ui.ActionBar.ActionBarMenuItem;
|
||||||
import org.telegram.ui.ActionBar.AlertDialog;
|
import org.telegram.ui.ActionBar.AlertDialog;
|
||||||
import org.telegram.ui.ActionBar.BackDrawable;
|
import org.telegram.ui.ActionBar.BackDrawable;
|
||||||
import org.telegram.ui.ActionBar.BaseFragment;
|
import org.telegram.ui.ActionBar.BaseFragment;
|
||||||
import org.telegram.ui.ActionBar.BottomSheet;
|
|
||||||
import org.telegram.ui.ActionBar.SimpleTextView;
|
import org.telegram.ui.ActionBar.SimpleTextView;
|
||||||
import org.telegram.ui.ActionBar.Theme;
|
import org.telegram.ui.ActionBar.Theme;
|
||||||
import org.telegram.ui.ActionBar.ThemeDescription;
|
import org.telegram.ui.ActionBar.ThemeDescription;
|
||||||
|
@ -2030,7 +2029,7 @@ public class ChannelAdminLogActivity extends BaseFragment implements Notificatio
|
||||||
builder.addTitle(urlFinal);
|
builder.addTitle(urlFinal);
|
||||||
builder.addItems(
|
builder.addItems(
|
||||||
new String[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy), LocaleController.getString("ShareQRCode", R.string.ShareQRCode)},
|
new String[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy), LocaleController.getString("ShareQRCode", R.string.ShareQRCode)},
|
||||||
new Integer[]{R.drawable.baseline_open_in_browser_24, R.drawable.baseline_content_copy_24,R.drawable.wallet_qr }, (which, text, __) -> {
|
new int[]{R.drawable.baseline_open_in_browser_24, R.drawable.baseline_content_copy_24, R.drawable.wallet_qr}, (which, text, __) -> {
|
||||||
if (which == 0 || which == 2) {
|
if (which == 0 || which == 2) {
|
||||||
if (which == 0) {
|
if (which == 0) {
|
||||||
Browser.openUrl(getParentActivity(), urlFinal);
|
Browser.openUrl(getParentActivity(), urlFinal);
|
||||||
|
|
|
@ -231,7 +231,6 @@ import java.io.ByteArrayOutputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
import java.lang.reflect.Array;
|
|
||||||
import java.net.URLDecoder;
|
import java.net.URLDecoder;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
@ -245,7 +244,6 @@ import java.util.regex.Pattern;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import kotlin.Unit;
|
import kotlin.Unit;
|
||||||
import kotlin.text.StringsKt;
|
|
||||||
import tw.nekomimi.nekogram.BottomBuilder;
|
import tw.nekomimi.nekogram.BottomBuilder;
|
||||||
import tw.nekomimi.nekogram.MessageDetailsActivity;
|
import tw.nekomimi.nekogram.MessageDetailsActivity;
|
||||||
import tw.nekomimi.nekogram.NekoConfig;
|
import tw.nekomimi.nekogram.NekoConfig;
|
||||||
|
@ -18749,12 +18747,12 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
if (chatMode != MODE_SCHEDULED && !selectedObject.needDrawBluredPreview() && !selectedObject.isLiveLocation() && selectedObject.type != 16) {
|
if (chatMode != MODE_SCHEDULED && !selectedObject.needDrawBluredPreview() && !selectedObject.isLiveLocation() && selectedObject.type != 16) {
|
||||||
items.add(LocaleController.getString("Forward", R.string.Forward));
|
items.add(LocaleController.getString("Forward", R.string.Forward));
|
||||||
options.add(2);
|
options.add(2);
|
||||||
icons.add(R.drawable.msg_forward);
|
icons.add(R.drawable.baseline_forward_24);
|
||||||
}
|
}
|
||||||
if (!selectedObject.needDrawBluredPreview() && !selectedObject.isLiveLocation() && selectedObject.type != 16) {
|
if (!selectedObject.needDrawBluredPreview() && !selectedObject.isLiveLocation() && selectedObject.type != 16) {
|
||||||
items.add(LocaleController.getString("NoQuoteForward", R.string.NoQuoteForward));
|
items.add(LocaleController.getString("NoQuoteForward", R.string.NoQuoteForward));
|
||||||
options.add(95);
|
options.add(95);
|
||||||
icons.add(R.drawable.msg_forward_noquote);
|
icons.add(R.drawable.baseline_forward_24);
|
||||||
}
|
}
|
||||||
if (chatMode != MODE_SCHEDULED) {
|
if (chatMode != MODE_SCHEDULED) {
|
||||||
if (!UserObject.isUserSelf(currentUser) && NekoConfig.showAddToSavedMessages) {
|
if (!UserObject.isUserSelf(currentUser) && NekoConfig.showAddToSavedMessages) {
|
||||||
|
@ -21366,15 +21364,15 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
builder.addTitle(str);
|
builder.addTitle(str);
|
||||||
builder.addItems(
|
builder.addItems(
|
||||||
new String[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy), str.startsWith("#") || str.startsWith("$") ? null : LocaleController.getString("ShareQRCode", R.string.ShareQRCode)},
|
new String[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy), str.startsWith("#") || str.startsWith("$") ? null : LocaleController.getString("ShareQRCode", R.string.ShareQRCode)},
|
||||||
new Integer[]{R.drawable.baseline_open_in_browser_24, R.drawable.baseline_content_copy_24,R.drawable.wallet_qr }, (which, text, __) -> {
|
new int[]{R.drawable.baseline_open_in_browser_24, R.drawable.baseline_content_copy_24, R.drawable.wallet_qr}, (which, text, __) -> {
|
||||||
if (which == 0 || which == 2) {
|
if (which == 0 || which == 2) {
|
||||||
openClickableLink(str, which == 2);
|
openClickableLink(str, which == 2);
|
||||||
|
|
||||||
} else if (which == 1) {
|
} else if (which == 1) {
|
||||||
AndroidUtilities.addToClipboard(str);
|
AndroidUtilities.addToClipboard(str);
|
||||||
}
|
}
|
||||||
return Unit.INSTANCE;
|
return Unit.INSTANCE;
|
||||||
});
|
});
|
||||||
showDialog(builder.create());
|
showDialog(builder.create());
|
||||||
} else {
|
} else {
|
||||||
openClickableLink(str, false);
|
openClickableLink(str, false);
|
||||||
|
@ -21387,7 +21385,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
builder.addTitle(urlFinal);
|
builder.addTitle(urlFinal);
|
||||||
builder.addItems(
|
builder.addItems(
|
||||||
new String[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy), LocaleController.getString("ShareQRCode", R.string.ShareQRCode)},
|
new String[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy), LocaleController.getString("ShareQRCode", R.string.ShareQRCode)},
|
||||||
new Integer[]{R.drawable.baseline_open_in_browser_24, R.drawable.baseline_content_copy_24,R.drawable.wallet_qr }, (which, text, __) -> {
|
new int[]{R.drawable.baseline_open_in_browser_24, R.drawable.baseline_content_copy_24, R.drawable.wallet_qr}, (which, text, __) -> {
|
||||||
if (which == 0 || which == 2) {
|
if (which == 0 || which == 2) {
|
||||||
if (which == 0) {
|
if (which == 0) {
|
||||||
if (AndroidUtilities.shouldShowUrlInAlert(urlFinal)) {
|
if (AndroidUtilities.shouldShowUrlInAlert(urlFinal)) {
|
||||||
|
@ -23533,7 +23531,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : chatActivityEnterView, 0, new Class[]{EmojiView.class}, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelTrendingDescription));
|
themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : chatActivityEnterView, 0, new Class[]{EmojiView.class}, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelTrendingDescription));
|
||||||
themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : chatActivityEnterView, 0, new Class[]{EmojiView.class}, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelBadgeText));
|
themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : chatActivityEnterView, 0, new Class[]{EmojiView.class}, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelBadgeText));
|
||||||
themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : chatActivityEnterView, 0, new Class[]{EmojiView.class}, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelBadgeBackground));
|
themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : chatActivityEnterView, 0, new Class[]{EmojiView.class}, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelBadgeBackground));
|
||||||
themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : chatActivityEnterView, 0, new Class[]{EmojiView.class}, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiBottomPanelIcon));
|
themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : chatActivityEnterView, 0, new Class[]{EmojiView.class}, null, null, null, selectedBackgroundDelegate, Theme.key_chat_messagePanelIcons));
|
||||||
themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : chatActivityEnterView, 0, new Class[]{EmojiView.class}, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiSearchIcon));
|
themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : chatActivityEnterView, 0, new Class[]{EmojiView.class}, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiSearchIcon));
|
||||||
themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : chatActivityEnterView, 0, new Class[]{EmojiView.class}, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelStickerSetNameHighlight));
|
themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : chatActivityEnterView, 0, new Class[]{EmojiView.class}, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelStickerSetNameHighlight));
|
||||||
themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : chatActivityEnterView, 0, new Class[]{EmojiView.class}, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelStickerPackSelectorLine));
|
themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : chatActivityEnterView, 0, new Class[]{EmojiView.class}, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelStickerPackSelectorLine));
|
||||||
|
|
|
@ -26,7 +26,6 @@ import android.graphics.drawable.GradientDrawable;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Vibrator;
|
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.text.InputType;
|
import android.text.InputType;
|
||||||
|
@ -109,6 +108,7 @@ import java.util.concurrent.CountDownLatch;
|
||||||
import kotlin.Unit;
|
import kotlin.Unit;
|
||||||
import tw.nekomimi.nekogram.BottomBuilder;
|
import tw.nekomimi.nekogram.BottomBuilder;
|
||||||
import tw.nekomimi.nekogram.NekoConfig;
|
import tw.nekomimi.nekogram.NekoConfig;
|
||||||
|
import tw.nekomimi.nekogram.utils.AlertUtil;
|
||||||
import tw.nekomimi.nekogram.utils.VibrateUtil;
|
import tw.nekomimi.nekogram.utils.VibrateUtil;
|
||||||
|
|
||||||
public class AlertsCreator {
|
public class AlertsCreator {
|
||||||
|
@ -121,7 +121,7 @@ public class AlertsCreator {
|
||||||
TLRPC.InputPeer peer;
|
TLRPC.InputPeer peer;
|
||||||
if (request instanceof TLRPC.TL_messages_initHistoryImport) {
|
if (request instanceof TLRPC.TL_messages_initHistoryImport) {
|
||||||
peer = ((TLRPC.TL_messages_initHistoryImport) request).peer;
|
peer = ((TLRPC.TL_messages_initHistoryImport) request).peer;
|
||||||
} else if (request instanceof TLRPC.TL_messages_startHistoryImport) {
|
} else if (request instanceof TLRPC.TL_messages_startHistoryImport) {
|
||||||
peer = ((TLRPC.TL_messages_startHistoryImport) request).peer;
|
peer = ((TLRPC.TL_messages_startHistoryImport) request).peer;
|
||||||
} else {
|
} else {
|
||||||
peer = null;
|
peer = null;
|
||||||
|
@ -2385,31 +2385,36 @@ public class AlertsCreator {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
BottomSheet.Builder builder = new BottomSheet.Builder(fragment.getParentActivity());
|
BottomBuilder builder = new BottomBuilder(fragment.getParentActivity());
|
||||||
builder.setTitle(LocaleController.getString("Notifications", R.string.Notifications), true);
|
builder.addTitle(LocaleController.getString("Notifications", R.string.Notifications), true);
|
||||||
CharSequence[] items = new CharSequence[]{
|
String[] items = new String[]{
|
||||||
LocaleController.formatString("MuteFor", R.string.MuteFor, LocaleController.formatPluralString("Hours", 1)),
|
LocaleController.formatString("MuteFor", R.string.MuteFor, LocaleController.formatPluralString("Hours", 1)),
|
||||||
LocaleController.formatString("MuteFor", R.string.MuteFor, LocaleController.formatPluralString("Hours", 8)),
|
LocaleController.formatString("MuteFor", R.string.MuteFor, LocaleController.formatPluralString("Hours", 8)),
|
||||||
LocaleController.formatString("MuteFor", R.string.MuteFor, LocaleController.formatPluralString("Days", 2)),
|
LocaleController.formatString("MuteFor", R.string.MuteFor, LocaleController.formatPluralString("Days", 2)),
|
||||||
LocaleController.getString("MuteDisable", R.string.MuteDisable)
|
LocaleController.getString("MuteDisable", R.string.MuteDisable)
|
||||||
};
|
};
|
||||||
builder.setItems(items, (dialogInterface, i) -> {
|
builder.addItems(items, new int[]{
|
||||||
int setting;
|
R.drawable.baseline_notifications_paused_24,
|
||||||
if (i == 0) {
|
R.drawable.baseline_notifications_paused_24,
|
||||||
setting = NotificationsController.SETTING_MUTE_HOUR;
|
R.drawable.baseline_notifications_paused_24,
|
||||||
} else if (i == 1) {
|
R.drawable.baseline_notifications_paused_24
|
||||||
setting = NotificationsController.SETTING_MUTE_8_HOURS;
|
}, (i, text, cell) -> {
|
||||||
} else if (i == 2) {
|
int setting;
|
||||||
setting = NotificationsController.SETTING_MUTE_2_DAYS;
|
if (i == 0) {
|
||||||
} else {
|
setting = NotificationsController.SETTING_MUTE_HOUR;
|
||||||
setting = NotificationsController.SETTING_MUTE_FOREVER;
|
} else if (i == 1) {
|
||||||
}
|
setting = NotificationsController.SETTING_MUTE_8_HOURS;
|
||||||
NotificationsController.getInstance(UserConfig.selectedAccount).setDialogNotificationsSettings(dialog_id, setting);
|
} else if (i == 2) {
|
||||||
if (BulletinFactory.canShowBulletin(fragment)) {
|
setting = NotificationsController.SETTING_MUTE_2_DAYS;
|
||||||
BulletinFactory.createMuteBulletin(fragment, setting).show();
|
} else {
|
||||||
}
|
setting = NotificationsController.SETTING_MUTE_FOREVER;
|
||||||
}
|
}
|
||||||
);
|
NotificationsController.getInstance(UserConfig.selectedAccount).setDialogNotificationsSettings(dialog_id, setting);
|
||||||
|
if (BulletinFactory.canShowBulletin(fragment)) {
|
||||||
|
BulletinFactory.createMuteBulletin(fragment, setting).show();
|
||||||
|
}
|
||||||
|
return Unit.INSTANCE;
|
||||||
|
});
|
||||||
return builder.create();
|
return builder.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2418,11 +2423,11 @@ public class AlertsCreator {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
BottomSheet.Builder builder = new BottomSheet.Builder(context);
|
BottomBuilder builder = new BottomBuilder(context);
|
||||||
builder.setTitle(LocaleController.getString("ReportChat", R.string.ReportChat), true);
|
builder.addTitle(LocaleController.getString("ReportChat", R.string.ReportChat), true);
|
||||||
CharSequence[] items;
|
String[] items;
|
||||||
if (messageId != 0) {
|
if (messageId != 0) {
|
||||||
items = new CharSequence[]{
|
items = new String[]{
|
||||||
LocaleController.getString("ReportChatSpam", R.string.ReportChatSpam),
|
LocaleController.getString("ReportChatSpam", R.string.ReportChatSpam),
|
||||||
LocaleController.getString("ReportChatViolence", R.string.ReportChatViolence),
|
LocaleController.getString("ReportChatViolence", R.string.ReportChatViolence),
|
||||||
LocaleController.getString("ReportChatChild", R.string.ReportChatChild),
|
LocaleController.getString("ReportChatChild", R.string.ReportChatChild),
|
||||||
|
@ -2430,7 +2435,7 @@ public class AlertsCreator {
|
||||||
LocaleController.getString("ReportChatOther", R.string.ReportChatOther)
|
LocaleController.getString("ReportChatOther", R.string.ReportChatOther)
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
items = new CharSequence[]{
|
items = new String[]{
|
||||||
LocaleController.getString("ReportChatSpam", R.string.ReportChatSpam),
|
LocaleController.getString("ReportChatSpam", R.string.ReportChatSpam),
|
||||||
LocaleController.getString("ReportChatFakeAccount", R.string.ReportChatFakeAccount),
|
LocaleController.getString("ReportChatFakeAccount", R.string.ReportChatFakeAccount),
|
||||||
LocaleController.getString("ReportChatViolence", R.string.ReportChatViolence),
|
LocaleController.getString("ReportChatViolence", R.string.ReportChatViolence),
|
||||||
|
@ -2439,13 +2444,13 @@ public class AlertsCreator {
|
||||||
LocaleController.getString("ReportChatOther", R.string.ReportChatOther)
|
LocaleController.getString("ReportChatOther", R.string.ReportChatOther)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
builder.setItems(items, (dialogInterface, i) -> {
|
builder.addItems(items, null, (i, text, cell) -> {
|
||||||
if (i == 4) {
|
if (i == 4) {
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
args.putLong("dialog_id", dialog_id);
|
args.putLong("dialog_id", dialog_id);
|
||||||
args.putLong("message_id", messageId);
|
args.putLong("message_id", messageId);
|
||||||
parentFragment.presentFragment(new ReportOtherActivity(args));
|
parentFragment.presentFragment(new ReportOtherActivity(args));
|
||||||
return;
|
return Unit.INSTANCE;
|
||||||
}
|
}
|
||||||
TLObject req;
|
TLObject req;
|
||||||
TLRPC.InputPeer peer = MessagesController.getInstance(UserConfig.selectedAccount).getInputPeer((int) dialog_id);
|
TLRPC.InputPeer peer = MessagesController.getInstance(UserConfig.selectedAccount).getInputPeer((int) dialog_id);
|
||||||
|
@ -2479,10 +2484,10 @@ public class AlertsCreator {
|
||||||
}
|
}
|
||||||
req = request;
|
req = request;
|
||||||
}
|
}
|
||||||
ConnectionsManager.getInstance(UserConfig.selectedAccount).sendRequest(req, (response, error) -> {
|
ConnectionsManager.getInstance(UserConfig.selectedAccount).sendRequest(req, (response, error) -> AlertUtil.showToast(error));
|
||||||
|
|
||||||
});
|
|
||||||
Toast.makeText(context, LocaleController.getString("ReportChatSent", R.string.ReportChatSent), Toast.LENGTH_SHORT).show();
|
Toast.makeText(context, LocaleController.getString("ReportChatSent", R.string.ReportChatSent), Toast.LENGTH_SHORT).show();
|
||||||
|
|
||||||
|
return Unit.INSTANCE;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
BottomSheet sheet = builder.create();
|
BottomSheet sheet = builder.create();
|
||||||
|
@ -3026,7 +3031,7 @@ public class AlertsCreator {
|
||||||
background.setBackground(new BitmapDrawable(SvgHelper.getBitmap(svg, AndroidUtilities.dp(320), AndroidUtilities.dp(320 * aspectRatio), false)));
|
background.setBackground(new BitmapDrawable(SvgHelper.getBitmap(svg, AndroidUtilities.dp(320), AndroidUtilities.dp(320 * aspectRatio), false)));
|
||||||
frameLayout.addView(background, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, 0, -1, -1, -1, -1));
|
frameLayout.addView(background, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, 0, -1, -1, -1, -1));
|
||||||
|
|
||||||
frameLayout.addView(button, LayoutHelper.createFrame(117,117));
|
frameLayout.addView(button, LayoutHelper.createFrame(117, 117));
|
||||||
|
|
||||||
builder.setTopView(frameLayout);
|
builder.setTopView(frameLayout);
|
||||||
builder.setTitle(LocaleController.getString("PermissionDrawAboveOtherAppsGroupCallTitle", R.string.PermissionDrawAboveOtherAppsGroupCallTitle));
|
builder.setTitle(LocaleController.getString("PermissionDrawAboveOtherAppsGroupCallTitle", R.string.PermissionDrawAboveOtherAppsGroupCallTitle));
|
||||||
|
|
|
@ -1012,8 +1012,8 @@ public class AudioPlayerAlert extends BottomSheet implements NotificationCenter.
|
||||||
optionsButton.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.getColor(Theme.key_listSelector), 1, AndroidUtilities.dp(18)));
|
optionsButton.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.getColor(Theme.key_listSelector), 1, AndroidUtilities.dp(18)));
|
||||||
}
|
}
|
||||||
bottomView.addView(optionsButton, LayoutHelper.createFrame(48, 48, Gravity.LEFT | Gravity.TOP));
|
bottomView.addView(optionsButton, LayoutHelper.createFrame(48, 48, Gravity.LEFT | Gravity.TOP));
|
||||||
optionsButton.addSubItem(1, R.drawable.msg_forward, LocaleController.getString("Forward", R.string.Forward));
|
optionsButton.addSubItem(1, R.drawable.baseline_forward_24, LocaleController.getString("Forward", R.string.Forward));
|
||||||
optionsButton.addSubItem(2, R.drawable.msg_shareout, LocaleController.getString("ShareFile", R.string.ShareFile));
|
optionsButton.addSubItem(2, R.drawable.baseline_share_24, LocaleController.getString("ShareFile", R.string.ShareFile));
|
||||||
optionsButton.addSubItem(5, R.drawable.msg_download, LocaleController.getString("SaveToMusic", R.string.SaveToMusic));
|
optionsButton.addSubItem(5, R.drawable.msg_download, LocaleController.getString("SaveToMusic", R.string.SaveToMusic));
|
||||||
optionsButton.addSubItem(4, R.drawable.msg_message, LocaleController.getString("ShowInChat", R.string.ShowInChat));
|
optionsButton.addSubItem(4, R.drawable.msg_message, LocaleController.getString("ShowInChat", R.string.ShowInChat));
|
||||||
optionsButton.setShowedFromBottom(true);
|
optionsButton.setShowedFromBottom(true);
|
||||||
|
|
|
@ -28,22 +28,10 @@ import android.graphics.drawable.Drawable;
|
||||||
import android.graphics.drawable.LayerDrawable;
|
import android.graphics.drawable.LayerDrawable;
|
||||||
import android.graphics.drawable.ShapeDrawable;
|
import android.graphics.drawable.ShapeDrawable;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
|
||||||
import androidx.annotation.IntDef;
|
|
||||||
import androidx.annotation.MainThread;
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.core.view.ViewCompat;
|
|
||||||
import androidx.recyclerview.widget.GridLayoutManager;
|
|
||||||
import androidx.recyclerview.widget.LinearSmoothScroller;
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
|
||||||
import androidx.recyclerview.widget.SimpleItemAnimator;
|
|
||||||
import androidx.viewpager.widget.PagerAdapter;
|
|
||||||
import androidx.viewpager.widget.ViewPager;
|
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.SpannableStringBuilder;
|
import android.text.SpannableStringBuilder;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
import android.util.Log;
|
|
||||||
import android.util.LongSparseArray;
|
import android.util.LongSparseArray;
|
||||||
import android.util.SparseArray;
|
import android.util.SparseArray;
|
||||||
import android.util.SparseIntArray;
|
import android.util.SparseIntArray;
|
||||||
|
@ -66,19 +54,30 @@ import android.widget.LinearLayout;
|
||||||
import android.widget.PopupWindow;
|
import android.widget.PopupWindow;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.IntDef;
|
||||||
|
import androidx.annotation.MainThread;
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.core.view.ViewCompat;
|
||||||
|
import androidx.recyclerview.widget.GridLayoutManager;
|
||||||
|
import androidx.recyclerview.widget.LinearSmoothScroller;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
import androidx.recyclerview.widget.SimpleItemAnimator;
|
||||||
|
import androidx.viewpager.widget.PagerAdapter;
|
||||||
|
import androidx.viewpager.widget.ViewPager;
|
||||||
|
|
||||||
import org.telegram.messenger.AndroidUtilities;
|
import org.telegram.messenger.AndroidUtilities;
|
||||||
import org.telegram.messenger.ChatObject;
|
import org.telegram.messenger.ChatObject;
|
||||||
import org.telegram.messenger.DocumentObject;
|
import org.telegram.messenger.DocumentObject;
|
||||||
import org.telegram.messenger.MediaDataController;
|
|
||||||
import org.telegram.messenger.Emoji;
|
import org.telegram.messenger.Emoji;
|
||||||
import org.telegram.messenger.EmojiData;
|
import org.telegram.messenger.EmojiData;
|
||||||
import org.telegram.messenger.FileLoader;
|
import org.telegram.messenger.FileLoader;
|
||||||
|
import org.telegram.messenger.FileLog;
|
||||||
import org.telegram.messenger.ImageReceiver;
|
import org.telegram.messenger.ImageReceiver;
|
||||||
import org.telegram.messenger.LocaleController;
|
import org.telegram.messenger.LocaleController;
|
||||||
|
import org.telegram.messenger.MediaDataController;
|
||||||
import org.telegram.messenger.MessagesController;
|
import org.telegram.messenger.MessagesController;
|
||||||
import org.telegram.messenger.MessagesStorage;
|
import org.telegram.messenger.MessagesStorage;
|
||||||
import org.telegram.messenger.NotificationCenter;
|
import org.telegram.messenger.NotificationCenter;
|
||||||
import org.telegram.messenger.FileLog;
|
|
||||||
import org.telegram.messenger.R;
|
import org.telegram.messenger.R;
|
||||||
import org.telegram.messenger.SvgHelper;
|
import org.telegram.messenger.SvgHelper;
|
||||||
import org.telegram.messenger.UserConfig;
|
import org.telegram.messenger.UserConfig;
|
||||||
|
@ -323,8 +322,11 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
|
|
||||||
public interface DragListener {
|
public interface DragListener {
|
||||||
void onDragStart();
|
void onDragStart();
|
||||||
|
|
||||||
void onDragEnd(float velocity);
|
void onDragEnd(float velocity);
|
||||||
|
|
||||||
void onDragCancel();
|
void onDragCancel();
|
||||||
|
|
||||||
void onDrag(int offset);
|
void onDrag(int offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -386,6 +388,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final Field superListenerField;
|
private static final Field superListenerField;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
Field f = null;
|
Field f = null;
|
||||||
try {
|
try {
|
||||||
|
@ -999,43 +1002,45 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
public EmojiView(boolean needStickers, boolean needGif, final Context context, boolean needSearch, final TLRPC.ChatFull chatFull) {
|
public EmojiView(boolean needStickers, boolean needGif, final Context context, boolean needSearch, final TLRPC.ChatFull chatFull) {
|
||||||
super(context);
|
super(context);
|
||||||
|
|
||||||
int color = Theme.getColor(Theme.key_chat_emojiBottomPanelIcon);
|
int color = Theme.getColor(Theme.key_chat_messagePanelIcons);
|
||||||
color = Color.argb(30, Color.red(color), Color.green(color), Color.blue(color));
|
color = Color.argb(30, Color.red(color), Color.green(color), Color.blue(color));
|
||||||
|
|
||||||
searchFieldHeight = AndroidUtilities.dp(64);
|
searchFieldHeight = AndroidUtilities.dp(64);
|
||||||
needEmojiSearch = needSearch;
|
needEmojiSearch = needSearch;
|
||||||
|
|
||||||
|
// TODO: replace with baseline icons
|
||||||
|
|
||||||
tabIcons = new Drawable[]{
|
tabIcons = new Drawable[]{
|
||||||
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_tab_smiles, Theme.getColor(Theme.key_chat_emojiBottomPanelIcon), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
Theme.createEmojiIconSelectorDrawable(context, R.drawable.baseline_emoticon_outline_24, Theme.getColor(Theme.key_chat_messagePanelIcons), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
||||||
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_tab_gif, Theme.getColor(Theme.key_chat_emojiBottomPanelIcon), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
Theme.createEmojiIconSelectorDrawable(context, R.drawable.deproko_baseline_gif_24, Theme.getColor(Theme.key_chat_messagePanelIcons), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
||||||
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_tab_stickers, Theme.getColor(Theme.key_chat_emojiBottomPanelIcon), Theme.getColor(Theme.key_chat_emojiPanelIconSelected))
|
Theme.createEmojiIconSelectorDrawable(context, R.drawable.msg_sticker, Theme.getColor(Theme.key_chat_messagePanelIcons), Theme.getColor(Theme.key_chat_emojiPanelIconSelected))
|
||||||
};
|
};
|
||||||
|
|
||||||
emojiIcons = new Drawable[]{
|
emojiIcons = new Drawable[]{
|
||||||
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_panel_recent, Theme.getColor(Theme.key_chat_emojiPanelIcon), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_panel_recent, Theme.getColor(Theme.key_chat_messagePanelIcons), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
||||||
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_panel_smiles, Theme.getColor(Theme.key_chat_emojiPanelIcon), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_panel_smiles, Theme.getColor(Theme.key_chat_messagePanelIcons), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
||||||
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_panel_cat, Theme.getColor(Theme.key_chat_emojiPanelIcon), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_panel_cat, Theme.getColor(Theme.key_chat_messagePanelIcons), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
||||||
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_panel_food, Theme.getColor(Theme.key_chat_emojiPanelIcon), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_panel_food, Theme.getColor(Theme.key_chat_messagePanelIcons), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
||||||
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_panel_activities, Theme.getColor(Theme.key_chat_emojiPanelIcon), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_panel_activities, Theme.getColor(Theme.key_chat_messagePanelIcons), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
||||||
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_panel_travel, Theme.getColor(Theme.key_chat_emojiPanelIcon), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_panel_travel, Theme.getColor(Theme.key_chat_messagePanelIcons), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
||||||
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_panel_objects, Theme.getColor(Theme.key_chat_emojiPanelIcon), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_panel_objects, Theme.getColor(Theme.key_chat_messagePanelIcons), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
||||||
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_panel_other, Theme.getColor(Theme.key_chat_emojiPanelIcon), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_panel_other, Theme.getColor(Theme.key_chat_messagePanelIcons), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
||||||
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_panel_flags, Theme.getColor(Theme.key_chat_emojiPanelIcon), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
Theme.createEmojiIconSelectorDrawable(context, R.drawable.smiles_panel_flags, Theme.getColor(Theme.key_chat_messagePanelIcons), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
||||||
};
|
};
|
||||||
|
|
||||||
stickerIcons = new Drawable[]{
|
stickerIcons = new Drawable[]{
|
||||||
Theme.createEmojiIconSelectorDrawable(context, R.drawable.stickers_recent, Theme.getColor(Theme.key_chat_emojiBottomPanelIcon), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
Theme.createEmojiIconSelectorDrawable(context, R.drawable.stickers_recent, Theme.getColor(Theme.key_chat_messagePanelIcons), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
||||||
Theme.createEmojiIconSelectorDrawable(context, R.drawable.stickers_favorites, Theme.getColor(Theme.key_chat_emojiBottomPanelIcon), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
Theme.createEmojiIconSelectorDrawable(context, R.drawable.stickers_favorites, Theme.getColor(Theme.key_chat_messagePanelIcons), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
||||||
Theme.createEmojiIconSelectorDrawable(context, R.drawable.stickers_trending3, Theme.getColor(Theme.key_chat_emojiBottomPanelIcon), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
Theme.createEmojiIconSelectorDrawable(context, R.drawable.stickers_trending3, Theme.getColor(Theme.key_chat_messagePanelIcons), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
||||||
new LayerDrawable(new Drawable[]{
|
new LayerDrawable(new Drawable[]{
|
||||||
Theme.createEmojiIconSelectorDrawable(context, R.drawable.stickers_trending1, Theme.getColor(Theme.key_chat_emojiBottomPanelIcon), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
Theme.createEmojiIconSelectorDrawable(context, R.drawable.stickers_trending1, Theme.getColor(Theme.key_chat_messagePanelIcons), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
||||||
Theme.createEmojiIconSelectorDrawable(context, R.drawable.stickers_trending2, Theme.getColor(Theme.key_chat_emojiPanelStickerPackSelectorLine), Theme.getColor(Theme.key_chat_emojiPanelStickerPackSelectorLine))
|
Theme.createEmojiIconSelectorDrawable(context, R.drawable.stickers_trending2, Theme.getColor(Theme.key_chat_emojiPanelStickerPackSelectorLine), Theme.getColor(Theme.key_chat_emojiPanelStickerPackSelectorLine))
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
gifIcons = new Drawable[]{
|
gifIcons = new Drawable[]{
|
||||||
Theme.createEmojiIconSelectorDrawable(context, R.drawable.stickers_recent, Theme.getColor(Theme.key_chat_emojiBottomPanelIcon), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
Theme.createEmojiIconSelectorDrawable(context, R.drawable.stickers_recent, Theme.getColor(Theme.key_chat_messagePanelIcons), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
||||||
Theme.createEmojiIconSelectorDrawable(context, R.drawable.stickers_gifs_trending, Theme.getColor(Theme.key_chat_emojiBottomPanelIcon), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
Theme.createEmojiIconSelectorDrawable(context, R.drawable.stickers_gifs_trending, Theme.getColor(Theme.key_chat_messagePanelIcons), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
||||||
};
|
};
|
||||||
|
|
||||||
emojiTitles = new String[]{
|
emojiTitles = new String[]{
|
||||||
|
@ -1364,7 +1369,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
emojiTabs.setShouldExpand(true);
|
emojiTabs.setShouldExpand(true);
|
||||||
emojiTabs.setIndicatorHeight(-1);
|
emojiTabs.setIndicatorHeight(-1);
|
||||||
emojiTabs.setUnderlineHeight(-1);
|
emojiTabs.setUnderlineHeight(-1);
|
||||||
emojiTabs.setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground));
|
emojiTabs.setBackgroundColor(Theme.getColor(Theme.key_actionBarDefaultSubmenuBackground));
|
||||||
emojiContainer.addView(emojiTabs, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 38));
|
emojiContainer.addView(emojiTabs, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 38));
|
||||||
emojiTabs.setDelegate(new ScrollSlidingTabStrip.ScrollSlidingTabStripDelegate() {
|
emojiTabs.setDelegate(new ScrollSlidingTabStrip.ScrollSlidingTabStripDelegate() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -1509,7 +1514,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
gifTabs.setUnderlineHeight(AndroidUtilities.getShadowHeight());
|
gifTabs.setUnderlineHeight(AndroidUtilities.getShadowHeight());
|
||||||
gifTabs.setIndicatorColor(Theme.getColor(Theme.key_chat_emojiPanelStickerPackSelectorLine));
|
gifTabs.setIndicatorColor(Theme.getColor(Theme.key_chat_emojiPanelStickerPackSelectorLine));
|
||||||
gifTabs.setUnderlineColor(Theme.getColor(Theme.key_chat_emojiPanelShadowLine));
|
gifTabs.setUnderlineColor(Theme.getColor(Theme.key_chat_emojiPanelShadowLine));
|
||||||
gifTabs.setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground));
|
gifTabs.setBackgroundColor(Theme.getColor(Theme.key_actionBarDefaultSubmenuBackground));
|
||||||
gifContainer.addView(gifTabs, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT | Gravity.TOP));
|
gifContainer.addView(gifTabs, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT | Gravity.TOP));
|
||||||
updateGifTabs();
|
updateGifTabs();
|
||||||
|
|
||||||
|
@ -1653,7 +1658,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
stickersTab.setUnderlineHeight(AndroidUtilities.getShadowHeight());
|
stickersTab.setUnderlineHeight(AndroidUtilities.getShadowHeight());
|
||||||
stickersTab.setIndicatorColor(Theme.getColor(Theme.key_chat_emojiPanelStickerPackSelectorLine));
|
stickersTab.setIndicatorColor(Theme.getColor(Theme.key_chat_emojiPanelStickerPackSelectorLine));
|
||||||
stickersTab.setUnderlineColor(Theme.getColor(Theme.key_chat_emojiPanelShadowLine));
|
stickersTab.setUnderlineColor(Theme.getColor(Theme.key_chat_emojiPanelShadowLine));
|
||||||
stickersTab.setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground));
|
stickersTab.setBackgroundColor(Theme.getColor(Theme.key_actionBarDefaultSubmenuBackground));
|
||||||
stickersContainer.addView(stickersTab, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT | Gravity.TOP));
|
stickersContainer.addView(stickersTab, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT | Gravity.TOP));
|
||||||
updateStickerTabs();
|
updateStickerTabs();
|
||||||
stickersTab.setDelegate(page -> {
|
stickersTab.setDelegate(page -> {
|
||||||
|
@ -1796,7 +1801,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
backspaceButton.setImageResource(R.drawable.smiles_tab_clear);
|
backspaceButton.setImageResource(R.drawable.smiles_tab_clear);
|
||||||
backspaceButton.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_emojiPanelBackspace), PorterDuff.Mode.SRC_IN));
|
backspaceButton.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_messagePanelIcons), PorterDuff.Mode.SRC_IN));
|
||||||
backspaceButton.setScaleType(ImageView.ScaleType.CENTER);
|
backspaceButton.setScaleType(ImageView.ScaleType.CENTER);
|
||||||
backspaceButton.setContentDescription(LocaleController.getString("AccDescrBackspace", R.string.AccDescrBackspace));
|
backspaceButton.setContentDescription(LocaleController.getString("AccDescrBackspace", R.string.AccDescrBackspace));
|
||||||
backspaceButton.setFocusable(true);
|
backspaceButton.setFocusable(true);
|
||||||
|
@ -1833,7 +1838,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
|
|
||||||
stickerSettingsButton = new ImageView(context);
|
stickerSettingsButton = new ImageView(context);
|
||||||
stickerSettingsButton.setImageResource(R.drawable.smiles_tab_settings);
|
stickerSettingsButton.setImageResource(R.drawable.smiles_tab_settings);
|
||||||
stickerSettingsButton.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_emojiPanelBackspace), PorterDuff.Mode.SRC_IN));
|
stickerSettingsButton.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_messagePanelIcons), PorterDuff.Mode.SRC_IN));
|
||||||
stickerSettingsButton.setScaleType(ImageView.ScaleType.CENTER);
|
stickerSettingsButton.setScaleType(ImageView.ScaleType.CENTER);
|
||||||
stickerSettingsButton.setFocusable(true);
|
stickerSettingsButton.setFocusable(true);
|
||||||
if (Build.VERSION.SDK_INT >= 21) {
|
if (Build.VERSION.SDK_INT >= 21) {
|
||||||
|
@ -1920,7 +1925,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
|
|
||||||
searchButton = new ImageView(context);
|
searchButton = new ImageView(context);
|
||||||
searchButton.setImageResource(R.drawable.smiles_tab_search);
|
searchButton.setImageResource(R.drawable.smiles_tab_search);
|
||||||
searchButton.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_emojiPanelBackspace), PorterDuff.Mode.SRC_IN));
|
searchButton.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_messagePanelIcons), PorterDuff.Mode.SRC_IN));
|
||||||
searchButton.setScaleType(ImageView.ScaleType.CENTER);
|
searchButton.setScaleType(ImageView.ScaleType.CENTER);
|
||||||
searchButton.setContentDescription(LocaleController.getString("Search", R.string.Search));
|
searchButton.setContentDescription(LocaleController.getString("Search", R.string.Search));
|
||||||
searchButton.setFocusable(true);
|
searchButton.setFocusable(true);
|
||||||
|
@ -2052,7 +2057,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
if (parent != null) {
|
if (parent != null) {
|
||||||
float y = getY() - parent.getHeight();
|
float y = getY() - parent.getHeight();
|
||||||
if (getLayoutParams().height > 0) {
|
if (getLayoutParams().height > 0) {
|
||||||
y += getLayoutParams().height;
|
y += getLayoutParams().height;
|
||||||
} else {
|
} else {
|
||||||
y += getMeasuredHeight();
|
y += getMeasuredHeight();
|
||||||
}
|
}
|
||||||
|
@ -2628,9 +2633,12 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
|
|
||||||
private ScrollSlidingTabStrip getTabsForType(@Type int type) {
|
private ScrollSlidingTabStrip getTabsForType(@Type int type) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case Type.STICKERS: return stickersTab;
|
case Type.STICKERS:
|
||||||
case Type.EMOJIS: return emojiTabs;
|
return stickersTab;
|
||||||
case Type.GIFS: return gifTabs;
|
case Type.EMOJIS:
|
||||||
|
return emojiTabs;
|
||||||
|
case Type.GIFS:
|
||||||
|
return gifTabs;
|
||||||
default:
|
default:
|
||||||
throw new IllegalArgumentException("Unexpected argument: " + type);
|
throw new IllegalArgumentException("Unexpected argument: " + type);
|
||||||
}
|
}
|
||||||
|
@ -2638,9 +2646,12 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
|
|
||||||
private RecyclerListView getListViewForType(@Type int type) {
|
private RecyclerListView getListViewForType(@Type int type) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case Type.STICKERS: return stickersGridView;
|
case Type.STICKERS:
|
||||||
case Type.EMOJIS: return emojiGridView;
|
return stickersGridView;
|
||||||
case Type.GIFS: return gifGridView;
|
case Type.EMOJIS:
|
||||||
|
return emojiGridView;
|
||||||
|
case Type.GIFS:
|
||||||
|
return gifGridView;
|
||||||
default:
|
default:
|
||||||
throw new IllegalArgumentException("Unexpected argument: " + type);
|
throw new IllegalArgumentException("Unexpected argument: " + type);
|
||||||
}
|
}
|
||||||
|
@ -2648,9 +2659,12 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
|
|
||||||
private GridLayoutManager getLayoutManagerForType(@Type int type) {
|
private GridLayoutManager getLayoutManagerForType(@Type int type) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case Type.STICKERS: return stickersLayoutManager;
|
case Type.STICKERS:
|
||||||
case Type.EMOJIS: return emojiLayoutManager;
|
return stickersLayoutManager;
|
||||||
case Type.GIFS: return gifLayoutManager;
|
case Type.EMOJIS:
|
||||||
|
return emojiLayoutManager;
|
||||||
|
case Type.GIFS:
|
||||||
|
return gifLayoutManager;
|
||||||
default:
|
default:
|
||||||
throw new IllegalArgumentException("Unexpected argument: " + type);
|
throw new IllegalArgumentException("Unexpected argument: " + type);
|
||||||
}
|
}
|
||||||
|
@ -2658,9 +2672,12 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
|
|
||||||
private SearchField getSearchFieldForType(@Type int type) {
|
private SearchField getSearchFieldForType(@Type int type) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case Type.STICKERS: return stickersSearchField;
|
case Type.STICKERS:
|
||||||
case Type.EMOJIS: return emojiSearchField;
|
return stickersSearchField;
|
||||||
case Type.GIFS: return gifSearchField;
|
case Type.EMOJIS:
|
||||||
|
return emojiSearchField;
|
||||||
|
case Type.GIFS:
|
||||||
|
return gifSearchField;
|
||||||
default:
|
default:
|
||||||
throw new IllegalArgumentException("Unexpected argument: " + type);
|
throw new IllegalArgumentException("Unexpected argument: " + type);
|
||||||
}
|
}
|
||||||
|
@ -3039,8 +3056,10 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
gifTabs.addIconTab(0, gifIcons[0]).setContentDescription(LocaleController.getString("RecentStickers", R.string.RecentStickers));
|
gifTabs.addIconTab(0, gifIcons[0]).setContentDescription(LocaleController.getString("RecentStickers", R.string.RecentStickers));
|
||||||
}
|
}
|
||||||
|
|
||||||
gifTrendingTabNum = gifTabsCount++;
|
if (!NekoConfig.disableTrending) {
|
||||||
gifTabs.addIconTab(1, gifIcons[1]).setContentDescription(LocaleController.getString("FeaturedGifs", R.string.FeaturedGifs));
|
gifTrendingTabNum = gifTabsCount++;
|
||||||
|
gifTabs.addIconTab(1, gifIcons[1]).setContentDescription(LocaleController.getString("FeaturedGifs", R.string.FeaturedGifs));
|
||||||
|
}
|
||||||
|
|
||||||
gifFirstEmojiTabNum = gifTabsCount;
|
gifFirstEmojiTabNum = gifTabsCount;
|
||||||
final int hPadding = AndroidUtilities.dp(13);
|
final int hPadding = AndroidUtilities.dp(13);
|
||||||
|
@ -3114,7 +3133,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
} else {
|
} else {
|
||||||
setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground));
|
setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground));
|
||||||
if (needEmojiSearch) {
|
if (needEmojiSearch) {
|
||||||
bottomTabContainerBackground.setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground));
|
bottomTabContainerBackground.setBackgroundColor(Theme.getColor(Theme.key_actionBarDefaultSubmenuBackground));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3159,12 +3178,12 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
if (stickersTab != null) {
|
if (stickersTab != null) {
|
||||||
stickersTab.setIndicatorColor(Theme.getColor(Theme.key_chat_emojiPanelStickerPackSelectorLine));
|
stickersTab.setIndicatorColor(Theme.getColor(Theme.key_chat_emojiPanelStickerPackSelectorLine));
|
||||||
stickersTab.setUnderlineColor(Theme.getColor(Theme.key_chat_emojiPanelShadowLine));
|
stickersTab.setUnderlineColor(Theme.getColor(Theme.key_chat_emojiPanelShadowLine));
|
||||||
stickersTab.setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground));
|
stickersTab.setBackgroundColor(Theme.getColor(Theme.key_actionBarDefaultSubmenuBackground));
|
||||||
}
|
}
|
||||||
if (gifTabs != null) {
|
if (gifTabs != null) {
|
||||||
gifTabs.setIndicatorColor(Theme.getColor(Theme.key_chat_emojiPanelStickerPackSelectorLine));
|
gifTabs.setIndicatorColor(Theme.getColor(Theme.key_chat_emojiPanelStickerPackSelectorLine));
|
||||||
gifTabs.setUnderlineColor(Theme.getColor(Theme.key_chat_emojiPanelShadowLine));
|
gifTabs.setUnderlineColor(Theme.getColor(Theme.key_chat_emojiPanelShadowLine));
|
||||||
gifTabs.setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground));
|
gifTabs.setBackgroundColor(Theme.getColor(Theme.key_actionBarDefaultSubmenuBackground));
|
||||||
}
|
}
|
||||||
if (backspaceButton != null) {
|
if (backspaceButton != null) {
|
||||||
backspaceButton.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_emojiPanelBackspace), PorterDuff.Mode.SRC_IN));
|
backspaceButton.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_emojiPanelBackspace), PorterDuff.Mode.SRC_IN));
|
||||||
|
@ -3193,19 +3212,19 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int a = 0; a < tabIcons.length; a++) {
|
for (int a = 0; a < tabIcons.length; a++) {
|
||||||
Theme.setEmojiDrawableColor(tabIcons[a], Theme.getColor(Theme.key_chat_emojiBottomPanelIcon), false);
|
Theme.setEmojiDrawableColor(tabIcons[a], Theme.getColor(Theme.key_chat_messagePanelIcons), false);
|
||||||
Theme.setEmojiDrawableColor(tabIcons[a], Theme.getColor(Theme.key_chat_emojiPanelIconSelected), true);
|
Theme.setEmojiDrawableColor(tabIcons[a], Theme.getColor(Theme.key_chat_emojiPanelIconSelected), true);
|
||||||
}
|
}
|
||||||
for (int a = 0; a < emojiIcons.length; a++) {
|
for (int a = 0; a < emojiIcons.length; a++) {
|
||||||
Theme.setEmojiDrawableColor(emojiIcons[a], Theme.getColor(Theme.key_chat_emojiPanelIcon), false);
|
Theme.setEmojiDrawableColor(emojiIcons[a], Theme.getColor(Theme.key_chat_messagePanelIcons), false);
|
||||||
Theme.setEmojiDrawableColor(emojiIcons[a], Theme.getColor(Theme.key_chat_emojiPanelIconSelected), true);
|
Theme.setEmojiDrawableColor(emojiIcons[a], Theme.getColor(Theme.key_chat_emojiPanelIconSelected), true);
|
||||||
}
|
}
|
||||||
for (int a = 0; a < stickerIcons.length; a++) {
|
for (int a = 0; a < stickerIcons.length; a++) {
|
||||||
Theme.setEmojiDrawableColor(stickerIcons[a], Theme.getColor(Theme.key_chat_emojiPanelIcon), false);
|
Theme.setEmojiDrawableColor(stickerIcons[a], Theme.getColor(Theme.key_chat_messagePanelIcons), false);
|
||||||
Theme.setEmojiDrawableColor(stickerIcons[a], Theme.getColor(Theme.key_chat_emojiPanelIconSelected), true);
|
Theme.setEmojiDrawableColor(stickerIcons[a], Theme.getColor(Theme.key_chat_emojiPanelIconSelected), true);
|
||||||
}
|
}
|
||||||
for (int a = 0; a < gifIcons.length; a++) {
|
for (int a = 0; a < gifIcons.length; a++) {
|
||||||
Theme.setEmojiDrawableColor(gifIcons[a], Theme.getColor(Theme.key_chat_emojiPanelIcon), false);
|
Theme.setEmojiDrawableColor(gifIcons[a], Theme.getColor(Theme.key_chat_messagePanelIcons), false);
|
||||||
Theme.setEmojiDrawableColor(gifIcons[a], Theme.getColor(Theme.key_chat_emojiPanelIconSelected), true);
|
Theme.setEmojiDrawableColor(gifIcons[a], Theme.getColor(Theme.key_chat_emojiPanelIconSelected), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3223,7 +3242,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
setBackgroundResource(R.drawable.smiles_popup);
|
setBackgroundResource(R.drawable.smiles_popup);
|
||||||
getBackground().setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_emojiPanelBackground), PorterDuff.Mode.SRC_IN));
|
getBackground().setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_emojiPanelBackground), PorterDuff.Mode.SRC_IN));
|
||||||
if (needEmojiSearch) {
|
if (needEmojiSearch) {
|
||||||
bottomTabContainerBackground.setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground));
|
bottomTabContainerBackground.setBackgroundColor(Theme.getColor(Theme.key_actionBarDefaultSubmenuBackground));
|
||||||
}
|
}
|
||||||
currentBackgroundType = 1;
|
currentBackgroundType = 1;
|
||||||
}
|
}
|
||||||
|
@ -3236,7 +3255,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
}
|
}
|
||||||
setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground));
|
setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground));
|
||||||
if (needEmojiSearch) {
|
if (needEmojiSearch) {
|
||||||
bottomTabContainerBackground.setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground));
|
bottomTabContainerBackground.setBackgroundColor(Theme.getColor(Theme.key_actionBarDefaultSubmenuBackground));
|
||||||
}
|
}
|
||||||
currentBackgroundType = 0;
|
currentBackgroundType = 0;
|
||||||
}
|
}
|
||||||
|
@ -4300,7 +4319,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
}
|
}
|
||||||
|
|
||||||
public CharSequence getPageTitle(int position) {
|
public CharSequence getPageTitle(int position) {
|
||||||
switch(position) {
|
switch (position) {
|
||||||
case 0:
|
case 0:
|
||||||
return LocaleController.getString("Emoji", R.string.Emoji);
|
return LocaleController.getString("Emoji", R.string.Emoji);
|
||||||
case 1:
|
case 1:
|
||||||
|
|
|
@ -24,6 +24,8 @@ import android.text.TextUtils;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.accessibility.AccessibilityNodeInfo;
|
import android.view.accessibility.AccessibilityNodeInfo;
|
||||||
|
|
||||||
|
import androidx.core.graphics.ColorUtils;
|
||||||
|
|
||||||
import org.telegram.messenger.AndroidUtilities;
|
import org.telegram.messenger.AndroidUtilities;
|
||||||
import org.telegram.messenger.ContactsController;
|
import org.telegram.messenger.ContactsController;
|
||||||
import org.telegram.messenger.ImageLocation;
|
import org.telegram.messenger.ImageLocation;
|
||||||
|
@ -34,8 +36,6 @@ import org.telegram.messenger.UserObject;
|
||||||
import org.telegram.tgnet.TLRPC;
|
import org.telegram.tgnet.TLRPC;
|
||||||
import org.telegram.ui.ActionBar.Theme;
|
import org.telegram.ui.ActionBar.Theme;
|
||||||
|
|
||||||
import androidx.core.graphics.ColorUtils;
|
|
||||||
|
|
||||||
public class GroupCreateSpan extends View {
|
public class GroupCreateSpan extends View {
|
||||||
|
|
||||||
private int uid;
|
private int uid;
|
||||||
|
@ -67,7 +67,7 @@ public class GroupCreateSpan extends View {
|
||||||
super(context);
|
super(context);
|
||||||
|
|
||||||
currentContact = contact;
|
currentContact = contact;
|
||||||
deleteDrawable = getResources().getDrawable(R.drawable.delete);
|
deleteDrawable = getResources().getDrawable(R.drawable.baseline_delete_24);
|
||||||
textPaint.setTextSize(AndroidUtilities.dp(14));
|
textPaint.setTextSize(AndroidUtilities.dp(14));
|
||||||
|
|
||||||
String firstName;
|
String firstName;
|
||||||
|
|
|
@ -5,7 +5,6 @@ import android.animation.AnimatorListenerAdapter;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.Color;
|
|
||||||
import android.text.SpannableStringBuilder;
|
import android.text.SpannableStringBuilder;
|
||||||
import android.util.TypedValue;
|
import android.util.TypedValue;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
|
@ -90,7 +89,7 @@ public class LinkActionView extends LinearLayout {
|
||||||
copyView = new TextView(context);
|
copyView = new TextView(context);
|
||||||
copyView.setGravity(Gravity.CENTER_HORIZONTAL);
|
copyView.setGravity(Gravity.CENTER_HORIZONTAL);
|
||||||
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder();
|
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder();
|
||||||
spannableStringBuilder.append("..").setSpan(new ColoredImageSpan(ContextCompat.getDrawable(context, R.drawable.msg_copy_filled)), 0, 1, 0);
|
spannableStringBuilder.append("..").setSpan(new ColoredImageSpan(ContextCompat.getDrawable(context, R.drawable.baseline_content_copy_24)), 0, 1, 0);
|
||||||
spannableStringBuilder.setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(8)), 1, 2, 0);
|
spannableStringBuilder.setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(8)), 1, 2, 0);
|
||||||
spannableStringBuilder.append(LocaleController.getString("CopyLink", R.string.CopyLink));
|
spannableStringBuilder.append(LocaleController.getString("CopyLink", R.string.CopyLink));
|
||||||
spannableStringBuilder.append(".").setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(5)), spannableStringBuilder.length() - 1, spannableStringBuilder.length(), 0);
|
spannableStringBuilder.append(".").setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(5)), spannableStringBuilder.length() - 1, spannableStringBuilder.length(), 0);
|
||||||
|
@ -104,7 +103,7 @@ public class LinkActionView extends LinearLayout {
|
||||||
shareView = new TextView(context);
|
shareView = new TextView(context);
|
||||||
shareView.setGravity(Gravity.CENTER_HORIZONTAL);
|
shareView.setGravity(Gravity.CENTER_HORIZONTAL);
|
||||||
spannableStringBuilder = new SpannableStringBuilder();
|
spannableStringBuilder = new SpannableStringBuilder();
|
||||||
spannableStringBuilder.append("..").setSpan(new ColoredImageSpan(ContextCompat.getDrawable(context, R.drawable.msg_share_filled)), 0, 1, 0);
|
spannableStringBuilder.append("..").setSpan(new ColoredImageSpan(ContextCompat.getDrawable(context, R.drawable.baseline_forward_24)), 0, 1, 0);
|
||||||
spannableStringBuilder.setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(8)), 1, 2, 0);
|
spannableStringBuilder.setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(8)), 1, 2, 0);
|
||||||
spannableStringBuilder.append(LocaleController.getString("ShareLink", R.string.ShareLink));
|
spannableStringBuilder.append(LocaleController.getString("ShareLink", R.string.ShareLink));
|
||||||
spannableStringBuilder.append(".").setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(5)), spannableStringBuilder.length() - 1, spannableStringBuilder.length(), 0);
|
spannableStringBuilder.append(".").setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(5)), spannableStringBuilder.length() - 1, spannableStringBuilder.length(), 0);
|
||||||
|
@ -120,7 +119,7 @@ public class LinkActionView extends LinearLayout {
|
||||||
removeView = new TextView(context);
|
removeView = new TextView(context);
|
||||||
removeView.setGravity(Gravity.CENTER_HORIZONTAL);
|
removeView.setGravity(Gravity.CENTER_HORIZONTAL);
|
||||||
spannableStringBuilder = new SpannableStringBuilder();
|
spannableStringBuilder = new SpannableStringBuilder();
|
||||||
spannableStringBuilder.append("..").setSpan(new ColoredImageSpan(ContextCompat.getDrawable(context, R.drawable.msg_delete)), 0, 1, 0);
|
spannableStringBuilder.append("..").setSpan(new ColoredImageSpan(ContextCompat.getDrawable(context, R.drawable.baseline_delete_24)), 0, 1, 0);
|
||||||
spannableStringBuilder.setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(8)), 1, 2, 0);
|
spannableStringBuilder.setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(8)), 1, 2, 0);
|
||||||
spannableStringBuilder.append(LocaleController.getString("DeleteLink", R.string.DeleteLink));
|
spannableStringBuilder.append(LocaleController.getString("DeleteLink", R.string.DeleteLink));
|
||||||
spannableStringBuilder.append(".").setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(5)), spannableStringBuilder.length() - 1, spannableStringBuilder.length(), 0);
|
spannableStringBuilder.append(".").setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(5)), spannableStringBuilder.length() - 1, spannableStringBuilder.length(), 0);
|
||||||
|
@ -201,7 +200,7 @@ public class LinkActionView extends LinearLayout {
|
||||||
ActionBarMenuSubItem subItem;
|
ActionBarMenuSubItem subItem;
|
||||||
if (!permanent) {
|
if (!permanent) {
|
||||||
subItem = new ActionBarMenuSubItem(context, true, false);
|
subItem = new ActionBarMenuSubItem(context, true, false);
|
||||||
subItem.setTextAndIcon(LocaleController.getString("Edit", R.string.Edit), R.drawable.msg_edit);
|
subItem.setTextAndIcon(LocaleController.getString("Edit", R.string.Edit), R.drawable.baseline_edit_24);
|
||||||
layout.addView(subItem, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48));
|
layout.addView(subItem, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48));
|
||||||
subItem.setOnClickListener(view12 -> {
|
subItem.setOnClickListener(view12 -> {
|
||||||
delegate.editLink();
|
delegate.editLink();
|
||||||
|
@ -219,7 +218,7 @@ public class LinkActionView extends LinearLayout {
|
||||||
// });
|
// });
|
||||||
|
|
||||||
subItem = new ActionBarMenuSubItem(context, false, true);
|
subItem = new ActionBarMenuSubItem(context, false, true);
|
||||||
subItem.setTextAndIcon(LocaleController.getString("RevokeLink", R.string.RevokeLink), R.drawable.msg_delete);
|
subItem.setTextAndIcon(LocaleController.getString("RevokeLink", R.string.RevokeLink), R.drawable.baseline_delete_24);
|
||||||
subItem.setColors(Theme.getColor(Theme.key_windowBackgroundWhiteRedText), Theme.getColor(Theme.key_windowBackgroundWhiteRedText));
|
subItem.setColors(Theme.getColor(Theme.key_windowBackgroundWhiteRedText), Theme.getColor(Theme.key_windowBackgroundWhiteRedText));
|
||||||
subItem.setOnClickListener(view1 -> {
|
subItem.setOnClickListener(view1 -> {
|
||||||
revokeLink();
|
revokeLink();
|
||||||
|
|
|
@ -14,9 +14,6 @@ import android.graphics.Color;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.graphics.Paint.Style;
|
import android.graphics.Paint.Style;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import androidx.viewpager.widget.ViewPager;
|
|
||||||
import androidx.viewpager.widget.ViewPager.OnPageChangeListener;
|
|
||||||
|
|
||||||
import android.graphics.drawable.RippleDrawable;
|
import android.graphics.drawable.RippleDrawable;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
@ -27,6 +24,9 @@ import android.widget.HorizontalScrollView;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
|
|
||||||
|
import androidx.viewpager.widget.ViewPager;
|
||||||
|
import androidx.viewpager.widget.ViewPager.OnPageChangeListener;
|
||||||
|
|
||||||
import org.telegram.messenger.AndroidUtilities;
|
import org.telegram.messenger.AndroidUtilities;
|
||||||
import org.telegram.ui.ActionBar.Theme;
|
import org.telegram.ui.ActionBar.Theme;
|
||||||
|
|
||||||
|
@ -138,14 +138,14 @@ public class PagerSlidingTabStrip extends HorizontalScrollView {
|
||||||
super.setSelected(selected);
|
super.setSelected(selected);
|
||||||
Drawable background = getBackground();
|
Drawable background = getBackground();
|
||||||
if (Build.VERSION.SDK_INT >= 21 && background != null) {
|
if (Build.VERSION.SDK_INT >= 21 && background != null) {
|
||||||
int color = Theme.getColor(selected ? Theme.key_chat_emojiPanelIconSelected : Theme.key_chat_emojiBottomPanelIcon);
|
int color = Theme.getColor(selected ? Theme.key_chat_emojiPanelIconSelected : Theme.key_chat_messagePanelIcons);
|
||||||
Theme.setSelectorDrawableColor(background, Color.argb(30, Color.red(color), Color.green(color), Color.blue(color)), true);
|
Theme.setSelectorDrawableColor(background, Color.argb(30, Color.red(color), Color.green(color), Color.blue(color)), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
tab.setFocusable(true);
|
tab.setFocusable(true);
|
||||||
if (Build.VERSION.SDK_INT >= 21) {
|
if (Build.VERSION.SDK_INT >= 21) {
|
||||||
RippleDrawable rippleDrawable = (RippleDrawable) Theme.createSelectorDrawable(Theme.getColor(Theme.key_chat_emojiBottomPanelIcon));
|
RippleDrawable rippleDrawable = (RippleDrawable) Theme.createSelectorDrawable(Theme.getColor(Theme.key_chat_messagePanelIcons));
|
||||||
Theme.setRippleDrawableForceSoftware(rippleDrawable);
|
Theme.setRippleDrawableForceSoftware(rippleDrawable);
|
||||||
tab.setBackground(rippleDrawable);
|
tab.setBackground(rippleDrawable);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,6 @@ import android.animation.ValueAnimator;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.TextUtils;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewTreeObserver;
|
import android.view.ViewTreeObserver;
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
|
@ -347,7 +346,7 @@ public class SearchViewPager extends ViewPagerFixed implements FilteredSearchVie
|
||||||
selectedMessagesCountTextView.setOnTouchListener((v, event) -> true);
|
selectedMessagesCountTextView.setOnTouchListener((v, event) -> true);
|
||||||
|
|
||||||
gotoItem = actionMode.addItemWithWidth(gotoItemId, R.drawable.msg_message, AndroidUtilities.dp(54), LocaleController.getString("AccDescrGoToMessage", R.string.AccDescrGoToMessage));
|
gotoItem = actionMode.addItemWithWidth(gotoItemId, R.drawable.msg_message, AndroidUtilities.dp(54), LocaleController.getString("AccDescrGoToMessage", R.string.AccDescrGoToMessage));
|
||||||
forwardItem = actionMode.addItemWithWidth(forwardItemId, R.drawable.msg_forward, AndroidUtilities.dp(54), LocaleController.getString("Forward", R.string.Forward));
|
forwardItem = actionMode.addItemWithWidth(forwardItemId, R.drawable.baseline_forward_24, AndroidUtilities.dp(54), LocaleController.getString("Forward", R.string.Forward));
|
||||||
}
|
}
|
||||||
if (parent.getActionBar().getBackButton().getDrawable() instanceof MenuDrawable) {
|
if (parent.getActionBar().getBackButton().getDrawable() instanceof MenuDrawable) {
|
||||||
parent.getActionBar().setBackButtonDrawable(new BackDrawable(false));
|
parent.getActionBar().setBackButtonDrawable(new BackDrawable(false));
|
||||||
|
|
|
@ -48,6 +48,10 @@ import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.core.view.ViewCompat;
|
||||||
|
import androidx.recyclerview.widget.GridLayoutManager;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import org.telegram.SQLite.SQLiteCursor;
|
import org.telegram.SQLite.SQLiteCursor;
|
||||||
import org.telegram.messenger.AndroidUtilities;
|
import org.telegram.messenger.AndroidUtilities;
|
||||||
import org.telegram.messenger.ApplicationLoader;
|
import org.telegram.messenger.ApplicationLoader;
|
||||||
|
@ -82,9 +86,7 @@ import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
import androidx.core.view.ViewCompat;
|
import tw.nekomimi.nekogram.NekoConfig;
|
||||||
import androidx.recyclerview.widget.GridLayoutManager;
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
|
||||||
|
|
||||||
public class ShareAlert extends BottomSheet implements NotificationCenter.NotificationCenterDelegate {
|
public class ShareAlert extends BottomSheet implements NotificationCenter.NotificationCenterDelegate {
|
||||||
|
|
||||||
|
@ -1063,19 +1065,29 @@ public class ShareAlert extends BottomSheet implements NotificationCenter.Notifi
|
||||||
if (sendingMessageObjects != null) {
|
if (sendingMessageObjects != null) {
|
||||||
for (int a = 0; a < selectedDialogs.size(); a++) {
|
for (int a = 0; a < selectedDialogs.size(); a++) {
|
||||||
long key = selectedDialogs.keyAt(a);
|
long key = selectedDialogs.keyAt(a);
|
||||||
|
if (NekoConfig.sendCommentAfterForward) {
|
||||||
|
SendMessagesHelper.getInstance(currentAccount).sendMessage(sendingMessageObjects, key, true, 0);
|
||||||
|
}
|
||||||
if (frameLayout2.getTag() != null && commentTextView.length() > 0) {
|
if (frameLayout2.getTag() != null && commentTextView.length() > 0) {
|
||||||
SendMessagesHelper.getInstance(currentAccount).sendMessage(commentTextView.getText().toString(), key, null, null, null, true, null, null, null, true, 0);
|
SendMessagesHelper.getInstance(currentAccount).sendMessage(commentTextView.getText().toString(), key, null, null, null, true, null, null, null, true, 0);
|
||||||
}
|
}
|
||||||
SendMessagesHelper.getInstance(currentAccount).sendMessage(sendingMessageObjects, key, true, 0);
|
if (!NekoConfig.sendCommentAfterForward) {
|
||||||
|
SendMessagesHelper.getInstance(currentAccount).sendMessage(sendingMessageObjects, key, true, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
onSend(selectedDialogs, sendingMessageObjects.size());
|
onSend(selectedDialogs, sendingMessageObjects.size());
|
||||||
} else if (sendingText != null) {
|
} else if (sendingText != null) {
|
||||||
for (int a = 0; a < selectedDialogs.size(); a++) {
|
for (int a = 0; a < selectedDialogs.size(); a++) {
|
||||||
long key = selectedDialogs.keyAt(a);
|
long key = selectedDialogs.keyAt(a);
|
||||||
|
if (NekoConfig.sendCommentAfterForward) {
|
||||||
|
SendMessagesHelper.getInstance(currentAccount).sendMessage(sendingText, key, null, null, null, true, null, null, null, true, 0);
|
||||||
|
}
|
||||||
if (frameLayout2.getTag() != null && commentTextView.length() > 0) {
|
if (frameLayout2.getTag() != null && commentTextView.length() > 0) {
|
||||||
SendMessagesHelper.getInstance(currentAccount).sendMessage(commentTextView.getText().toString(), key, null, null, null, true, null, null, null, true, 0);
|
SendMessagesHelper.getInstance(currentAccount).sendMessage(commentTextView.getText().toString(), key, null, null, null, true, null, null, null, true, 0);
|
||||||
}
|
}
|
||||||
SendMessagesHelper.getInstance(currentAccount).sendMessage(sendingText, key, null, null, null, true, null, null, null, true, 0);
|
if (!NekoConfig.sendCommentAfterForward) {
|
||||||
|
SendMessagesHelper.getInstance(currentAccount).sendMessage(sendingText, key, null, null, null, true, null, null, null, true, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (delegate != null) {
|
if (delegate != null) {
|
||||||
|
|
|
@ -58,7 +58,6 @@ import org.telegram.messenger.MediaDataController;
|
||||||
import org.telegram.messenger.MessageObject;
|
import org.telegram.messenger.MessageObject;
|
||||||
import org.telegram.messenger.NotificationCenter;
|
import org.telegram.messenger.NotificationCenter;
|
||||||
import org.telegram.messenger.R;
|
import org.telegram.messenger.R;
|
||||||
import org.telegram.messenger.SendMessagesHelper;
|
|
||||||
import org.telegram.messenger.UserObject;
|
import org.telegram.messenger.UserObject;
|
||||||
import org.telegram.messenger.Utilities;
|
import org.telegram.messenger.Utilities;
|
||||||
import org.telegram.messenger.browser.Browser;
|
import org.telegram.messenger.browser.Browser;
|
||||||
|
@ -71,7 +70,6 @@ import org.telegram.ui.ActionBar.ActionBarMenuItem;
|
||||||
import org.telegram.ui.ActionBar.AlertDialog;
|
import org.telegram.ui.ActionBar.AlertDialog;
|
||||||
import org.telegram.ui.ActionBar.BackDrawable;
|
import org.telegram.ui.ActionBar.BackDrawable;
|
||||||
import org.telegram.ui.ActionBar.BaseFragment;
|
import org.telegram.ui.ActionBar.BaseFragment;
|
||||||
import org.telegram.ui.ActionBar.BottomSheet;
|
|
||||||
import org.telegram.ui.ActionBar.Theme;
|
import org.telegram.ui.ActionBar.Theme;
|
||||||
import org.telegram.ui.ActionBar.ThemeDescription;
|
import org.telegram.ui.ActionBar.ThemeDescription;
|
||||||
import org.telegram.ui.Adapters.SearchAdapterHelper;
|
import org.telegram.ui.Adapters.SearchAdapterHelper;
|
||||||
|
@ -871,7 +869,7 @@ public class SharedMediaLayout extends FrameLayout implements NotificationCenter
|
||||||
gotoItem.setOnClickListener(v -> onActionBarItemClick(gotochat));
|
gotoItem.setOnClickListener(v -> onActionBarItemClick(gotochat));
|
||||||
|
|
||||||
forwardNoQuoteItem = new ActionBarMenuItem(context, null, Theme.getColor(Theme.key_actionBarActionModeDefaultSelector), Theme.getColor(Theme.key_windowBackgroundWhiteGrayText2), false);
|
forwardNoQuoteItem = new ActionBarMenuItem(context, null, Theme.getColor(Theme.key_actionBarActionModeDefaultSelector), Theme.getColor(Theme.key_windowBackgroundWhiteGrayText2), false);
|
||||||
forwardNoQuoteItem.setIcon(R.drawable.msg_forward_noquote);
|
forwardNoQuoteItem.setIcon(R.drawable.baseline_forward_24);
|
||||||
forwardNoQuoteItem.setContentDescription(LocaleController.getString("NoQuoteForward", R.string.NoQuoteForward));
|
forwardNoQuoteItem.setContentDescription(LocaleController.getString("NoQuoteForward", R.string.NoQuoteForward));
|
||||||
forwardNoQuoteItem.setDuplicateParentStateEnabled(false);
|
forwardNoQuoteItem.setDuplicateParentStateEnabled(false);
|
||||||
actionModeLayout.addView(forwardNoQuoteItem, new LinearLayout.LayoutParams(AndroidUtilities.dp(54), ViewGroup.LayoutParams.MATCH_PARENT));
|
actionModeLayout.addView(forwardNoQuoteItem, new LinearLayout.LayoutParams(AndroidUtilities.dp(54), ViewGroup.LayoutParams.MATCH_PARENT));
|
||||||
|
@ -879,7 +877,7 @@ public class SharedMediaLayout extends FrameLayout implements NotificationCenter
|
||||||
forwardNoQuoteItem.setOnClickListener(v -> onActionBarItemClick(forward_noquote));
|
forwardNoQuoteItem.setOnClickListener(v -> onActionBarItemClick(forward_noquote));
|
||||||
|
|
||||||
forwardItem = new ActionBarMenuItem(context, null, Theme.getColor(Theme.key_actionBarActionModeDefaultSelector), Theme.getColor(Theme.key_windowBackgroundWhiteGrayText2), false);
|
forwardItem = new ActionBarMenuItem(context, null, Theme.getColor(Theme.key_actionBarActionModeDefaultSelector), Theme.getColor(Theme.key_windowBackgroundWhiteGrayText2), false);
|
||||||
forwardItem.setIcon(R.drawable.msg_forward);
|
forwardItem.setIcon(R.drawable.baseline_forward_24);
|
||||||
forwardItem.setContentDescription(LocaleController.getString("Forward", R.string.Forward));
|
forwardItem.setContentDescription(LocaleController.getString("Forward", R.string.Forward));
|
||||||
forwardItem.setDuplicateParentStateEnabled(false);
|
forwardItem.setDuplicateParentStateEnabled(false);
|
||||||
actionModeLayout.addView(forwardItem, new LinearLayout.LayoutParams(AndroidUtilities.dp(54), ViewGroup.LayoutParams.MATCH_PARENT));
|
actionModeLayout.addView(forwardItem, new LinearLayout.LayoutParams(AndroidUtilities.dp(54), ViewGroup.LayoutParams.MATCH_PARENT));
|
||||||
|
@ -887,7 +885,7 @@ public class SharedMediaLayout extends FrameLayout implements NotificationCenter
|
||||||
forwardItem.setOnClickListener(v -> onActionBarItemClick(forward));
|
forwardItem.setOnClickListener(v -> onActionBarItemClick(forward));
|
||||||
}
|
}
|
||||||
deleteItem = new ActionBarMenuItem(context, null, Theme.getColor(Theme.key_actionBarActionModeDefaultSelector), Theme.getColor(Theme.key_windowBackgroundWhiteGrayText2), false);
|
deleteItem = new ActionBarMenuItem(context, null, Theme.getColor(Theme.key_actionBarActionModeDefaultSelector), Theme.getColor(Theme.key_windowBackgroundWhiteGrayText2), false);
|
||||||
deleteItem.setIcon(R.drawable.msg_delete);
|
deleteItem.setIcon(R.drawable.baseline_delete_24);
|
||||||
deleteItem.setContentDescription(LocaleController.getString("Delete", R.string.Delete));
|
deleteItem.setContentDescription(LocaleController.getString("Delete", R.string.Delete));
|
||||||
deleteItem.setDuplicateParentStateEnabled(false);
|
deleteItem.setDuplicateParentStateEnabled(false);
|
||||||
actionModeLayout.addView(deleteItem, new LinearLayout.LayoutParams(AndroidUtilities.dp(54), ViewGroup.LayoutParams.MATCH_PARENT));
|
actionModeLayout.addView(deleteItem, new LinearLayout.LayoutParams(AndroidUtilities.dp(54), ViewGroup.LayoutParams.MATCH_PARENT));
|
||||||
|
@ -3082,7 +3080,7 @@ public class SharedMediaLayout extends FrameLayout implements NotificationCenter
|
||||||
builder.addTitle(urlFinal);
|
builder.addTitle(urlFinal);
|
||||||
builder.addItems(
|
builder.addItems(
|
||||||
new String[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy), LocaleController.getString("ShareQRCode", R.string.ShareQRCode)},
|
new String[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy), LocaleController.getString("ShareQRCode", R.string.ShareQRCode)},
|
||||||
new Integer[]{R.drawable.baseline_open_in_browser_24, R.drawable.baseline_content_copy_24,R.drawable.wallet_qr }, (which, text, __) -> {
|
new int[]{R.drawable.baseline_open_in_browser_24, R.drawable.baseline_content_copy_24, R.drawable.wallet_qr}, (which, text, __) -> {
|
||||||
if (which == 0 || which == 2) {
|
if (which == 0 || which == 2) {
|
||||||
if (which == 0) {
|
if (which == 0) {
|
||||||
openUrl(urlFinal);
|
openUrl(urlFinal);
|
||||||
|
|
|
@ -17,6 +17,7 @@ import android.graphics.Point;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.provider.MediaStore;
|
import android.provider.MediaStore;
|
||||||
|
|
||||||
import androidx.core.content.FileProvider;
|
import androidx.core.content.FileProvider;
|
||||||
|
|
||||||
import org.telegram.messenger.AndroidUtilities;
|
import org.telegram.messenger.AndroidUtilities;
|
||||||
|
@ -29,13 +30,15 @@ import org.telegram.messenger.R;
|
||||||
import org.telegram.messenger.SendMessagesHelper;
|
import org.telegram.messenger.SendMessagesHelper;
|
||||||
import org.telegram.messenger.Utilities;
|
import org.telegram.messenger.Utilities;
|
||||||
import org.telegram.ui.ActionBar.BaseFragment;
|
import org.telegram.ui.ActionBar.BaseFragment;
|
||||||
import org.telegram.ui.ActionBar.BottomSheet;
|
|
||||||
import org.telegram.ui.PhotoAlbumPickerActivity;
|
import org.telegram.ui.PhotoAlbumPickerActivity;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import kotlin.Unit;
|
||||||
|
import tw.nekomimi.nekogram.BottomBuilder;
|
||||||
|
|
||||||
public class WallpaperUpdater {
|
public class WallpaperUpdater {
|
||||||
|
|
||||||
private String currentPicturePath;
|
private String currentPicturePath;
|
||||||
|
@ -57,20 +60,20 @@ public class WallpaperUpdater {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showAlert(final boolean fromTheme) {
|
public void showAlert(final boolean fromTheme) {
|
||||||
BottomSheet.Builder builder = new BottomSheet.Builder(parentActivity);
|
BottomBuilder builder = new BottomBuilder(parentActivity);
|
||||||
builder.setTitle(LocaleController.getString("ChoosePhoto", R.string.ChoosePhoto), true);
|
builder.addTitle(LocaleController.getString("ChoosePhoto", R.string.ChoosePhoto), true);
|
||||||
|
|
||||||
CharSequence[] items;
|
String[] items;
|
||||||
int[] icons;
|
int[] icons;
|
||||||
if (fromTheme) {
|
if (fromTheme) {
|
||||||
items = new CharSequence[]{LocaleController.getString("ChooseTakePhoto", R.string.ChooseTakePhoto), LocaleController.getString("SelectFromGallery", R.string.SelectFromGallery), LocaleController.getString("SelectColor", R.string.SelectColor), LocaleController.getString("Default", R.string.Default)};
|
items = new String[]{LocaleController.getString("ChooseTakePhoto", R.string.ChooseTakePhoto), LocaleController.getString("SelectFromGallery", R.string.SelectFromGallery), LocaleController.getString("SelectColor", R.string.SelectColor), LocaleController.getString("Default", R.string.Default)};
|
||||||
icons = null;
|
icons = null;
|
||||||
} else {
|
} else {
|
||||||
items = new CharSequence[]{LocaleController.getString("ChooseTakePhoto", R.string.ChooseTakePhoto), LocaleController.getString("SelectFromGallery", R.string.SelectFromGallery)};
|
items = new String[]{LocaleController.getString("ChooseTakePhoto", R.string.ChooseTakePhoto), LocaleController.getString("SelectFromGallery", R.string.SelectFromGallery)};
|
||||||
icons = new int[]{R.drawable.baseline_camera_alt_24, R.drawable.baseline_image_24};
|
icons = new int[]{R.drawable.baseline_camera_alt_24, R.drawable.baseline_image_24};
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.setItems(items, icons, (dialogInterface, i) -> {
|
builder.addItems(items, icons, (i, t, c) -> {
|
||||||
try {
|
try {
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
try {
|
try {
|
||||||
|
@ -102,6 +105,7 @@ public class WallpaperUpdater {
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
FileLog.e(e);
|
FileLog.e(e);
|
||||||
}
|
}
|
||||||
|
return Unit.INSTANCE;
|
||||||
});
|
});
|
||||||
builder.show();
|
builder.show();
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,6 @@ import android.graphics.drawable.Drawable;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Vibrator;
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Property;
|
import android.util.Property;
|
||||||
import android.util.SparseArray;
|
import android.util.SparseArray;
|
||||||
|
@ -105,7 +104,6 @@ import org.telegram.ui.ActionBar.ActionBarPopupWindow;
|
||||||
import org.telegram.ui.ActionBar.AlertDialog;
|
import org.telegram.ui.ActionBar.AlertDialog;
|
||||||
import org.telegram.ui.ActionBar.BackDrawable;
|
import org.telegram.ui.ActionBar.BackDrawable;
|
||||||
import org.telegram.ui.ActionBar.BaseFragment;
|
import org.telegram.ui.ActionBar.BaseFragment;
|
||||||
import org.telegram.ui.ActionBar.BottomSheet;
|
|
||||||
import org.telegram.ui.ActionBar.MenuDrawable;
|
import org.telegram.ui.ActionBar.MenuDrawable;
|
||||||
import org.telegram.ui.ActionBar.Theme;
|
import org.telegram.ui.ActionBar.Theme;
|
||||||
import org.telegram.ui.ActionBar.ThemeDescription;
|
import org.telegram.ui.ActionBar.ThemeDescription;
|
||||||
|
@ -166,6 +164,8 @@ import org.telegram.ui.Components.ViewPagerFixed;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import kotlin.Unit;
|
||||||
|
import tw.nekomimi.nekogram.BottomBuilder;
|
||||||
import tw.nekomimi.nekogram.NekoConfig;
|
import tw.nekomimi.nekogram.NekoConfig;
|
||||||
import tw.nekomimi.nekogram.utils.PrivacyUtil;
|
import tw.nekomimi.nekogram.utils.PrivacyUtil;
|
||||||
import tw.nekomimi.nekogram.utils.ProxyUtil;
|
import tw.nekomimi.nekogram.utils.ProxyUtil;
|
||||||
|
@ -2192,22 +2192,23 @@ private int lastMeasuredTopPadding;
|
||||||
|
|
||||||
linearLayout.setMinimumWidth(AndroidUtilities.dp(200));
|
linearLayout.setMinimumWidth(AndroidUtilities.dp(200));
|
||||||
linearLayout.setOrientation(LinearLayout.VERTICAL);
|
linearLayout.setOrientation(LinearLayout.VERTICAL);
|
||||||
scrimPopupWindowItems = new ActionBarMenuSubItem[3];
|
scrimPopupWindowItems = new ActionBarMenuSubItem[4];
|
||||||
for (int a = 0, N = (tabView.getId() == Integer.MAX_VALUE ? 2 : 3); a < N; a++) {
|
for (int a = 0, N = (tabView.getId() == Integer.MAX_VALUE ? 3 : 4); a < 4; a++) {
|
||||||
ActionBarMenuSubItem cell = new ActionBarMenuSubItem(getParentActivity(), a == 0, a == N - 1);
|
ActionBarMenuSubItem cell = new ActionBarMenuSubItem(getParentActivity(), a == 0, a == N - 1);
|
||||||
if (a == 0) {
|
if (a == 0) {
|
||||||
if (getMessagesController().dialogFilters.size() <= 1) {
|
if (getMessagesController().dialogFilters.size() <= 1) continue;
|
||||||
continue;
|
|
||||||
}
|
|
||||||
cell.setTextAndIcon(LocaleController.getString("FilterReorder", R.string.FilterReorder), R.drawable.tabs_reorder);
|
cell.setTextAndIcon(LocaleController.getString("FilterReorder", R.string.FilterReorder), R.drawable.tabs_reorder);
|
||||||
} else if (a == 1) {
|
} else if (a == 1) {
|
||||||
if (N == 2) {
|
if (N == 3) {
|
||||||
cell.setTextAndIcon(LocaleController.getString("FilterEditAll", R.string.FilterEditAll), R.drawable.baseline_edit_24);
|
cell.setTextAndIcon(LocaleController.getString("FilterEditAll", R.string.FilterEditAll), R.drawable.baseline_edit_24);
|
||||||
} else {
|
} else {
|
||||||
cell.setTextAndIcon(LocaleController.getString("FilterEdit", R.string.FilterEdit), R.drawable.baseline_edit_24);
|
cell.setTextAndIcon(LocaleController.getString("FilterEdit", R.string.FilterEdit), R.drawable.baseline_edit_24);
|
||||||
}
|
}
|
||||||
} else {
|
} else if (a == 2) {
|
||||||
|
if (N == 3) continue;
|
||||||
cell.setTextAndIcon(LocaleController.getString("FilterDeleteItem", R.string.FilterDeleteItem), R.drawable.baseline_delete_24);
|
cell.setTextAndIcon(LocaleController.getString("FilterDeleteItem", R.string.FilterDeleteItem), R.drawable.baseline_delete_24);
|
||||||
|
} else {
|
||||||
|
cell.setTextAndIcon(LocaleController.getString("MarkAllAsRead", R.string.MarkAllAsRead), R.drawable.baseline_done_all_24);
|
||||||
}
|
}
|
||||||
scrimPopupWindowItems[a] = cell;
|
scrimPopupWindowItems[a] = cell;
|
||||||
linearLayout.addView(cell);
|
linearLayout.addView(cell);
|
||||||
|
@ -2225,6 +2226,8 @@ private int lastMeasuredTopPadding;
|
||||||
}
|
}
|
||||||
} else if (i == 2) {
|
} else if (i == 2) {
|
||||||
showDeleteAlert(dialogFilter);
|
showDeleteAlert(dialogFilter);
|
||||||
|
} else {
|
||||||
|
getMessagesStorage().readAllDialogs(tabView.getId());
|
||||||
}
|
}
|
||||||
if (scrimPopupWindow != null) {
|
if (scrimPopupWindow != null) {
|
||||||
scrimPopupWindow.dismiss();
|
scrimPopupWindow.dismiss();
|
||||||
|
@ -3378,9 +3381,9 @@ private int lastMeasuredTopPadding;
|
||||||
ActionBarMenuItem otherItem = actionMode.addItemWithWidth(0, R.drawable.ic_ab_other, AndroidUtilities.dp(54), LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions));
|
ActionBarMenuItem otherItem = actionMode.addItemWithWidth(0, R.drawable.ic_ab_other, AndroidUtilities.dp(54), LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions));
|
||||||
archiveItem = otherItem.addSubItem(archive, R.drawable.baseline_archive_24, LocaleController.getString("Archive", R.string.Archive));
|
archiveItem = otherItem.addSubItem(archive, R.drawable.baseline_archive_24, LocaleController.getString("Archive", R.string.Archive));
|
||||||
pin2Item = otherItem.addSubItem(pin2, R.drawable.deproko_baseline_pin_24, LocaleController.getString("DialogPin", R.string.DialogPin));
|
pin2Item = otherItem.addSubItem(pin2, R.drawable.deproko_baseline_pin_24, LocaleController.getString("DialogPin", R.string.DialogPin));
|
||||||
addToFolderItem = otherItem.addSubItem(add_to_folder, R.drawable.msg_addfolder, LocaleController.getString("FilterAddTo", R.string.FilterAddTo));
|
addToFolderItem = otherItem.addSubItem(add_to_folder, R.drawable.baseline_folder_24, LocaleController.getString("FilterAddTo", R.string.FilterAddTo));
|
||||||
removeFromFolderItem = otherItem.addSubItem(remove_from_folder, R.drawable.msg_removefolder, LocaleController.getString("FilterRemoveFrom", R.string.FilterRemoveFrom));
|
removeFromFolderItem = otherItem.addSubItem(remove_from_folder, R.drawable.baseline_folder_open_24, LocaleController.getString("FilterRemoveFrom", R.string.FilterRemoveFrom));
|
||||||
readItem = otherItem.addSubItem(read, R.drawable.deproko_baseline_check_double_24, LocaleController.getString("MarkAsRead", R.string.MarkAsRead));
|
readItem = otherItem.addSubItem(read, R.drawable.baseline_done_all_24, LocaleController.getString("MarkAsRead", R.string.MarkAsRead));
|
||||||
clearItem = otherItem.addSubItem(clear, R.drawable.baseline_delete_sweep_24, LocaleController.getString("ClearHistory", R.string.ClearHistory));
|
clearItem = otherItem.addSubItem(clear, R.drawable.baseline_delete_sweep_24, LocaleController.getString("ClearHistory", R.string.ClearHistory));
|
||||||
blockItem = otherItem.addSubItem(block, R.drawable.baseline_block_24, LocaleController.getString("BlockUser", R.string.BlockUser));
|
blockItem = otherItem.addSubItem(block, R.drawable.baseline_block_24, LocaleController.getString("BlockUser", R.string.BlockUser));
|
||||||
|
|
||||||
|
@ -4618,18 +4621,18 @@ private int lastMeasuredTopPadding;
|
||||||
} else {
|
} else {
|
||||||
if (dialog instanceof TLRPC.TL_dialogFolder) {
|
if (dialog instanceof TLRPC.TL_dialogFolder) {
|
||||||
view.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
|
view.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
|
||||||
BottomSheet.Builder builder = new BottomSheet.Builder(getParentActivity());
|
BottomBuilder builder = new BottomBuilder(getParentActivity());
|
||||||
final boolean hasUnread = getMessagesStorage().getArchiveUnreadCount() != 0;
|
final boolean hasUnread = getMessagesStorage().getArchiveUnreadCount() != 0;
|
||||||
|
|
||||||
int[] icons = new int[]{
|
int[] icons = new int[]{
|
||||||
hasUnread ? R.drawable.deproko_baseline_check_double_24 : 0,
|
hasUnread ? R.drawable.baseline_done_all_24 : 0,
|
||||||
SharedConfig.archiveHidden ? R.drawable.deproko_baseline_pin_24 : R.drawable.deproko_baseline_pin_undo_24,
|
SharedConfig.archiveHidden ? R.drawable.deproko_baseline_pin_24 : R.drawable.deproko_baseline_pin_undo_24,
|
||||||
};
|
};
|
||||||
CharSequence[] items = new CharSequence[]{
|
String[] items = new String[]{
|
||||||
hasUnread ? LocaleController.getString("MarkAllAsRead", R.string.MarkAllAsRead) : null,
|
hasUnread ? LocaleController.getString("MarkAllAsRead", R.string.MarkAllAsRead) : null,
|
||||||
SharedConfig.archiveHidden ? LocaleController.getString("PinInTheList", R.string.PinInTheList) : LocaleController.getString("HideAboveTheList", R.string.HideAboveTheList)
|
SharedConfig.archiveHidden ? LocaleController.getString("PinInTheList", R.string.PinInTheList) : LocaleController.getString("HideAboveTheList", R.string.HideAboveTheList)
|
||||||
};
|
};
|
||||||
builder.setItems(items, icons, (d, which) -> {
|
builder.addItems(items, icons, (which, t, c) -> {
|
||||||
if (which == 0) {
|
if (which == 0) {
|
||||||
getMessagesStorage().readAllDialogs(1);
|
getMessagesStorage().readAllDialogs(1);
|
||||||
} else if (which == 1 && viewPages != null) {
|
} else if (which == 1 && viewPages != null) {
|
||||||
|
@ -4645,6 +4648,7 @@ private int lastMeasuredTopPadding;
|
||||||
viewPages[a].listView.toggleArchiveHidden(true, dialogCell);
|
viewPages[a].listView.toggleArchiveHidden(true, dialogCell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return Unit.INSTANCE;
|
||||||
});
|
});
|
||||||
showDialog(builder.create());
|
showDialog(builder.create());
|
||||||
return false;
|
return false;
|
||||||
|
@ -5438,7 +5442,7 @@ private int lastMeasuredTopPadding;
|
||||||
muteItem.setContentDescription(LocaleController.getString("ChatsMute", R.string.ChatsMute));
|
muteItem.setContentDescription(LocaleController.getString("ChatsMute", R.string.ChatsMute));
|
||||||
}
|
}
|
||||||
if (canReadCount != 0) {
|
if (canReadCount != 0) {
|
||||||
readItem.setTextAndIcon(LocaleController.getString("MarkAsRead", R.string.MarkAsRead), R.drawable.deproko_baseline_check_double_24);
|
readItem.setTextAndIcon(LocaleController.getString("MarkAsRead", R.string.MarkAsRead), R.drawable.baseline_done_all_24);
|
||||||
} else {
|
} else {
|
||||||
readItem.setTextAndIcon(LocaleController.getString("MarkAsUnread", R.string.MarkAsUnread), R.drawable.baseline_unsubscribe_24);
|
readItem.setTextAndIcon(LocaleController.getString("MarkAsUnread", R.string.MarkAsUnread), R.drawable.baseline_unsubscribe_24);
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,7 +45,6 @@ import org.telegram.tgnet.ConnectionsManager;
|
||||||
import org.telegram.tgnet.TLObject;
|
import org.telegram.tgnet.TLObject;
|
||||||
import org.telegram.tgnet.TLRPC;
|
import org.telegram.tgnet.TLRPC;
|
||||||
import org.telegram.ui.ActionBar.BaseFragment;
|
import org.telegram.ui.ActionBar.BaseFragment;
|
||||||
import org.telegram.ui.ActionBar.BottomSheet;
|
|
||||||
import org.telegram.ui.ActionBar.Theme;
|
import org.telegram.ui.ActionBar.Theme;
|
||||||
import org.telegram.ui.ActionBar.ThemeDescription;
|
import org.telegram.ui.ActionBar.ThemeDescription;
|
||||||
import org.telegram.ui.Adapters.FiltersView;
|
import org.telegram.ui.Adapters.FiltersView;
|
||||||
|
@ -1087,7 +1086,7 @@ public class FilteredSearchView extends FrameLayout implements NotificationCente
|
||||||
builder.addTitle(urlFinal);
|
builder.addTitle(urlFinal);
|
||||||
builder.addItems(
|
builder.addItems(
|
||||||
new String[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy), LocaleController.getString("ShareQRCode", R.string.ShareQRCode)},
|
new String[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy), LocaleController.getString("ShareQRCode", R.string.ShareQRCode)},
|
||||||
new Integer[]{R.drawable.baseline_open_in_browser_24, R.drawable.baseline_content_copy_24,R.drawable.wallet_qr }, (which, text, __) -> {
|
new int[]{R.drawable.baseline_open_in_browser_24, R.drawable.baseline_content_copy_24, R.drawable.wallet_qr}, (which, text, __) -> {
|
||||||
if (which == 0 || which == 2) {
|
if (which == 0 || which == 2) {
|
||||||
if (which == 0) {
|
if (which == 0) {
|
||||||
openUrl(urlFinal);
|
openUrl(urlFinal);
|
||||||
|
|
|
@ -26,8 +26,8 @@ import android.graphics.drawable.Drawable;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.provider.Settings;
|
|
||||||
import android.os.Vibrator;
|
import android.os.Vibrator;
|
||||||
|
import android.provider.Settings;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Property;
|
import android.util.Property;
|
||||||
import android.util.TypedValue;
|
import android.util.TypedValue;
|
||||||
|
@ -92,8 +92,8 @@ import org.telegram.ui.Components.CheckBoxSquare;
|
||||||
import org.telegram.ui.Components.CubicBezierInterpolator;
|
import org.telegram.ui.Components.CubicBezierInterpolator;
|
||||||
import org.telegram.ui.Components.EditTextBoldCursor;
|
import org.telegram.ui.Components.EditTextBoldCursor;
|
||||||
import org.telegram.ui.Components.FillLastLinearLayoutManager;
|
import org.telegram.ui.Components.FillLastLinearLayoutManager;
|
||||||
import org.telegram.ui.Components.GroupVoipInviteAlert;
|
|
||||||
import org.telegram.ui.Components.GroupCallPip;
|
import org.telegram.ui.Components.GroupCallPip;
|
||||||
|
import org.telegram.ui.Components.GroupVoipInviteAlert;
|
||||||
import org.telegram.ui.Components.LayoutHelper;
|
import org.telegram.ui.Components.LayoutHelper;
|
||||||
import org.telegram.ui.Components.RLottieDrawable;
|
import org.telegram.ui.Components.RLottieDrawable;
|
||||||
import org.telegram.ui.Components.RLottieImageView;
|
import org.telegram.ui.Components.RLottieImageView;
|
||||||
|
@ -2847,7 +2847,7 @@ public class GroupCallActivity extends BottomSheet implements NotificationCenter
|
||||||
options.add(5);
|
options.add(5);
|
||||||
}
|
}
|
||||||
items.add(LocaleController.getString("VoipGroupOpenProfile", R.string.VoipGroupOpenProfile));
|
items.add(LocaleController.getString("VoipGroupOpenProfile", R.string.VoipGroupOpenProfile));
|
||||||
icons.add(R.drawable.msg_openprofile);
|
icons.add(R.drawable.book_user);
|
||||||
options.add(6);
|
options.add(6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -845,23 +845,23 @@ public class ManageLinksActivity extends BaseFragment implements NotificationCen
|
||||||
|
|
||||||
if (invite.revoked) {
|
if (invite.revoked) {
|
||||||
items.add(LocaleController.getString("Delete", R.string.Delete));
|
items.add(LocaleController.getString("Delete", R.string.Delete));
|
||||||
icons.add(R.drawable.msg_delete);
|
icons.add(R.drawable.baseline_delete_24);
|
||||||
actions.add(4);
|
actions.add(4);
|
||||||
} else {
|
} else {
|
||||||
items.add(LocaleController.getString("Copy", R.string.Copy));
|
items.add(LocaleController.getString("Copy", R.string.Copy));
|
||||||
icons.add(R.drawable.msg_copy);
|
icons.add(R.drawable.baseline_content_copy_24);
|
||||||
actions.add(0);
|
actions.add(0);
|
||||||
|
|
||||||
items.add(LocaleController.getString("Share", R.string.ShareLink));
|
items.add(LocaleController.getString("Share", R.string.ShareLink));
|
||||||
icons.add(R.drawable.msg_share);
|
icons.add(R.drawable.baseline_forward_24);
|
||||||
actions.add(1);
|
actions.add(1);
|
||||||
|
|
||||||
items.add(LocaleController.getString("Edit", R.string.Edit));
|
items.add(LocaleController.getString("Edit", R.string.Edit));
|
||||||
icons.add(R.drawable.msg_edit);
|
icons.add(R.drawable.baseline_edit_24);
|
||||||
actions.add(2);
|
actions.add(2);
|
||||||
|
|
||||||
items.add(LocaleController.getString("RevokeLink", R.string.RevokeLink));
|
items.add(LocaleController.getString("RevokeLink", R.string.RevokeLink));
|
||||||
icons.add(R.drawable.msg_delete);
|
icons.add(R.drawable.baseline_delete_24);
|
||||||
actions.add(3);
|
actions.add(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -68,7 +68,6 @@ import org.telegram.ui.ActionBar.ActionBarMenu;
|
||||||
import org.telegram.ui.ActionBar.ActionBarMenuItem;
|
import org.telegram.ui.ActionBar.ActionBarMenuItem;
|
||||||
import org.telegram.ui.ActionBar.BackDrawable;
|
import org.telegram.ui.ActionBar.BackDrawable;
|
||||||
import org.telegram.ui.ActionBar.BaseFragment;
|
import org.telegram.ui.ActionBar.BaseFragment;
|
||||||
import org.telegram.ui.ActionBar.BottomSheet;
|
|
||||||
import org.telegram.ui.ActionBar.Theme;
|
import org.telegram.ui.ActionBar.Theme;
|
||||||
import org.telegram.ui.ActionBar.ThemeDescription;
|
import org.telegram.ui.ActionBar.ThemeDescription;
|
||||||
import org.telegram.ui.Cells.GraySectionCell;
|
import org.telegram.ui.Cells.GraySectionCell;
|
||||||
|
@ -662,8 +661,8 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No
|
||||||
|
|
||||||
if ((int) dialog_id != 0) {
|
if ((int) dialog_id != 0) {
|
||||||
actionModeViews.add(gotoItem = actionMode.addItemWithWidth(gotochat, R.drawable.msg_message, AndroidUtilities.dp(54), LocaleController.getString("AccDescrGoToMessage", R.string.AccDescrGoToMessage)));
|
actionModeViews.add(gotoItem = actionMode.addItemWithWidth(gotochat, R.drawable.msg_message, AndroidUtilities.dp(54), LocaleController.getString("AccDescrGoToMessage", R.string.AccDescrGoToMessage)));
|
||||||
actionModeViews.add(actionMode.addItemWithWidth(forward_noquote, R.drawable.msg_forward_noquote, AndroidUtilities.dp(54), LocaleController.getString("NoQuoteForward", R.string.NoQuoteForward)));
|
actionModeViews.add(actionMode.addItemWithWidth(forward_noquote, R.drawable.baseline_forward_24, AndroidUtilities.dp(54), LocaleController.getString("NoQuoteForward", R.string.NoQuoteForward)));
|
||||||
actionModeViews.add(actionMode.addItemWithWidth(forward, R.drawable.msg_forward, AndroidUtilities.dp(54), LocaleController.getString("Forward", R.string.Forward)));
|
actionModeViews.add(actionMode.addItemWithWidth(forward, R.drawable.baseline_forward_24, AndroidUtilities.dp(54), LocaleController.getString("Forward", R.string.Forward)));
|
||||||
}
|
}
|
||||||
actionModeViews.add(actionMode.addItemWithWidth(delete, R.drawable.baseline_delete_24, AndroidUtilities.dp(54), LocaleController.getString("Delete", R.string.Delete)));
|
actionModeViews.add(actionMode.addItemWithWidth(delete, R.drawable.baseline_delete_24, AndroidUtilities.dp(54), LocaleController.getString("Delete", R.string.Delete)));
|
||||||
|
|
||||||
|
@ -2083,7 +2082,7 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No
|
||||||
builder.addTitle(urlFinal);
|
builder.addTitle(urlFinal);
|
||||||
builder.addItems(
|
builder.addItems(
|
||||||
new String[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy), LocaleController.getString("ShareQRCode", R.string.ShareQRCode)},
|
new String[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy), LocaleController.getString("ShareQRCode", R.string.ShareQRCode)},
|
||||||
new Integer[]{R.drawable.baseline_open_in_browser_24, R.drawable.baseline_content_copy_24,R.drawable.wallet_qr }, (which, text, __) -> {
|
new int[]{R.drawable.baseline_open_in_browser_24, R.drawable.baseline_content_copy_24, R.drawable.wallet_qr}, (which, text, __) -> {
|
||||||
if (which == 0 || which == 2) {
|
if (which == 0 || which == 2) {
|
||||||
if (which == 0) {
|
if (which == 0) {
|
||||||
openUrl(urlFinal);
|
openUrl(urlFinal);
|
||||||
|
|
|
@ -48,25 +48,6 @@ import android.os.Bundle;
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.os.Vibrator;
|
import android.os.Vibrator;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
|
||||||
import androidx.annotation.Keep;
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.collection.ArrayMap;
|
|
||||||
import androidx.core.content.ContextCompat;
|
|
||||||
import androidx.core.content.FileProvider;
|
|
||||||
import androidx.core.graphics.ColorUtils;
|
|
||||||
import androidx.core.view.ViewCompat;
|
|
||||||
import androidx.core.widget.NestedScrollView;
|
|
||||||
import androidx.dynamicanimation.animation.DynamicAnimation;
|
|
||||||
import androidx.dynamicanimation.animation.SpringAnimation;
|
|
||||||
import androidx.dynamicanimation.animation.SpringForce;
|
|
||||||
import androidx.exifinterface.media.ExifInterface;
|
|
||||||
import androidx.recyclerview.widget.DefaultItemAnimator;
|
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
||||||
import androidx.recyclerview.widget.LinearSmoothScrollerEnd;
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
|
||||||
|
|
||||||
import android.text.Layout;
|
import android.text.Layout;
|
||||||
import android.text.Selection;
|
import android.text.Selection;
|
||||||
import android.text.Spannable;
|
import android.text.Spannable;
|
||||||
|
@ -128,11 +109,13 @@ import androidx.annotation.Nullable;
|
||||||
import androidx.collection.ArrayMap;
|
import androidx.collection.ArrayMap;
|
||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.core.content.FileProvider;
|
import androidx.core.content.FileProvider;
|
||||||
|
import androidx.core.graphics.ColorUtils;
|
||||||
import androidx.core.view.ViewCompat;
|
import androidx.core.view.ViewCompat;
|
||||||
import androidx.core.widget.NestedScrollView;
|
import androidx.core.widget.NestedScrollView;
|
||||||
import androidx.dynamicanimation.animation.DynamicAnimation;
|
import androidx.dynamicanimation.animation.DynamicAnimation;
|
||||||
import androidx.dynamicanimation.animation.SpringAnimation;
|
import androidx.dynamicanimation.animation.SpringAnimation;
|
||||||
import androidx.dynamicanimation.animation.SpringForce;
|
import androidx.dynamicanimation.animation.SpringForce;
|
||||||
|
import androidx.exifinterface.media.ExifInterface;
|
||||||
import androidx.recyclerview.widget.DefaultItemAnimator;
|
import androidx.recyclerview.widget.DefaultItemAnimator;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.LinearSmoothScrollerEnd;
|
import androidx.recyclerview.widget.LinearSmoothScrollerEnd;
|
||||||
|
@ -255,6 +238,7 @@ import java.util.Map;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
import kotlin.Unit;
|
import kotlin.Unit;
|
||||||
|
import tw.nekomimi.nekogram.MessageHelper;
|
||||||
import tw.nekomimi.nekogram.NekoConfig;
|
import tw.nekomimi.nekogram.NekoConfig;
|
||||||
import tw.nekomimi.nekogram.NekoXConfig;
|
import tw.nekomimi.nekogram.NekoXConfig;
|
||||||
import tw.nekomimi.nekogram.transtale.TranslateDb;
|
import tw.nekomimi.nekogram.transtale.TranslateDb;
|
||||||
|
@ -263,8 +247,6 @@ import tw.nekomimi.nekogram.transtale.TranslatorKt;
|
||||||
import tw.nekomimi.nekogram.utils.AlertUtil;
|
import tw.nekomimi.nekogram.utils.AlertUtil;
|
||||||
import tw.nekomimi.nekogram.utils.ProxyUtil;
|
import tw.nekomimi.nekogram.utils.ProxyUtil;
|
||||||
|
|
||||||
import tw.nekomimi.nekogram.MessageHelper;
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public class PhotoViewer implements NotificationCenter.NotificationCenterDelegate, GestureDetector2.OnGestureListener, GestureDetector2.OnDoubleTapListener {
|
public class PhotoViewer implements NotificationCenter.NotificationCenterDelegate, GestureDetector2.OnGestureListener, GestureDetector2.OnDoubleTapListener {
|
||||||
|
|
||||||
|
@ -4123,9 +4105,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
||||||
masksItem.setContentDescription(LocaleController.getString("Masks", R.string.Masks));
|
masksItem.setContentDescription(LocaleController.getString("Masks", R.string.Masks));
|
||||||
pipItem = menu.addItem(gallery_menu_pip, R.drawable.ic_goinline);
|
pipItem = menu.addItem(gallery_menu_pip, R.drawable.ic_goinline);
|
||||||
pipItem.setContentDescription(LocaleController.getString("AccDescrPipMode", R.string.AccDescrPipMode));
|
pipItem.setContentDescription(LocaleController.getString("AccDescrPipMode", R.string.AccDescrPipMode));
|
||||||
sendNoQuoteItem = menu.addItem(gallery_menu_send_noquote, R.drawable.msg_forward_noquote);
|
sendNoQuoteItem = menu.addItem(gallery_menu_send_noquote, R.drawable.baseline_forward_24);
|
||||||
sendNoQuoteItem.setContentDescription(LocaleController.getString("NoQuoteForward", R.string.Forward));
|
sendNoQuoteItem.setContentDescription(LocaleController.getString("NoQuoteForward", R.string.Forward));
|
||||||
sendItem = menu.addItem(gallery_menu_send, R.drawable.msg_forward);
|
sendItem = menu.addItem(gallery_menu_send, R.drawable.baseline_forward_24);
|
||||||
sendItem.setContentDescription(LocaleController.getString("Forward", R.string.Forward));
|
sendItem.setContentDescription(LocaleController.getString("Forward", R.string.Forward));
|
||||||
shareItem = menu.addItem(gallery_menu_share2, R.drawable.share);
|
shareItem = menu.addItem(gallery_menu_share2, R.drawable.share);
|
||||||
shareItem.setContentDescription(LocaleController.getString("ShareFile", R.string.ShareFile));
|
shareItem.setContentDescription(LocaleController.getString("ShareFile", R.string.ShareFile));
|
||||||
|
|
|
@ -77,7 +77,6 @@ import androidx.core.view.ViewCompat;
|
||||||
import androidx.recyclerview.widget.DefaultItemAnimator;
|
import androidx.recyclerview.widget.DefaultItemAnimator;
|
||||||
import androidx.recyclerview.widget.DiffUtil;
|
import androidx.recyclerview.widget.DiffUtil;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.ListAdapter;
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
import androidx.viewpager.widget.PagerAdapter;
|
import androidx.viewpager.widget.PagerAdapter;
|
||||||
import androidx.viewpager.widget.ViewPager;
|
import androidx.viewpager.widget.ViewPager;
|
||||||
|
@ -121,7 +120,6 @@ import org.telegram.ui.ActionBar.BaseFragment;
|
||||||
import org.telegram.ui.ActionBar.SimpleTextView;
|
import org.telegram.ui.ActionBar.SimpleTextView;
|
||||||
import org.telegram.ui.ActionBar.Theme;
|
import org.telegram.ui.ActionBar.Theme;
|
||||||
import org.telegram.ui.ActionBar.ThemeDescription;
|
import org.telegram.ui.ActionBar.ThemeDescription;
|
||||||
import org.telegram.ui.Adapters.SearchAdapter;
|
|
||||||
import org.telegram.ui.Cells.AboutLinkCell;
|
import org.telegram.ui.Cells.AboutLinkCell;
|
||||||
import org.telegram.ui.Cells.DividerCell;
|
import org.telegram.ui.Cells.DividerCell;
|
||||||
import org.telegram.ui.Cells.GraySectionCell;
|
import org.telegram.ui.Cells.GraySectionCell;
|
||||||
|
@ -174,7 +172,6 @@ import cn.hutool.core.thread.ThreadUtil;
|
||||||
import cn.hutool.core.util.RuntimeUtil;
|
import cn.hutool.core.util.RuntimeUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import kotlin.Unit;
|
import kotlin.Unit;
|
||||||
import kotlin.text.StringsKt;
|
|
||||||
import libv2ray.Libv2ray;
|
import libv2ray.Libv2ray;
|
||||||
import tw.nekomimi.nekogram.BottomBuilder;
|
import tw.nekomimi.nekogram.BottomBuilder;
|
||||||
import tw.nekomimi.nekogram.ExternalGcm;
|
import tw.nekomimi.nekogram.ExternalGcm;
|
||||||
|
@ -5924,12 +5921,12 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
|
||||||
otherItem.addSubItem(delete_contact, R.drawable.baseline_delete_24, LocaleController.getString("DeleteContact", R.string.DeleteContact));
|
otherItem.addSubItem(delete_contact, R.drawable.baseline_delete_24, LocaleController.getString("DeleteContact", R.string.DeleteContact));
|
||||||
}
|
}
|
||||||
if (!UserObject.isDeleted(user) && !isBot && currentEncryptedChat == null && !userBlocked && user_id != 333000 && user_id != 777000 && user_id != 42777) {
|
if (!UserObject.isDeleted(user) && !isBot && currentEncryptedChat == null && !userBlocked && user_id != 333000 && user_id != 777000 && user_id != 42777) {
|
||||||
otherItem.addSubItem(start_secret_chat, R.drawable.msg_start_secret, LocaleController.getString("StartEncryptedChat", R.string.StartEncryptedChat));
|
otherItem.addSubItem(start_secret_chat, R.drawable.baseline_lock_24, LocaleController.getString("StartEncryptedChat", R.string.StartEncryptedChat));
|
||||||
}
|
}
|
||||||
if (StrUtil.isNotBlank(user.username)) {
|
if (StrUtil.isNotBlank(user.username)) {
|
||||||
otherItem.addSubItem(qr_code, R.drawable.wallet_qr, LocaleController.getString("ShareQRCode", R.string.ShareQRCode));
|
otherItem.addSubItem(qr_code, R.drawable.wallet_qr, LocaleController.getString("ShareQRCode", R.string.ShareQRCode));
|
||||||
}
|
}
|
||||||
otherItem.addSubItem(add_shortcut, R.drawable.msg_home, LocaleController.getString("AddShortcut", R.string.AddShortcut));
|
otherItem.addSubItem(add_shortcut, R.drawable.baseline_home_24, LocaleController.getString("AddShortcut", R.string.AddShortcut));
|
||||||
}
|
}
|
||||||
} else if (chat_id != 0) {
|
} else if (chat_id != 0) {
|
||||||
TLRPC.Chat chat = getMessagesController().getChat(chat_id);
|
TLRPC.Chat chat = getMessagesController().getChat(chat_id);
|
||||||
|
@ -5966,7 +5963,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!TextUtils.isEmpty(chat.username)) {
|
if (!TextUtils.isEmpty(chat.username)) {
|
||||||
otherItem.addSubItem(share, R.drawable.msg_share, LocaleController.getString("BotShare", R.string.BotShare));
|
otherItem.addSubItem(share, R.drawable.baseline_forward_24, LocaleController.getString("BotShare", R.string.BotShare));
|
||||||
}
|
}
|
||||||
if (!currentChat.creator && !currentChat.left && !currentChat.kicked) {
|
if (!currentChat.creator && !currentChat.left && !currentChat.kicked) {
|
||||||
otherItem.addSubItem(leave_group, R.drawable.baseline_exit_to_app_24, LocaleController.getString("LeaveChannelMenu", R.string.LeaveChannelMenu));
|
otherItem.addSubItem(leave_group, R.drawable.baseline_exit_to_app_24, LocaleController.getString("LeaveChannelMenu", R.string.LeaveChannelMenu));
|
||||||
|
@ -6004,7 +6001,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
|
||||||
otherItem.addSubItem(set_as_main, R.drawable.menu_private, LocaleController.getString("SetAsMain", R.string.SetAsMain));
|
otherItem.addSubItem(set_as_main, R.drawable.menu_private, LocaleController.getString("SetAsMain", R.string.SetAsMain));
|
||||||
otherItem.addSubItem(gallery_menu_save, R.drawable.baseline_image_24, LocaleController.getString("SaveToGallery", R.string.SaveToGallery));
|
otherItem.addSubItem(gallery_menu_save, R.drawable.baseline_image_24, LocaleController.getString("SaveToGallery", R.string.SaveToGallery));
|
||||||
//otherItem.addSubItem(edit_avatar, R.drawable.photo_paint, LocaleController.getString("EditPhoto", R.string.EditPhoto));
|
//otherItem.addSubItem(edit_avatar, R.drawable.photo_paint, LocaleController.getString("EditPhoto", R.string.EditPhoto));
|
||||||
otherItem.addSubItem(delete_avatar, R.drawable.msg_delete, LocaleController.getString("Delete", R.string.Delete));
|
otherItem.addSubItem(delete_avatar, R.drawable.baseline_delete_24, LocaleController.getString("Delete", R.string.Delete));
|
||||||
}
|
}
|
||||||
if (!isPulledDown) {
|
if (!isPulledDown) {
|
||||||
otherItem.hideSubItem(gallery_menu_save);
|
otherItem.hideSubItem(gallery_menu_save);
|
||||||
|
|
|
@ -60,7 +60,6 @@ import org.telegram.ui.ActionBar.ActionBarMenu;
|
||||||
import org.telegram.ui.ActionBar.ActionBarMenuItem;
|
import org.telegram.ui.ActionBar.ActionBarMenuItem;
|
||||||
import org.telegram.ui.ActionBar.AlertDialog;
|
import org.telegram.ui.ActionBar.AlertDialog;
|
||||||
import org.telegram.ui.ActionBar.BaseFragment;
|
import org.telegram.ui.ActionBar.BaseFragment;
|
||||||
import org.telegram.ui.ActionBar.BottomSheet;
|
|
||||||
import org.telegram.ui.ActionBar.Theme;
|
import org.telegram.ui.ActionBar.Theme;
|
||||||
import org.telegram.ui.ActionBar.ThemeDescription;
|
import org.telegram.ui.ActionBar.ThemeDescription;
|
||||||
import org.telegram.ui.Cells.HeaderCell;
|
import org.telegram.ui.Cells.HeaderCell;
|
||||||
|
@ -605,56 +604,14 @@ public class ProxyListActivity extends BaseFragment implements NotificationCente
|
||||||
@Override
|
@Override
|
||||||
public void didFindQr(String text) {
|
public void didFindQr(String text) {
|
||||||
|
|
||||||
BottomSheet.Builder builder = new BottomSheet.Builder(getParentActivity());
|
|
||||||
|
|
||||||
boolean isUrl = false;
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
HttpUrl.parse(text);
|
HttpUrl.parse(text);
|
||||||
|
|
||||||
isUrl = true;
|
|
||||||
|
|
||||||
Browser.openUrl(getParentActivity(), text);
|
Browser.openUrl(getParentActivity(), text);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.setTitle(text);
|
AlertUtil.showCopyAlert(getParentActivity(), text);
|
||||||
|
|
||||||
builder.setItems(new String[]{
|
|
||||||
|
|
||||||
LocaleController.getString("Copy", R.string.Copy),
|
|
||||||
LocaleController.getString("Cancel", R.string.Cancel)
|
|
||||||
|
|
||||||
}, (v, i) -> {
|
|
||||||
|
|
||||||
if (i == 0) {
|
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= 23) {
|
|
||||||
if (getParentActivity().checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
|
|
||||||
getParentActivity().requestPermissions(new String[]{Manifest.permission.CAMERA}, 22);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CameraScanActivity.showAsSheet(ProxyListActivity.this, new CameraScanActivity.CameraScanActivityDelegate() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void didFindQr(String text) {
|
|
||||||
|
|
||||||
ProxyUtil.showLinkAlert(getParentActivity(), text);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
showDialog(builder.create());
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -743,9 +700,9 @@ public class ProxyListActivity extends BaseFragment implements NotificationCente
|
||||||
if (position >= proxyStartRow && position < proxyEndRow) {
|
if (position >= proxyStartRow && position < proxyEndRow) {
|
||||||
final SharedConfig.ProxyInfo info = SharedConfig.proxyList.get(position - proxyStartRow);
|
final SharedConfig.ProxyInfo info = SharedConfig.proxyList.get(position - proxyStartRow);
|
||||||
|
|
||||||
BottomSheet.Builder builder = new BottomSheet.Builder(context);
|
BottomBuilder builder = new BottomBuilder(context);
|
||||||
|
|
||||||
builder.setItems(new String[]{
|
builder.addItems(new String[]{
|
||||||
|
|
||||||
info.subId == 1 ? null : LocaleController.getString("EditProxy", R.string.EditProxy),
|
info.subId == 1 ? null : LocaleController.getString("EditProxy", R.string.EditProxy),
|
||||||
info.subId == 1 ? null : LocaleController.getString("ShareProxy", R.string.ShareProxy),
|
info.subId == 1 ? null : LocaleController.getString("ShareProxy", R.string.ShareProxy),
|
||||||
|
@ -763,7 +720,7 @@ public class ProxyListActivity extends BaseFragment implements NotificationCente
|
||||||
R.drawable.baseline_delete_24,
|
R.drawable.baseline_delete_24,
|
||||||
R.drawable.baseline_cancel_24
|
R.drawable.baseline_cancel_24
|
||||||
|
|
||||||
}, (v, i) -> {
|
}, (i, text, cell) -> {
|
||||||
|
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
|
|
||||||
|
@ -814,6 +771,8 @@ public class ProxyListActivity extends BaseFragment implements NotificationCente
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return Unit.INSTANCE;
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
showDialog(builder.create());
|
showDialog(builder.create());
|
||||||
|
@ -882,62 +841,26 @@ public class ProxyListActivity extends BaseFragment implements NotificationCente
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= 23) {
|
||||||
|
if (getParentActivity().checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
|
||||||
|
getParentActivity().requestPermissions(new String[]{Manifest.permission.CAMERA}, 22);
|
||||||
|
return Unit.INSTANCE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
CameraScanActivity.showAsSheet(this, new CameraScanActivity.CameraScanActivityDelegate() {
|
CameraScanActivity.showAsSheet(this, new CameraScanActivity.CameraScanActivityDelegate() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void didFindQr(String text) {
|
public void didFindQr(String text) {
|
||||||
|
|
||||||
BottomSheet.Builder builder = new BottomSheet.Builder(getParentActivity());
|
|
||||||
|
|
||||||
boolean isUrl = false;
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
HttpUrl.parse(text);
|
HttpUrl.parse(text);
|
||||||
|
|
||||||
isUrl = true;
|
|
||||||
|
|
||||||
Browser.openUrl(getParentActivity(), text);
|
Browser.openUrl(getParentActivity(), text);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.setTitle(text);
|
AlertUtil.showCopyAlert(getParentActivity(), text);
|
||||||
|
|
||||||
builder.setItems(new String[]{
|
|
||||||
|
|
||||||
LocaleController.getString("Copy", R.string.Copy),
|
|
||||||
LocaleController.getString("Cancel", R.string.Cancel)
|
|
||||||
|
|
||||||
}, (v, i) -> {
|
|
||||||
|
|
||||||
if (i == 0) {
|
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= 23) {
|
|
||||||
if (getParentActivity().checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
|
|
||||||
getParentActivity().requestPermissions(new String[]{Manifest.permission.CAMERA}, 22);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CameraScanActivity.showAsSheet(ProxyListActivity.this, new CameraScanActivity.CameraScanActivityDelegate() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void didFindQr(String text) {
|
|
||||||
|
|
||||||
ProxyUtil.showLinkAlert(getParentActivity(), text);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
showDialog(builder.create());
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,9 @@ import android.widget.EditText;
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import org.telegram.messenger.AndroidUtilities;
|
import org.telegram.messenger.AndroidUtilities;
|
||||||
import org.telegram.messenger.ApplicationLoader;
|
import org.telegram.messenger.ApplicationLoader;
|
||||||
import org.telegram.messenger.FileLoader;
|
import org.telegram.messenger.FileLoader;
|
||||||
|
@ -77,9 +80,6 @@ import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
|
||||||
|
|
||||||
public class WallpapersListActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate {
|
public class WallpapersListActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate {
|
||||||
|
|
||||||
private int rowCount;
|
private int rowCount;
|
||||||
|
@ -532,7 +532,7 @@ public class WallpapersListActivity extends BaseFragment implements Notification
|
||||||
selectedMessagesCountTextView.setOnTouchListener((v, event) -> true);
|
selectedMessagesCountTextView.setOnTouchListener((v, event) -> true);
|
||||||
actionMode.addView(selectedMessagesCountTextView, LayoutHelper.createLinear(0, LayoutHelper.MATCH_PARENT, 1.0f, 65, 0, 0, 0));
|
actionMode.addView(selectedMessagesCountTextView, LayoutHelper.createLinear(0, LayoutHelper.MATCH_PARENT, 1.0f, 65, 0, 0, 0));
|
||||||
|
|
||||||
actionModeViews.add(actionMode.addItemWithWidth(forward, R.drawable.msg_forward, AndroidUtilities.dp(54), LocaleController.getString("Forward", R.string.Forward)));
|
actionModeViews.add(actionMode.addItemWithWidth(forward, R.drawable.baseline_forward_24, AndroidUtilities.dp(54), LocaleController.getString("Forward", R.string.Forward)));
|
||||||
actionModeViews.add(actionMode.addItemWithWidth(delete, R.drawable.baseline_delete_24, AndroidUtilities.dp(54), LocaleController.getString("Delete", R.string.Delete)));
|
actionModeViews.add(actionMode.addItemWithWidth(delete, R.drawable.baseline_delete_24, AndroidUtilities.dp(54), LocaleController.getString("Delete", R.string.Delete)));
|
||||||
|
|
||||||
selectedWallPapers.clear();
|
selectedWallPapers.clear();
|
||||||
|
|
|
@ -14,7 +14,6 @@ import org.telegram.ui.Cells.HeaderCell
|
||||||
import org.telegram.ui.Cells.RadioButtonCell
|
import org.telegram.ui.Cells.RadioButtonCell
|
||||||
import org.telegram.ui.Cells.TextCell
|
import org.telegram.ui.Cells.TextCell
|
||||||
import org.telegram.ui.Cells.TextCheckCell
|
import org.telegram.ui.Cells.TextCheckCell
|
||||||
import org.telegram.ui.Components.CheckBoxSquare
|
|
||||||
import org.telegram.ui.Components.LayoutHelper
|
import org.telegram.ui.Components.LayoutHelper
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
|
@ -23,10 +22,9 @@ class BottomBuilder(val ctx: Context) {
|
||||||
val builder = BottomSheet.Builder(ctx, true)
|
val builder = BottomSheet.Builder(ctx, true)
|
||||||
|
|
||||||
private val rootView = LinearLayout(ctx).apply {
|
private val rootView = LinearLayout(ctx).apply {
|
||||||
|
|
||||||
orientation = LinearLayout.VERTICAL
|
orientation = LinearLayout.VERTICAL
|
||||||
|
|
||||||
}
|
}
|
||||||
|
private val rtl = (if (LocaleController.isRTL) Gravity.RIGHT else Gravity.LEFT)
|
||||||
|
|
||||||
private val _root = LinearLayout(ctx).apply {
|
private val _root = LinearLayout(ctx).apply {
|
||||||
|
|
||||||
|
@ -51,7 +49,7 @@ class BottomBuilder(val ctx: Context) {
|
||||||
|
|
||||||
this@BottomBuilder.rootView.addView(this, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 50, Gravity.LEFT or Gravity.BOTTOM))
|
this@BottomBuilder.rootView.addView(this, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 50, Gravity.LEFT or Gravity.BOTTOM))
|
||||||
|
|
||||||
addView(rightButtonsView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP or Gravity.RIGHT));
|
addView(rightButtonsView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP or Gravity.RIGHT))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +60,6 @@ class BottomBuilder(val ctx: Context) {
|
||||||
LinearLayout(ctx).apply {
|
LinearLayout(ctx).apply {
|
||||||
|
|
||||||
orientation = LinearLayout.HORIZONTAL
|
orientation = LinearLayout.HORIZONTAL
|
||||||
|
|
||||||
weightSum = 1F
|
weightSum = 1F
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -224,7 +221,6 @@ class BottomBuilder(val ctx: Context) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@JvmOverloads
|
|
||||||
fun addCancelItem() {
|
fun addCancelItem() {
|
||||||
|
|
||||||
addItem(LocaleController.getString("Cancel", R.string.Cancel), R.drawable.baseline_cancel_24) {}
|
addItem(LocaleController.getString("Cancel", R.string.Cancel), R.drawable.baseline_cancel_24) {}
|
||||||
|
@ -260,55 +256,37 @@ class BottomBuilder(val ctx: Context) {
|
||||||
setPadding(AndroidUtilities.dp(18f), 0, AndroidUtilities.dp(18f), 0)
|
setPadding(AndroidUtilities.dp(18f), 0, AndroidUtilities.dp(18f), 0)
|
||||||
setText(text)
|
setText(text)
|
||||||
typeface = AndroidUtilities.getTypeface("fonts/rmedium.ttf")
|
typeface = AndroidUtilities.getTypeface("fonts/rmedium.ttf")
|
||||||
(if (left) buttonsView else rightButtonsView).addView(this, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP or Gravity.LEFT))
|
(if (left) buttonsView else rightButtonsView).addView(this, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, rtl))
|
||||||
setOnClickListener { if (!noAutoDismiss) dismiss();listener(this) }
|
setOnClickListener { if (!noAutoDismiss) dismiss();listener(this) }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun addItem(): TextCell {
|
|
||||||
|
|
||||||
return TextCell(ctx).apply {
|
|
||||||
|
|
||||||
this@BottomBuilder.rootView.addView(this, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT or Gravity.TOP))
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@JvmOverloads
|
@JvmOverloads
|
||||||
fun addItem(text: String, icon: Int = 0, red: Boolean = false, listener: ((cell: TextCell) -> Unit)?): TextCell {
|
fun addItem(text: String, icon: Int = 0, red: Boolean = false, listener: ((cell: TextCell) -> Unit)?): TextCell {
|
||||||
|
|
||||||
return TextCell(ctx).apply {
|
return TextCell(ctx).apply {
|
||||||
|
|
||||||
textView.setGravity(Gravity.LEFT)
|
|
||||||
|
|
||||||
background = Theme.getSelectorDrawable(false)
|
background = Theme.getSelectorDrawable(false)
|
||||||
|
|
||||||
setTextAndIcon(text, icon, false)
|
setTextAndIcon(text, icon, false)
|
||||||
|
|
||||||
setOnClickListener {
|
setOnClickListener {
|
||||||
|
|
||||||
dismiss()
|
dismiss()
|
||||||
|
|
||||||
listener?.invoke(this)
|
listener?.invoke(this)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (red) {
|
if (red) {
|
||||||
|
|
||||||
setColors("key_dialogTextRed2", "key_dialogTextRed2")
|
setColors("key_dialogTextRed2", "key_dialogTextRed2")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this@BottomBuilder.rootView.addView(this, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT or Gravity.TOP))
|
this@BottomBuilder.rootView.addView(this, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, rtl))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun addItems(text: Array<String?>, icon: Array<Int>?, listener: (index: Int, text: String, cell: TextCell) -> Unit): List<TextCell> {
|
fun addItems(text: Array<String?>, icon: IntArray?, listener: (index: Int, text: String, cell: TextCell) -> Unit): List<TextCell> {
|
||||||
|
|
||||||
val list = mutableListOf<TextCell>()
|
val list = mutableListOf<TextCell>()
|
||||||
|
|
||||||
|
@ -339,7 +317,7 @@ class BottomBuilder(val ctx: Context) {
|
||||||
isFocusable = true
|
isFocusable = true
|
||||||
setBackgroundDrawable(null)
|
setBackgroundDrawable(null)
|
||||||
|
|
||||||
this@BottomBuilder.rootView.addView(this, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, -2, if (LocaleController.isRTL) Gravity.RIGHT else Gravity.LEFT, AndroidUtilities.dp(6F), 0, 0, 0))
|
this@BottomBuilder.rootView.addView(this, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, -2, rtl, AndroidUtilities.dp(6F), 0, 0, 0))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -135,6 +135,7 @@ public class NekoConfig {
|
||||||
|
|
||||||
public static boolean avatarBackgroundBlur;
|
public static boolean avatarBackgroundBlur;
|
||||||
public static boolean avatarBackgroundDarken;
|
public static boolean avatarBackgroundDarken;
|
||||||
|
public static boolean disableTrending;
|
||||||
|
|
||||||
public static String getOpenPGPAppName() {
|
public static String getOpenPGPAppName() {
|
||||||
|
|
||||||
|
@ -288,6 +289,7 @@ public class NekoConfig {
|
||||||
sendCommentAfterForward = preferences.getBoolean("sendCommentAfterForward", true);
|
sendCommentAfterForward = preferences.getBoolean("sendCommentAfterForward", true);
|
||||||
increaseVoiceMessageQuality = preferences.getBoolean("increaseVoiceMessageQuality", true);
|
increaseVoiceMessageQuality = preferences.getBoolean("increaseVoiceMessageQuality", true);
|
||||||
acceptSecretChat = preferences.getBoolean("acceptSecretChat", true);
|
acceptSecretChat = preferences.getBoolean("acceptSecretChat", true);
|
||||||
|
disableTrending = preferences.getBoolean("disableTrending", true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -731,13 +733,16 @@ public class NekoConfig {
|
||||||
|
|
||||||
public static void toggleAcceptSecretChat() {
|
public static void toggleAcceptSecretChat() {
|
||||||
preferences.edit().putBoolean("acceptSecretChat", acceptSecretChat = !acceptSecretChat).apply();
|
preferences.edit().putBoolean("acceptSecretChat", acceptSecretChat = !acceptSecretChat).apply();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setTabletMode(int mode) {
|
public static void setTabletMode(int mode) {
|
||||||
preferences.edit().putInt("tabletMode", tabletMode = mode).apply();
|
preferences.edit().putInt("tabletMode", tabletMode = mode).apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void toggleDisableTrending() {
|
||||||
|
preferences.edit().putBoolean("disableTrending", disableTrending = !disableTrending).apply();
|
||||||
|
}
|
||||||
|
|
||||||
private static final String EMOJI_FONT_AOSP = "NotoColorEmoji.ttf";
|
private static final String EMOJI_FONT_AOSP = "NotoColorEmoji.ttf";
|
||||||
|
|
||||||
public static Typeface getSystemEmojiTypeface() {
|
public static Typeface getSystemEmojiTypeface() {
|
||||||
|
|
|
@ -72,8 +72,9 @@ public class NekoChatSettingsActivity extends BaseFragment implements Notificati
|
||||||
private int useChatAttachMediaMenuRow;
|
private int useChatAttachMediaMenuRow;
|
||||||
private int disableLinkPreviewByDefaultRow;
|
private int disableLinkPreviewByDefaultRow;
|
||||||
private int sendCommentAfterForwardRow;
|
private int sendCommentAfterForwardRow;
|
||||||
|
|
||||||
private int disableProximityEventsRow;
|
private int disableProximityEventsRow;
|
||||||
|
private int disableTrendingRow;
|
||||||
|
|
||||||
private int mapPreviewRow;
|
private int mapPreviewRow;
|
||||||
private int messageMenuRow;
|
private int messageMenuRow;
|
||||||
private int chat2Row;
|
private int chat2Row;
|
||||||
|
@ -251,6 +252,11 @@ public class NekoChatSettingsActivity extends BaseFragment implements Notificati
|
||||||
if (view instanceof TextCheckCell) {
|
if (view instanceof TextCheckCell) {
|
||||||
((TextCheckCell) view).setChecked(NekoConfig.disableProximityEvents);
|
((TextCheckCell) view).setChecked(NekoConfig.disableProximityEvents);
|
||||||
}
|
}
|
||||||
|
} else if (position == disableTrendingRow) {
|
||||||
|
NekoConfig.toggleDisableTrending();
|
||||||
|
if (view instanceof TextCheckCell) {
|
||||||
|
((TextCheckCell) view).setChecked(NekoConfig.disableTrending);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -279,14 +285,16 @@ public class NekoChatSettingsActivity extends BaseFragment implements Notificati
|
||||||
|
|
||||||
disablePhotoSideActionRow = rowCount++;
|
disablePhotoSideActionRow = rowCount++;
|
||||||
hideKeyboardOnChatScrollRow = rowCount++;
|
hideKeyboardOnChatScrollRow = rowCount++;
|
||||||
disableVibrationRow = rowCount ++;
|
disableVibrationRow = rowCount++;
|
||||||
skipOpenLinkConfirmRow = rowCount ++;
|
skipOpenLinkConfirmRow = rowCount++;
|
||||||
rearVideoMessagesRow = rowCount++;
|
rearVideoMessagesRow = rowCount++;
|
||||||
confirmAVRow = rowCount++;
|
confirmAVRow = rowCount++;
|
||||||
useChatAttachMediaMenuRow = rowCount ++;
|
useChatAttachMediaMenuRow = rowCount++;
|
||||||
disableLinkPreviewByDefaultRow = rowCount ++;
|
disableLinkPreviewByDefaultRow = rowCount++;
|
||||||
sendCommentAfterForwardRow = rowCount ++;
|
sendCommentAfterForwardRow = rowCount++;
|
||||||
disableProximityEventsRow = rowCount ++;
|
disableProximityEventsRow = rowCount++;
|
||||||
|
disableTrendingRow = rowCount++;
|
||||||
|
|
||||||
mapPreviewRow = rowCount++;
|
mapPreviewRow = rowCount++;
|
||||||
messageMenuRow = rowCount++;
|
messageMenuRow = rowCount++;
|
||||||
chat2Row = rowCount++;
|
chat2Row = rowCount++;
|
||||||
|
@ -626,6 +634,8 @@ public class NekoChatSettingsActivity extends BaseFragment implements Notificati
|
||||||
textCell.setTextAndCheck(LocaleController.getString("DisableVibration", R.string.DisableVibration), NekoConfig.disableVibration, true);
|
textCell.setTextAndCheck(LocaleController.getString("DisableVibration", R.string.DisableVibration), NekoConfig.disableVibration, true);
|
||||||
} else if (position == disableProximityEventsRow) {
|
} else if (position == disableProximityEventsRow) {
|
||||||
textCell.setTextAndCheck(LocaleController.getString("DisableProximityEvents", R.string.DisableProximityEvents), NekoConfig.disableProximityEvents, true);
|
textCell.setTextAndCheck(LocaleController.getString("DisableProximityEvents", R.string.DisableProximityEvents), NekoConfig.disableProximityEvents, true);
|
||||||
|
} else if (position == disableTrendingRow) {
|
||||||
|
textCell.setTextAndCheck(LocaleController.getString("DisableTrending", R.string.DisableTrending), NekoConfig.disableTrending, true);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,7 +60,10 @@ object AlertUtil {
|
||||||
fun showToast(e: Throwable) = showToast(e.message ?: e.javaClass.simpleName)
|
fun showToast(e: Throwable) = showToast(e.message ?: e.javaClass.simpleName)
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun showToast(e: TLRPC.TL_error) = showToast("${e.code}: ${e.text}")
|
fun showToast(e: TLRPC.TL_error?) {
|
||||||
|
if (e == null) return
|
||||||
|
showToast("${e.code}: ${e.text}")
|
||||||
|
}
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun showToast(text: String) = UIUtil.runOnUIThread(Runnable {
|
fun showToast(text: String) = UIUtil.runOnUIThread(Runnable {
|
||||||
|
|
|
@ -16,7 +16,6 @@ import android.os.Environment
|
||||||
import android.util.Base64
|
import android.util.Base64
|
||||||
import android.view.Gravity
|
import android.view.Gravity
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.WindowManager
|
|
||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
|
@ -34,7 +33,8 @@ import com.v2ray.ang.V2RayConfig.VMESS_PROTOCOL
|
||||||
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
|
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
|
||||||
import org.telegram.messenger.*
|
import org.telegram.messenger.*
|
||||||
import org.telegram.messenger.browser.Browser
|
import org.telegram.messenger.browser.Browser
|
||||||
import org.telegram.ui.ActionBar.BottomSheet
|
import tw.nekomimi.nekogram.BottomBuilder
|
||||||
|
import tw.nekomimi.nekogram.utils.AlertUtil.showToast
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.net.NetworkInterface
|
import java.net.NetworkInterface
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
@ -134,7 +134,7 @@ object ProxyUtil {
|
||||||
|
|
||||||
error = true
|
error = true
|
||||||
|
|
||||||
AlertUtil.showToast(LocaleController.getString("BrokenLink", R.string.BrokenLink) + ": ${it.message ?: it.javaClass.simpleName}")
|
showToast(LocaleController.getString("BrokenLink", R.string.BrokenLink) + ": ${it.message ?: it.javaClass.simpleName}")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,7 +167,7 @@ object ProxyUtil {
|
||||||
|
|
||||||
error = true
|
error = true
|
||||||
|
|
||||||
AlertUtil.showToast(LocaleController.getString("BrokenLink", R.string.BrokenLink) + ": ${it.message ?: it.javaClass.simpleName}")
|
showToast(LocaleController.getString("BrokenLink", R.string.BrokenLink) + ": ${it.message ?: it.javaClass.simpleName}")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -183,7 +183,7 @@ object ProxyUtil {
|
||||||
|
|
||||||
if (proxies.isNullOrEmpty()) {
|
if (proxies.isNullOrEmpty()) {
|
||||||
|
|
||||||
if (!error) AlertUtil.showToast(LocaleController.getString("BrokenLink", R.string.BrokenLink))
|
if (!error) showToast(LocaleController.getString("BrokenLink", R.string.BrokenLink))
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -255,7 +255,7 @@ object ProxyUtil {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
AlertUtil.showToast("${LocaleController.getString("BrokenLink", R.string.BrokenLink)}: ${it.message}")
|
showToast("${LocaleController.getString("BrokenLink", R.string.BrokenLink)}: ${it.message}")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -386,7 +386,9 @@ object ProxyUtil {
|
||||||
|
|
||||||
setOnLongClickListener {
|
setOnLongClickListener {
|
||||||
|
|
||||||
BottomSheet.Builder(ctx).setItems(arrayOf(
|
val builder = BottomBuilder(ctx)
|
||||||
|
|
||||||
|
builder.addItems(arrayOf(
|
||||||
|
|
||||||
LocaleController.getString("SaveToGallery", R.string.SaveToGallery),
|
LocaleController.getString("SaveToGallery", R.string.SaveToGallery),
|
||||||
LocaleController.getString("Cancel", R.string.Cancel)
|
LocaleController.getString("Cancel", R.string.Cancel)
|
||||||
|
@ -396,7 +398,7 @@ object ProxyUtil {
|
||||||
R.drawable.baseline_image_24,
|
R.drawable.baseline_image_24,
|
||||||
R.drawable.baseline_cancel_24
|
R.drawable.baseline_cancel_24
|
||||||
|
|
||||||
)) { _, i ->
|
)) { i, _, _ ->
|
||||||
|
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
|
|
||||||
|
@ -404,7 +406,7 @@ object ProxyUtil {
|
||||||
|
|
||||||
getOwnerActivity(ctx).requestPermissions(arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), 4)
|
getOwnerActivity(ctx).requestPermissions(arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), 4)
|
||||||
|
|
||||||
return@setItems
|
return@addItems
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -423,16 +425,18 @@ object ProxyUtil {
|
||||||
}
|
}
|
||||||
|
|
||||||
AndroidUtilities.addMediaToGallery(saveTo.path)
|
AndroidUtilities.addMediaToGallery(saveTo.path)
|
||||||
AlertUtil.showToast(LocaleController.getString("PhotoSavedHint", R.string.PhotoSavedHint))
|
showToast(LocaleController.getString("PhotoSavedHint", R.string.PhotoSavedHint))
|
||||||
|
|
||||||
}.onFailure {
|
}.onFailure {
|
||||||
FileLog.e(it)
|
FileLog.e(it)
|
||||||
AlertUtil.showToast(it)
|
showToast(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}.show()
|
}
|
||||||
|
|
||||||
|
builder.show()
|
||||||
|
|
||||||
return@setOnLongClickListener true
|
return@setOnLongClickListener true
|
||||||
|
|
||||||
|
@ -494,40 +498,45 @@ object ProxyUtil {
|
||||||
|
|
||||||
} catch (e: Throwable) {
|
} catch (e: Throwable) {
|
||||||
|
|
||||||
AlertUtil.showToast(LocaleController.getString("NoQrFound", R.string.NoQrFound))
|
showToast(LocaleController.getString("NoQrFound", R.string.NoQrFound))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun showLinkAlert(ctx: Activity, text: String) {
|
@JvmOverloads
|
||||||
|
fun showLinkAlert(ctx: Activity, text: String, tryInternal: Boolean = true) {
|
||||||
|
|
||||||
val builder = BottomSheet.Builder(ctx)
|
val builder = BottomBuilder(ctx)
|
||||||
|
|
||||||
var isUrl = false
|
if (tryInternal) {
|
||||||
|
runCatching {
|
||||||
runCatching {
|
if (Browser.isInternalUrl(text, booleanArrayOf(false))) {
|
||||||
text.replace("tg://", "https://t.me/").toHttpUrlOrNull()!!
|
Browser.openUrl(ctx, text)
|
||||||
if (Browser.isInternalUrl(text, booleanArrayOf(false))) {
|
return
|
||||||
Browser.openUrl(ctx, text)
|
}
|
||||||
return
|
|
||||||
}
|
}
|
||||||
isUrl = true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.setTitle(text)
|
builder.addTitle(text)
|
||||||
|
|
||||||
builder.setItems(arrayOf(
|
builder.addItems(arrayOf(
|
||||||
if (isUrl) LocaleController.getString("Open", R.string.OpenUrlTitle) else null,
|
LocaleController.getString("Open", R.string.Open),
|
||||||
LocaleController.getString("Copy", R.string.Copy),
|
LocaleController.getString("Copy", R.string.Copy),
|
||||||
LocaleController.getString("Cancel", R.string.Cancel)
|
LocaleController.getString("ShareQRCode", R.string.ShareQRCode)
|
||||||
)) { _, i ->
|
), intArrayOf(
|
||||||
if (i == 0) {
|
R.drawable.baseline_open_in_browser_24,
|
||||||
Browser.openUrl(ctx, text)
|
R.drawable.baseline_content_copy_24,
|
||||||
} else if (i == 1) {
|
R.drawable.wallet_qr
|
||||||
AndroidUtilities.addToClipboard(text)
|
)) { which, _, _ ->
|
||||||
Toast.makeText(ApplicationLoader.applicationContext, LocaleController.getString("LinkCopied", R.string.LinkCopied), Toast.LENGTH_LONG).show()
|
when (which) {
|
||||||
|
0 -> Browser.openUrl(ctx, text)
|
||||||
|
1 -> {
|
||||||
|
AndroidUtilities.addToClipboard(text)
|
||||||
|
showToast(LocaleController.getString("LinkCopied", R.string.LinkCopied))
|
||||||
|
}
|
||||||
|
else -> showQrDialog(ctx, text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
<vector android:height="24.0dip" android:width="24.0dip" android:viewportWidth="24.0" android:viewportHeight="24.0"
|
android:width="24dp"
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
android:height="24dp"
|
||||||
<path android:fillColor="#ff000000" android:pathData="M18,7l-1.41,-1.41 -6.34,6.34 1.41,1.41L18,7zM22.24,5.59L11.66,16.17 7.48,12l-1.41,1.41L11.66,19l12,-12 -1.42,-1.41zM0.41,13.41L6,19l1.41,-1.41L1.83,12 0.41,13.41z" />
|
android:viewportWidth="24"
|
||||||
</vector>
|
android:viewportHeight="24">
|
||||||
|
<path
|
||||||
|
android:fillColor="#000000"
|
||||||
|
android:pathData="M18,7l-1.41,-1.41 -6.34,6.34 1.41,1.41L18,7zM22.24,5.59L11.66,16.17 7.48,12l-1.41,1.41L11.66,19l12,-12 -1.42,-1.41zM0.41,13.41L6,19l1.41,-1.41L1.83,12 0.41,13.41z" />
|
||||||
|
</vector>
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24">
|
||||||
|
<path
|
||||||
|
android:fillColor="#000000"
|
||||||
|
android:pathData="M20,6h-8l-2,-2L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,8c0,-1.1 -0.9,-2 -2,-2zM20,18L4,18L4,8h16v10z" />
|
||||||
|
</vector>
|
|
@ -274,5 +274,6 @@
|
||||||
<string name="TextOrigin">Origin</string>
|
<string name="TextOrigin">Origin</string>
|
||||||
<string name="TextReplace">Replace</string>
|
<string name="TextReplace">Replace</string>
|
||||||
<string name="ReplaceRegex">Use regex</string>
|
<string name="ReplaceRegex">Use regex</string>
|
||||||
|
<string name="DisableTrending">Disable Trending</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
Loading…
Reference in New Issue