Search in sources :

Example 1 with TrendingStickersAlert

use of org.telegram.ui.Components.TrendingStickersAlert in project Telegram-FOSS by Telegram-FOSS-Team.

the class StickersActivity method createView.

@Override
public View createView(Context context) {
    actionBar.setBackButtonDrawable(new BackDrawable(false));
    actionBar.setAllowOverlayTitle(true);
    if (currentType == MediaDataController.TYPE_IMAGE) {
        actionBar.setTitle(LocaleController.getString("StickersName", R.string.StickersName));
    } else {
        actionBar.setTitle(LocaleController.getString("Masks", R.string.Masks));
    }
    actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() {

        @Override
        public void onItemClick(int id) {
            if (id == -1) {
                if (onBackPressed()) {
                    finishFragment();
                }
            } else if (id == MENU_ARCHIVE || id == MENU_DELETE || id == MENU_SHARE) {
                if (!needReorder) {
                    if (activeReorderingRequests == 0) {
                        listAdapter.processSelectionMenu(id);
                    }
                } else {
                    sendReorder();
                }
            }
        }
    });
    final ActionBarMenu actionMode = actionBar.createActionMode();
    selectedCountTextView = new NumberTextView(actionMode.getContext());
    selectedCountTextView.setTextSize(18);
    selectedCountTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
    selectedCountTextView.setTextColor(Theme.getColor(Theme.key_actionBarActionModeDefaultIcon));
    actionMode.addView(selectedCountTextView, LayoutHelper.createLinear(0, LayoutHelper.MATCH_PARENT, 1.0f, 72, 0, 0, 0));
    selectedCountTextView.setOnTouchListener((v, event) -> true);
    shareMenuItem = actionMode.addItemWithWidth(MENU_SHARE, R.drawable.msg_share, AndroidUtilities.dp(54));
    archiveMenuItem = actionMode.addItemWithWidth(MENU_ARCHIVE, R.drawable.msg_archive, AndroidUtilities.dp(54));
    deleteMenuItem = actionMode.addItemWithWidth(MENU_DELETE, R.drawable.msg_delete, AndroidUtilities.dp(54));
    listAdapter = new ListAdapter(context, MediaDataController.getInstance(currentAccount).getStickerSets(currentType));
    fragmentView = new FrameLayout(context);
    FrameLayout frameLayout = (FrameLayout) fragmentView;
    frameLayout.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundGray));
    listView = new RecyclerListView(context);
    listView.setFocusable(true);
    listView.setTag(7);
    layoutManager = new LinearLayoutManager(context) {

        @Override
        public boolean supportsPredictiveItemAnimations() {
            return false;
        }

        @Override
        protected void calculateExtraLayoutSpace(@NonNull RecyclerView.State state, @NonNull int[] extraLayoutSpace) {
            extraLayoutSpace[1] = listView.getHeight();
        }
    };
    layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    listView.setLayoutManager(layoutManager);
    itemTouchHelper = new ItemTouchHelper(new TouchHelperCallback());
    itemTouchHelper.attachToRecyclerView(listView);
    itemAnimator = (DefaultItemAnimator) listView.getItemAnimator();
    itemAnimator.setSupportsChangeAnimations(false);
    frameLayout.addView(listView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT));
    listView.setAdapter(listAdapter);
    listView.setOnItemClickListener((view, position) -> {
        if (position >= stickersStartRow && position < stickersEndRow && getParentActivity() != null) {
            if (!listAdapter.hasSelected()) {
                final TLRPC.TL_messages_stickerSet stickerSet = listAdapter.stickerSets.get(position - stickersStartRow);
                ArrayList<TLRPC.Document> stickers = stickerSet.documents;
                if (stickers == null || stickers.isEmpty()) {
                    return;
                }
                showDialog(new StickersAlert(getParentActivity(), StickersActivity.this, null, stickerSet, null));
            } else {
                listAdapter.toggleSelected(position);
            }
        } else if (position == featuredRow) {
            final TrendingStickersLayout.Delegate trendingDelegate = new TrendingStickersLayout.Delegate() {

                @Override
                public void onStickerSetAdd(TLRPC.StickerSetCovered stickerSet, boolean primary) {
                    MediaDataController.getInstance(currentAccount).toggleStickerSet(getParentActivity(), stickerSet, 2, StickersActivity.this, false, false);
                }

                @Override
                public void onStickerSetRemove(TLRPC.StickerSetCovered stickerSet) {
                    MediaDataController.getInstance(currentAccount).toggleStickerSet(getParentActivity(), stickerSet, 0, StickersActivity.this, false, false);
                }
            };
            trendingStickersAlert = new TrendingStickersAlert(context, this, new TrendingStickersLayout(context, trendingDelegate), null);
            trendingStickersAlert.show();
        } else if (position == archivedRow) {
            presentFragment(new ArchivedStickersActivity(currentType));
        } else if (position == masksRow) {
            presentFragment(new StickersActivity(MediaDataController.TYPE_MASK));
        } else if (position == suggestRow) {
            if (getParentActivity() == null) {
                return;
            }
            AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity());
            builder.setTitle(LocaleController.getString("SuggestStickers", R.string.SuggestStickers));
            String[] items = new String[] { LocaleController.getString("SuggestStickersAll", R.string.SuggestStickersAll), LocaleController.getString("SuggestStickersInstalled", R.string.SuggestStickersInstalled), LocaleController.getString("SuggestStickersNone", R.string.SuggestStickersNone) };
            final LinearLayout linearLayout = new LinearLayout(getParentActivity());
            linearLayout.setOrientation(LinearLayout.VERTICAL);
            builder.setView(linearLayout);
            for (int a = 0; a < items.length; a++) {
                RadioColorCell cell = new RadioColorCell(getParentActivity());
                cell.setPadding(AndroidUtilities.dp(4), 0, AndroidUtilities.dp(4), 0);
                cell.setTag(a);
                cell.setCheckColor(Theme.getColor(Theme.key_radioBackground), Theme.getColor(Theme.key_dialogRadioBackgroundChecked));
                cell.setTextAndValue(items[a], SharedConfig.suggestStickers == a);
                linearLayout.addView(cell);
                cell.setOnClickListener(v -> {
                    Integer which = (Integer) v.getTag();
                    SharedConfig.setSuggestStickers(which);
                    listAdapter.notifyItemChanged(suggestRow);
                    builder.getDismissRunnable().run();
                });
            }
            showDialog(builder.create());
        } else if (position == loopRow) {
            SharedConfig.toggleLoopStickers();
            listAdapter.notifyItemChanged(loopRow, ListAdapter.UPDATE_LOOP_STICKERS);
        }
    });
    listView.setOnItemLongClickListener((view, position) -> {
        if (!listAdapter.hasSelected() && position >= stickersStartRow && position < stickersEndRow) {
            listAdapter.toggleSelected(position);
            return true;
        } else {
            return false;
        }
    });
    return fragmentView;
}
Also used : AlertDialog(org.telegram.ui.ActionBar.AlertDialog) SpannableStringBuilder(android.text.SpannableStringBuilder) BackDrawable(org.telegram.ui.ActionBar.BackDrawable) RecyclerListView(org.telegram.ui.Components.RecyclerListView) LinearLayoutManager(androidx.recyclerview.widget.LinearLayoutManager) TLRPC(org.telegram.tgnet.TLRPC) ItemTouchHelper(androidx.recyclerview.widget.ItemTouchHelper) NumberTextView(org.telegram.ui.Components.NumberTextView) ActionBar(org.telegram.ui.ActionBar.ActionBar) TrendingStickersLayout(org.telegram.ui.Components.TrendingStickersLayout) TrendingStickersAlert(org.telegram.ui.Components.TrendingStickersAlert) ActionBarMenu(org.telegram.ui.ActionBar.ActionBarMenu) SuppressLint(android.annotation.SuppressLint) StickersAlert(org.telegram.ui.Components.StickersAlert) TrendingStickersAlert(org.telegram.ui.Components.TrendingStickersAlert) FrameLayout(android.widget.FrameLayout) RecyclerView(androidx.recyclerview.widget.RecyclerView) RadioColorCell(org.telegram.ui.Cells.RadioColorCell) LinearLayout(android.widget.LinearLayout)

Example 2 with TrendingStickersAlert

use of org.telegram.ui.Components.TrendingStickersAlert in project Telegram-FOSS by Telegram-FOSS-Team.

the class ChatActivity method getThemeDescriptions.

