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
|
||||
- Allow create group without invite
|
||||
- Option to upgrade group to supergroup
|
||||
- Mark dialogs as read using tab menu
|
||||
- Improved session dialog
|
||||
- Improved link long click menu
|
||||
- Text replacer
|
||||
- Option to disable trending
|
||||
- Tgx style message unpin menu
|
||||
- Built-in Material Design themes / Telegram X style icons
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
|
||||
def verName = "7.4.2-rc01"
|
||||
def verCode = 176
|
||||
def verName = "7.4.2-rc02"
|
||||
def verCode = 178
|
||||
|
||||
def officialVer = "7.4.2"
|
||||
def officialCode = 2227
|
||||
|
|
|
@ -75,7 +75,6 @@ dialogCheckboxSquareUnchecked=-8550769
|
|||
avatar_actionBarSelectorOrange=-2130706433
|
||||
avatar_backgroundInProfileRed=-12627531
|
||||
chat_emojiPanelNewTrending=-12627531
|
||||
chat_emojiPanelStickerPackSelector=-12627531
|
||||
chat_unreadMessagesStartArrowIcon=-12627531
|
||||
avatar_backgroundActionBarOrange=-12627531
|
||||
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.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.SQLiteDatabase;
|
||||
import org.telegram.SQLite.SQLitePreparedStatement;
|
||||
|
@ -71,10 +75,6 @@ import java.util.concurrent.CountDownLatch;
|
|||
|
||||
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")
|
||||
public class MediaDataController extends BaseController {
|
||||
|
||||
|
@ -1019,7 +1019,7 @@ public class MediaDataController extends BaseController {
|
|||
}
|
||||
|
||||
public void loadFeaturedStickers(boolean cache, boolean force) {
|
||||
/*if (loadingFeaturedStickers) {
|
||||
if (loadingFeaturedStickers || NekoConfig.disableTrending) {
|
||||
return;
|
||||
}
|
||||
loadingFeaturedStickers = true;
|
||||
|
@ -1074,7 +1074,7 @@ public class MediaDataController extends BaseController {
|
|||
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) {
|
||||
|
|
|
@ -4222,7 +4222,7 @@ public class NotificationsController extends BaseController {
|
|||
msgHeardIntent.putExtra("max_id", max_id);
|
||||
msgHeardIntent.putExtra("currentAccount", currentAccount);
|
||||
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)
|
||||
.setShowsUserInterface(false)
|
||||
.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.addItems(
|
||||
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 (which == 0 || which == 2) {
|
||||
int index;
|
||||
|
|
|
@ -43,6 +43,9 @@ import org.telegram.ui.Components.AnimatedFileDrawable;
|
|||
import org.telegram.ui.Components.MediaActionDrawable;
|
||||
import org.telegram.ui.Components.RadialProgress2;
|
||||
|
||||
import kotlin.Unit;
|
||||
import tw.nekomimi.nekogram.BottomBuilder;
|
||||
|
||||
public class AvatarPreviewer {
|
||||
|
||||
private static AvatarPreviewer INSTANCE;
|
||||
|
@ -450,18 +453,20 @@ public class AvatarPreviewer {
|
|||
}
|
||||
|
||||
private void showBottomSheet() {
|
||||
final CharSequence[] labels = new CharSequence[menuItems.length];
|
||||
final String[] labels = new String[menuItems.length];
|
||||
final int[] icons = new int[menuItems.length];
|
||||
for (int i = 0; i < menuItems.length; i++) {
|
||||
labels[i] = LocaleController.getString(menuItems[i].labelKey, menuItems[i].labelResId);
|
||||
icons[i] = menuItems[i].iconResId;
|
||||
}
|
||||
visibleSheet = new BottomSheet.Builder(getContext())
|
||||
.setItems(labels, icons, (dialog, which) -> {
|
||||
callback.onMenuClick(menuItems[which]);
|
||||
setShowing(false);
|
||||
})
|
||||
.setDimBehind(false);
|
||||
BottomBuilder visibleSheetBuilder = new BottomBuilder(getContext());
|
||||
visibleSheetBuilder.addItems(labels, icons, (which, text, cell) -> {
|
||||
callback.onMenuClick(menuItems[which]);
|
||||
setShowing(false);
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
visibleSheet = visibleSheetBuilder.create();
|
||||
visibleSheet.setDimBehind(false);
|
||||
visibleSheet.setOnDismissListener(dialog -> {
|
||||
visibleSheet = null;
|
||||
setShowing(false);
|
||||
|
|
|
@ -66,9 +66,6 @@ import org.telegram.ui.Components.voip.VoIPHelper;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
|
||||
import kotlin.Unit;
|
||||
import tw.nekomimi.nekogram.BottomBuilder;
|
||||
|
||||
public class CallLogActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate {
|
||||
|
||||
private ListAdapter listViewAdapter;
|
||||
|
@ -502,18 +499,18 @@ public class CallLogActivity extends BaseFragment implements NotificationCenter.
|
|||
private void createActionMode() {
|
||||
if (actionBar.actionModeIsExist(null)) {
|
||||
return;
|
||||
}
|
||||
final ActionBarMenu actionMode = actionBar.createActionMode();
|
||||
}
|
||||
final ActionBarMenu actionMode = actionBar.createActionMode();
|
||||
|
||||
selectedDialogsCountTextView = new NumberTextView(actionMode.getContext());
|
||||
selectedDialogsCountTextView.setTextSize(18);
|
||||
selectedDialogsCountTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
selectedDialogsCountTextView.setTextColor(Theme.getColor(Theme.key_actionBarActionModeDefaultIcon));
|
||||
actionMode.addView(selectedDialogsCountTextView, LayoutHelper.createLinear(0, LayoutHelper.MATCH_PARENT, 1.0f, 72, 0, 0, 0));
|
||||
selectedDialogsCountTextView.setOnTouchListener((v, event) -> true);
|
||||
selectedDialogsCountTextView = new NumberTextView(actionMode.getContext());
|
||||
selectedDialogsCountTextView.setTextSize(18);
|
||||
selectedDialogsCountTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
selectedDialogsCountTextView.setTextColor(Theme.getColor(Theme.key_actionBarActionModeDefaultIcon));
|
||||
actionMode.addView(selectedDialogsCountTextView, LayoutHelper.createLinear(0, LayoutHelper.MATCH_PARENT, 1.0f, 72, 0, 0, 0));
|
||||
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) {
|
||||
if (messages.isEmpty()) {
|
||||
|
|
|
@ -84,7 +84,6 @@ import org.telegram.ui.ActionBar.ActionBarMenuItem;
|
|||
import org.telegram.ui.ActionBar.AlertDialog;
|
||||
import org.telegram.ui.ActionBar.BackDrawable;
|
||||
import org.telegram.ui.ActionBar.BaseFragment;
|
||||
import org.telegram.ui.ActionBar.BottomSheet;
|
||||
import org.telegram.ui.ActionBar.SimpleTextView;
|
||||
import org.telegram.ui.ActionBar.Theme;
|
||||
import org.telegram.ui.ActionBar.ThemeDescription;
|
||||
|
@ -2030,7 +2029,7 @@ public class ChannelAdminLogActivity extends BaseFragment implements Notificatio
|
|||
builder.addTitle(urlFinal);
|
||||
builder.addItems(
|
||||
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) {
|
||||
Browser.openUrl(getParentActivity(), urlFinal);
|
||||
|
|
|
@ -231,7 +231,6 @@ import java.io.ByteArrayOutputStream;
|
|||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileWriter;
|
||||
import java.lang.reflect.Array;
|
||||
import java.net.URLDecoder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
@ -245,7 +244,6 @@ import java.util.regex.Pattern;
|
|||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import kotlin.Unit;
|
||||
import kotlin.text.StringsKt;
|
||||
import tw.nekomimi.nekogram.BottomBuilder;
|
||||
import tw.nekomimi.nekogram.MessageDetailsActivity;
|
||||
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) {
|
||||
items.add(LocaleController.getString("Forward", R.string.Forward));
|
||||
options.add(2);
|
||||
icons.add(R.drawable.msg_forward);
|
||||
icons.add(R.drawable.baseline_forward_24);
|
||||
}
|
||||
if (!selectedObject.needDrawBluredPreview() && !selectedObject.isLiveLocation() && selectedObject.type != 16) {
|
||||
items.add(LocaleController.getString("NoQuoteForward", R.string.NoQuoteForward));
|
||||
options.add(95);
|
||||
icons.add(R.drawable.msg_forward_noquote);
|
||||
icons.add(R.drawable.baseline_forward_24);
|
||||
}
|
||||
if (chatMode != MODE_SCHEDULED) {
|
||||
if (!UserObject.isUserSelf(currentUser) && NekoConfig.showAddToSavedMessages) {
|
||||
|
@ -21366,15 +21364,15 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
|||
builder.addTitle(str);
|
||||
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 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) {
|
||||
openClickableLink(str, which == 2);
|
||||
|
||||
} else if (which == 1) {
|
||||
AndroidUtilities.addToClipboard(str);
|
||||
}
|
||||
} else if (which == 1) {
|
||||
AndroidUtilities.addToClipboard(str);
|
||||
}
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
});
|
||||
showDialog(builder.create());
|
||||
} else {
|
||||
openClickableLink(str, false);
|
||||
|
@ -21387,7 +21385,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
|||
builder.addTitle(urlFinal);
|
||||
builder.addItems(
|
||||
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) {
|
||||
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_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_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_emojiPanelStickerSetNameHighlight));
|
||||
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.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Vibrator;
|
||||
import android.provider.Settings;
|
||||
import android.text.Html;
|
||||
import android.text.InputType;
|
||||
|
@ -109,6 +108,7 @@ import java.util.concurrent.CountDownLatch;
|
|||
import kotlin.Unit;
|
||||
import tw.nekomimi.nekogram.BottomBuilder;
|
||||
import tw.nekomimi.nekogram.NekoConfig;
|
||||
import tw.nekomimi.nekogram.utils.AlertUtil;
|
||||
import tw.nekomimi.nekogram.utils.VibrateUtil;
|
||||
|
||||
public class AlertsCreator {
|
||||
|
@ -121,7 +121,7 @@ public class AlertsCreator {
|
|||
TLRPC.InputPeer peer;
|
||||
if (request instanceof TLRPC.TL_messages_initHistoryImport) {
|
||||
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;
|
||||
} else {
|
||||
peer = null;
|
||||
|
@ -2385,31 +2385,36 @@ public class AlertsCreator {
|
|||
return null;
|
||||
}
|
||||
|
||||
BottomSheet.Builder builder = new BottomSheet.Builder(fragment.getParentActivity());
|
||||
builder.setTitle(LocaleController.getString("Notifications", R.string.Notifications), true);
|
||||
CharSequence[] items = new CharSequence[]{
|
||||
BottomBuilder builder = new BottomBuilder(fragment.getParentActivity());
|
||||
builder.addTitle(LocaleController.getString("Notifications", R.string.Notifications), true);
|
||||
String[] items = new String[]{
|
||||
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("Days", 2)),
|
||||
LocaleController.getString("MuteDisable", R.string.MuteDisable)
|
||||
};
|
||||
builder.setItems(items, (dialogInterface, i) -> {
|
||||
int setting;
|
||||
if (i == 0) {
|
||||
setting = NotificationsController.SETTING_MUTE_HOUR;
|
||||
} else if (i == 1) {
|
||||
setting = NotificationsController.SETTING_MUTE_8_HOURS;
|
||||
} else if (i == 2) {
|
||||
setting = NotificationsController.SETTING_MUTE_2_DAYS;
|
||||
} else {
|
||||
setting = NotificationsController.SETTING_MUTE_FOREVER;
|
||||
}
|
||||
NotificationsController.getInstance(UserConfig.selectedAccount).setDialogNotificationsSettings(dialog_id, setting);
|
||||
if (BulletinFactory.canShowBulletin(fragment)) {
|
||||
BulletinFactory.createMuteBulletin(fragment, setting).show();
|
||||
}
|
||||
}
|
||||
);
|
||||
builder.addItems(items, new int[]{
|
||||
R.drawable.baseline_notifications_paused_24,
|
||||
R.drawable.baseline_notifications_paused_24,
|
||||
R.drawable.baseline_notifications_paused_24,
|
||||
R.drawable.baseline_notifications_paused_24
|
||||
}, (i, text, cell) -> {
|
||||
int setting;
|
||||
if (i == 0) {
|
||||
setting = NotificationsController.SETTING_MUTE_HOUR;
|
||||
} else if (i == 1) {
|
||||
setting = NotificationsController.SETTING_MUTE_8_HOURS;
|
||||
} else if (i == 2) {
|
||||
setting = NotificationsController.SETTING_MUTE_2_DAYS;
|
||||
} 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();
|
||||
}
|
||||
|
||||
|
@ -2418,11 +2423,11 @@ public class AlertsCreator {
|
|||
return;
|
||||
}
|
||||
|
||||
BottomSheet.Builder builder = new BottomSheet.Builder(context);
|
||||
builder.setTitle(LocaleController.getString("ReportChat", R.string.ReportChat), true);
|
||||
CharSequence[] items;
|
||||
BottomBuilder builder = new BottomBuilder(context);
|
||||
builder.addTitle(LocaleController.getString("ReportChat", R.string.ReportChat), true);
|
||||
String[] items;
|
||||
if (messageId != 0) {
|
||||
items = new CharSequence[]{
|
||||
items = new String[]{
|
||||
LocaleController.getString("ReportChatSpam", R.string.ReportChatSpam),
|
||||
LocaleController.getString("ReportChatViolence", R.string.ReportChatViolence),
|
||||
LocaleController.getString("ReportChatChild", R.string.ReportChatChild),
|
||||
|
@ -2430,7 +2435,7 @@ public class AlertsCreator {
|
|||
LocaleController.getString("ReportChatOther", R.string.ReportChatOther)
|
||||
};
|
||||
} else {
|
||||
items = new CharSequence[]{
|
||||
items = new String[]{
|
||||
LocaleController.getString("ReportChatSpam", R.string.ReportChatSpam),
|
||||
LocaleController.getString("ReportChatFakeAccount", R.string.ReportChatFakeAccount),
|
||||
LocaleController.getString("ReportChatViolence", R.string.ReportChatViolence),
|
||||
|
@ -2439,13 +2444,13 @@ public class AlertsCreator {
|
|||
LocaleController.getString("ReportChatOther", R.string.ReportChatOther)
|
||||
};
|
||||
}
|
||||
builder.setItems(items, (dialogInterface, i) -> {
|
||||
builder.addItems(items, null, (i, text, cell) -> {
|
||||
if (i == 4) {
|
||||
Bundle args = new Bundle();
|
||||
args.putLong("dialog_id", dialog_id);
|
||||
args.putLong("message_id", messageId);
|
||||
parentFragment.presentFragment(new ReportOtherActivity(args));
|
||||
return;
|
||||
return Unit.INSTANCE;
|
||||
}
|
||||
TLObject req;
|
||||
TLRPC.InputPeer peer = MessagesController.getInstance(UserConfig.selectedAccount).getInputPeer((int) dialog_id);
|
||||
|
@ -2479,10 +2484,10 @@ public class AlertsCreator {
|
|||
}
|
||||
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();
|
||||
|
||||
return Unit.INSTANCE;
|
||||
}
|
||||
);
|
||||
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)));
|
||||
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.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)));
|
||||
}
|
||||
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(2, R.drawable.msg_shareout, LocaleController.getString("ShareFile", R.string.ShareFile));
|
||||
optionsButton.addSubItem(1, R.drawable.baseline_forward_24, LocaleController.getString("Forward", R.string.Forward));
|
||||
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(4, R.drawable.msg_message, LocaleController.getString("ShowInChat", R.string.ShowInChat));
|
||||
optionsButton.setShowedFromBottom(true);
|
||||
|
|
|
@ -28,22 +28,10 @@ import android.graphics.drawable.Drawable;
|
|||
import android.graphics.drawable.LayerDrawable;
|
||||
import android.graphics.drawable.ShapeDrawable;
|
||||
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.SpannableStringBuilder;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.util.Log;
|
||||
import android.util.LongSparseArray;
|
||||
import android.util.SparseArray;
|
||||
import android.util.SparseIntArray;
|
||||
|
@ -66,19 +54,30 @@ import android.widget.LinearLayout;
|
|||
import android.widget.PopupWindow;
|
||||
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.ChatObject;
|
||||
import org.telegram.messenger.DocumentObject;
|
||||
import org.telegram.messenger.MediaDataController;
|
||||
import org.telegram.messenger.Emoji;
|
||||
import org.telegram.messenger.EmojiData;
|
||||
import org.telegram.messenger.FileLoader;
|
||||
import org.telegram.messenger.FileLog;
|
||||
import org.telegram.messenger.ImageReceiver;
|
||||
import org.telegram.messenger.LocaleController;
|
||||
import org.telegram.messenger.MediaDataController;
|
||||
import org.telegram.messenger.MessagesController;
|
||||
import org.telegram.messenger.MessagesStorage;
|
||||
import org.telegram.messenger.NotificationCenter;
|
||||
import org.telegram.messenger.FileLog;
|
||||
import org.telegram.messenger.R;
|
||||
import org.telegram.messenger.SvgHelper;
|
||||
import org.telegram.messenger.UserConfig;
|
||||
|
@ -323,8 +322,11 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
|||
|
||||
public interface DragListener {
|
||||
void onDragStart();
|
||||
|
||||
void onDragEnd(float velocity);
|
||||
|
||||
void onDragCancel();
|
||||
|
||||
void onDrag(int offset);
|
||||
}
|
||||
|
||||
|
@ -386,6 +388,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
|||
};
|
||||
|
||||
private static final Field superListenerField;
|
||||
|
||||
static {
|
||||
Field f = null;
|
||||
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) {
|
||||
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));
|
||||
|
||||
searchFieldHeight = AndroidUtilities.dp(64);
|
||||
needEmojiSearch = needSearch;
|
||||
|
||||
// TODO: replace with baseline icons
|
||||
|
||||
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.smiles_tab_gif, Theme.getColor(Theme.key_chat_emojiBottomPanelIcon), 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.baseline_emoticon_outline_24, Theme.getColor(Theme.key_chat_messagePanelIcons), 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.msg_sticker, Theme.getColor(Theme.key_chat_messagePanelIcons), Theme.getColor(Theme.key_chat_emojiPanelIconSelected))
|
||||
};
|
||||
|
||||
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_smiles, 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_emojiPanelIcon), 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_activities, 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_emojiPanelIcon), 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_other, 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_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_messagePanelIcons), 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_messagePanelIcons), 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_messagePanelIcons), 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_messagePanelIcons), 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[]{
|
||||
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_favorites, Theme.getColor(Theme.key_chat_emojiBottomPanelIcon), 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_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_messagePanelIcons), 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[]{
|
||||
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))
|
||||
})
|
||||
};
|
||||
|
||||
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_gifs_trending, 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_messagePanelIcons), Theme.getColor(Theme.key_chat_emojiPanelIconSelected)),
|
||||
};
|
||||
|
||||
emojiTitles = new String[]{
|
||||
|
@ -1364,7 +1369,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
|||
emojiTabs.setShouldExpand(true);
|
||||
emojiTabs.setIndicatorHeight(-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));
|
||||
emojiTabs.setDelegate(new ScrollSlidingTabStrip.ScrollSlidingTabStripDelegate() {
|
||||
@Override
|
||||
|
@ -1509,7 +1514,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
|||
gifTabs.setUnderlineHeight(AndroidUtilities.getShadowHeight());
|
||||
gifTabs.setIndicatorColor(Theme.getColor(Theme.key_chat_emojiPanelStickerPackSelectorLine));
|
||||
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));
|
||||
updateGifTabs();
|
||||
|
||||
|
@ -1653,7 +1658,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
|||
stickersTab.setUnderlineHeight(AndroidUtilities.getShadowHeight());
|
||||
stickersTab.setIndicatorColor(Theme.getColor(Theme.key_chat_emojiPanelStickerPackSelectorLine));
|
||||
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));
|
||||
updateStickerTabs();
|
||||
stickersTab.setDelegate(page -> {
|
||||
|
@ -1796,7 +1801,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
|||
}
|
||||
};
|
||||
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.setContentDescription(LocaleController.getString("AccDescrBackspace", R.string.AccDescrBackspace));
|
||||
backspaceButton.setFocusable(true);
|
||||
|
@ -1833,7 +1838,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
|||
|
||||
stickerSettingsButton = new ImageView(context);
|
||||
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.setFocusable(true);
|
||||
if (Build.VERSION.SDK_INT >= 21) {
|
||||
|
@ -1920,7 +1925,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
|||
|
||||
searchButton = new ImageView(context);
|
||||
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.setContentDescription(LocaleController.getString("Search", R.string.Search));
|
||||
searchButton.setFocusable(true);
|
||||
|
@ -2052,7 +2057,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
|||
if (parent != null) {
|
||||
float y = getY() - parent.getHeight();
|
||||
if (getLayoutParams().height > 0) {
|
||||
y += getLayoutParams().height;
|
||||
y += getLayoutParams().height;
|
||||
} else {
|
||||
y += getMeasuredHeight();
|
||||
}
|
||||
|
@ -2628,9 +2633,12 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
|||
|
||||
private ScrollSlidingTabStrip getTabsForType(@Type int type) {
|
||||
switch (type) {
|
||||
case Type.STICKERS: return stickersTab;
|
||||
case Type.EMOJIS: return emojiTabs;
|
||||
case Type.GIFS: return gifTabs;
|
||||
case Type.STICKERS:
|
||||
return stickersTab;
|
||||
case Type.EMOJIS:
|
||||
return emojiTabs;
|
||||
case Type.GIFS:
|
||||
return gifTabs;
|
||||
default:
|
||||
throw new IllegalArgumentException("Unexpected argument: " + type);
|
||||
}
|
||||
|
@ -2638,9 +2646,12 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
|||
|
||||
private RecyclerListView getListViewForType(@Type int type) {
|
||||
switch (type) {
|
||||
case Type.STICKERS: return stickersGridView;
|
||||
case Type.EMOJIS: return emojiGridView;
|
||||
case Type.GIFS: return gifGridView;
|
||||
case Type.STICKERS:
|
||||
return stickersGridView;
|
||||
case Type.EMOJIS:
|
||||
return emojiGridView;
|
||||
case Type.GIFS:
|
||||
return gifGridView;
|
||||
default:
|
||||
throw new IllegalArgumentException("Unexpected argument: " + type);
|
||||
}
|
||||
|
@ -2648,9 +2659,12 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
|||
|
||||
private GridLayoutManager getLayoutManagerForType(@Type int type) {
|
||||
switch (type) {
|
||||
case Type.STICKERS: return stickersLayoutManager;
|
||||
case Type.EMOJIS: return emojiLayoutManager;
|
||||
case Type.GIFS: return gifLayoutManager;
|
||||
case Type.STICKERS:
|
||||
return stickersLayoutManager;
|
||||
case Type.EMOJIS:
|
||||
return emojiLayoutManager;
|
||||
case Type.GIFS:
|
||||
return gifLayoutManager;
|
||||
default:
|
||||
throw new IllegalArgumentException("Unexpected argument: " + type);
|
||||
}
|
||||
|
@ -2658,9 +2672,12 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
|||
|
||||
private SearchField getSearchFieldForType(@Type int type) {
|
||||
switch (type) {
|
||||
case Type.STICKERS: return stickersSearchField;
|
||||
case Type.EMOJIS: return emojiSearchField;
|
||||
case Type.GIFS: return gifSearchField;
|
||||
case Type.STICKERS:
|
||||
return stickersSearchField;
|
||||
case Type.EMOJIS:
|
||||
return emojiSearchField;
|
||||
case Type.GIFS:
|
||||
return gifSearchField;
|
||||
default:
|
||||
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));
|
||||
}
|
||||
|
||||
gifTrendingTabNum = gifTabsCount++;
|
||||
gifTabs.addIconTab(1, gifIcons[1]).setContentDescription(LocaleController.getString("FeaturedGifs", R.string.FeaturedGifs));
|
||||
if (!NekoConfig.disableTrending) {
|
||||
gifTrendingTabNum = gifTabsCount++;
|
||||
gifTabs.addIconTab(1, gifIcons[1]).setContentDescription(LocaleController.getString("FeaturedGifs", R.string.FeaturedGifs));
|
||||
}
|
||||
|
||||
gifFirstEmojiTabNum = gifTabsCount;
|
||||
final int hPadding = AndroidUtilities.dp(13);
|
||||
|
@ -3114,7 +3133,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
|||
} else {
|
||||
setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground));
|
||||
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) {
|
||||
stickersTab.setIndicatorColor(Theme.getColor(Theme.key_chat_emojiPanelStickerPackSelectorLine));
|
||||
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) {
|
||||
gifTabs.setIndicatorColor(Theme.getColor(Theme.key_chat_emojiPanelStickerPackSelectorLine));
|
||||
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) {
|
||||
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++) {
|
||||
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);
|
||||
}
|
||||
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);
|
||||
}
|
||||
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);
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
@ -3223,7 +3242,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
|||
setBackgroundResource(R.drawable.smiles_popup);
|
||||
getBackground().setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_emojiPanelBackground), PorterDuff.Mode.SRC_IN));
|
||||
if (needEmojiSearch) {
|
||||
bottomTabContainerBackground.setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground));
|
||||
bottomTabContainerBackground.setBackgroundColor(Theme.getColor(Theme.key_actionBarDefaultSubmenuBackground));
|
||||
}
|
||||
currentBackgroundType = 1;
|
||||
}
|
||||
|
@ -3236,7 +3255,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
|||
}
|
||||
setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground));
|
||||
if (needEmojiSearch) {
|
||||
bottomTabContainerBackground.setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground));
|
||||
bottomTabContainerBackground.setBackgroundColor(Theme.getColor(Theme.key_actionBarDefaultSubmenuBackground));
|
||||
}
|
||||
currentBackgroundType = 0;
|
||||
}
|
||||
|
@ -4300,7 +4319,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
|||
}
|
||||
|
||||
public CharSequence getPageTitle(int position) {
|
||||
switch(position) {
|
||||
switch (position) {
|
||||
case 0:
|
||||
return LocaleController.getString("Emoji", R.string.Emoji);
|
||||
case 1:
|
||||
|
|
|
@ -24,6 +24,8 @@ import android.text.TextUtils;
|
|||
import android.view.View;
|
||||
import android.view.accessibility.AccessibilityNodeInfo;
|
||||
|
||||
import androidx.core.graphics.ColorUtils;
|
||||
|
||||
import org.telegram.messenger.AndroidUtilities;
|
||||
import org.telegram.messenger.ContactsController;
|
||||
import org.telegram.messenger.ImageLocation;
|
||||
|
@ -34,8 +36,6 @@ import org.telegram.messenger.UserObject;
|
|||
import org.telegram.tgnet.TLRPC;
|
||||
import org.telegram.ui.ActionBar.Theme;
|
||||
|
||||
import androidx.core.graphics.ColorUtils;
|
||||
|
||||
public class GroupCreateSpan extends View {
|
||||
|
||||
private int uid;
|
||||
|
@ -67,7 +67,7 @@ public class GroupCreateSpan extends View {
|
|||
super(context);
|
||||
|
||||
currentContact = contact;
|
||||
deleteDrawable = getResources().getDrawable(R.drawable.delete);
|
||||
deleteDrawable = getResources().getDrawable(R.drawable.baseline_delete_24);
|
||||
textPaint.setTextSize(AndroidUtilities.dp(14));
|
||||
|
||||
String firstName;
|
||||
|
|
|
@ -5,7 +5,6 @@ import android.animation.AnimatorListenerAdapter;
|
|||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.util.TypedValue;
|
||||
import android.view.Gravity;
|
||||
|
@ -90,7 +89,7 @@ public class LinkActionView extends LinearLayout {
|
|||
copyView = new TextView(context);
|
||||
copyView.setGravity(Gravity.CENTER_HORIZONTAL);
|
||||
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.append(LocaleController.getString("CopyLink", R.string.CopyLink));
|
||||
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.setGravity(Gravity.CENTER_HORIZONTAL);
|
||||
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.append(LocaleController.getString("ShareLink", R.string.ShareLink));
|
||||
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.setGravity(Gravity.CENTER_HORIZONTAL);
|
||||
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.append(LocaleController.getString("DeleteLink", R.string.DeleteLink));
|
||||
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;
|
||||
if (!permanent) {
|
||||
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));
|
||||
subItem.setOnClickListener(view12 -> {
|
||||
delegate.editLink();
|
||||
|
@ -219,7 +218,7 @@ public class LinkActionView extends LinearLayout {
|
|||
// });
|
||||
|
||||
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.setOnClickListener(view1 -> {
|
||||
revokeLink();
|
||||
|
|
|
@ -14,9 +14,6 @@ import android.graphics.Color;
|
|||
import android.graphics.Paint;
|
||||
import android.graphics.Paint.Style;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
import androidx.viewpager.widget.ViewPager.OnPageChangeListener;
|
||||
|
||||
import android.graphics.drawable.RippleDrawable;
|
||||
import android.os.Build;
|
||||
import android.view.View;
|
||||
|
@ -27,6 +24,9 @@ import android.widget.HorizontalScrollView;
|
|||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
import androidx.viewpager.widget.ViewPager.OnPageChangeListener;
|
||||
|
||||
import org.telegram.messenger.AndroidUtilities;
|
||||
import org.telegram.ui.ActionBar.Theme;
|
||||
|
||||
|
@ -138,14 +138,14 @@ public class PagerSlidingTabStrip extends HorizontalScrollView {
|
|||
super.setSelected(selected);
|
||||
Drawable background = getBackground();
|
||||
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);
|
||||
}
|
||||
}
|
||||
};
|
||||
tab.setFocusable(true);
|
||||
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);
|
||||
tab.setBackground(rippleDrawable);
|
||||
}
|
||||
|
|
|
@ -7,7 +7,6 @@ import android.animation.ValueAnimator;
|
|||
import android.content.Context;
|
||||
import android.graphics.Canvas;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.view.ViewTreeObserver;
|
||||
import android.widget.FrameLayout;
|
||||
|
@ -347,7 +346,7 @@ public class SearchViewPager extends ViewPagerFixed implements FilteredSearchVie
|
|||
selectedMessagesCountTextView.setOnTouchListener((v, event) -> true);
|
||||
|
||||
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) {
|
||||
parent.getActionBar().setBackButtonDrawable(new BackDrawable(false));
|
||||
|
|
|
@ -48,6 +48,10 @@ import android.widget.LinearLayout;
|
|||
import android.widget.TextView;
|
||||
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.messenger.AndroidUtilities;
|
||||
import org.telegram.messenger.ApplicationLoader;
|
||||
|
@ -82,9 +86,7 @@ import java.util.ArrayList;
|
|||
import java.util.Collections;
|
||||
import java.util.Locale;
|
||||
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import tw.nekomimi.nekogram.NekoConfig;
|
||||
|
||||
public class ShareAlert extends BottomSheet implements NotificationCenter.NotificationCenterDelegate {
|
||||
|
||||
|
@ -1063,19 +1065,29 @@ public class ShareAlert extends BottomSheet implements NotificationCenter.Notifi
|
|||
if (sendingMessageObjects != null) {
|
||||
for (int a = 0; a < selectedDialogs.size(); a++) {
|
||||
long key = selectedDialogs.keyAt(a);
|
||||
if (NekoConfig.sendCommentAfterForward) {
|
||||
SendMessagesHelper.getInstance(currentAccount).sendMessage(sendingMessageObjects, key, true, 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(sendingMessageObjects, key, true, 0);
|
||||
if (!NekoConfig.sendCommentAfterForward) {
|
||||
SendMessagesHelper.getInstance(currentAccount).sendMessage(sendingMessageObjects, key, true, 0);
|
||||
}
|
||||
}
|
||||
onSend(selectedDialogs, sendingMessageObjects.size());
|
||||
} else if (sendingText != null) {
|
||||
for (int a = 0; a < selectedDialogs.size(); 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) {
|
||||
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) {
|
||||
|
|
|
@ -58,7 +58,6 @@ import org.telegram.messenger.MediaDataController;
|
|||
import org.telegram.messenger.MessageObject;
|
||||
import org.telegram.messenger.NotificationCenter;
|
||||
import org.telegram.messenger.R;
|
||||
import org.telegram.messenger.SendMessagesHelper;
|
||||
import org.telegram.messenger.UserObject;
|
||||
import org.telegram.messenger.Utilities;
|
||||
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.BackDrawable;
|
||||
import org.telegram.ui.ActionBar.BaseFragment;
|
||||
import org.telegram.ui.ActionBar.BottomSheet;
|
||||
import org.telegram.ui.ActionBar.Theme;
|
||||
import org.telegram.ui.ActionBar.ThemeDescription;
|
||||
import org.telegram.ui.Adapters.SearchAdapterHelper;
|
||||
|
@ -871,7 +869,7 @@ public class SharedMediaLayout extends FrameLayout implements NotificationCenter
|
|||
gotoItem.setOnClickListener(v -> onActionBarItemClick(gotochat));
|
||||
|
||||
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.setDuplicateParentStateEnabled(false);
|
||||
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));
|
||||
|
||||
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.setDuplicateParentStateEnabled(false);
|
||||
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));
|
||||
}
|
||||
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.setDuplicateParentStateEnabled(false);
|
||||
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.addItems(
|
||||
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) {
|
||||
openUrl(urlFinal);
|
||||
|
|
|
@ -17,6 +17,7 @@ import android.graphics.Point;
|
|||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.provider.MediaStore;
|
||||
|
||||
import androidx.core.content.FileProvider;
|
||||
|
||||
import org.telegram.messenger.AndroidUtilities;
|
||||
|
@ -29,13 +30,15 @@ import org.telegram.messenger.R;
|
|||
import org.telegram.messenger.SendMessagesHelper;
|
||||
import org.telegram.messenger.Utilities;
|
||||
import org.telegram.ui.ActionBar.BaseFragment;
|
||||
import org.telegram.ui.ActionBar.BottomSheet;
|
||||
import org.telegram.ui.PhotoAlbumPickerActivity;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import kotlin.Unit;
|
||||
import tw.nekomimi.nekogram.BottomBuilder;
|
||||
|
||||
public class WallpaperUpdater {
|
||||
|
||||
private String currentPicturePath;
|
||||
|
@ -57,20 +60,20 @@ public class WallpaperUpdater {
|
|||
}
|
||||
|
||||
public void showAlert(final boolean fromTheme) {
|
||||
BottomSheet.Builder builder = new BottomSheet.Builder(parentActivity);
|
||||
builder.setTitle(LocaleController.getString("ChoosePhoto", R.string.ChoosePhoto), true);
|
||||
BottomBuilder builder = new BottomBuilder(parentActivity);
|
||||
builder.addTitle(LocaleController.getString("ChoosePhoto", R.string.ChoosePhoto), true);
|
||||
|
||||
CharSequence[] items;
|
||||
String[] items;
|
||||
int[] icons;
|
||||
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;
|
||||
} 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};
|
||||
}
|
||||
|
||||
builder.setItems(items, icons, (dialogInterface, i) -> {
|
||||
builder.addItems(items, icons, (i, t, c) -> {
|
||||
try {
|
||||
if (i == 0) {
|
||||
try {
|
||||
|
@ -102,6 +105,7 @@ public class WallpaperUpdater {
|
|||
} catch (Exception e) {
|
||||
FileLog.e(e);
|
||||
}
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
builder.show();
|
||||
}
|
||||
|
|
|
@ -38,7 +38,6 @@ import android.graphics.drawable.Drawable;
|
|||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Vibrator;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Property;
|
||||
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.BackDrawable;
|
||||
import org.telegram.ui.ActionBar.BaseFragment;
|
||||
import org.telegram.ui.ActionBar.BottomSheet;
|
||||
import org.telegram.ui.ActionBar.MenuDrawable;
|
||||
import org.telegram.ui.ActionBar.Theme;
|
||||
import org.telegram.ui.ActionBar.ThemeDescription;
|
||||
|
@ -166,6 +164,8 @@ import org.telegram.ui.Components.ViewPagerFixed;
|
|||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import kotlin.Unit;
|
||||
import tw.nekomimi.nekogram.BottomBuilder;
|
||||
import tw.nekomimi.nekogram.NekoConfig;
|
||||
import tw.nekomimi.nekogram.utils.PrivacyUtil;
|
||||
import tw.nekomimi.nekogram.utils.ProxyUtil;
|
||||
|
@ -2192,22 +2192,23 @@ private int lastMeasuredTopPadding;
|
|||
|
||||
linearLayout.setMinimumWidth(AndroidUtilities.dp(200));
|
||||
linearLayout.setOrientation(LinearLayout.VERTICAL);
|
||||
scrimPopupWindowItems = new ActionBarMenuSubItem[3];
|
||||
for (int a = 0, N = (tabView.getId() == Integer.MAX_VALUE ? 2 : 3); a < N; a++) {
|
||||
scrimPopupWindowItems = new ActionBarMenuSubItem[4];
|
||||
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);
|
||||
if (a == 0) {
|
||||
if (getMessagesController().dialogFilters.size() <= 1) {
|
||||
continue;
|
||||
}
|
||||
if (getMessagesController().dialogFilters.size() <= 1) continue;
|
||||
cell.setTextAndIcon(LocaleController.getString("FilterReorder", R.string.FilterReorder), R.drawable.tabs_reorder);
|
||||
} else if (a == 1) {
|
||||
if (N == 2) {
|
||||
if (N == 3) {
|
||||
cell.setTextAndIcon(LocaleController.getString("FilterEditAll", R.string.FilterEditAll), R.drawable.baseline_edit_24);
|
||||
} else {
|
||||
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);
|
||||
} else {
|
||||
cell.setTextAndIcon(LocaleController.getString("MarkAllAsRead", R.string.MarkAllAsRead), R.drawable.baseline_done_all_24);
|
||||
}
|
||||
scrimPopupWindowItems[a] = cell;
|
||||
linearLayout.addView(cell);
|
||||
|
@ -2225,6 +2226,8 @@ private int lastMeasuredTopPadding;
|
|||
}
|
||||
} else if (i == 2) {
|
||||
showDeleteAlert(dialogFilter);
|
||||
} else {
|
||||
getMessagesStorage().readAllDialogs(tabView.getId());
|
||||
}
|
||||
if (scrimPopupWindow != null) {
|
||||
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));
|
||||
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));
|
||||
addToFolderItem = otherItem.addSubItem(add_to_folder, R.drawable.msg_addfolder, LocaleController.getString("FilterAddTo", R.string.FilterAddTo));
|
||||
removeFromFolderItem = otherItem.addSubItem(remove_from_folder, R.drawable.msg_removefolder, LocaleController.getString("FilterRemoveFrom", R.string.FilterRemoveFrom));
|
||||
readItem = otherItem.addSubItem(read, R.drawable.deproko_baseline_check_double_24, LocaleController.getString("MarkAsRead", R.string.MarkAsRead));
|
||||
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.baseline_folder_open_24, LocaleController.getString("FilterRemoveFrom", R.string.FilterRemoveFrom));
|
||||
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));
|
||||
blockItem = otherItem.addSubItem(block, R.drawable.baseline_block_24, LocaleController.getString("BlockUser", R.string.BlockUser));
|
||||
|
||||
|
@ -4618,18 +4621,18 @@ private int lastMeasuredTopPadding;
|
|||
} else {
|
||||
if (dialog instanceof TLRPC.TL_dialogFolder) {
|
||||
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;
|
||||
|
||||
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,
|
||||
};
|
||||
CharSequence[] items = new CharSequence[]{
|
||||
String[] items = new String[]{
|
||||
hasUnread ? LocaleController.getString("MarkAllAsRead", R.string.MarkAllAsRead) : null,
|
||||
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) {
|
||||
getMessagesStorage().readAllDialogs(1);
|
||||
} else if (which == 1 && viewPages != null) {
|
||||
|
@ -4645,6 +4648,7 @@ private int lastMeasuredTopPadding;
|
|||
viewPages[a].listView.toggleArchiveHidden(true, dialogCell);
|
||||
}
|
||||
}
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
showDialog(builder.create());
|
||||
return false;
|
||||
|
@ -5438,7 +5442,7 @@ private int lastMeasuredTopPadding;
|
|||
muteItem.setContentDescription(LocaleController.getString("ChatsMute", R.string.ChatsMute));
|
||||
}
|
||||
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 {
|
||||
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.TLRPC;
|
||||
import org.telegram.ui.ActionBar.BaseFragment;
|
||||
import org.telegram.ui.ActionBar.BottomSheet;
|
||||
import org.telegram.ui.ActionBar.Theme;
|
||||
import org.telegram.ui.ActionBar.ThemeDescription;
|
||||
import org.telegram.ui.Adapters.FiltersView;
|
||||
|
@ -1087,7 +1086,7 @@ public class FilteredSearchView extends FrameLayout implements NotificationCente
|
|||
builder.addTitle(urlFinal);
|
||||
builder.addItems(
|
||||
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) {
|
||||
openUrl(urlFinal);
|
||||
|
|
|
@ -26,8 +26,8 @@ import android.graphics.drawable.Drawable;
|
|||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.SystemClock;
|
||||
import android.provider.Settings;
|
||||
import android.os.Vibrator;
|
||||
import android.provider.Settings;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Property;
|
||||
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.EditTextBoldCursor;
|
||||
import org.telegram.ui.Components.FillLastLinearLayoutManager;
|
||||
import org.telegram.ui.Components.GroupVoipInviteAlert;
|
||||
import org.telegram.ui.Components.GroupCallPip;
|
||||
import org.telegram.ui.Components.GroupVoipInviteAlert;
|
||||
import org.telegram.ui.Components.LayoutHelper;
|
||||
import org.telegram.ui.Components.RLottieDrawable;
|
||||
import org.telegram.ui.Components.RLottieImageView;
|
||||
|
@ -2847,7 +2847,7 @@ public class GroupCallActivity extends BottomSheet implements NotificationCenter
|
|||
options.add(5);
|
||||
}
|
||||
items.add(LocaleController.getString("VoipGroupOpenProfile", R.string.VoipGroupOpenProfile));
|
||||
icons.add(R.drawable.msg_openprofile);
|
||||
icons.add(R.drawable.book_user);
|
||||
options.add(6);
|
||||
}
|
||||
|
||||
|
|
|
@ -845,23 +845,23 @@ public class ManageLinksActivity extends BaseFragment implements NotificationCen
|
|||
|
||||
if (invite.revoked) {
|
||||
items.add(LocaleController.getString("Delete", R.string.Delete));
|
||||
icons.add(R.drawable.msg_delete);
|
||||
icons.add(R.drawable.baseline_delete_24);
|
||||
actions.add(4);
|
||||
} else {
|
||||
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);
|
||||
|
||||
items.add(LocaleController.getString("Share", R.string.ShareLink));
|
||||
icons.add(R.drawable.msg_share);
|
||||
icons.add(R.drawable.baseline_forward_24);
|
||||
actions.add(1);
|
||||
|
||||
items.add(LocaleController.getString("Edit", R.string.Edit));
|
||||
icons.add(R.drawable.msg_edit);
|
||||
icons.add(R.drawable.baseline_edit_24);
|
||||
actions.add(2);
|
||||
|
||||
items.add(LocaleController.getString("RevokeLink", R.string.RevokeLink));
|
||||
icons.add(R.drawable.msg_delete);
|
||||
icons.add(R.drawable.baseline_delete_24);
|
||||
actions.add(3);
|
||||
}
|
||||
|
||||
|
|
|
@ -68,7 +68,6 @@ import org.telegram.ui.ActionBar.ActionBarMenu;
|
|||
import org.telegram.ui.ActionBar.ActionBarMenuItem;
|
||||
import org.telegram.ui.ActionBar.BackDrawable;
|
||||
import org.telegram.ui.ActionBar.BaseFragment;
|
||||
import org.telegram.ui.ActionBar.BottomSheet;
|
||||
import org.telegram.ui.ActionBar.Theme;
|
||||
import org.telegram.ui.ActionBar.ThemeDescription;
|
||||
import org.telegram.ui.Cells.GraySectionCell;
|
||||
|
@ -662,8 +661,8 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No
|
|||
|
||||
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(actionMode.addItemWithWidth(forward_noquote, R.drawable.msg_forward_noquote, 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_noquote, R.drawable.baseline_forward_24, AndroidUtilities.dp(54), LocaleController.getString("NoQuoteForward", R.string.NoQuoteForward)));
|
||||
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)));
|
||||
|
||||
|
@ -2083,7 +2082,7 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No
|
|||
builder.addTitle(urlFinal);
|
||||
builder.addItems(
|
||||
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) {
|
||||
openUrl(urlFinal);
|
||||
|
|
|
@ -48,25 +48,6 @@ import android.os.Bundle;
|
|||
import android.os.SystemClock;
|
||||
import android.os.Vibrator;
|
||||
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.Selection;
|
||||
import android.text.Spannable;
|
||||
|
@ -128,11 +109,13 @@ 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;
|
||||
|
@ -255,6 +238,7 @@ import java.util.Map;
|
|||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import kotlin.Unit;
|
||||
import tw.nekomimi.nekogram.MessageHelper;
|
||||
import tw.nekomimi.nekogram.NekoConfig;
|
||||
import tw.nekomimi.nekogram.NekoXConfig;
|
||||
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.ProxyUtil;
|
||||
|
||||
import tw.nekomimi.nekogram.MessageHelper;
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
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));
|
||||
pipItem = menu.addItem(gallery_menu_pip, R.drawable.ic_goinline);
|
||||
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));
|
||||
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));
|
||||
shareItem = menu.addItem(gallery_menu_share2, R.drawable.share);
|
||||
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.DiffUtil;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.ListAdapter;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.viewpager.widget.PagerAdapter;
|
||||
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.Theme;
|
||||
import org.telegram.ui.ActionBar.ThemeDescription;
|
||||
import org.telegram.ui.Adapters.SearchAdapter;
|
||||
import org.telegram.ui.Cells.AboutLinkCell;
|
||||
import org.telegram.ui.Cells.DividerCell;
|
||||
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.StrUtil;
|
||||
import kotlin.Unit;
|
||||
import kotlin.text.StringsKt;
|
||||
import libv2ray.Libv2ray;
|
||||
import tw.nekomimi.nekogram.BottomBuilder;
|
||||
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));
|
||||
}
|
||||
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)) {
|
||||
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) {
|
||||
TLRPC.Chat chat = getMessagesController().getChat(chat_id);
|
||||
|
@ -5966,7 +5963,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
|
|||
}
|
||||
} else {
|
||||
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) {
|
||||
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(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(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) {
|
||||
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.AlertDialog;
|
||||
import org.telegram.ui.ActionBar.BaseFragment;
|
||||
import org.telegram.ui.ActionBar.BottomSheet;
|
||||
import org.telegram.ui.ActionBar.Theme;
|
||||
import org.telegram.ui.ActionBar.ThemeDescription;
|
||||
import org.telegram.ui.Cells.HeaderCell;
|
||||
|
@ -605,56 +604,14 @@ public class ProxyListActivity extends BaseFragment implements NotificationCente
|
|||
@Override
|
||||
public void didFindQr(String text) {
|
||||
|
||||
BottomSheet.Builder builder = new BottomSheet.Builder(getParentActivity());
|
||||
|
||||
boolean isUrl = false;
|
||||
|
||||
try {
|
||||
|
||||
HttpUrl.parse(text);
|
||||
|
||||
isUrl = true;
|
||||
|
||||
Browser.openUrl(getParentActivity(), text);
|
||||
|
||||
return;
|
||||
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
|
||||
builder.setTitle(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());
|
||||
AlertUtil.showCopyAlert(getParentActivity(), text);
|
||||
|
||||
}
|
||||
|
||||
|
@ -743,9 +700,9 @@ public class ProxyListActivity extends BaseFragment implements NotificationCente
|
|||
if (position >= proxyStartRow && position < proxyEndRow) {
|
||||
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("ShareProxy", R.string.ShareProxy),
|
||||
|
@ -763,7 +720,7 @@ public class ProxyListActivity extends BaseFragment implements NotificationCente
|
|||
R.drawable.baseline_delete_24,
|
||||
R.drawable.baseline_cancel_24
|
||||
|
||||
}, (v, i) -> {
|
||||
}, (i, text, cell) -> {
|
||||
|
||||
if (i == 0) {
|
||||
|
||||
|
@ -814,6 +771,8 @@ public class ProxyListActivity extends BaseFragment implements NotificationCente
|
|||
|
||||
}
|
||||
|
||||
return Unit.INSTANCE;
|
||||
|
||||
});
|
||||
|
||||
showDialog(builder.create());
|
||||
|
@ -882,62 +841,26 @@ public class ProxyListActivity extends BaseFragment implements NotificationCente
|
|||
|
||||
} 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() {
|
||||
|
||||
@Override
|
||||
public void didFindQr(String text) {
|
||||
|
||||
BottomSheet.Builder builder = new BottomSheet.Builder(getParentActivity());
|
||||
|
||||
boolean isUrl = false;
|
||||
|
||||
try {
|
||||
|
||||
HttpUrl.parse(text);
|
||||
|
||||
isUrl = true;
|
||||
|
||||
Browser.openUrl(getParentActivity(), text);
|
||||
|
||||
return;
|
||||
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
|
||||
builder.setTitle(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());
|
||||
|
||||
AlertUtil.showCopyAlert(getParentActivity(), text);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -39,6 +39,9 @@ import android.widget.EditText;
|
|||
import android.widget.FrameLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import org.telegram.messenger.AndroidUtilities;
|
||||
import org.telegram.messenger.ApplicationLoader;
|
||||
import org.telegram.messenger.FileLoader;
|
||||
|
@ -77,9 +80,6 @@ import java.util.ArrayList;
|
|||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
public class WallpapersListActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate {
|
||||
|
||||
private int rowCount;
|
||||
|
@ -532,7 +532,7 @@ public class WallpapersListActivity extends BaseFragment implements Notification
|
|||
selectedMessagesCountTextView.setOnTouchListener((v, event) -> true);
|
||||
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)));
|
||||
|
||||
selectedWallPapers.clear();
|
||||
|
|
|
@ -14,7 +14,6 @@ import org.telegram.ui.Cells.HeaderCell
|
|||
import org.telegram.ui.Cells.RadioButtonCell
|
||||
import org.telegram.ui.Cells.TextCell
|
||||
import org.telegram.ui.Cells.TextCheckCell
|
||||
import org.telegram.ui.Components.CheckBoxSquare
|
||||
import org.telegram.ui.Components.LayoutHelper
|
||||
import java.util.*
|
||||
|
||||
|
@ -23,10 +22,9 @@ class BottomBuilder(val ctx: Context) {
|
|||
val builder = BottomSheet.Builder(ctx, true)
|
||||
|
||||
private val rootView = LinearLayout(ctx).apply {
|
||||
|
||||
orientation = LinearLayout.VERTICAL
|
||||
|
||||
}
|
||||
private val rtl = (if (LocaleController.isRTL) Gravity.RIGHT else Gravity.LEFT)
|
||||
|
||||
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))
|
||||
|
||||
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 {
|
||||
|
||||
orientation = LinearLayout.HORIZONTAL
|
||||
|
||||
weightSum = 1F
|
||||
|
||||
}
|
||||
|
@ -224,7 +221,6 @@ class BottomBuilder(val ctx: Context) {
|
|||
|
||||
}
|
||||
|
||||
@JvmOverloads
|
||||
fun addCancelItem() {
|
||||
|
||||
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)
|
||||
setText(text)
|
||||
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) }
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun addItem(): TextCell {
|
||||
|
||||
return TextCell(ctx).apply {
|
||||
|
||||
this@BottomBuilder.rootView.addView(this, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT or Gravity.TOP))
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@JvmOverloads
|
||||
fun addItem(text: String, icon: Int = 0, red: Boolean = false, listener: ((cell: TextCell) -> Unit)?): TextCell {
|
||||
|
||||
return TextCell(ctx).apply {
|
||||
|
||||
textView.setGravity(Gravity.LEFT)
|
||||
|
||||
background = Theme.getSelectorDrawable(false)
|
||||
|
||||
setTextAndIcon(text, icon, false)
|
||||
|
||||
setOnClickListener {
|
||||
|
||||
dismiss()
|
||||
|
||||
listener?.invoke(this)
|
||||
|
||||
}
|
||||
|
||||
if (red) {
|
||||
|
||||
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>()
|
||||
|
||||
|
@ -339,7 +317,7 @@ class BottomBuilder(val ctx: Context) {
|
|||
isFocusable = true
|
||||
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 avatarBackgroundDarken;
|
||||
public static boolean disableTrending;
|
||||
|
||||
public static String getOpenPGPAppName() {
|
||||
|
||||
|
@ -288,6 +289,7 @@ public class NekoConfig {
|
|||
sendCommentAfterForward = preferences.getBoolean("sendCommentAfterForward", true);
|
||||
increaseVoiceMessageQuality = preferences.getBoolean("increaseVoiceMessageQuality", true);
|
||||
acceptSecretChat = preferences.getBoolean("acceptSecretChat", true);
|
||||
disableTrending = preferences.getBoolean("disableTrending", true);
|
||||
|
||||
}
|
||||
|
||||
|
@ -731,13 +733,16 @@ public class NekoConfig {
|
|||
|
||||
public static void toggleAcceptSecretChat() {
|
||||
preferences.edit().putBoolean("acceptSecretChat", acceptSecretChat = !acceptSecretChat).apply();
|
||||
|
||||
}
|
||||
|
||||
public static void setTabletMode(int mode) {
|
||||
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";
|
||||
|
||||
public static Typeface getSystemEmojiTypeface() {
|
||||
|
|
|
@ -72,8 +72,9 @@ public class NekoChatSettingsActivity extends BaseFragment implements Notificati
|
|||
private int useChatAttachMediaMenuRow;
|
||||
private int disableLinkPreviewByDefaultRow;
|
||||
private int sendCommentAfterForwardRow;
|
||||
|
||||
private int disableProximityEventsRow;
|
||||
private int disableTrendingRow;
|
||||
|
||||
private int mapPreviewRow;
|
||||
private int messageMenuRow;
|
||||
private int chat2Row;
|
||||
|
@ -251,6 +252,11 @@ public class NekoChatSettingsActivity extends BaseFragment implements Notificati
|
|||
if (view instanceof TextCheckCell) {
|
||||
((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++;
|
||||
hideKeyboardOnChatScrollRow = rowCount++;
|
||||
disableVibrationRow = rowCount ++;
|
||||
skipOpenLinkConfirmRow = rowCount ++;
|
||||
disableVibrationRow = rowCount++;
|
||||
skipOpenLinkConfirmRow = rowCount++;
|
||||
rearVideoMessagesRow = rowCount++;
|
||||
confirmAVRow = rowCount++;
|
||||
useChatAttachMediaMenuRow = rowCount ++;
|
||||
disableLinkPreviewByDefaultRow = rowCount ++;
|
||||
sendCommentAfterForwardRow = rowCount ++;
|
||||
disableProximityEventsRow = rowCount ++;
|
||||
useChatAttachMediaMenuRow = rowCount++;
|
||||
disableLinkPreviewByDefaultRow = rowCount++;
|
||||
sendCommentAfterForwardRow = rowCount++;
|
||||
disableProximityEventsRow = rowCount++;
|
||||
disableTrendingRow = rowCount++;
|
||||
|
||||
mapPreviewRow = rowCount++;
|
||||
messageMenuRow = 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);
|
||||
} else if (position == disableProximityEventsRow) {
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -60,7 +60,10 @@ object AlertUtil {
|
|||
fun showToast(e: Throwable) = showToast(e.message ?: e.javaClass.simpleName)
|
||||
|
||||
@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
|
||||
fun showToast(text: String) = UIUtil.runOnUIThread(Runnable {
|
||||
|
|
|
@ -16,7 +16,6 @@ import android.os.Environment
|
|||
import android.util.Base64
|
||||
import android.view.Gravity
|
||||
import android.view.View
|
||||
import android.view.WindowManager
|
||||
import android.widget.ImageView
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.Toast
|
||||
|
@ -34,7 +33,8 @@ import com.v2ray.ang.V2RayConfig.VMESS_PROTOCOL
|
|||
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
|
||||
import org.telegram.messenger.*
|
||||
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.net.NetworkInterface
|
||||
import java.util.*
|
||||
|
@ -134,7 +134,7 @@ object ProxyUtil {
|
|||
|
||||
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
|
||||
|
||||
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 (!error) AlertUtil.showToast(LocaleController.getString("BrokenLink", R.string.BrokenLink))
|
||||
if (!error) showToast(LocaleController.getString("BrokenLink", R.string.BrokenLink))
|
||||
|
||||
return
|
||||
|
||||
|
@ -255,7 +255,7 @@ object ProxyUtil {
|
|||
|
||||
} 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 {
|
||||
|
||||
BottomSheet.Builder(ctx).setItems(arrayOf(
|
||||
val builder = BottomBuilder(ctx)
|
||||
|
||||
builder.addItems(arrayOf(
|
||||
|
||||
LocaleController.getString("SaveToGallery", R.string.SaveToGallery),
|
||||
LocaleController.getString("Cancel", R.string.Cancel)
|
||||
|
@ -396,7 +398,7 @@ object ProxyUtil {
|
|||
R.drawable.baseline_image_24,
|
||||
R.drawable.baseline_cancel_24
|
||||
|
||||
)) { _, i ->
|
||||
)) { i, _, _ ->
|
||||
|
||||
if (i == 0) {
|
||||
|
||||
|
@ -404,7 +406,7 @@ object ProxyUtil {
|
|||
|
||||
getOwnerActivity(ctx).requestPermissions(arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), 4)
|
||||
|
||||
return@setItems
|
||||
return@addItems
|
||||
|
||||
}
|
||||
|
||||
|
@ -423,16 +425,18 @@ object ProxyUtil {
|
|||
}
|
||||
|
||||
AndroidUtilities.addMediaToGallery(saveTo.path)
|
||||
AlertUtil.showToast(LocaleController.getString("PhotoSavedHint", R.string.PhotoSavedHint))
|
||||
showToast(LocaleController.getString("PhotoSavedHint", R.string.PhotoSavedHint))
|
||||
|
||||
}.onFailure {
|
||||
FileLog.e(it)
|
||||
AlertUtil.showToast(it)
|
||||
showToast(it)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}.show()
|
||||
}
|
||||
|
||||
builder.show()
|
||||
|
||||
return@setOnLongClickListener true
|
||||
|
||||
|
@ -494,40 +498,45 @@ object ProxyUtil {
|
|||
|
||||
} catch (e: Throwable) {
|
||||
|
||||
AlertUtil.showToast(LocaleController.getString("NoQrFound", R.string.NoQrFound))
|
||||
showToast(LocaleController.getString("NoQrFound", R.string.NoQrFound))
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@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
|
||||
|
||||
runCatching {
|
||||
text.replace("tg://", "https://t.me/").toHttpUrlOrNull()!!
|
||||
if (Browser.isInternalUrl(text, booleanArrayOf(false))) {
|
||||
Browser.openUrl(ctx, text)
|
||||
return
|
||||
if (tryInternal) {
|
||||
runCatching {
|
||||
if (Browser.isInternalUrl(text, booleanArrayOf(false))) {
|
||||
Browser.openUrl(ctx, text)
|
||||
return
|
||||
}
|
||||
}
|
||||
isUrl = true
|
||||
}
|
||||
|
||||
builder.setTitle(text)
|
||||
builder.addTitle(text)
|
||||
|
||||
builder.setItems(arrayOf(
|
||||
if (isUrl) LocaleController.getString("Open", R.string.OpenUrlTitle) else null,
|
||||
builder.addItems(arrayOf(
|
||||
LocaleController.getString("Open", R.string.Open),
|
||||
LocaleController.getString("Copy", R.string.Copy),
|
||||
LocaleController.getString("Cancel", R.string.Cancel)
|
||||
)) { _, i ->
|
||||
if (i == 0) {
|
||||
Browser.openUrl(ctx, text)
|
||||
} else if (i == 1) {
|
||||
AndroidUtilities.addToClipboard(text)
|
||||
Toast.makeText(ApplicationLoader.applicationContext, LocaleController.getString("LinkCopied", R.string.LinkCopied), Toast.LENGTH_LONG).show()
|
||||
LocaleController.getString("ShareQRCode", R.string.ShareQRCode)
|
||||
), intArrayOf(
|
||||
R.drawable.baseline_open_in_browser_24,
|
||||
R.drawable.baseline_content_copy_24,
|
||||
R.drawable.wallet_qr
|
||||
)) { which, _, _ ->
|
||||
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 android:height="24.0dip" android:width="24.0dip" android:viewportWidth="24.0" android:viewportHeight="24.0"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<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" />
|
||||
</vector>
|
||||
<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="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="TextReplace">Replace</string>
|
||||
<string name="ReplaceRegex">Use regex</string>
|
||||
<string name="DisableTrending">Disable Trending</string>
|
||||
|
||||
</resources>
|
Loading…
Reference in New Issue