@Override
public ArrayList<ThemeDescription> getThemeDescriptions() {
    if (isPauseOnThemePreview) {
        isPauseOnThemePreview = false;
        return null;
    }
    ThemeDescription.ThemeDescriptionDelegate selectedBackgroundDelegate = () -> {
        if (chatActivityEnterView != null) {
            chatActivityEnterView.updateColors();
        }
        Theme.refreshAttachButtonsColors();
        if (chatAttachAlert != null) {
            chatAttachAlert.checkColors();
        }
        if (chatListView != null) {
            int count = chatListView.getChildCount();
            for (int a = 0; a < count; a++) {
                View child = chatListView.getChildAt(a);
                if (child instanceof ChatMessageCell) {
                    ((ChatMessageCell) child).createSelectorDrawable(0);
                } else if (child instanceof ChatActionCell) {
                    ((ChatActionCell) child).setInvalidateColors(true);
                }
            }
        }
        if (messagesSearchListView != null) {
            int count = messagesSearchListView.getChildCount();
            for (int a = 0; a < count; a++) {
                View child = messagesSearchListView.getChildAt(a);
                if (child instanceof DialogCell) {
                    ((DialogCell) child).update(0);
                }
            }
        }
        if (scrimPopupWindowItems != null) {
            for (int a = 0; a < scrimPopupWindowItems.length; a++) {
                scrimPopupWindowItems[a].setColors(getThemedColor(Theme.key_actionBarDefaultSubmenuItem), getThemedColor(Theme.key_actionBarDefaultSubmenuItemIcon));
                scrimPopupWindowItems[a].setSelectorColor(getThemedColor(Theme.key_dialogButtonSelector));
            }
        }
        if (scrimPopupWindow != null) {
            final View contentView = scrimPopupWindow.getContentView();
            contentView.setBackgroundColor(getThemedColor(Theme.key_actionBarDefaultSubmenuBackground));
            contentView.invalidate();
        }
        if (instantCameraView != null) {
            instantCameraView.invalidateBlur();
        }
        if (pinnedLineView != null) {
            pinnedLineView.updateColors();
        }
        if (chatActivityEnterTopView != null && chatActivityEnterTopView.getEditView() != null) {
            chatActivityEnterTopView.getEditView().updateColors();
        }
        if (headerItem != null) {
            headerItem.updateColor();
        }
        setNavigationBarColor(getThemedColor(Theme.key_windowBackgroundGray));
        if (fragmentContextView != null) {
            fragmentContextView.updateColors();
        }
        if (avatarContainer != null) {
            avatarContainer.updateColors();
        }
        if (pinnedMessageView != null) {
            pinnedMessageView.backgroundColor = getThemedColor(Theme.key_chat_topPanelBackground);
        }
        if (topChatPanelView != null) {
            topChatPanelView.backgroundColor = getThemedColor(Theme.key_chat_topPanelBackground);
        }
    };
    ArrayList<ThemeDescription> themeDescriptions = new ArrayList<>();
    themeDescriptions.add(new ThemeDescription(fragmentView, 0, null, null, null, null, Theme.key_chat_wallpaper));
    themeDescriptions.add(new ThemeDescription(fragmentView, 0, null, null, null, null, Theme.key_chat_wallpaper_gradient_to1));
    themeDescriptions.add(new ThemeDescription(fragmentView, 0, null, null, null, null, Theme.key_chat_wallpaper_gradient_to2));
    themeDescriptions.add(new ThemeDescription(fragmentView, 0, null, null, null, null, Theme.key_chat_wallpaper_gradient_to3));
    themeDescriptions.add(new ThemeDescription(messagesSearchListView, ThemeDescription.FLAG_BACKGROUND, null, null, null, null, Theme.key_windowBackgroundWhite));
    if (reportType < 0) {
        themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_BACKGROUND, null, null, null, null, Theme.key_actionBarDefault));
        themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_ITEMSCOLOR, null, null, null, null, Theme.key_actionBarDefaultIcon));
        themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_SELECTORCOLOR, null, null, null, null, Theme.key_actionBarDefaultSelector));
        themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_TITLECOLOR, null, null, null, null, Theme.key_actionBarDefaultTitle));
        themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_SUBTITLECOLOR, null, null, null, null, Theme.key_actionBarDefaultSubtitle));
    } else {
        themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_BACKGROUND, null, null, null, null, Theme.key_actionBarActionModeDefault));
        themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_ITEMSCOLOR, null, null, null, null, Theme.key_actionBarActionModeDefaultIcon));
        themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_SELECTORCOLOR, null, null, null, null, Theme.key_actionBarActionModeDefaultSelector));
        themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_TITLECOLOR, null, null, null, null, Theme.key_actionBarActionModeDefaultIcon));
        themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_SUBTITLECOLOR, null, null, null, null, Theme.key_actionBarActionModeDefaultIcon));
    }
    themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_SUBMENUBACKGROUND, null, null, null, selectedBackgroundDelegate, Theme.key_actionBarDefaultSubmenuBackground));
    themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_SUBMENUITEM, null, null, null, selectedBackgroundDelegate, Theme.key_actionBarDefaultSubmenuItem));
    themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_SUBMENUITEM | ThemeDescription.FLAG_IMAGECOLOR, null, null, null, selectedBackgroundDelegate, Theme.key_actionBarDefaultSubmenuItemIcon));
    themeDescriptions.add(new ThemeDescription(chatListView, ThemeDescription.FLAG_LISTGLOWCOLOR, null, null, null, null, Theme.key_actionBarDefault));
    themeDescriptions.add(new ThemeDescription(avatarContainer != null ? avatarContainer.getTitleTextView() : null, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_actionBarDefaultTitle));
    themeDescriptions.add(new ThemeDescription(avatarContainer != null ? avatarContainer.getTitleTextView() : null, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_actionBarDefaultSubtitle));
    themeDescriptions.add(new ThemeDescription(avatarContainer != null ? avatarContainer.getSubtitleTextView() : null, ThemeDescription.FLAG_TEXTCOLOR | ThemeDescription.FLAG_CHECKTAG, null, new Paint[] { Theme.chat_statusPaint, Theme.chat_statusRecordPaint }, null, null, Theme.key_chat_status, null));
    themeDescriptions.add(new ThemeDescription(avatarContainer != null ? avatarContainer.getSubtitleTextView() : null, ThemeDescription.FLAG_TEXTCOLOR | ThemeDescription.FLAG_CHECKTAG, null, null, null, null, Theme.key_actionBarDefaultSubtitle, null));
    themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_SELECTORCOLOR, null, null, null, null, Theme.key_actionBarDefaultSelector));
    themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_SEARCH, null, null, null, null, Theme.key_actionBarDefaultSearch));
    themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_SEARCHPLACEHOLDER, null, null, null, null, Theme.key_actionBarDefaultSearchPlaceholder));
    themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_SEARCHPLACEHOLDER, null, null, null, null, Theme.key_actionBarDefaultSearchPlaceholder));
    themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_AM_ITEMSCOLOR, null, null, null, null, Theme.key_actionBarActionModeDefaultIcon));
    themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_AM_BACKGROUND, null, null, null, null, Theme.key_actionBarActionModeDefault));
    themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_AM_TOPBACKGROUND, null, null, null, null, Theme.key_actionBarActionModeDefaultTop));
    themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_AM_SELECTORCOLOR, null, null, null, null, Theme.key_actionBarActionModeDefaultSelector));
    themeDescriptions.add(new ThemeDescription(selectedMessagesCountTextView, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_actionBarActionModeDefaultIcon));
    themeDescriptions.add(new ThemeDescription(avatarContainer != null ? avatarContainer.getTitleTextView() : null, 0, null, null, new Drawable[] { Theme.chat_muteIconDrawable }, null, Theme.key_chat_muteIcon));
    themeDescriptions.add(new ThemeDescription(avatarContainer != null ? avatarContainer.getTitleTextView() : null, 0, null, null, new Drawable[] { Theme.chat_lockIconDrawable }, null, Theme.key_chat_lockIcon));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, Theme.avatarDrawables, null, Theme.key_avatar_text));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_avatar_backgroundRed));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_avatar_backgroundOrange));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_avatar_backgroundViolet));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_avatar_backgroundGreen));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_avatar_backgroundCyan));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_avatar_backgroundBlue));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_avatar_backgroundPink));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_avatar_nameInMessageRed));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_avatar_nameInMessageOrange));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_avatar_nameInMessageViolet));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_avatar_nameInMessageGreen));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_avatar_nameInMessageCyan));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_avatar_nameInMessageBlue));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_avatar_nameInMessagePink));
    Theme.MessageDrawable msgInDrawable = (Theme.MessageDrawable) getThemedDrawable(Theme.key_drawable_msgIn);
    Theme.MessageDrawable msgInMediaDrawable = (Theme.MessageDrawable) getThemedDrawable(Theme.key_drawable_msgInMedia);
    Theme.MessageDrawable msgInSelectedDrawable = (Theme.MessageDrawable) getThemedDrawable(Theme.key_drawable_msgInSelected);
    Theme.MessageDrawable msgInMediaSelectedDrawable = (Theme.MessageDrawable) getThemedDrawable(Theme.key_drawable_msgInMediaSelected);
    Theme.MessageDrawable msgOutDrawable = (Theme.MessageDrawable) getThemedDrawable(Theme.key_drawable_msgOut);
    Theme.MessageDrawable msgOutMediaDrawable = (Theme.MessageDrawable) getThemedDrawable(Theme.key_drawable_msgOutMedia);
    Theme.MessageDrawable msgOutSelectedDrawable = (Theme.MessageDrawable) getThemedDrawable(Theme.key_drawable_msgOutSelected);
    Theme.MessageDrawable msgOutMediaSelectedDrawable = (Theme.MessageDrawable) getThemedDrawable(Theme.key_drawable_msgOutMediaSelected);
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class, BotHelpCell.class }, null, new Drawable[] { msgInDrawable, msgInMediaDrawable }, null, Theme.key_chat_inBubble));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { msgInSelectedDrawable, msgInMediaSelectedDrawable }, null, Theme.key_chat_inBubbleSelected));
    if (msgInDrawable != null) {
        themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, msgInDrawable.getShadowDrawables(), null, Theme.key_chat_inBubbleShadow));
        themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, msgInMediaDrawable.getShadowDrawables(), null, Theme.key_chat_inBubbleShadow));
        themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, msgOutDrawable.getShadowDrawables(), null, Theme.key_chat_outBubbleShadow));
        themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, msgOutMediaDrawable.getShadowDrawables(), null, Theme.key_chat_outBubbleShadow));
    }
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { msgOutDrawable, msgOutMediaDrawable }, null, Theme.key_chat_outBubble));
    if (!themeDelegate.isThemeChangeAvailable()) {
        themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { msgOutDrawable, msgOutMediaDrawable }, null, Theme.key_chat_outBubbleGradient1));
        themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { msgOutDrawable, msgOutMediaDrawable }, null, Theme.key_chat_outBubbleGradient2));
        themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { msgOutDrawable, msgOutMediaDrawable }, null, Theme.key_chat_outBubbleGradient3));
    }
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { msgOutSelectedDrawable, msgOutMediaSelectedDrawable }, null, Theme.key_chat_outBubbleSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { msgOutSelectedDrawable, msgOutMediaSelectedDrawable }, null, Theme.key_chat_outBubbleGradientSelectedOverlay));
    themeDescriptions.add(new ThemeDescription(chatListView, ThemeDescription.FLAG_TEXTCOLOR, new Class[] { ChatActionCell.class }, getThemedPaint(Theme.key_paint_chatActionText), null, null, Theme.key_chat_serviceText));
    themeDescriptions.add(new ThemeDescription(chatListView, ThemeDescription.FLAG_LINKCOLOR, new Class[] { ChatActionCell.class }, getThemedPaint(Theme.key_paint_chatActionText), null, null, Theme.key_chat_serviceLink));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_botCardDrawalbe, getThemedDrawable(Theme.key_drawable_shareIcon), getThemedDrawable(Theme.key_drawable_replyIcon), getThemedDrawable(Theme.key_drawable_botInline), getThemedDrawable(Theme.key_drawable_botLink), getThemedDrawable(Theme.key_drawable_goIcon), getThemedDrawable(Theme.key_drawable_commentSticker) }, null, Theme.key_chat_serviceIcon));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class, ChatActionCell.class }, null, null, null, Theme.key_chat_serviceBackground));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class, ChatActionCell.class }, null, null, null, Theme.key_chat_serviceBackgroundSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class, BotHelpCell.class }, null, null, null, Theme.key_chat_messageTextIn));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_messageTextOut));
    themeDescriptions.add(new ThemeDescription(chatListView, ThemeDescription.FLAG_LINKCOLOR, new Class[] { ChatMessageCell.class, BotHelpCell.class }, null, null, null, Theme.key_chat_messageLinkIn, null));
    themeDescriptions.add(new ThemeDescription(chatListView, ThemeDescription.FLAG_LINKCOLOR, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_messageLinkOut, null));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_msgNoSoundDrawable }, null, Theme.key_chat_mediaTimeText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { getThemedDrawable(Theme.key_drawable_msgOutCheck) }, null, Theme.key_chat_outSentCheck));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { getThemedDrawable(Theme.key_drawable_msgOutCheckSelected) }, null, Theme.key_chat_outSentCheckSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { getThemedDrawable(Theme.key_drawable_msgOutCheckRead), getThemedDrawable(Theme.key_drawable_msgOutHalfCheck) }, null, Theme.key_chat_outSentCheckRead));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { getThemedDrawable(Theme.key_drawable_msgOutCheckReadSelected), getThemedDrawable(Theme.key_drawable_msgOutHalfCheckSelected) }, null, Theme.key_chat_outSentCheckReadSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outSentClock));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outSentClockSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inSentClock));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inSentClockSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_msgMediaCheckDrawable, Theme.chat_msgMediaHalfCheckDrawable }, null, Theme.key_chat_mediaSentCheck));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { getThemedDrawable(Theme.key_drawable_msgStickerHalfCheck), getThemedDrawable(Theme.key_drawable_msgStickerCheck), getThemedDrawable(Theme.key_drawable_msgStickerClock), getThemedDrawable(Theme.key_drawable_msgStickerViews), getThemedDrawable(Theme.key_drawable_msgStickerReplies), getThemedDrawable(Theme.key_drawable_msgStickerPinned) }, null, Theme.key_chat_serviceText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_mediaSentClock));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { getThemedDrawable(Theme.key_drawable_msgOutViews), getThemedDrawable(Theme.key_drawable_msgOutReplies), getThemedDrawable(Theme.key_drawable_msgOutPinned) }, null, Theme.key_chat_outViews));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { getThemedDrawable(Theme.key_drawable_msgOutViewsSelected), getThemedDrawable(Theme.key_drawable_msgOutRepliesSelected), getThemedDrawable(Theme.key_drawable_msgOutPinnedSelected) }, null, Theme.key_chat_outViewsSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_msgInViewsDrawable, Theme.chat_msgInRepliesDrawable, Theme.chat_msgInPinnedDrawable }, null, Theme.key_chat_inViews));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_msgInViewsSelectedDrawable, Theme.chat_msgInRepliesSelectedDrawable, Theme.chat_msgInPinnedSelectedDrawable }, null, Theme.key_chat_inViewsSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_msgMediaViewsDrawable, Theme.chat_msgMediaRepliesDrawable, Theme.chat_msgMediaPinnedDrawable }, null, Theme.key_chat_mediaViews));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { getThemedDrawable(Theme.key_drawable_msgOutMenu) }, null, Theme.key_chat_outMenu));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { getThemedDrawable(Theme.key_drawable_msgOutMenuSelected) }, null, Theme.key_chat_outMenuSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_msgInMenuDrawable }, null, Theme.key_chat_inMenu));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_msgInMenuSelectedDrawable }, null, Theme.key_chat_inMenuSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_msgMediaMenuDrawable }, null, Theme.key_chat_mediaMenu));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { getThemedDrawable(Theme.key_drawable_msgOutInstant) }, null, Theme.key_chat_outInstant));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_msgInInstantDrawable, Theme.chat_commentDrawable, Theme.chat_commentArrowDrawable }, null, Theme.key_chat_inInstant));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { getThemedDrawable(Theme.key_drawable_msgOutCallAudio), getThemedDrawable(Theme.key_drawable_msgOutCallVideo) }, null, Theme.key_chat_outInstant));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { getThemedDrawable(Theme.key_drawable_msgOutCallAudioSelected), getThemedDrawable(Theme.key_drawable_msgOutCallVideoSelected) }, null, Theme.key_chat_outInstant));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, Theme.chat_msgInCallDrawable, null, Theme.key_chat_inInstant));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, Theme.chat_msgInCallSelectedDrawable, null, Theme.key_chat_inInstantSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_msgCallUpGreenDrawable }, null, Theme.key_chat_outGreenCall));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_msgCallDownRedDrawable }, null, Theme.key_chat_inRedCall));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_msgCallDownGreenDrawable }, null, Theme.key_chat_inGreenCall));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, Theme.chat_msgErrorPaint, null, null, Theme.key_chat_sentError));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_msgErrorDrawable }, null, Theme.key_chat_sentErrorIcon));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, selectedBackgroundDelegate, Theme.key_chat_selectedBackground));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, Theme.chat_durationPaint, null, null, Theme.key_chat_previewDurationText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, Theme.chat_gamePaint, null, null, Theme.key_chat_previewGameText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inPreviewInstantText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outPreviewInstantText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inPreviewInstantSelectedText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outPreviewInstantSelectedText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, Theme.chat_deleteProgressPaint, null, null, Theme.key_chat_secretTimeText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_stickerNameText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, getThemedPaint(Theme.key_paint_chatBotButton), null, null, Theme.key_chat_botButtonText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, Theme.chat_botProgressPaint, null, null, Theme.key_chat_botProgress));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, getThemedPaint(Theme.key_paint_chatTimeBackground), null, null, Theme.key_chat_mediaTimeBackground));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inForwardedNameText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outForwardedNameText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inPsaNameText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outPsaNameText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inViaBotNameText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outViaBotNameText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_stickerViaBotNameText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inReplyLine));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outReplyLine));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_stickerReplyLine));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inReplyNameText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outReplyNameText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_stickerReplyNameText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inReplyMessageText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outReplyMessageText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inReplyMediaMessageText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outReplyMediaMessageText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inReplyMediaMessageSelectedText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outReplyMediaMessageSelectedText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_stickerReplyMessageText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inPreviewLine));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outPreviewLine));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inSiteNameText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outSiteNameText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inContactNameText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outContactNameText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inContactPhoneText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inContactPhoneSelectedText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outContactPhoneText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outContactPhoneSelectedText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_mediaProgress));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inAudioProgress));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outAudioProgress));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inAudioSelectedProgress));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outAudioSelectedProgress));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_mediaTimeText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inTimeText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outTimeText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inTimeSelectedText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inAdminText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inAdminSelectedText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outAdminText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outAdminSelectedText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outTimeSelectedText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inAudioPerformerText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inAudioPerformerSelectedText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outAudioPerformerText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outAudioPerformerSelectedText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inAudioTitleText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outAudioTitleText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inAudioDurationText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outAudioDurationText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inAudioDurationSelectedText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outAudioDurationSelectedText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inAudioSeekbar));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outAudioSeekbar));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inAudioSeekbarSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outAudioSeekbarSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inAudioSeekbarFill));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inAudioCacheSeekbar));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outAudioSeekbarFill));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outAudioCacheSeekbar));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inVoiceSeekbar));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outVoiceSeekbar));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inVoiceSeekbarSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outVoiceSeekbarSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inVoiceSeekbarFill));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outVoiceSeekbarFill));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inFileProgress));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outFileProgress));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inFileProgressSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outFileProgressSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inFileNameText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outFileNameText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inFileInfoText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outFileInfoText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inFileInfoSelectedText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outFileInfoSelectedText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inFileBackground));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outFileBackground));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inFileBackgroundSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outFileBackgroundSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inVenueInfoText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outVenueInfoText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inVenueInfoSelectedText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outVenueInfoSelectedText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_mediaInfoText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, Theme.chat_urlPaint, null, null, Theme.key_chat_linkSelectBackground));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, Theme.chat_textSearchSelectionPaint, null, null, Theme.key_chat_textSelectBackground));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outLoader));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outMediaIcon));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outLoaderSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outMediaIconSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inLoader));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inMediaIcon));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inLoaderSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inMediaIconSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, ThemeDescription.FLAG_BACKGROUNDFILTER, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_photoStatesDrawables[0][0], Theme.chat_photoStatesDrawables[1][0], Theme.chat_photoStatesDrawables[2][0], Theme.chat_photoStatesDrawables[3][0] }, null, Theme.key_chat_mediaLoaderPhoto));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_photoStatesDrawables[0][0], Theme.chat_photoStatesDrawables[1][0], Theme.chat_photoStatesDrawables[2][0], Theme.chat_photoStatesDrawables[3][0] }, null, Theme.key_chat_mediaLoaderPhotoIcon));
    themeDescriptions.add(new ThemeDescription(chatListView, ThemeDescription.FLAG_BACKGROUNDFILTER, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_photoStatesDrawables[0][1], Theme.chat_photoStatesDrawables[1][1], Theme.chat_photoStatesDrawables[2][1], Theme.chat_photoStatesDrawables[3][1] }, null, Theme.key_chat_mediaLoaderPhotoSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_photoStatesDrawables[0][1], Theme.chat_photoStatesDrawables[1][1], Theme.chat_photoStatesDrawables[2][1], Theme.chat_photoStatesDrawables[3][1] }, null, Theme.key_chat_mediaLoaderPhotoIconSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, ThemeDescription.FLAG_BACKGROUNDFILTER, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_photoStatesDrawables[7][0], Theme.chat_photoStatesDrawables[8][0] }, null, Theme.key_chat_outLoaderPhoto));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_photoStatesDrawables[7][0], Theme.chat_photoStatesDrawables[8][0] }, null, Theme.key_chat_outLoaderPhotoIcon));
    themeDescriptions.add(new ThemeDescription(chatListView, ThemeDescription.FLAG_BACKGROUNDFILTER, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_photoStatesDrawables[7][1], Theme.chat_photoStatesDrawables[8][1] }, null, Theme.key_chat_outLoaderPhotoSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_photoStatesDrawables[7][1], Theme.chat_photoStatesDrawables[8][1] }, null, Theme.key_chat_outLoaderPhotoIconSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, ThemeDescription.FLAG_BACKGROUNDFILTER, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_photoStatesDrawables[10][0], Theme.chat_photoStatesDrawables[11][0] }, null, Theme.key_chat_inLoaderPhoto));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_photoStatesDrawables[10][0], Theme.chat_photoStatesDrawables[11][0] }, null, Theme.key_chat_inLoaderPhotoIcon));
    themeDescriptions.add(new ThemeDescription(chatListView, ThemeDescription.FLAG_BACKGROUNDFILTER, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_photoStatesDrawables[10][1], Theme.chat_photoStatesDrawables[11][1] }, null, Theme.key_chat_inLoaderPhotoSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_photoStatesDrawables[10][1], Theme.chat_photoStatesDrawables[11][1] }, null, Theme.key_chat_inLoaderPhotoIconSelected));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_photoStatesDrawables[9][0] }, null, Theme.key_chat_outFileIcon));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_photoStatesDrawables[9][1] }, null, Theme.key_chat_outFileSelectedIcon));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_photoStatesDrawables[12][0] }, null, Theme.key_chat_inFileIcon));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_photoStatesDrawables[12][1] }, null, Theme.key_chat_inFileSelectedIcon));
    themeDescriptions.add(new ThemeDescription(chatListView, ThemeDescription.FLAG_BACKGROUNDFILTER, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_contactDrawable[0] }, null, Theme.key_chat_inContactBackground));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_contactDrawable[0] }, null, Theme.key_chat_inContactIcon));
    themeDescriptions.add(new ThemeDescription(chatListView, ThemeDescription.FLAG_BACKGROUNDFILTER, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_contactDrawable[1] }, null, Theme.key_chat_outContactBackground));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_contactDrawable[1] }, null, Theme.key_chat_outContactIcon));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inLocationBackground));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_locationDrawable[0] }, null, Theme.key_chat_inLocationIcon));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outLocationBackground));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_locationDrawable[1] }, null, Theme.key_chat_outLocationIcon));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inPollCorrectAnswer));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outPollCorrectAnswer));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_inPollWrongAnswer));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, null, null, Theme.key_chat_outPollWrongAnswer));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_pollHintDrawable[0] }, null, Theme.key_chat_inPreviewInstantText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_pollHintDrawable[1] }, null, Theme.key_chat_outPreviewInstantText));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_psaHelpDrawable[0] }, null, Theme.key_chat_inViews));
    themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[] { ChatMessageCell.class }, null, new Drawable[] { Theme.chat_psaHelpDrawable[1] }, null, Theme.key_chat_outViews));
    if (!themeDelegate.isThemeChangeAvailable()) {
        themeDescriptions.add(new ThemeDescription(messagesSearchListView, 0, new Class[] { DialogCell.class }, null, Theme.avatarDrawables, null, Theme.key_avatar_text));
        themeDescriptions.add(new ThemeDescription(messagesSearchListView, 0, new Class[] { DialogCell.class }, Theme.dialogs_countPaint, null, null, Theme.key_chats_unreadCounter));
        themeDescriptions.add(new ThemeDescription(messagesSearchListView, 0, new Class[] { DialogCell.class }, null, new Paint[] { Theme.dialogs_namePaint[0], Theme.dialogs_namePaint[1], Theme.dialogs_searchNamePaint }, null, null, Theme.key_chats_name));
        themeDescriptions.add(new ThemeDescription(messagesSearchListView, 0, new Class[] { DialogCell.class }, null, new Paint[] { Theme.dialogs_nameEncryptedPaint[0], Theme.dialogs_nameEncryptedPaint[1], Theme.dialogs_searchNameEncryptedPaint }, null, null, Theme.key_chats_secretName));
        themeDescriptions.add(new ThemeDescription(messagesSearchListView, 0, new Class[] { DialogCell.class }, null, new Drawable[] { Theme.dialogs_lockDrawable }, null, Theme.key_chats_secretIcon));
        themeDescriptions.add(new ThemeDescription(messagesSearchListView, 0, new Class[] { DialogCell.class }, null, new Drawable[] { Theme.dialogs_groupDrawable, Theme.dialogs_broadcastDrawable, Theme.dialogs_botDrawable }, null, Theme.key_chats_nameIcon));
        themeDescriptions.add(new ThemeDescription(messagesSearchListView, 0, new Class[] { DialogCell.class }, null, new Drawable[] { Theme.dialogs_scamDrawable, Theme.dialogs_fakeDrawable }, null, Theme.key_chats_draft));
        themeDescriptions.add(new ThemeDescription(messagesSearchListView, 0, new Class[] { DialogCell.class }, Theme.dialogs_messagePaint[1], null, null, Theme.key_chats_message_threeLines));
        themeDescriptions.add(new ThemeDescription(messagesSearchListView, 0, new Class[] { DialogCell.class }, Theme.dialogs_messageNamePaint, null, null, Theme.key_chats_nameMessage_threeLines));
        themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chats_nameMessage));
        themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chats_attachMessage));
        themeDescriptions.add(new ThemeDescription(messagesSearchListView, 0, new Class[] { DialogCell.class }, null, Theme.dialogs_messagePrintingPaint, null, null, Theme.key_chats_actionMessage));
        themeDescriptions.add(new ThemeDescription(messagesSearchListView, 0, new Class[] { DialogCell.class }, Theme.dialogs_timePaint, null, null, Theme.key_chats_date));
        themeDescriptions.add(new ThemeDescription(messagesSearchListView, 0, new Class[] { DialogCell.class }, null, new Drawable[] { Theme.dialogs_checkDrawable }, null, Theme.key_chats_sentCheck));
        themeDescriptions.add(new ThemeDescription(messagesSearchListView, 0, new Class[] { DialogCell.class }, null, new Drawable[] { Theme.dialogs_checkReadDrawable, Theme.dialogs_halfCheckDrawable }, null, Theme.key_chats_sentReadCheck));
    }
    themeDescriptions.add(new ThemeDescription(mentionContainer, 0, null, getThemedPaint(Theme.key_paint_chatComposeBackground), null, null, Theme.key_chat_messagePanelBackground));
    themeDescriptions.add(new ThemeDescription(mentionContainer, 0, null, null, new Drawable[] { Theme.chat_composeShadowDrawable }, null, Theme.key_chat_messagePanelShadow));
    themeDescriptions.add(new ThemeDescription(mentionContainer, 0, null, null, new Drawable[] { Theme.chat_composeShadowRoundDrawable }, null, Theme.key_chat_messagePanelBackground));
    themeDescriptions.add(new ThemeDescription(searchContainer, 0, null, getThemedPaint(Theme.key_paint_chatComposeBackground), null, null, Theme.key_chat_messagePanelBackground));
    themeDescriptions.add(new ThemeDescription(searchContainer, 0, null, null, new Drawable[] { Theme.chat_composeShadowDrawable }, null, Theme.key_chat_messagePanelShadow));
    themeDescriptions.add(new ThemeDescription(bottomOverlay, 0, null, getThemedPaint(Theme.key_paint_chatComposeBackground), null, null, Theme.key_chat_messagePanelBackground));
    themeDescriptions.add(new ThemeDescription(bottomOverlay, 0, null, null, new Drawable[] { Theme.chat_composeShadowDrawable }, null, Theme.key_chat_messagePanelShadow));
    themeDescriptions.add(new ThemeDescription(bottomOverlayChat, 0, null, getThemedPaint(Theme.key_paint_chatComposeBackground), null, null, Theme.key_chat_messagePanelBackground));
    themeDescriptions.add(new ThemeDescription(bottomOverlayChat, 0, null, null, new Drawable[] { Theme.chat_composeShadowDrawable }, null, Theme.key_chat_messagePanelShadow));
    themeDescriptions.add(new ThemeDescription(bottomMessagesActionContainer, 0, null, getThemedPaint(Theme.key_paint_chatComposeBackground), null, null, Theme.key_chat_messagePanelBackground));
    themeDescriptions.add(new ThemeDescription(bottomMessagesActionContainer, 0, null, null, new Drawable[] { Theme.chat_composeShadowDrawable }, null, Theme.key_chat_messagePanelShadow));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, null, getThemedPaint(Theme.key_paint_chatComposeBackground), null, null, Theme.key_chat_messagePanelBackground));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, null, null, new Drawable[] { Theme.chat_composeShadowDrawable }, null, Theme.key_chat_messagePanelShadow));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, ThemeDescription.FLAG_TEXTCOLOR, new Class[] { ChatActivityEnterView.class }, new String[] { "messageEditText" }, null, null, null, Theme.key_chat_messagePanelText));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, ThemeDescription.FLAG_CURSORCOLOR, new Class[] { ChatActivityEnterView.class }, new String[] { "messageEditText" }, null, null, null, Theme.key_chat_messagePanelCursor));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, ThemeDescription.FLAG_HINTTEXTCOLOR, new Class[] { ChatActivityEnterView.class }, new String[] { "messageEditText" }, null, null, null, Theme.key_chat_messagePanelHint));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, ThemeDescription.FLAG_IMAGECOLOR, new Class[] { ChatActivityEnterView.class }, new String[] { "sendButton" }, null, null, null, Theme.key_chat_messagePanelSend));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, ThemeDescription.FLAG_USEBACKGROUNDDRAWABLE | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, new Class[] { ChatActivityEnterView.class }, new String[] { "sendButton" }, null, null, 24, null, Theme.key_chat_messagePanelSend));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, new Class[] { ChatActivityEnterView.class }, new String[] { "botButton" }, null, null, null, Theme.key_chat_messagePanelIcons));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, ThemeDescription.FLAG_USEBACKGROUNDDRAWABLE | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, new Class[] { ChatActivityEnterView.class }, new String[] { "botButton" }, null, null, null, Theme.key_listSelector));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, new Class[] { ChatActivityEnterView.class }, new String[] { "notifyButton" }, null, null, null, Theme.key_chat_messagePanelIcons));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, ThemeDescription.FLAG_IMAGECOLOR | ThemeDescription.FLAG_BACKGROUNDFILTER, new Class[] { ChatActivityEnterView.class }, new String[] { "scheduledButton" }, null, null, null, Theme.key_chat_messagePanelIcons));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, ThemeDescription.FLAG_IMAGECOLOR, new Class[] { ChatActivityEnterView.class }, new String[] { "scheduledButton" }, null, null, null, Theme.key_chat_recordedVoiceDot));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, ThemeDescription.FLAG_USEBACKGROUNDDRAWABLE | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, new Class[] { ChatActivityEnterView.class }, new String[] { "scheduledButton" }, null, null, null, Theme.key_listSelector));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, new Class[] { ChatActivityEnterView.class }, new String[] { "attachButton" }, null, null, null, Theme.key_chat_messagePanelIcons));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, ThemeDescription.FLAG_USEBACKGROUNDDRAWABLE | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, new Class[] { ChatActivityEnterView.class }, new String[] { "attachButton" }, null, null, null, Theme.key_listSelector));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, new Class[] { ChatActivityEnterView.class }, new String[] { "audioSendButton" }, null, null, null, Theme.key_chat_messagePanelIcons));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, new Class[] { ChatActivityEnterView.class }, new String[] { "videoSendButton" }, null, null, null, Theme.key_chat_messagePanelIcons));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, new Class[] { ChatActivityEnterView.class }, new String[] { "notifyButton" }, null, null, null, Theme.key_chat_messagePanelVideoFrame));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, ThemeDescription.FLAG_USEBACKGROUNDDRAWABLE | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, new Class[] { ChatActivityEnterView.class }, new String[] { "notifyButton" }, null, null, null, Theme.key_listSelector));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, new Class[] { ChatActivityEnterView.class }, new String[] { "videoTimelineView" }, null, null, null, Theme.key_chat_messagePanelSend));
    // themeDescriptions.add(new ThemeDescription(chatActivityEnterView, ThemeDescription.FLAG_IMAGECOLOR, new Class[]{ChatActivityEnterView.class}, new String[]{"doneButtonImage"}, null, null, null, Theme.key_chat_messagePanelBackground));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, new Class[] { ChatActivityEnterView.class }, new String[] { "micDrawable" }, null, null, null, Theme.key_chat_messagePanelVoicePressed));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, new Class[] { ChatActivityEnterView.class }, new String[] { "cameraDrawable" }, null, null, null, Theme.key_chat_messagePanelVoicePressed));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, new Class[] { ChatActivityEnterView.class }, new String[] { "sendDrawable" }, null, null, null, Theme.key_chat_messagePanelVoicePressed));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, null, null, null, null, Theme.key_chat_messagePanelVoiceLock));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, new Class[] { ChatActivityEnterView.class }, null, null, null, Theme.key_chat_messagePanelVoiceLockBackground));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, new Class[] { ChatActivityEnterView.class }, new String[] { "lockShadowDrawable" }, null, null, null, Theme.key_chat_messagePanelVoiceLockShadow));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, ThemeDescription.FLAG_USEBACKGROUNDDRAWABLE | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, new Class[] { ChatActivityEnterView.class }, new String[] { "recordDeleteImageView" }, null, null, null, Theme.key_listSelector));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, ThemeDescription.FLAG_BACKGROUNDFILTER, new Class[] { ChatActivityEnterView.class }, new String[] { "recordedAudioBackground" }, null, null, null, Theme.key_chat_recordedVoiceBackground));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, null, null, null, null, Theme.key_chat_recordTime));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, null, null, null, null, Theme.key_chat_recordVoiceCancel));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, ThemeDescription.FLAG_TEXTCOLOR, new Class[] { ChatActivityEnterView.class }, new String[] { "recordedAudioTimeTextView" }, null, null, null, Theme.key_chat_messagePanelVoiceDuration));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, null, null, null, null, Theme.key_chat_recordVoiceCancel));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, new Class[] { ChatActivityEnterView.class }, new String[] { "doneButtonProgress" }, null, null, null, Theme.key_contextProgressInner1));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, new Class[] { ChatActivityEnterView.class }, new String[] { "doneButtonProgress" }, null, null, null, Theme.key_contextProgressOuter1));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, ThemeDescription.FLAG_IMAGECOLOR, new Class[] { ChatActivityEnterView.class }, new String[] { "cancelBotButton" }, null, null, null, Theme.key_chat_messagePanelCancelInlineBot));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, ThemeDescription.FLAG_USEBACKGROUNDDRAWABLE | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, new Class[] { ChatActivityEnterView.class }, new String[] { "cancelBotButton" }, null, null, null, Theme.key_listSelector));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, new Class[] { ChatActivityEnterView.class }, new String[] { "redDotPaint" }, null, null, null, Theme.key_chat_recordedVoiceDot));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, new Class[] { ChatActivityEnterView.class }, new String[] { "paint" }, null, null, null, Theme.key_chat_messagePanelVoiceBackground));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, new Class[] { ChatActivityEnterView.class }, new String[] { "seekBarWaveform" }, null, null, null, Theme.key_chat_recordedVoiceProgress));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, new Class[] { ChatActivityEnterView.class }, new String[] { "seekBarWaveform" }, null, null, null, Theme.key_chat_recordedVoiceProgressInner));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, new Class[] { ChatActivityEnterView.class }, new String[] { "dotPaint" }, null, null, null, Theme.key_chat_emojiPanelNewTrending));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView, 0, new Class[] { ChatActivityEnterView.class }, null, null, null, selectedBackgroundDelegate, Theme.key_chat_recordedVoicePlayPause));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : null, 0, new Class[] { EmojiView.class }, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelBackground));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : null, 0, new Class[] { EmojiView.class }, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelShadowLine));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : null, 0, new Class[] { EmojiView.class }, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelEmptyText));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : null, 0, new Class[] { EmojiView.class }, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelIcon));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : null, 0, new Class[] { EmojiView.class }, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelIconSelected));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : null, 0, new Class[] { EmojiView.class }, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelStickerPackSelector));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : null, 0, new Class[] { EmojiView.class }, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelBackspace));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : null, 0, new Class[] { EmojiView.class }, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelTrendingTitle));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : null, 0, new Class[] { EmojiView.class }, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelTrendingDescription));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : null, 0, new Class[] { EmojiView.class }, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelBadgeText));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : null, 0, new Class[] { EmojiView.class }, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelBadgeBackground));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : null, 0, new Class[] { EmojiView.class }, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiBottomPanelIcon));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : null, 0, new Class[] { EmojiView.class }, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiSearchIcon));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : null, 0, new Class[] { EmojiView.class }, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelStickerSetNameHighlight));
    themeDescriptions.add(new ThemeDescription(chatActivityEnterView != null ? chatActivityEnterView.getEmojiView() : null, 0, new Class[] { EmojiView.class }, null, null, null, selectedBackgroundDelegate, Theme.key_chat_emojiPanelStickerPackSelectorLine));
    if (chatActivityEnterView != null) {
        final TrendingStickersAlert trendingStickersAlert = chatActivityEnterView.getTrendingStickersAlert();
        if (trendingStickersAlert != null) {
            themeDescriptions.addAll(trendingStickersAlert.getThemeDescriptions());
        }
        themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, new Drawable[] { chatActivityEnterView.getStickersArrowDrawable() }, null, Theme.key_chat_messagePanelIcons));
    }
    for (int a = 0; a < 2; a++) {
        UndoView v = a == 0 ? undoView : topUndoView;
        themeDescriptions.add(new ThemeDescription(v, ThemeDescription.FLAG_BACKGROUNDFILTER, null, null, null, null, Theme.key_undo_background));
        themeDescriptions.add(new ThemeDescription(v, 0, new Class[] { UndoView.class }, new String[] { "undoImageView" }, null, null, null, Theme.key_undo_cancelColor));
        themeDescriptions.add(new ThemeDescription(v, 0, new Class[] { UndoView.class }, new String[] { "undoTextView" }, null, null, null, Theme.key_undo_cancelColor));
        themeDescriptions.add(new ThemeDescription(v, 0, new Class[] { UndoView.class }, new String[] { "infoTextView" }, null, null, null, Theme.key_undo_infoColor));
        themeDescriptions.add(new ThemeDescription(v, 0, new Class[] { UndoView.class }, new String[] { "subinfoTextView" }, null, null, null, Theme.key_undo_infoColor));
        themeDescriptions.add(new ThemeDescription(v, ThemeDescription.FLAG_LINKCOLOR, new Class[] { UndoView.class }, new String[] { "subinfoTextView" }, null, null, null, Theme.key_undo_cancelColor));
        themeDescriptions.add(new ThemeDescription(v, 0, new Class[] { UndoView.class }, new String[] { "textPaint" }, null, null, null, Theme.key_undo_infoColor));
        themeDescriptions.add(new ThemeDescription(v, 0, new Class[] { UndoView.class }, new String[] { "progressPaint" }, null, null, null, Theme.key_undo_infoColor));
        themeDescriptions.add(new ThemeDescription(v, ThemeDescription.FLAG_IMAGECOLOR, new Class[] { UndoView.class }, new String[] { "leftImageView" }, null, null, null, Theme.key_undo_infoColor));
    }
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_chat_botKeyboardButtonText));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_chat_botKeyboardButtonBackground));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_chat_botKeyboardButtonBackgroundPressed));
    themeDescriptions.add(new ThemeDescription(fragmentView, ThemeDescription.FLAG_BACKGROUND | ThemeDescription.FLAG_CHECKTAG, new Class[] { FragmentContextView.class }, new String[] { "frameLayout" }, null, null, null, Theme.key_inappPlayerBackground));
    themeDescriptions.add(new ThemeDescription(fragmentView, ThemeDescription.FLAG_IMAGECOLOR, new Class[] { FragmentContextView.class }, new String[] { "playButton" }, null, null, null, Theme.key_inappPlayerPlayPause));
    themeDescriptions.add(new ThemeDescription(fragmentView, ThemeDescription.FLAG_TEXTCOLOR | ThemeDescription.FLAG_CHECKTAG, new Class[] { FragmentContextView.class }, new String[] { "titleTextView" }, null, null, null, Theme.key_inappPlayerTitle));
    themeDescriptions.add(new ThemeDescription(fragmentView, ThemeDescription.FLAG_TEXTCOLOR | ThemeDescription.FLAG_CHECKTAG, new Class[] { FragmentContextView.class }, new String[] { "titleTextView" }, null, null, null, Theme.key_inappPlayerPerformer));
    themeDescriptions.add(new ThemeDescription(fragmentView, ThemeDescription.FLAG_TEXTCOLOR | ThemeDescription.FLAG_FASTSCROLL, new Class[] { FragmentContextView.class }, new String[] { "subtitleTextView" }, null, null, null, Theme.key_inappPlayerClose));
    themeDescriptions.add(new ThemeDescription(fragmentView, ThemeDescription.FLAG_IMAGECOLOR, new Class[] { FragmentContextView.class }, new String[] { "closeButton" }, null, null, null, Theme.key_inappPlayerClose));
    themeDescriptions.add(new ThemeDescription(fragmentView, ThemeDescription.FLAG_BACKGROUND | ThemeDescription.FLAG_CHECKTAG, new Class[] { FragmentContextView.class }, new String[] { "frameLayout" }, null, null, null, Theme.key_returnToCallBackground));
    themeDescriptions.add(new ThemeDescription(fragmentView, ThemeDescription.FLAG_TEXTCOLOR | ThemeDescription.FLAG_CHECKTAG, new Class[] { FragmentContextView.class }, new String[] { "titleTextView" }, null, null, null, Theme.key_returnToCallText));
    themeDescriptions.add(new ThemeDescription(pinnedLineView, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_topPanelLine));
    themeDescriptions.add(new ThemeDescription(pinnedLineView, 0, null, null, null, selectedBackgroundDelegate, Theme.key_windowBackgroundWhite));
    themeDescriptions.add(new ThemeDescription(pinnedCounterTextView, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_topPanelTitle));
    for (int a = 0; a < 2; a++) {
        themeDescriptions.add(new ThemeDescription(pinnedNameTextView[a], ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_topPanelTitle));
        themeDescriptions.add(new ThemeDescription(pinnedMessageTextView[a], ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_topPanelMessage));
    }
    themeDescriptions.add(new ThemeDescription(alertNameTextView, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_topPanelTitle));
    themeDescriptions.add(new ThemeDescription(alertTextView, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_topPanelMessage));
    themeDescriptions.add(new ThemeDescription(closePinned, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_topPanelClose));
    themeDescriptions.add(new ThemeDescription(pinnedListButton, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_topPanelClose));
    themeDescriptions.add(new ThemeDescription(closeReportSpam, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_topPanelClose));
    themeDescriptions.add(new ThemeDescription(topChatPanelView, ThemeDescription.FLAG_BACKGROUNDFILTER, null, null, null, null, Theme.key_chat_topPanelBackground));
    themeDescriptions.add(new ThemeDescription(alertView, ThemeDescription.FLAG_BACKGROUNDFILTER, null, null, null, null, Theme.key_chat_topPanelBackground));
    themeDescriptions.add(new ThemeDescription(pinnedMessageView, ThemeDescription.FLAG_BACKGROUNDFILTER, null, null, null, null, Theme.key_chat_topPanelBackground));
    themeDescriptions.add(new ThemeDescription(addToContactsButton, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_addContact));
    themeDescriptions.add(new ThemeDescription(reportSpamButton, ThemeDescription.FLAG_TEXTCOLOR | ThemeDescription.FLAG_CHECKTAG, null, null, null, null, Theme.key_chat_reportSpam));
    themeDescriptions.add(new ThemeDescription(reportSpamButton, ThemeDescription.FLAG_TEXTCOLOR | ThemeDescription.FLAG_CHECKTAG, null, null, null, null, Theme.key_chat_addContact));
    themeDescriptions.add(new ThemeDescription(replyLineView, ThemeDescription.FLAG_BACKGROUND, null, null, null, null, Theme.key_chat_replyPanelLine));
    themeDescriptions.add(new ThemeDescription(replyNameTextView, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_replyPanelName));
    themeDescriptions.add(new ThemeDescription(replyObjectTextView, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteGrayText));
    themeDescriptions.add(new ThemeDescription(replyObjectHintTextView, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteGrayText));
    themeDescriptions.add(new ThemeDescription(replyIconImageView, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_replyPanelIcons));
    themeDescriptions.add(new ThemeDescription(replyCloseImageView, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_replyPanelClose));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_replyPanelName));
    themeDescriptions.add(new ThemeDescription(searchUpButton, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_searchPanelIcons));
    themeDescriptions.add(new ThemeDescription(searchUpButton, ThemeDescription.FLAG_BACKGROUNDFILTER | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, null, null, null, null, Theme.key_actionBarActionModeDefaultSelector));
    themeDescriptions.add(new ThemeDescription(searchDownButton, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_searchPanelIcons));
    themeDescriptions.add(new ThemeDescription(searchDownButton, ThemeDescription.FLAG_BACKGROUNDFILTER | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, null, null, null, null, Theme.key_actionBarActionModeDefaultSelector));
    themeDescriptions.add(new ThemeDescription(searchCalendarButton, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_searchPanelIcons));
    themeDescriptions.add(new ThemeDescription(searchCalendarButton, ThemeDescription.FLAG_BACKGROUNDFILTER | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, null, null, null, null, Theme.key_actionBarActionModeDefaultSelector));
    themeDescriptions.add(new ThemeDescription(searchUserButton, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_searchPanelIcons));
    themeDescriptions.add(new ThemeDescription(searchUserButton, ThemeDescription.FLAG_BACKGROUNDFILTER | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, null, null, null, null, Theme.key_actionBarActionModeDefaultSelector));
    themeDescriptions.add(new ThemeDescription(searchCountText, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_searchPanelText));
    themeDescriptions.add(new ThemeDescription(searchAsListTogglerView, ThemeDescription.FLAG_BACKGROUNDFILTER | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, null, null, null, null, Theme.key_actionBarActionModeDefaultSelector));
    themeDescriptions.add(new ThemeDescription(replyButton, ThemeDescription.FLAG_TEXTCOLOR | ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_actionBarActionModeDefaultIcon));
    themeDescriptions.add(new ThemeDescription(replyButton, ThemeDescription.FLAG_BACKGROUNDFILTER | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, null, null, null, null, Theme.key_actionBarActionModeDefaultSelector));
    themeDescriptions.add(new ThemeDescription(forwardButton, ThemeDescription.FLAG_TEXTCOLOR | ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_actionBarActionModeDefaultIcon));
    themeDescriptions.add(new ThemeDescription(forwardButton, ThemeDescription.FLAG_BACKGROUNDFILTER | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, null, null, null, null, Theme.key_actionBarActionModeDefaultSelector));
    themeDescriptions.add(new ThemeDescription(bottomOverlayText, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_secretChatStatusText));
    themeDescriptions.add(new ThemeDescription(bottomOverlayChatText, 0, null, null, null, null, Theme.key_chat_fieldOverlayText));
    themeDescriptions.add(new ThemeDescription(bottomOverlayChatText, 0, null, null, null, null, Theme.key_chat_goDownButtonCounterBackground));
    themeDescriptions.add(new ThemeDescription(bottomOverlayChatText, 0, null, null, null, null, Theme.key_chat_messagePanelBackground));
    themeDescriptions.add(new ThemeDescription(bottomOverlayProgress, 0, null, null, null, null, Theme.key_chat_fieldOverlayText));
    themeDescriptions.add(new ThemeDescription(bottomOverlayImage, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_fieldOverlayText));
    themeDescriptions.add(new ThemeDescription(bigEmptyView, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_serviceText));
    themeDescriptions.add(new ThemeDescription(emptyView, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_serviceText));
    themeDescriptions.add(new ThemeDescription(progressBar, ThemeDescription.FLAG_PROGRESSBAR, null, null, null, null, Theme.key_chat_serviceText));
    themeDescriptions.add(new ThemeDescription(stickersPanelArrow, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_stickersHintPanel));
    themeDescriptions.add(new ThemeDescription(stickersListView, ThemeDescription.FLAG_BACKGROUNDFILTER, new Class[] { StickerCell.class }, null, null, null, Theme.key_chat_stickersHintPanel));
    themeDescriptions.add(new ThemeDescription(chatListView, ThemeDescription.FLAG_USEBACKGROUNDDRAWABLE, new Class[] { ChatUnreadCell.class }, new String[] { "backgroundLayout" }, null, null, null, Theme.key_chat_unreadMessagesStartBackground));
    themeDescriptions.add(new ThemeDescription(chatListView, ThemeDescription.FLAG_IMAGECOLOR, new Class[] { ChatUnreadCell.class }, new String[] { "imageView" }, null, null, null, Theme.key_chat_unreadMessagesStartArrowIcon));
    themeDescriptions.add(new ThemeDescription(chatListView, ThemeDescription.FLAG_TEXTCOLOR, new Class[] { ChatUnreadCell.class }, new String[] { "textView" }, null, null, null, Theme.key_chat_unreadMessagesStartText));
    themeDescriptions.add(new ThemeDescription(progressView2, ThemeDescription.FLAG_SERVICEBACKGROUND, null, null, null, null, Theme.key_chat_serviceBackground));
    themeDescriptions.add(new ThemeDescription(emptyView, ThemeDescription.FLAG_SERVICEBACKGROUND, null, null, null, null, Theme.key_chat_serviceBackground));
    themeDescriptions.add(new ThemeDescription(bigEmptyView, ThemeDescription.FLAG_SERVICEBACKGROUND, null, null, null, null, Theme.key_chat_serviceBackground));
    themeDescriptions.add(new ThemeDescription(chatListView, ThemeDescription.FLAG_SERVICEBACKGROUND, new Class[] { ChatLoadingCell.class }, new String[] { "textView" }, null, null, null, Theme.key_chat_serviceBackground));
    themeDescriptions.add(new ThemeDescription(chatListView, ThemeDescription.FLAG_PROGRESSBAR, new Class[] { ChatLoadingCell.class }, new String[] { "textView" }, null, null, null, Theme.key_chat_serviceText));
    themeDescriptions.add(new ThemeDescription(mentionListView, ThemeDescription.FLAG_TEXTCOLOR, new Class[] { BotSwitchCell.class }, new String[] { "textView" }, null, null, null, Theme.key_chat_botSwitchToInlineText));
    themeDescriptions.add(new ThemeDescription(mentionListView, ThemeDescription.FLAG_TEXTCOLOR, new Class[] { MentionCell.class }, new String[] { "nameTextView" }, null, null, null, Theme.key_windowBackgroundWhiteBlackText));
    themeDescriptions.add(new ThemeDescription(mentionListView, ThemeDescription.FLAG_TEXTCOLOR, new Class[] { MentionCell.class }, new String[] { "usernameTextView" }, null, null, null, Theme.key_windowBackgroundWhiteGrayText3));
    themeDescriptions.add(new ThemeDescription(mentionListView, 0, new Class[] { ContextLinkCell.class }, null, new Drawable[] { Theme.chat_inlineResultFile, Theme.chat_inlineResultAudio, Theme.chat_inlineResultLocation }, null, Theme.key_chat_inlineResultIcon));
    themeDescriptions.add(new ThemeDescription(mentionListView, 0, new Class[] { ContextLinkCell.class }, null, null, null, Theme.key_windowBackgroundWhiteGrayText2));
    themeDescriptions.add(new ThemeDescription(mentionListView, 0, new Class[] { ContextLinkCell.class }, null, null, null, Theme.key_windowBackgroundWhiteLinkText));
    themeDescriptions.add(new ThemeDescription(mentionListView, 0, new Class[] { ContextLinkCell.class }, null, null, null, Theme.key_windowBackgroundWhiteBlackText));
    themeDescriptions.add(new ThemeDescription(mentionListView, 0, new Class[] { ContextLinkCell.class }, null, null, null, Theme.key_chat_inAudioProgress));
    themeDescriptions.add(new ThemeDescription(mentionListView, 0, new Class[] { ContextLinkCell.class }, null, null, null, Theme.key_chat_inAudioSelectedProgress));
    themeDescriptions.add(new ThemeDescription(mentionListView, 0, new Class[] { ContextLinkCell.class }, null, null, null, Theme.key_divider));
    themeDescriptions.add(new ThemeDescription(gifHintTextView, ThemeDescription.FLAG_BACKGROUNDFILTER, null, null, null, null, Theme.key_chat_gifSaveHintBackground));
    themeDescriptions.add(new ThemeDescription(gifHintTextView, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_gifSaveHintText));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachMediaBanBackground));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachMediaBanText));
    themeDescriptions.add(new ThemeDescription(noSoundHintView, ThemeDescription.FLAG_TEXTCOLOR, new Class[] { HintView.class }, new String[] { "textView" }, null, null, null, Theme.key_chat_gifSaveHintText));
    themeDescriptions.add(new ThemeDescription(noSoundHintView, ThemeDescription.FLAG_IMAGECOLOR, new Class[] { HintView.class }, new String[] { "imageView" }, null, null, null, Theme.key_chat_gifSaveHintText));
    themeDescriptions.add(new ThemeDescription(noSoundHintView, ThemeDescription.FLAG_TEXTCOLOR, new Class[] { HintView.class }, new String[] { "arrowImageView" }, null, null, null, Theme.key_chat_gifSaveHintBackground));
    themeDescriptions.add(new ThemeDescription(forwardHintView, ThemeDescription.FLAG_TEXTCOLOR, new Class[] { HintView.class }, new String[] { "textView" }, null, null, null, Theme.key_chat_gifSaveHintText));
    themeDescriptions.add(new ThemeDescription(forwardHintView, ThemeDescription.FLAG_TEXTCOLOR, new Class[] { HintView.class }, new String[] { "arrowImageView" }, null, null, null, Theme.key_chat_gifSaveHintBackground));
    themeDescriptions.add(new ThemeDescription(pagedownButtonCounter, ThemeDescription.FLAG_BACKGROUNDFILTER, null, null, null, null, Theme.key_chat_goDownButtonCounterBackground));
    themeDescriptions.add(new ThemeDescription(pagedownButtonCounter, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_goDownButtonCounter));
    themeDescriptions.add(new ThemeDescription(pagedownButtonImage, ThemeDescription.FLAG_BACKGROUNDFILTER, null, null, null, null, Theme.key_chat_goDownButton));
    themeDescriptions.add(new ThemeDescription(pagedownButtonImage, ThemeDescription.FLAG_BACKGROUNDFILTER | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, null, null, null, null, Theme.key_chat_goDownButtonShadow));
    themeDescriptions.add(new ThemeDescription(pagedownButtonImage, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_goDownButtonIcon));
    themeDescriptions.add(new ThemeDescription(mentiondownButtonCounter, ThemeDescription.FLAG_BACKGROUNDFILTER, null, null, null, null, Theme.key_chat_goDownButtonCounterBackground));
    themeDescriptions.add(new ThemeDescription(mentiondownButtonCounter, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_goDownButtonCounter));
    themeDescriptions.add(new ThemeDescription(mentiondownButtonImage, ThemeDescription.FLAG_BACKGROUNDFILTER, null, null, null, null, Theme.key_chat_goDownButton));
    themeDescriptions.add(new ThemeDescription(mentiondownButtonImage, ThemeDescription.FLAG_BACKGROUNDFILTER | ThemeDescription.FLAG_DRAWABLESELECTEDSTATE, null, null, null, null, Theme.key_chat_goDownButtonShadow));
    themeDescriptions.add(new ThemeDescription(mentiondownButtonImage, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_goDownButtonIcon));
    themeDescriptions.add(new ThemeDescription(avatarContainer != null ? avatarContainer.getTimeItem() : null, 0, null, null, null, null, Theme.key_chat_secretTimerBackground));
    themeDescriptions.add(new ThemeDescription(avatarContainer != null ? avatarContainer.getTimeItem() : null, 0, null, null, null, null, Theme.key_chat_secretTimerText));
    themeDescriptions.add(new ThemeDescription(floatingDateView, 0, null, null, null, null, Theme.key_chat_serviceText));
    themeDescriptions.add(new ThemeDescription(floatingDateView, 0, null, null, null, null, Theme.key_chat_serviceBackground));
    themeDescriptions.add(new ThemeDescription(infoTopView, 0, null, null, null, null, Theme.key_chat_serviceText));
    themeDescriptions.add(new ThemeDescription(infoTopView, 0, null, null, null, null, Theme.key_chat_serviceBackground));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachGalleryIcon));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachGalleryBackground));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachGalleryText));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachAudioIcon));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachAudioBackground));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachAudioText));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachFileIcon));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachFileBackground));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachFileText));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachContactIcon));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachContactBackground));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachContactText));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachLocationIcon));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachLocationBackground));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachLocationText));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachPollIcon));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachPollBackground));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachPollText));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, new Drawable[] { Theme.chat_attachEmptyDrawable }, null, Theme.key_chat_attachEmptyImage));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_attachPhotoBackground));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_dialogBackground));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_dialogBackgroundGray));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_dialogTextGray2));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_dialogScrollGlow));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_dialogGrayLine));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_dialogCameraIcon));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_dialogButtonSelector));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_windowBackgroundWhiteLinkSelection));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_windowBackgroundWhiteInputField));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_chat_outTextSelectionHighlight));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_chat_inTextSelectionHighlight));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_chat_TextSelectionCursor));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_voipgroup_overlayGreen1));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_voipgroup_overlayGreen2));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_voipgroup_overlayBlue1));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_voipgroup_overlayBlue2));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_voipgroup_topPanelGreen1));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_voipgroup_topPanelGreen2));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_voipgroup_topPanelBlue1));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_voipgroup_topPanelBlue2));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_voipgroup_topPanelGray));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_voipgroup_overlayAlertGradientMuted));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_voipgroup_overlayAlertGradientMuted2));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_voipgroup_overlayAlertGradientUnmuted));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_voipgroup_overlayAlertGradientUnmuted2));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_voipgroup_mutedByAdminGradient));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_voipgroup_mutedByAdminGradient2));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_voipgroup_mutedByAdminGradient3));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_voipgroup_overlayAlertMutedByAdmin));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_voipgroup_overlayAlertMutedByAdmin2));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_windowBackgroundGray));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_chat_outReactionButtonBackground));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_chat_inReactionButtonBackground));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_chat_inReactionButtonText));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_chat_outReactionButtonText));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_chat_inReactionButtonTextSelected));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_chat_inReactionButtonTextSelected));
    themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, selectedBackgroundDelegate, Theme.key_chat_BlurAlpha));
    if (chatActivityEnterView != null) {
        themeDescriptions.add(new ThemeDescription(chatActivityEnterView.botCommandsMenuContainer.listView, ThemeDescription.FLAG_TEXTCOLOR, new Class[] { BotCommandsMenuView.BotCommandView.class }, new String[] { "description" }, null, null, null, Theme.key_windowBackgroundWhiteBlackText));
        themeDescriptions.add(new ThemeDescription(chatActivityEnterView.botCommandsMenuContainer.listView, ThemeDescription.FLAG_TEXTCOLOR, new Class[] { BotCommandsMenuView.BotCommandView.class }, new String[] { "command" }, null, null, null, Theme.key_windowBackgroundWhiteGrayText));
    }
    if (pendingRequestsDelegate != null) {
        pendingRequestsDelegate.fillThemeDescriptions(themeDescriptions);
    }
    for (ThemeDescription description : themeDescriptions) {
        description.resourcesProvider = themeDelegate;
    }
    return themeDescriptions;
}
Also used : ArrayList(java.util.ArrayList) ChatUnreadCell(org.telegram.ui.Cells.ChatUnreadCell) SpannableString(android.text.SpannableString) DialogCell(org.telegram.ui.Cells.DialogCell) StickerCell(org.telegram.ui.Cells.StickerCell) UndoView(org.telegram.ui.Components.UndoView) BotHelpCell(org.telegram.ui.Cells.BotHelpCell) EmojiView(org.telegram.ui.Components.EmojiView) ChatLoadingCell(org.telegram.ui.Cells.ChatLoadingCell) TrendingStickersAlert(org.telegram.ui.Components.TrendingStickersAlert) ContextLinkCell(org.telegram.ui.Cells.ContextLinkCell) BackDrawable(org.telegram.ui.ActionBar.BackDrawable) AnimatedFileDrawable(org.telegram.ui.Components.AnimatedFileDrawable) Drawable(android.graphics.drawable.Drawable) CombinedDrawable(org.telegram.ui.Components.CombinedDrawable) MessageBackgroundDrawable(org.telegram.ui.Components.MessageBackgroundDrawable) BlurBehindDrawable(org.telegram.ui.Components.BlurBehindDrawable) MotionBackgroundDrawable(org.telegram.ui.Components.MotionBackgroundDrawable) RLottieDrawable(org.telegram.ui.Components.RLottieDrawable) Paint(android.graphics.Paint) TextPaint(android.text.TextPaint) ThemeDescription(org.telegram.ui.ActionBar.ThemeDescription) HorizontalScrollView(android.widget.HorizontalScrollView) PinnedLineView(org.telegram.ui.Components.PinnedLineView) BotCommandsMenuView(org.telegram.ui.Components.BotCommandsMenuView) ReactedHeaderView(org.telegram.ui.Components.ReactedHeaderView) PipRoundVideoView(org.telegram.ui.Components.PipRoundVideoView) SimpleTextView(org.telegram.ui.ActionBar.SimpleTextView) RecyclerView(androidx.recyclerview.widget.RecyclerView) BluredView(org.telegram.ui.Components.BluredView) InstantCameraView(org.telegram.ui.Components.InstantCameraView) ChatActivityEnterView(org.telegram.ui.Components.ChatActivityEnterView) ChatActivityEnterTopView(org.telegram.ui.Components.ChatActivityEnterTopView) ChatBigEmptyView(org.telegram.ui.Components.ChatBigEmptyView) BackupImageView(org.telegram.ui.Components.BackupImageView) TextureView(android.view.TextureView) RecyclerListView(org.telegram.ui.Components.RecyclerListView) ImageView(android.widget.ImageView) RadialProgressView(org.telegram.ui.Components.RadialProgressView) ChatGreetingsView(org.telegram.ui.Components.ChatGreetingsView) UndoView(org.telegram.ui.Components.UndoView) CounterView(org.telegram.ui.Components.CounterView) HintView(org.telegram.ui.Components.HintView) FragmentContextView(org.telegram.ui.Components.FragmentContextView) ClippingImageView(org.telegram.ui.Components.ClippingImageView) EmojiView(org.telegram.ui.Components.EmojiView) ChecksHintView(org.telegram.ui.Components.ChecksHintView) ThemeEditorView(org.telegram.ui.Components.ThemeEditorView) View(android.view.View) SearchCounterView(org.telegram.ui.Components.SearchCounterView) ForwardingPreviewView(org.telegram.ui.Components.ForwardingPreviewView) ReactionTabHolderView(org.telegram.ui.Components.ReactionTabHolderView) TextView(android.widget.TextView) ReactedUsersListView(org.telegram.ui.Components.ReactedUsersListView) NumberTextView(org.telegram.ui.Components.NumberTextView) Paint(android.graphics.Paint) TextSelectionHint(org.telegram.ui.Components.TextSelectionHint) TextPaint(android.text.TextPaint) SuppressLint(android.annotation.SuppressLint) HintView(org.telegram.ui.Components.HintView) ChecksHintView(org.telegram.ui.Components.ChecksHintView) ChatActivityEnterView(org.telegram.ui.Components.ChatActivityEnterView) ChatActionCell(org.telegram.ui.Cells.ChatActionCell) ChatMessageCell(org.telegram.ui.Cells.ChatMessageCell) MentionCell(org.telegram.ui.Cells.MentionCell) FragmentContextView(org.telegram.ui.Components.FragmentContextView) Theme(org.telegram.ui.ActionBar.Theme) BotSwitchCell(org.telegram.ui.Cells.BotSwitchCell)

Aggregations

SuppressLint (android.annotation.SuppressLint)2 RecyclerView (androidx.recyclerview.widget.RecyclerView)2 BackDrawable (org.telegram.ui.ActionBar.BackDrawable)2 NumberTextView (org.telegram.ui.Components.NumberTextView)2 RecyclerListView (org.telegram.ui.Components.RecyclerListView)2 TrendingStickersAlert (org.telegram.ui.Components.TrendingStickersAlert)2 Paint (android.graphics.Paint)1 Drawable (android.graphics.drawable.Drawable)1 SpannableString (android.text.SpannableString)1 SpannableStringBuilder (android.text.SpannableStringBuilder)1 TextPaint (android.text.TextPaint)1 TextureView (android.view.TextureView)1 View (android.view.View)1 FrameLayout (android.widget.FrameLayout)1 HorizontalScrollView (android.widget.HorizontalScrollView)1 ImageView (android.widget.ImageView)1 LinearLayout (android.widget.LinearLayout)1 TextView (android.widget.TextView)1 ItemTouchHelper (androidx.recyclerview.widget.ItemTouchHelper)1 LinearLayoutManager (androidx.recyclerview.widget.LinearLayoutManager)1