Search in sources :

Example 1 with PaymentFormActivity

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

the class SendMessagesHelper method sendCallback.

public void sendCallback(final boolean cache, final MessageObject messageObject, final TLRPC.KeyboardButton button, TLRPC.InputCheckPasswordSRP srp, TwoStepVerificationActivity passwordFragment, final ChatActivity parentFragment) {
    if (messageObject == null || button == null || parentFragment == null) {
        return;
    }
    final boolean cacheFinal;
    int type;
    if (button instanceof TLRPC.TL_keyboardButtonUrlAuth) {
        cacheFinal = false;
        type = 3;
    } else if (button instanceof TLRPC.TL_keyboardButtonGame) {
        cacheFinal = false;
        type = 1;
    } else {
        cacheFinal = cache;
        if (button instanceof TLRPC.TL_keyboardButtonBuy) {
            type = 2;
        } else {
            type = 0;
        }
    }
    final String key = messageObject.getDialogId() + "_" + messageObject.getId() + "_" + Utilities.bytesToHex(button.data) + "_" + type;
    waitingForCallback.put(key, true);
    TLObject[] request = new TLObject[1];
    RequestDelegate requestDelegate = (response, error) -> AndroidUtilities.runOnUIThread(() -> {
        waitingForCallback.remove(key);
        if (cacheFinal && response == null) {
            sendCallback(false, messageObject, button, parentFragment);
        } else if (response != null) {
            if (passwordFragment != null) {
                passwordFragment.needHideProgress();
                passwordFragment.finishFragment();
            }
            if (button instanceof TLRPC.TL_keyboardButtonUrlAuth) {
                if (response instanceof TLRPC.TL_urlAuthResultRequest) {
                    TLRPC.TL_urlAuthResultRequest res = (TLRPC.TL_urlAuthResultRequest) response;
                    parentFragment.showRequestUrlAlert(res, (TLRPC.TL_messages_requestUrlAuth) request[0], button.url, false);
                } else if (response instanceof TLRPC.TL_urlAuthResultAccepted) {
                    TLRPC.TL_urlAuthResultAccepted res = (TLRPC.TL_urlAuthResultAccepted) response;
                    AlertsCreator.showOpenUrlAlert(parentFragment, res.url, false, false);
                } else if (response instanceof TLRPC.TL_urlAuthResultDefault) {
                    TLRPC.TL_urlAuthResultDefault res = (TLRPC.TL_urlAuthResultDefault) response;
                    AlertsCreator.showOpenUrlAlert(parentFragment, button.url, false, true);
                }
            } else if (button instanceof TLRPC.TL_keyboardButtonBuy) {
                if (response instanceof TLRPC.TL_payments_paymentForm) {
                    final TLRPC.TL_payments_paymentForm form = (TLRPC.TL_payments_paymentForm) response;
                    getMessagesController().putUsers(form.users, false);
                    parentFragment.presentFragment(new PaymentFormActivity(form, messageObject, parentFragment));
                } else if (response instanceof TLRPC.TL_payments_paymentReceipt) {
                    parentFragment.presentFragment(new PaymentFormActivity((TLRPC.TL_payments_paymentReceipt) response));
                }
            } else {
                TLRPC.TL_messages_botCallbackAnswer res = (TLRPC.TL_messages_botCallbackAnswer) response;
                if (!cacheFinal && res.cache_time != 0 && !button.requires_password) {
                    getMessagesStorage().saveBotCache(key, res);
                }
                if (res.message != null) {
                    long uid = messageObject.getFromChatId();
                    if (messageObject.messageOwner.via_bot_id != 0) {
                        uid = messageObject.messageOwner.via_bot_id;
                    }
                    String name = null;
                    if (uid > 0) {
                        TLRPC.User user = getMessagesController().getUser(uid);
                        if (user != null) {
                            name = ContactsController.formatName(user.first_name, user.last_name);
                        }
                    } else {
                        TLRPC.Chat chat = getMessagesController().getChat(-uid);
                        if (chat != null) {
                            name = chat.title;
                        }
                    }
                    if (name == null) {
                        name = "bot";
                    }
                    if (res.alert) {
                        if (parentFragment.getParentActivity() == null) {
                            return;
                        }
                        AlertDialog.Builder builder = new AlertDialog.Builder(parentFragment.getParentActivity());
                        builder.setTitle(name);
                        builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null);
                        builder.setMessage(res.message);
                        parentFragment.showDialog(builder.create());
                    } else {
                        parentFragment.showAlert(name, res.message);
                    }
                } else if (res.url != null) {
                    if (parentFragment.getParentActivity() == null) {
                        return;
                    }
                    long uid = messageObject.getFromChatId();
                    if (messageObject.messageOwner.via_bot_id != 0) {
                        uid = messageObject.messageOwner.via_bot_id;
                    }
                    TLRPC.User user = getMessagesController().getUser(uid);
                    boolean verified = user != null && user.verified;
                    if (button instanceof TLRPC.TL_keyboardButtonGame) {
                        TLRPC.TL_game game = messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaGame ? messageObject.messageOwner.media.game : null;
                        if (game == null) {
                            return;
                        }
                        parentFragment.showOpenGameAlert(game, messageObject, res.url, !verified && MessagesController.getNotificationsSettings(currentAccount).getBoolean("askgame_" + uid, true), uid);
                    } else {
                        AlertsCreator.showOpenUrlAlert(parentFragment, res.url, false, false);
                    }
                }
            }
        } else if (error != null) {
            if (parentFragment.getParentActivity() == null) {
                return;
            }
            if ("PASSWORD_HASH_INVALID".equals(error.text)) {
                if (srp == null) {
                    AlertDialog.Builder builder = new AlertDialog.Builder(parentFragment.getParentActivity());
                    builder.setTitle(LocaleController.getString("BotOwnershipTransfer", R.string.BotOwnershipTransfer));
                    builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("BotOwnershipTransferReadyAlertText", R.string.BotOwnershipTransferReadyAlertText)));
                    builder.setPositiveButton(LocaleController.getString("BotOwnershipTransferChangeOwner", R.string.BotOwnershipTransferChangeOwner), (dialogInterface, i) -> {
                        TwoStepVerificationActivity fragment = new TwoStepVerificationActivity();
                        fragment.setDelegate(password -> sendCallback(cache, messageObject, button, password, fragment, parentFragment));
                        parentFragment.presentFragment(fragment);
                    });
                    builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null);
                    parentFragment.showDialog(builder.create());
                }
            } else if ("PASSWORD_MISSING".equals(error.text) || error.text.startsWith("PASSWORD_TOO_FRESH_") || error.text.startsWith("SESSION_TOO_FRESH_")) {
                if (passwordFragment != null) {
                    passwordFragment.needHideProgress();
                }
                AlertDialog.Builder builder = new AlertDialog.Builder(parentFragment.getParentActivity());
                builder.setTitle(LocaleController.getString("EditAdminTransferAlertTitle", R.string.EditAdminTransferAlertTitle));
                LinearLayout linearLayout = new LinearLayout(parentFragment.getParentActivity());
                linearLayout.setPadding(AndroidUtilities.dp(24), AndroidUtilities.dp(2), AndroidUtilities.dp(24), 0);
                linearLayout.setOrientation(LinearLayout.VERTICAL);
                builder.setView(linearLayout);
                TextView messageTextView = new TextView(parentFragment.getParentActivity());
                messageTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack));
                messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
                messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP);
                messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("BotOwnershipTransferAlertText", R.string.BotOwnershipTransferAlertText)));
                linearLayout.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT));
                LinearLayout linearLayout2 = new LinearLayout(parentFragment.getParentActivity());
                linearLayout2.setOrientation(LinearLayout.HORIZONTAL);
                linearLayout.addView(linearLayout2, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 11, 0, 0));
                ImageView dotImageView = new ImageView(parentFragment.getParentActivity());
                dotImageView.setImageResource(R.drawable.list_circle);
                dotImageView.setPadding(LocaleController.isRTL ? AndroidUtilities.dp(11) : 0, AndroidUtilities.dp(9), LocaleController.isRTL ? 0 : AndroidUtilities.dp(11), 0);
                dotImageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogTextBlack), PorterDuff.Mode.MULTIPLY));
                messageTextView = new TextView(parentFragment.getParentActivity());
                messageTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack));
                messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
                messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP);
                messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("EditAdminTransferAlertText1", R.string.EditAdminTransferAlertText1)));
                if (LocaleController.isRTL) {
                    linearLayout2.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT));
                    linearLayout2.addView(dotImageView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.RIGHT));
                } else {
                    linearLayout2.addView(dotImageView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT));
                    linearLayout2.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT));
                }
                linearLayout2 = new LinearLayout(parentFragment.getParentActivity());
                linearLayout2.setOrientation(LinearLayout.HORIZONTAL);
                linearLayout.addView(linearLayout2, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 11, 0, 0));
                dotImageView = new ImageView(parentFragment.getParentActivity());
                dotImageView.setImageResource(R.drawable.list_circle);
                dotImageView.setPadding(LocaleController.isRTL ? AndroidUtilities.dp(11) : 0, AndroidUtilities.dp(9), LocaleController.isRTL ? 0 : AndroidUtilities.dp(11), 0);
                dotImageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogTextBlack), PorterDuff.Mode.MULTIPLY));
                messageTextView = new TextView(parentFragment.getParentActivity());
                messageTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack));
                messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
                messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP);
                messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("EditAdminTransferAlertText2", R.string.EditAdminTransferAlertText2)));
                if (LocaleController.isRTL) {
                    linearLayout2.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT));
                    linearLayout2.addView(dotImageView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.RIGHT));
                } else {
                    linearLayout2.addView(dotImageView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT));
                    linearLayout2.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT));
                }
                if ("PASSWORD_MISSING".equals(error.text)) {
                    builder.setPositiveButton(LocaleController.getString("EditAdminTransferSetPassword", R.string.EditAdminTransferSetPassword), (dialogInterface, i) -> parentFragment.presentFragment(new TwoStepVerificationSetupActivity(TwoStepVerificationSetupActivity.TYPE_INTRO, null)));
                    builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null);
                } else {
                    messageTextView = new TextView(parentFragment.getParentActivity());
                    messageTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack));
                    messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
                    messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP);
                    messageTextView.setText(LocaleController.getString("EditAdminTransferAlertText3", R.string.EditAdminTransferAlertText3));
                    linearLayout.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 11, 0, 0));
                    builder.setNegativeButton(LocaleController.getString("OK", R.string.OK), null);
                }
                parentFragment.showDialog(builder.create());
            } else if ("SRP_ID_INVALID".equals(error.text)) {
                TLRPC.TL_account_getPassword getPasswordReq = new TLRPC.TL_account_getPassword();
                ConnectionsManager.getInstance(currentAccount).sendRequest(getPasswordReq, (response2, error2) -> AndroidUtilities.runOnUIThread(() -> {
                    if (error2 == null) {
                        TLRPC.TL_account_password currentPassword = (TLRPC.TL_account_password) response2;
                        passwordFragment.setCurrentPasswordInfo(null, currentPassword);
                        TwoStepVerificationActivity.initPasswordNewAlgo(currentPassword);
                        sendCallback(cache, messageObject, button, passwordFragment.getNewSrpPassword(), passwordFragment, parentFragment);
                    }
                }), ConnectionsManager.RequestFlagWithoutLogin);
            } else {
                if (passwordFragment != null) {
                    passwordFragment.needHideProgress();
                    passwordFragment.finishFragment();
                }
            }
        }
    });
    if (cacheFinal) {
        getMessagesStorage().getBotCache(key, requestDelegate);
    } else {
        if (button instanceof TLRPC.TL_keyboardButtonUrlAuth) {
            TLRPC.TL_messages_requestUrlAuth req = new TLRPC.TL_messages_requestUrlAuth();
            req.peer = getMessagesController().getInputPeer(messageObject.getDialogId());
            req.msg_id = messageObject.getId();
            req.button_id = button.button_id;
            req.flags |= 2;
            request[0] = req;
            getConnectionsManager().sendRequest(req, requestDelegate, ConnectionsManager.RequestFlagFailOnServerErrors);
        } else if (button instanceof TLRPC.TL_keyboardButtonBuy) {
            if ((messageObject.messageOwner.media.flags & 4) == 0) {
                TLRPC.TL_payments_getPaymentForm req = new TLRPC.TL_payments_getPaymentForm();
                req.msg_id = messageObject.getId();
                req.peer = getMessagesController().getInputPeer(messageObject.messageOwner.peer_id);
                try {
                    JSONObject jsonObject = new JSONObject();
                    jsonObject.put("bg_color", Theme.getColor(Theme.key_windowBackgroundWhite));
                    jsonObject.put("text_color", Theme.getColor(Theme.key_windowBackgroundWhiteBlackText));
                    jsonObject.put("hint_color", Theme.getColor(Theme.key_windowBackgroundWhiteHintText));
                    jsonObject.put("link_color", Theme.getColor(Theme.key_windowBackgroundWhiteLinkText));
                    jsonObject.put("button_color", Theme.getColor(Theme.key_featuredStickers_addButton));
                    jsonObject.put("button_text_color", Theme.getColor(Theme.key_featuredStickers_buttonText));
                    req.theme_params = new TLRPC.TL_dataJSON();
                    req.theme_params.data = jsonObject.toString();
                    req.flags |= 1;
                } catch (Exception e) {
                    FileLog.e(e);
                }
                getConnectionsManager().sendRequest(req, requestDelegate, ConnectionsManager.RequestFlagFailOnServerErrors);
            } else {
                TLRPC.TL_payments_getPaymentReceipt req = new TLRPC.TL_payments_getPaymentReceipt();
                req.msg_id = messageObject.messageOwner.media.receipt_msg_id;
                req.peer = getMessagesController().getInputPeer(messageObject.messageOwner.peer_id);
                getConnectionsManager().sendRequest(req, requestDelegate, ConnectionsManager.RequestFlagFailOnServerErrors);
            }
        } else {
            TLRPC.TL_messages_getBotCallbackAnswer req = new TLRPC.TL_messages_getBotCallbackAnswer();
            req.peer = getMessagesController().getInputPeer(messageObject.getDialogId());
            req.msg_id = messageObject.getId();
            req.game = button instanceof TLRPC.TL_keyboardButtonGame;
            if (button.requires_password) {
                req.password = req.password = srp != null ? srp : new TLRPC.TL_inputCheckPasswordEmpty();
                ;
                req.flags |= 4;
            }
            if (button.data != null) {
                req.flags |= 1;
                req.data = button.data;
            }
            getConnectionsManager().sendRequest(req, requestDelegate, ConnectionsManager.RequestFlagFailOnServerErrors);
        }
    }
}
Also used : RandomAccessFile(java.io.RandomAccessFile) LinearLayout(android.widget.LinearLayout) SparseLongArray(org.telegram.messenger.support.SparseLongArray) Bundle(android.os.Bundle) Uri(android.net.Uri) ImageView(android.widget.ImageView) AnimatedFileDrawable(org.telegram.ui.Components.AnimatedFileDrawable) LocationListener(android.location.LocationListener) Bulletin(org.telegram.ui.Components.Bulletin) ByteBuffer(java.nio.ByteBuffer) AudioInfo(org.telegram.messenger.audioinfo.AudioInfo) JSONObject(org.json.JSONObject) MediaCodecInfo(android.media.MediaCodecInfo) Locale(java.util.Locale) MediaStore(android.provider.MediaStore) UiThread(androidx.annotation.UiThread) ChatMessageCell(org.telegram.ui.Cells.ChatMessageCell) BaseFragment(org.telegram.ui.ActionBar.BaseFragment) BitmapDrawable(android.graphics.drawable.BitmapDrawable) PorterDuff(android.graphics.PorterDuff) ConnectionsManager(org.telegram.tgnet.ConnectionsManager) LinkedBlockingQueue(java.util.concurrent.LinkedBlockingQueue) SparseArray(android.util.SparseArray) CountDownLatch(java.util.concurrent.CountDownLatch) TextView(android.widget.TextView) PorterDuffColorFilter(android.graphics.PorterDuffColorFilter) Location(android.location.Location) LocationManager(android.location.LocationManager) ChatActivity(org.telegram.ui.ChatActivity) Context(android.content.Context) MediaMetadataRetriever(android.media.MediaMetadataRetriever) Theme(org.telegram.ui.ActionBar.Theme) ThreadPoolExecutor(java.util.concurrent.ThreadPoolExecutor) RequestDelegate(org.telegram.tgnet.RequestDelegate) TwoStepVerificationActivity(org.telegram.ui.TwoStepVerificationActivity) Intent(android.content.Intent) BitmapFactory(android.graphics.BitmapFactory) MediaPlayer(android.media.MediaPlayer) SystemClock(android.os.SystemClock) HashMap(java.util.HashMap) AlertsCreator(org.telegram.ui.Components.AlertsCreator) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) TLRPC(org.telegram.tgnet.TLRPC) Point(org.telegram.ui.Components.Point) Toast(android.widget.Toast) PaymentFormActivity(org.telegram.ui.PaymentFormActivity) TLObject(org.telegram.tgnet.TLObject) NativeByteBuffer(org.telegram.tgnet.NativeByteBuffer) Build(android.os.Build) SerializedData(org.telegram.tgnet.SerializedData) LongSparseArray(androidx.collection.LongSparseArray) TwoStepVerificationSetupActivity(org.telegram.ui.TwoStepVerificationSetupActivity) FileOutputStream(java.io.FileOutputStream) TextUtils(android.text.TextUtils) InputContentInfoCompat(androidx.core.view.inputmethod.InputContentInfoCompat) LayoutHelper(org.telegram.ui.Components.LayoutHelper) FileInputStream(java.io.FileInputStream) File(java.io.File) TimeUnit(java.util.concurrent.TimeUnit) Gravity(android.view.Gravity) TypedValue(android.util.TypedValue) Bitmap(android.graphics.Bitmap) Base64(android.util.Base64) ClipDescription(android.content.ClipDescription) AlertDialog(org.telegram.ui.ActionBar.AlertDialog) FileChannel(java.nio.channels.FileChannel) MimeTypeMap(android.webkit.MimeTypeMap) InputStream(java.io.InputStream) AlertDialog(org.telegram.ui.ActionBar.AlertDialog) TLRPC(org.telegram.tgnet.TLRPC) PaymentFormActivity(org.telegram.ui.PaymentFormActivity) TextView(android.widget.TextView) ImageView(android.widget.ImageView) RequestDelegate(org.telegram.tgnet.RequestDelegate) TwoStepVerificationActivity(org.telegram.ui.TwoStepVerificationActivity) JSONObject(org.json.JSONObject) PorterDuffColorFilter(android.graphics.PorterDuffColorFilter) TwoStepVerificationSetupActivity(org.telegram.ui.TwoStepVerificationSetupActivity) Point(org.telegram.ui.Components.Point) TLObject(org.telegram.tgnet.TLObject) LinearLayout(android.widget.LinearLayout)

Example 2 with PaymentFormActivity

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

the class UndoView method showWithAction.

public void showWithAction(ArrayList<Long> dialogIds, int action, Object infoObject, Object infoObject2, Runnable actionRunnable, Runnable cancelRunnable) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && currentAction == ACTION_MESSAGE_COPIED || currentAction == ACTION_USERNAME_COPIED || currentAction == ACTION_HASHTAG_COPIED || currentAction == ACTION_TEXT_COPIED || currentAction == ACTION_LINK_COPIED || currentAction == ACTION_PHONE_COPIED || currentAction == ACTION_EMAIL_COPIED || currentAction == ACTION_VOIP_LINK_COPIED) {
        return;
    }
    if (currentActionRunnable != null) {
        currentActionRunnable.run();
    }
    isShown = true;
    currentActionRunnable = actionRunnable;
    currentCancelRunnable = cancelRunnable;
    currentDialogIds = dialogIds;
    long did = dialogIds.get(0);
    currentAction = action;
    timeLeft = 5000;
    currentInfoObject = infoObject;
    lastUpdateTime = SystemClock.elapsedRealtime();
    undoTextView.setText(LocaleController.getString("Undo", R.string.Undo).toUpperCase());
    undoImageView.setVisibility(VISIBLE);
    leftImageView.setPadding(0, 0, 0, 0);
    infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15);
    avatarImageView.setVisibility(GONE);
    infoTextView.setGravity(Gravity.LEFT | Gravity.TOP);
    FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) infoTextView.getLayoutParams();
    layoutParams.height = LayoutHelper.WRAP_CONTENT;
    layoutParams.topMargin = AndroidUtilities.dp(13);
    layoutParams.bottomMargin = 0;
    leftImageView.setScaleType(ImageView.ScaleType.CENTER);
    FrameLayout.LayoutParams layoutParams2 = (FrameLayout.LayoutParams) leftImageView.getLayoutParams();
    layoutParams2.gravity = Gravity.CENTER_VERTICAL | Gravity.LEFT;
    layoutParams2.topMargin = layoutParams2.bottomMargin = 0;
    layoutParams2.leftMargin = AndroidUtilities.dp(3);
    layoutParams2.width = AndroidUtilities.dp(54);
    layoutParams2.height = LayoutHelper.WRAP_CONTENT;
    infoTextView.setMinHeight(0);
    boolean infoOnly = false;
    boolean reversedPlay = false;
    int reversedPlayEndFrame = 0;
    if (actionRunnable == null && cancelRunnable == null) {
        setOnClickListener(view -> hide(false, 1));
        setOnTouchListener(null);
    } else {
        setOnClickListener(null);
        setOnTouchListener((v, event) -> true);
    }
    infoTextView.setMovementMethod(null);
    if (isTooltipAction()) {
        CharSequence infoText;
        String subInfoText;
        int icon;
        int size = 36;
        boolean iconIsDrawable = false;
        if (action == ACTION_REPORT_SENT) {
            subinfoTextView.setSingleLine(false);
            infoText = LocaleController.getString("ReportChatSent", R.string.ReportChatSent);
            subInfoText = LocaleController.formatString("ReportSentInfo", R.string.ReportSentInfo);
            icon = R.raw.ic_admin;
            timeLeft = 4000;
        } else if (action == ACTION_VOIP_INVITED) {
            TLRPC.User user = (TLRPC.User) infoObject;
            TLRPC.Chat chat = (TLRPC.Chat) infoObject2;
            if (ChatObject.isChannelOrGiga(chat)) {
                infoText = AndroidUtilities.replaceTags(LocaleController.formatString("VoipChannelInvitedUser", R.string.VoipChannelInvitedUser, UserObject.getFirstName(user)));
            } else {
                infoText = AndroidUtilities.replaceTags(LocaleController.formatString("VoipGroupInvitedUser", R.string.VoipGroupInvitedUser, UserObject.getFirstName(user)));
            }
            subInfoText = null;
            icon = 0;
            AvatarDrawable avatarDrawable = new AvatarDrawable();
            avatarDrawable.setTextSize(AndroidUtilities.dp(12));
            avatarDrawable.setInfo(user);
            avatarImageView.setForUserOrChat(user, avatarDrawable);
            avatarImageView.setVisibility(VISIBLE);
            timeLeft = 3000;
        } else if (action == ACTION_VOIP_USER_JOINED) {
            TLRPC.Chat currentChat = (TLRPC.Chat) infoObject2;
            if (infoObject instanceof TLRPC.User) {
                TLRPC.User user = (TLRPC.User) infoObject;
                if (ChatObject.isChannelOrGiga(currentChat)) {
                    infoText = AndroidUtilities.replaceTags(LocaleController.formatString("VoipChannelUserJoined", R.string.VoipChannelUserJoined, UserObject.getFirstName(user)));
                } else {
                    infoText = AndroidUtilities.replaceTags(LocaleController.formatString("VoipChatUserJoined", R.string.VoipChatUserJoined, UserObject.getFirstName(user)));
                }
            } else {
                TLRPC.Chat chat = (TLRPC.Chat) infoObject;
                if (ChatObject.isChannelOrGiga(currentChat)) {
                    infoText = AndroidUtilities.replaceTags(LocaleController.formatString("VoipChannelChatJoined", R.string.VoipChannelChatJoined, chat.title));
                } else {
                    infoText = AndroidUtilities.replaceTags(LocaleController.formatString("VoipChatChatJoined", R.string.VoipChatChatJoined, chat.title));
                }
            }
            subInfoText = null;
            icon = 0;
            AvatarDrawable avatarDrawable = new AvatarDrawable();
            avatarDrawable.setTextSize(AndroidUtilities.dp(12));
            avatarDrawable.setInfo((TLObject) infoObject);
            avatarImageView.setForUserOrChat((TLObject) infoObject, avatarDrawable);
            avatarImageView.setVisibility(VISIBLE);
            timeLeft = 3000;
        } else if (action == ACTION_VOIP_USER_CHANGED) {
            AvatarDrawable avatarDrawable = new AvatarDrawable();
            avatarDrawable.setTextSize(AndroidUtilities.dp(12));
            String name;
            if (infoObject instanceof TLRPC.User) {
                TLRPC.User user = (TLRPC.User) infoObject;
                avatarDrawable.setInfo(user);
                avatarImageView.setForUserOrChat(user, avatarDrawable);
                name = ContactsController.formatName(user.first_name, user.last_name);
            } else {
                TLRPC.Chat chat = (TLRPC.Chat) infoObject;
                avatarDrawable.setInfo(chat);
                avatarImageView.setForUserOrChat(chat, avatarDrawable);
                name = chat.title;
            }
            TLRPC.Chat currentChat = (TLRPC.Chat) infoObject2;
            if (ChatObject.isChannelOrGiga(currentChat)) {
                infoText = AndroidUtilities.replaceTags(LocaleController.formatString("VoipChannelUserChanged", R.string.VoipChannelUserChanged, name));
            } else {
                infoText = AndroidUtilities.replaceTags(LocaleController.formatString("VoipGroupUserChanged", R.string.VoipGroupUserChanged, name));
            }
            subInfoText = null;
            icon = 0;
            avatarImageView.setVisibility(VISIBLE);
            timeLeft = 3000;
        } else if (action == ACTION_VOIP_LINK_COPIED) {
            infoText = LocaleController.getString("VoipGroupCopyInviteLinkCopied", R.string.VoipGroupCopyInviteLinkCopied);
            subInfoText = null;
            icon = R.raw.voip_invite;
            timeLeft = 3000;
        } else if (action == ACTION_PAYMENT_SUCCESS) {
            infoText = (CharSequence) infoObject;
            subInfoText = null;
            icon = R.raw.payment_success;
            timeLeft = 5000;
            if (parentFragment != null && infoObject2 instanceof TLRPC.Message) {
                TLRPC.Message message = (TLRPC.Message) infoObject2;
                setOnTouchListener(null);
                infoTextView.setMovementMethod(null);
                setOnClickListener(v -> {
                    hide(true, 1);
                    TLRPC.TL_payments_getPaymentReceipt req = new TLRPC.TL_payments_getPaymentReceipt();
                    req.msg_id = message.id;
                    req.peer = parentFragment.getMessagesController().getInputPeer(message.peer_id);
                    parentFragment.getConnectionsManager().sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> {
                        if (response instanceof TLRPC.TL_payments_paymentReceipt) {
                            parentFragment.presentFragment(new PaymentFormActivity((TLRPC.TL_payments_paymentReceipt) response));
                        }
                    }), ConnectionsManager.RequestFlagFailOnServerErrors);
                });
            }
        } else if (action == ACTION_VOIP_MUTED) {
            String name;
            if (infoObject instanceof TLRPC.User) {
                TLRPC.User user = (TLRPC.User) infoObject;
                name = UserObject.getFirstName(user);
            } else {
                TLRPC.Chat chat = (TLRPC.Chat) infoObject;
                name = chat.title;
            }
            infoText = AndroidUtilities.replaceTags(LocaleController.formatString("VoipGroupUserCantNowSpeak", R.string.VoipGroupUserCantNowSpeak, name));
            subInfoText = null;
            icon = R.raw.voip_muted;
            timeLeft = 3000;
        } else if (action == ACTION_VOIP_MUTED_FOR_YOU) {
            String name;
            if (infoObject instanceof TLRPC.User) {
                TLRPC.User user = (TLRPC.User) infoObject;
                name = UserObject.getFirstName(user);
            } else if (infoObject instanceof TLRPC.Chat) {
                TLRPC.Chat chat = (TLRPC.Chat) infoObject;
                name = chat.title;
            } else {
                name = "";
            }
            infoText = AndroidUtilities.replaceTags(LocaleController.formatString("VoipGroupUserCantNowSpeakForYou", R.string.VoipGroupUserCantNowSpeakForYou, name));
            subInfoText = null;
            icon = R.raw.voip_muted;
            timeLeft = 3000;
        } else if (action == ACTION_VOIP_UNMUTED) {
            String name;
            if (infoObject instanceof TLRPC.User) {
                TLRPC.User user = (TLRPC.User) infoObject;
                name = UserObject.getFirstName(user);
            } else {
                TLRPC.Chat chat = (TLRPC.Chat) infoObject;
                name = chat.title;
            }
            infoText = AndroidUtilities.replaceTags(LocaleController.formatString("VoipGroupUserCanNowSpeak", R.string.VoipGroupUserCanNowSpeak, name));
            subInfoText = null;
            icon = R.raw.voip_unmuted;
            timeLeft = 3000;
        } else if (action == ACTION_VOIP_CAN_NOW_SPEAK) {
            if (infoObject instanceof TLRPC.Chat) {
                TLRPC.Chat chat = (TLRPC.Chat) infoObject;
                infoText = AndroidUtilities.replaceTags(LocaleController.formatString("VoipGroupYouCanNowSpeakIn", R.string.VoipGroupYouCanNowSpeakIn, chat.title));
            } else {
                infoText = AndroidUtilities.replaceTags(LocaleController.getString("VoipGroupYouCanNowSpeak", R.string.VoipGroupYouCanNowSpeak));
            }
            subInfoText = null;
            icon = R.raw.voip_allow_talk;
            timeLeft = 3000;
        } else if (action == ACTION_VOIP_SOUND_MUTED) {
            TLRPC.Chat chat = (TLRPC.Chat) infoObject;
            if (ChatObject.isChannelOrGiga(chat)) {
                infoText = AndroidUtilities.replaceTags(LocaleController.getString("VoipChannelSoundMuted", R.string.VoipChannelSoundMuted));
            } else {
                infoText = AndroidUtilities.replaceTags(LocaleController.getString("VoipGroupSoundMuted", R.string.VoipGroupSoundMuted));
            }
            subInfoText = null;
            icon = R.raw.ic_mute;
            timeLeft = 3000;
        } else if (action == ACTION_VOIP_SOUND_UNMUTED) {
            TLRPC.Chat chat = (TLRPC.Chat) infoObject;
            if (ChatObject.isChannelOrGiga(chat)) {
                infoText = AndroidUtilities.replaceTags(LocaleController.getString("VoipChannelSoundUnmuted", R.string.VoipChannelSoundUnmuted));
            } else {
                infoText = AndroidUtilities.replaceTags(LocaleController.getString("VoipGroupSoundUnmuted", R.string.VoipGroupSoundUnmuted));
            }
            subInfoText = null;
            icon = R.raw.ic_unmute;
            timeLeft = 3000;
        } else if (currentAction == ACTION_VOIP_RECORDING_STARTED || currentAction == ACTION_VOIP_VIDEO_RECORDING_STARTED) {
            infoText = AndroidUtilities.replaceTags(currentAction == ACTION_VOIP_RECORDING_STARTED ? LocaleController.getString("VoipGroupAudioRecordStarted", R.string.VoipGroupAudioRecordStarted) : LocaleController.getString("VoipGroupVideoRecordStarted", R.string.VoipGroupVideoRecordStarted));
            subInfoText = null;
            icon = R.raw.voip_record_start;
            timeLeft = 3000;
        } else if (currentAction == ACTION_VOIP_RECORDING_FINISHED || currentAction == ACTION_VOIP_VIDEO_RECORDING_FINISHED) {
            String text = currentAction == ACTION_VOIP_RECORDING_FINISHED ? LocaleController.getString("VoipGroupAudioRecordSaved", R.string.VoipGroupAudioRecordSaved) : LocaleController.getString("VoipGroupVideoRecordSaved", R.string.VoipGroupVideoRecordSaved);
            subInfoText = null;
            icon = R.raw.voip_record_saved;
            timeLeft = 4000;
            infoTextView.setMovementMethod(new AndroidUtilities.LinkMovementMethodMy());
            SpannableStringBuilder builder = new SpannableStringBuilder(text);
            int index1 = text.indexOf("**");
            int index2 = text.lastIndexOf("**");
            if (index1 >= 0 && index2 >= 0 && index1 != index2) {
                builder.replace(index2, index2 + 2, "");
                builder.replace(index1, index1 + 2, "");
                try {
                    builder.setSpan(new URLSpanNoUnderline("tg://openmessage?user_id=" + UserConfig.getInstance(currentAccount).getClientUserId()), index1, index2 - 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                } catch (Exception e) {
                    FileLog.e(e);
                }
            }
            infoText = builder;
        } else if (action == ACTION_VOIP_UNMUTED_FOR_YOU) {
            String name;
            if (infoObject instanceof TLRPC.User) {
                TLRPC.User user = (TLRPC.User) infoObject;
                name = UserObject.getFirstName(user);
            } else {
                TLRPC.Chat chat = (TLRPC.Chat) infoObject;
                name = chat.title;
            }
            infoText = AndroidUtilities.replaceTags(LocaleController.formatString("VoipGroupUserCanNowSpeakForYou", R.string.VoipGroupUserCanNowSpeakForYou, name));
            subInfoText = null;
            icon = R.raw.voip_unmuted;
            timeLeft = 3000;
        } else if (action == ACTION_VOIP_REMOVED) {
            String name;
            if (infoObject instanceof TLRPC.User) {
                TLRPC.User user = (TLRPC.User) infoObject;
                name = UserObject.getFirstName(user);
            } else {
                TLRPC.Chat chat = (TLRPC.Chat) infoObject;
                name = chat.title;
            }
            infoText = AndroidUtilities.replaceTags(LocaleController.formatString("VoipGroupRemovedFromGroup", R.string.VoipGroupRemovedFromGroup, name));
            subInfoText = null;
            icon = R.raw.voip_group_removed;
            timeLeft = 3000;
        } else if (action == ACTION_OWNER_TRANSFERED_CHANNEL || action == ACTION_OWNER_TRANSFERED_GROUP) {
            TLRPC.User user = (TLRPC.User) infoObject;
            if (action == ACTION_OWNER_TRANSFERED_CHANNEL) {
                infoText = AndroidUtilities.replaceTags(LocaleController.formatString("EditAdminTransferChannelToast", R.string.EditAdminTransferChannelToast, UserObject.getFirstName(user)));
            } else {
                infoText = AndroidUtilities.replaceTags(LocaleController.formatString("EditAdminTransferGroupToast", R.string.EditAdminTransferGroupToast, UserObject.getFirstName(user)));
            }
            subInfoText = null;
            icon = R.raw.contact_check;
        } else if (action == ACTION_CONTACT_ADDED) {
            TLRPC.User user = (TLRPC.User) infoObject;
            infoText = LocaleController.formatString("NowInContacts", R.string.NowInContacts, UserObject.getFirstName(user));
            subInfoText = null;
            icon = R.raw.contact_check;
        } else if (action == ACTION_PROFILE_PHOTO_CHANGED) {
            if (DialogObject.isUserDialog(did)) {
                if (infoObject == null) {
                    infoText = LocaleController.getString("MainProfilePhotoSetHint", R.string.MainProfilePhotoSetHint);
                } else {
                    infoText = LocaleController.getString("MainProfileVideoSetHint", R.string.MainProfileVideoSetHint);
                }
            } else {
                TLRPC.Chat chat = MessagesController.getInstance(UserConfig.selectedAccount).getChat(-did);
                if (ChatObject.isChannel(chat) && !chat.megagroup) {
                    if (infoObject == null) {
                        infoText = LocaleController.getString("MainChannelProfilePhotoSetHint", R.string.MainChannelProfilePhotoSetHint);
                    } else {
                        infoText = LocaleController.getString("MainChannelProfileVideoSetHint", R.string.MainChannelProfileVideoSetHint);
                    }
                } else {
                    if (infoObject == null) {
                        infoText = LocaleController.getString("MainGroupProfilePhotoSetHint", R.string.MainGroupProfilePhotoSetHint);
                    } else {
                        infoText = LocaleController.getString("MainGroupProfileVideoSetHint", R.string.MainGroupProfileVideoSetHint);
                    }
                }
            }
            subInfoText = null;
            icon = R.raw.contact_check;
        } else if (action == ACTION_CHAT_UNARCHIVED) {
            infoText = LocaleController.getString("ChatWasMovedToMainList", R.string.ChatWasMovedToMainList);
            subInfoText = null;
            icon = R.raw.contact_check;
        } else if (action == ACTION_ARCHIVE_HIDDEN) {
            infoText = LocaleController.getString("ArchiveHidden", R.string.ArchiveHidden);
            subInfoText = LocaleController.getString("ArchiveHiddenInfo", R.string.ArchiveHiddenInfo);
            icon = R.raw.chats_swipearchive;
            size = 48;
        } else if (currentAction == ACTION_QUIZ_CORRECT) {
            infoText = LocaleController.getString("QuizWellDone", R.string.QuizWellDone);
            subInfoText = LocaleController.getString("QuizWellDoneInfo", R.string.QuizWellDoneInfo);
            icon = R.raw.wallet_congrats;
            size = 44;
        } else if (currentAction == ACTION_QUIZ_INCORRECT) {
            infoText = LocaleController.getString("QuizWrongAnswer", R.string.QuizWrongAnswer);
            subInfoText = LocaleController.getString("QuizWrongAnswerInfo", R.string.QuizWrongAnswerInfo);
            icon = R.raw.wallet_science;
            size = 44;
        } else if (action == ACTION_ARCHIVE_PINNED) {
            infoText = LocaleController.getString("ArchivePinned", R.string.ArchivePinned);
            if (MessagesController.getInstance(currentAccount).dialogFilters.isEmpty()) {
                subInfoText = LocaleController.getString("ArchivePinnedInfo", R.string.ArchivePinnedInfo);
            } else {
                subInfoText = null;
            }
            icon = R.raw.chats_infotip;
        } else if (action == ACTION_ADDED_TO_FOLDER || action == ACTION_REMOVED_FROM_FOLDER) {
            MessagesController.DialogFilter filter = (MessagesController.DialogFilter) infoObject2;
            if (did != 0) {
                long dialogId = did;
                if (DialogObject.isEncryptedDialog(did)) {
                    TLRPC.EncryptedChat encryptedChat = MessagesController.getInstance(currentAccount).getEncryptedChat(DialogObject.getEncryptedChatId(dialogId));
                    dialogId = encryptedChat.user_id;
                }
                if (DialogObject.isUserDialog(dialogId)) {
                    TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(dialogId);
                    if (action == ACTION_ADDED_TO_FOLDER) {
                        infoText = AndroidUtilities.replaceTags(LocaleController.formatString("FilterUserAddedToExisting", R.string.FilterUserAddedToExisting, UserObject.getFirstName(user), filter.name));
                    } else {
                        infoText = AndroidUtilities.replaceTags(LocaleController.formatString("FilterUserRemovedFrom", R.string.FilterUserRemovedFrom, UserObject.getFirstName(user), filter.name));
                    }
                } else {
                    TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-dialogId);
                    if (action == ACTION_ADDED_TO_FOLDER) {
                        infoText = AndroidUtilities.replaceTags(LocaleController.formatString("FilterChatAddedToExisting", R.string.FilterChatAddedToExisting, chat.title, filter.name));
                    } else {
                        infoText = AndroidUtilities.replaceTags(LocaleController.formatString("FilterChatRemovedFrom", R.string.FilterChatRemovedFrom, chat.title, filter.name));
                    }
                }
            } else {
                if (action == ACTION_ADDED_TO_FOLDER) {
                    infoText = AndroidUtilities.replaceTags(LocaleController.formatString("FilterChatsAddedToExisting", R.string.FilterChatsAddedToExisting, LocaleController.formatPluralString("ChatsSelected", (Integer) infoObject), filter.name));
                } else {
                    infoText = AndroidUtilities.replaceTags(LocaleController.formatString("FilterChatsRemovedFrom", R.string.FilterChatsRemovedFrom, LocaleController.formatPluralString("ChatsSelected", (Integer) infoObject), filter.name));
                }
            }
            subInfoText = null;
            icon = action == ACTION_ADDED_TO_FOLDER ? R.raw.folder_in : R.raw.folder_out;
        } else if (action == ACTION_CACHE_WAS_CLEARED) {
            infoText = this.infoText;
            subInfoText = null;
            icon = R.raw.chats_infotip;
        } else if (action == ACTION_PIN_DIALOGS || action == ACTION_UNPIN_DIALOGS) {
            int count = (Integer) infoObject;
            if (action == ACTION_PIN_DIALOGS) {
                infoText = LocaleController.formatPluralString("PinnedDialogsCount", count);
            } else {
                infoText = LocaleController.formatPluralString("UnpinnedDialogsCount", count);
            }
            subInfoText = null;
            icon = currentAction == ACTION_PIN_DIALOGS ? R.raw.ic_pin : R.raw.ic_unpin;
        } else {
            if (action == ACTION_ARCHIVE_HINT) {
                infoText = LocaleController.getString("ChatArchived", R.string.ChatArchived);
            } else {
                infoText = LocaleController.getString("ChatsArchived", R.string.ChatsArchived);
            }
            if (MessagesController.getInstance(currentAccount).dialogFilters.isEmpty()) {
                subInfoText = LocaleController.getString("ChatArchivedInfo", R.string.ChatArchivedInfo);
            } else {
                subInfoText = null;
            }
            icon = R.raw.chats_infotip;
        }
        infoTextView.setText(infoText);
        if (icon != 0) {
            if (iconIsDrawable) {
                leftImageView.setImageResource(icon);
            } else {
                leftImageView.setAnimation(icon, size, size);
                RLottieDrawable drawable = leftImageView.getAnimatedDrawable();
                drawable.setPlayInDirectionOfCustomEndFrame(reversedPlay);
                drawable.setCustomEndFrame(reversedPlay ? reversedPlayEndFrame : drawable.getFramesCount());
            }
            leftImageView.setVisibility(VISIBLE);
            if (!iconIsDrawable) {
                leftImageView.setProgress(reversedPlay ? 1 : 0);
                leftImageView.playAnimation();
            }
        } else {
            leftImageView.setVisibility(GONE);
        }
        if (subInfoText != null) {
            layoutParams.leftMargin = AndroidUtilities.dp(58);
            layoutParams.topMargin = AndroidUtilities.dp(6);
            layoutParams.rightMargin = AndroidUtilities.dp(8);
            layoutParams = (FrameLayout.LayoutParams) subinfoTextView.getLayoutParams();
            layoutParams.rightMargin = AndroidUtilities.dp(8);
            subinfoTextView.setText(subInfoText);
            subinfoTextView.setVisibility(VISIBLE);
            infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
            infoTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
        } else {
            layoutParams.leftMargin = AndroidUtilities.dp(58);
            layoutParams.topMargin = AndroidUtilities.dp(13);
            layoutParams.rightMargin = AndroidUtilities.dp(8);
            subinfoTextView.setVisibility(GONE);
            infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15);
            infoTextView.setTypeface(Typeface.DEFAULT);
        }
        undoButton.setVisibility(GONE);
    } else if (currentAction == ACTION_IMPORT_NOT_MUTUAL || currentAction == ACTION_IMPORT_GROUP_NOT_ADMIN || currentAction == ACTION_IMPORT_INFO || currentAction == ACTION_PLAYBACK_SPEED_DISABLED || currentAction == ACTION_PLAYBACK_SPEED_ENABLED || currentAction == ACTION_MESSAGE_COPIED || currentAction == ACTION_FWD_MESSAGES || currentAction == ACTION_NOTIFY_ON || currentAction == ACTION_NOTIFY_OFF || currentAction == ACTION_USERNAME_COPIED || currentAction == ACTION_HASHTAG_COPIED || currentAction == ACTION_TEXT_COPIED || currentAction == ACTION_LINK_COPIED || currentAction == ACTION_PHONE_COPIED || currentAction == ACTION_AUTO_DELETE_OFF || currentAction == ACTION_AUTO_DELETE_ON || currentAction == ACTION_GIGAGROUP_CANCEL || currentAction == ACTION_GIGAGROUP_SUCCESS || currentAction == ACTION_VOIP_INVITE_LINK_SENT || currentAction == ACTION_PIN_DIALOGS || currentAction == ACTION_UNPIN_DIALOGS || currentAction == ACTION_SHARE_BACKGROUND || currentAction == ACTION_EMAIL_COPIED) {
        undoImageView.setVisibility(GONE);
        leftImageView.setVisibility(VISIBLE);
        infoTextView.setTypeface(Typeface.DEFAULT);
        long hapticDelay = -1;
        if (currentAction == ACTION_GIGAGROUP_SUCCESS) {
            infoTextView.setText(LocaleController.getString("BroadcastGroupConvertSuccess", R.string.BroadcastGroupConvertSuccess));
            leftImageView.setAnimation(R.raw.gigagroup_convert, 36, 36);
            infoOnly = true;
            layoutParams.topMargin = AndroidUtilities.dp(9);
            infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
        } else if (currentAction == ACTION_GIGAGROUP_CANCEL) {
            infoTextView.setText(LocaleController.getString("GigagroupConvertCancelHint", R.string.GigagroupConvertCancelHint));
            leftImageView.setAnimation(R.raw.chats_infotip, 36, 36);
            infoOnly = true;
            layoutParams.topMargin = AndroidUtilities.dp(9);
            infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
        } else if (action == ACTION_AUTO_DELETE_ON) {
            TLRPC.User user = (TLRPC.User) infoObject;
            int ttl = (Integer) infoObject2;
            String time;
            subinfoTextView.setSingleLine(false);
            if (ttl >= 30 * 24 * 60 * 60) {
                time = LocaleController.formatPluralString("Months", ttl / (30 * 24 * 60 * 60));
            } else if (ttl > 24 * 60 * 60) {
                time = LocaleController.formatPluralString("Days", ttl / (24 * 60 * 60));
            } else if (ttl >= 60 * 60) {
                time = LocaleController.formatPluralString("Hours", ttl / (60 * 60));
            } else if (ttl >= 60) {
                time = LocaleController.formatPluralString("Minutes", ttl / 60);
            } else {
                time = LocaleController.formatPluralString("Seconds", ttl);
            }
            infoTextView.setText(LocaleController.formatString("AutoDeleteHintOnText", R.string.AutoDeleteHintOnText, time));
            leftImageView.setAnimation(R.raw.fire_on, 36, 36);
            layoutParams.topMargin = AndroidUtilities.dp(9);
            timeLeft = 4000;
            infoOnly = true;
            leftImageView.setPadding(0, 0, 0, AndroidUtilities.dp(3));
        } else if (currentAction == ACTION_AUTO_DELETE_OFF) {
            infoTextView.setText(LocaleController.getString("AutoDeleteHintOffText", R.string.AutoDeleteHintOffText));
            leftImageView.setAnimation(R.raw.fire_off, 36, 36);
            infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
            timeLeft = 3000;
            leftImageView.setPadding(0, 0, 0, AndroidUtilities.dp(4));
        } else if (currentAction == ACTION_IMPORT_NOT_MUTUAL) {
            infoTextView.setText(LocaleController.getString("ImportMutualError", R.string.ImportMutualError));
            leftImageView.setAnimation(R.raw.error, 36, 36);
            infoOnly = true;
            layoutParams.topMargin = AndroidUtilities.dp(9);
            infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
        } else if (currentAction == ACTION_IMPORT_GROUP_NOT_ADMIN) {
            infoTextView.setText(LocaleController.getString("ImportNotAdmin", R.string.ImportNotAdmin));
            leftImageView.setAnimation(R.raw.error, 36, 36);
            infoOnly = true;
            layoutParams.topMargin = AndroidUtilities.dp(9);
            infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
        } else if (currentAction == ACTION_IMPORT_INFO) {
            infoTextView.setText(LocaleController.getString("ImportedInfo", R.string.ImportedInfo));
            leftImageView.setAnimation(R.raw.imported, 36, 36);
            leftImageView.setPadding(0, 0, 0, AndroidUtilities.dp(5));
            infoOnly = true;
            layoutParams.topMargin = AndroidUtilities.dp(9);
            infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
        } else if (currentAction == ACTION_PLAYBACK_SPEED_DISABLED) {
            infoTextView.setText(LocaleController.getString("AudioSpeedNormal", R.string.AudioSpeedNormal));
            leftImageView.setAnimation(R.raw.audio_stop_speed, 36, 36);
            timeLeft = 3000;
            infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15);
        } else if (currentAction == ACTION_PLAYBACK_SPEED_ENABLED) {
            infoTextView.setText(LocaleController.getString("AudioSpeedFast", R.string.AudioSpeedFast));
            leftImageView.setAnimation(R.raw.audio_speed, 36, 36);
            timeLeft = 3000;
            infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15);
        } else if (currentAction == ACTION_MESSAGE_COPIED || currentAction == ACTION_USERNAME_COPIED || currentAction == ACTION_HASHTAG_COPIED || currentAction == ACTION_TEXT_COPIED || currentAction == ACTION_LINK_COPIED || currentAction == ACTION_PHONE_COPIED || currentAction == ACTION_EMAIL_COPIED) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
                return;
            }
            int iconRawId = R.raw.copy;
            if (currentAction == ACTION_EMAIL_COPIED) {
                infoTextView.setText(LocaleController.getString("EmailCopied", R.string.EmailCopied));
            } else if (currentAction == ACTION_PHONE_COPIED) {
                infoTextView.setText(LocaleController.getString("PhoneCopied", R.string.PhoneCopied));
            } else if (currentAction == ACTION_USERNAME_COPIED) {
                infoTextView.setText(LocaleController.getString("UsernameCopied", R.string.UsernameCopied));
            } else if (currentAction == ACTION_HASHTAG_COPIED) {
                infoTextView.setText(LocaleController.getString("HashtagCopied", R.string.HashtagCopied));
            } else if (currentAction == ACTION_MESSAGE_COPIED) {
                infoTextView.setText(LocaleController.getString("MessageCopied", R.string.MessageCopied));
            } else if (currentAction == ACTION_LINK_COPIED) {
                iconRawId = R.raw.voip_invite;
                infoTextView.setText(LocaleController.getString("LinkCopied", R.string.LinkCopied));
            } else {
                infoTextView.setText(LocaleController.getString("TextCopied", R.string.TextCopied));
            }
            leftImageView.setAnimation(iconRawId, 30, 30);
            timeLeft = 3000;
            infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15);
        } else if (currentAction == ACTION_NOTIFY_ON) {
            infoTextView.setText(LocaleController.getString("ChannelNotifyMembersInfoOn", R.string.ChannelNotifyMembersInfoOn));
            leftImageView.setAnimation(R.raw.silent_unmute, 30, 30);
            timeLeft = 3000;
            infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15);
        } else if (currentAction == ACTION_NOTIFY_OFF) {
            infoTextView.setText(LocaleController.getString("ChannelNotifyMembersInfoOff", R.string.ChannelNotifyMembersInfoOff));
            leftImageView.setAnimation(R.raw.silent_mute, 30, 30);
            timeLeft = 3000;
            infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15);
        } else if (currentAction == ACTION_VOIP_INVITE_LINK_SENT) {
            if (infoObject2 == null) {
                if (did == UserConfig.getInstance(currentAccount).clientUserId) {
                    infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("InvLinkToSavedMessages", R.string.InvLinkToSavedMessages)));
                } else {
                    if (DialogObject.isChatDialog(did)) {
                        TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-did);
                        infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("InvLinkToGroup", R.string.InvLinkToGroup, chat.title)));
                    } else {
                        TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(did);
                        infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("InvLinkToUser", R.string.InvLinkToUser, UserObject.getFirstName(user))));
                    }
                }
            } else {
                int amount = (Integer) infoObject2;
                infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("InvLinkToChats", R.string.InvLinkToChats, LocaleController.formatPluralString("Chats", amount))));
            }
            leftImageView.setAnimation(R.raw.contact_check, 36, 36);
            timeLeft = 3000;
        } else if (currentAction == ACTION_FWD_MESSAGES) {
            Integer count = (Integer) infoObject;
            if (infoObject2 == null) {
                if (did == UserConfig.getInstance(currentAccount).clientUserId) {
                    if (count == 1) {
                        infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("FwdMessageToSavedMessages", R.string.FwdMessageToSavedMessages)));
                    } else {
                        infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("FwdMessagesToSavedMessages", R.string.FwdMessagesToSavedMessages)));
                    }
                    leftImageView.setAnimation(R.raw.saved_messages, 30, 30);
                } else {
                    if (DialogObject.isChatDialog(did)) {
                        TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-did);
                        if (count == 1) {
                            infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("FwdMessageToGroup", R.string.FwdMessageToGroup, chat.title)));
                        } else {
                            infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("FwdMessagesToGroup", R.string.FwdMessagesToGroup, chat.title)));
                        }
                    } else {
                        TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(did);
                        if (count == 1) {
                            infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("FwdMessageToUser", R.string.FwdMessageToUser, UserObject.getFirstName(user))));
                        } else {
                            infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("FwdMessagesToUser", R.string.FwdMessagesToUser, UserObject.getFirstName(user))));
                        }
                    }
                    leftImageView.setAnimation(R.raw.forward, 30, 30);
                    hapticDelay = 300;
                }
            } else {
                int amount = (Integer) infoObject2;
                if (count == 1) {
                    infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("FwdMessageToChats", R.string.FwdMessageToChats, LocaleController.formatPluralString("Chats", amount))));
                } else {
                    infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("FwdMessagesToChats", R.string.FwdMessagesToChats, LocaleController.formatPluralString("Chats", amount))));
                }
                leftImageView.setAnimation(R.raw.forward, 30, 30);
                hapticDelay = 300;
            }
            timeLeft = 3000;
        } else if (currentAction == ACTION_SHARE_BACKGROUND) {
            Integer count = (Integer) infoObject;
            if (infoObject2 == null) {
                if (did == UserConfig.getInstance(currentAccount).clientUserId) {
                    infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("BackgroundToSavedMessages", R.string.BackgroundToSavedMessages)));
                    leftImageView.setAnimation(R.raw.saved_messages, 30, 30);
                } else {
                    if (DialogObject.isChatDialog(did)) {
                        TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-did);
                        infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("BackgroundToGroup", R.string.BackgroundToGroup, chat.title)));
                    } else {
                        TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(did);
                        infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("BackgroundToUser", R.string.BackgroundToUser, UserObject.getFirstName(user))));
                    }
                    leftImageView.setAnimation(R.raw.forward, 30, 30);
                }
            } else {
                int amount = (Integer) infoObject2;
                infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("BackgroundToChats", R.string.BackgroundToChats, LocaleController.formatPluralString("Chats", amount))));
                leftImageView.setAnimation(R.raw.forward, 30, 30);
            }
            timeLeft = 3000;
        }
        subinfoTextView.setVisibility(GONE);
        undoTextView.setTextColor(getThemedColor(Theme.key_undo_cancelColor));
        undoButton.setVisibility(GONE);
        layoutParams.leftMargin = AndroidUtilities.dp(58);
        layoutParams.rightMargin = AndroidUtilities.dp(8);
        leftImageView.setProgress(0);
        leftImageView.playAnimation();
        if (hapticDelay > 0) {
            leftImageView.postDelayed(() -> {
                leftImageView.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
            }, hapticDelay);
        }
    } else if (currentAction == ACTION_PROXIMITY_SET || currentAction == ACTION_PROXIMITY_REMOVED) {
        int radius = (Integer) infoObject;
        TLRPC.User user = (TLRPC.User) infoObject2;
        undoImageView.setVisibility(GONE);
        leftImageView.setVisibility(VISIBLE);
        if (radius != 0) {
            infoTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
            infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
            leftImageView.clearLayerColors();
            leftImageView.setLayerColor("BODY.**", getThemedColor(Theme.key_undo_infoColor));
            leftImageView.setLayerColor("Wibe Big.**", getThemedColor(Theme.key_undo_infoColor));
            leftImageView.setLayerColor("Wibe Big 3.**", getThemedColor(Theme.key_undo_infoColor));
            leftImageView.setLayerColor("Wibe Small.**", getThemedColor(Theme.key_undo_infoColor));
            infoTextView.setText(LocaleController.getString("ProximityAlertSet", R.string.ProximityAlertSet));
            leftImageView.setAnimation(R.raw.ic_unmute, 28, 28);
            subinfoTextView.setVisibility(VISIBLE);
            subinfoTextView.setSingleLine(false);
            subinfoTextView.setMaxLines(3);
            if (user != null) {
                subinfoTextView.setText(LocaleController.formatString("ProximityAlertSetInfoUser", R.string.ProximityAlertSetInfoUser, UserObject.getFirstName(user), LocaleController.formatDistance(radius, 2)));
            } else {
                subinfoTextView.setText(LocaleController.formatString("ProximityAlertSetInfoGroup2", R.string.ProximityAlertSetInfoGroup2, LocaleController.formatDistance(radius, 2)));
            }
            undoButton.setVisibility(GONE);
            layoutParams.topMargin = AndroidUtilities.dp(6);
        } else {
            infoTextView.setTypeface(Typeface.DEFAULT);
            infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15);
            leftImageView.clearLayerColors();
            leftImageView.setLayerColor("Body Main.**", getThemedColor(Theme.key_undo_infoColor));
            leftImageView.setLayerColor("Body Top.**", getThemedColor(Theme.key_undo_infoColor));
            leftImageView.setLayerColor("Line.**", getThemedColor(Theme.key_undo_infoColor));
            leftImageView.setLayerColor("Curve Big.**", getThemedColor(Theme.key_undo_infoColor));
            leftImageView.setLayerColor("Curve Small.**", getThemedColor(Theme.key_undo_infoColor));
            layoutParams.topMargin = AndroidUtilities.dp(14);
            infoTextView.setText(LocaleController.getString("ProximityAlertCancelled", R.string.ProximityAlertCancelled));
            leftImageView.setAnimation(R.raw.ic_mute, 28, 28);
            subinfoTextView.setVisibility(GONE);
            undoTextView.setTextColor(getThemedColor(Theme.key_undo_cancelColor));
            undoButton.setVisibility(VISIBLE);
        }
        layoutParams.leftMargin = AndroidUtilities.dp(58);
        leftImageView.setProgress(0);
        leftImageView.playAnimation();
    } else if (currentAction == ACTION_QR_SESSION_ACCEPTED) {
        TLRPC.TL_authorization authorization = (TLRPC.TL_authorization) infoObject;
        infoTextView.setText(LocaleController.getString("AuthAnotherClientOk", R.string.AuthAnotherClientOk));
        leftImageView.setAnimation(R.raw.contact_check, 36, 36);
        layoutParams.leftMargin = AndroidUtilities.dp(58);
        layoutParams.topMargin = AndroidUtilities.dp(6);
        subinfoTextView.setText(authorization.app_name);
        subinfoTextView.setVisibility(VISIBLE);
        infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
        infoTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
        undoTextView.setTextColor(getThemedColor(Theme.key_windowBackgroundWhiteRedText2));
        undoImageView.setVisibility(GONE);
        undoButton.setVisibility(VISIBLE);
        leftImageView.setVisibility(VISIBLE);
        leftImageView.setProgress(0);
        leftImageView.playAnimation();
    } else if (currentAction == ACTION_FILTERS_AVAILABLE) {
        timeLeft = 10000;
        undoTextView.setText(LocaleController.getString("Open", R.string.Open).toUpperCase());
        infoTextView.setText(LocaleController.getString("FilterAvailableTitle", R.string.FilterAvailableTitle));
        leftImageView.setAnimation(R.raw.filter_new, 36, 36);
        int margin = (int) Math.ceil(undoTextView.getPaint().measureText(undoTextView.getText().toString())) + AndroidUtilities.dp(26);
        layoutParams.leftMargin = AndroidUtilities.dp(58);
        layoutParams.rightMargin = margin;
        layoutParams.topMargin = AndroidUtilities.dp(6);
        layoutParams = (FrameLayout.LayoutParams) subinfoTextView.getLayoutParams();
        layoutParams.rightMargin = margin;
        String text = LocaleController.getString("FilterAvailableText", R.string.FilterAvailableText);
        SpannableStringBuilder builder = new SpannableStringBuilder(text);
        int index1 = text.indexOf('*');
        int index2 = text.lastIndexOf('*');
        if (index1 >= 0 && index2 >= 0 && index1 != index2) {
            builder.replace(index2, index2 + 1, "");
            builder.replace(index1, index1 + 1, "");
            builder.setSpan(new URLSpanNoUnderline("tg://settings/folders"), index1, index2 - 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        }
        subinfoTextView.setText(builder);
        subinfoTextView.setVisibility(VISIBLE);
        subinfoTextView.setSingleLine(false);
        subinfoTextView.setMaxLines(2);
        undoButton.setVisibility(VISIBLE);
        undoImageView.setVisibility(GONE);
        leftImageView.setVisibility(VISIBLE);
        leftImageView.setProgress(0);
        leftImageView.playAnimation();
    } else if (currentAction == ACTION_DICE_INFO || currentAction == ACTION_DICE_NO_SEND_INFO) {
        timeLeft = 4000;
        infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
        infoTextView.setGravity(Gravity.CENTER_VERTICAL);
        infoTextView.setMinHeight(AndroidUtilities.dp(30));
        String emoji = (String) infoObject;
        if ("\uD83C\uDFB2".equals(emoji)) {
            infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("DiceInfo2", R.string.DiceInfo2)));
            leftImageView.setImageResource(R.drawable.dice);
        } else {
            if ("\uD83C\uDFAF".equals(emoji)) {
                infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("DartInfo", R.string.DartInfo)));
            } else {
                String info = LocaleController.getServerString("DiceEmojiInfo_" + emoji);
                if (!TextUtils.isEmpty(info)) {
                    infoTextView.setText(Emoji.replaceEmoji(info, infoTextView.getPaint().getFontMetricsInt(), AndroidUtilities.dp(14), false));
                } else {
                    infoTextView.setText(Emoji.replaceEmoji(LocaleController.formatString("DiceEmojiInfo", R.string.DiceEmojiInfo, emoji), infoTextView.getPaint().getFontMetricsInt(), AndroidUtilities.dp(14), false));
                }
            }
            leftImageView.setImageDrawable(Emoji.getEmojiDrawable(emoji));
            leftImageView.setScaleType(ImageView.ScaleType.FIT_XY);
            layoutParams.topMargin = AndroidUtilities.dp(14);
            layoutParams.bottomMargin = AndroidUtilities.dp(14);
            layoutParams2.leftMargin = AndroidUtilities.dp(14);
            layoutParams2.width = AndroidUtilities.dp(26);
            layoutParams2.height = AndroidUtilities.dp(26);
        }
        undoTextView.setText(LocaleController.getString("SendDice", R.string.SendDice));
        int margin;
        if (currentAction == ACTION_DICE_INFO) {
            margin = (int) Math.ceil(undoTextView.getPaint().measureText(undoTextView.getText().toString())) + AndroidUtilities.dp(26);
            undoTextView.setVisibility(VISIBLE);
            undoTextView.setTextColor(getThemedColor(Theme.key_undo_cancelColor));
            undoImageView.setVisibility(GONE);
            undoButton.setVisibility(VISIBLE);
        } else {
            margin = AndroidUtilities.dp(8);
            undoTextView.setVisibility(GONE);
            undoButton.setVisibility(GONE);
        }
        layoutParams.leftMargin = AndroidUtilities.dp(58);
        layoutParams.rightMargin = margin;
        layoutParams.topMargin = AndroidUtilities.dp(6);
        layoutParams.bottomMargin = AndroidUtilities.dp(7);
        layoutParams.height = TableLayout.LayoutParams.MATCH_PARENT;
        subinfoTextView.setVisibility(GONE);
        leftImageView.setVisibility(VISIBLE);
    } else if (currentAction == ACTION_TEXT_INFO) {
        CharSequence info = (CharSequence) infoObject;
        timeLeft = Math.max(4000, Math.min(info.length() / 50 * 1600, 10000));
        infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
        infoTextView.setGravity(Gravity.CENTER_VERTICAL);
        infoTextView.setText(info);
        undoTextView.setVisibility(GONE);
        undoButton.setVisibility(GONE);
        layoutParams.leftMargin = AndroidUtilities.dp(58);
        layoutParams.rightMargin = AndroidUtilities.dp(8);
        layoutParams.topMargin = AndroidUtilities.dp(6);
        layoutParams.bottomMargin = AndroidUtilities.dp(7);
        layoutParams.height = TableLayout.LayoutParams.MATCH_PARENT;
        layoutParams2.gravity = Gravity.TOP | Gravity.LEFT;
        layoutParams2.topMargin = layoutParams2.bottomMargin = AndroidUtilities.dp(8);
        leftImageView.setVisibility(VISIBLE);
        leftImageView.setAnimation(R.raw.chats_infotip, 36, 36);
        leftImageView.setProgress(0);
        leftImageView.playAnimation();
        infoTextView.setMovementMethod(new AndroidUtilities.LinkMovementMethodMy());
    } else if (currentAction == ACTION_THEME_CHANGED) {
        infoTextView.setText(LocaleController.getString("ColorThemeChanged", R.string.ColorThemeChanged));
        leftImageView.setImageResource(R.drawable.toast_pallete);
        layoutParams.leftMargin = AndroidUtilities.dp(58);
        layoutParams.rightMargin = AndroidUtilities.dp(48);
        layoutParams.topMargin = AndroidUtilities.dp(6);
        layoutParams = (FrameLayout.LayoutParams) subinfoTextView.getLayoutParams();
        layoutParams.rightMargin = AndroidUtilities.dp(48);
        String text = LocaleController.getString("ColorThemeChangedInfo", R.string.ColorThemeChangedInfo);
        SpannableStringBuilder builder = new SpannableStringBuilder(text);
        int index1 = text.indexOf('*');
        int index2 = text.lastIndexOf('*');
        if (index1 >= 0 && index2 >= 0 && index1 != index2) {
            builder.replace(index2, index2 + 1, "");
            builder.replace(index1, index1 + 1, "");
            builder.setSpan(new URLSpanNoUnderline("tg://settings/themes"), index1, index2 - 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        }
        subinfoTextView.setText(builder);
        subinfoTextView.setVisibility(VISIBLE);
        subinfoTextView.setSingleLine(false);
        subinfoTextView.setMaxLines(2);
        undoTextView.setVisibility(GONE);
        undoButton.setVisibility(VISIBLE);
        leftImageView.setVisibility(VISIBLE);
    } else if (currentAction == ACTION_ARCHIVE || currentAction == ACTION_ARCHIVE_FEW) {
        if (action == ACTION_ARCHIVE) {
            infoTextView.setText(LocaleController.getString("ChatArchived", R.string.ChatArchived));
        } else {
            infoTextView.setText(LocaleController.getString("ChatsArchived", R.string.ChatsArchived));
        }
        layoutParams.leftMargin = AndroidUtilities.dp(58);
        layoutParams.topMargin = AndroidUtilities.dp(13);
        layoutParams.rightMargin = 0;
        infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15);
        undoButton.setVisibility(VISIBLE);
        infoTextView.setTypeface(Typeface.DEFAULT);
        subinfoTextView.setVisibility(GONE);
        leftImageView.setVisibility(VISIBLE);
        leftImageView.setAnimation(R.raw.chats_archived, 36, 36);
        leftImageView.setProgress(0);
        leftImageView.playAnimation();
    } else {
        layoutParams.leftMargin = AndroidUtilities.dp(45);
        layoutParams.topMargin = AndroidUtilities.dp(13);
        layoutParams.rightMargin = 0;
        infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15);
        undoButton.setVisibility(VISIBLE);
        infoTextView.setTypeface(Typeface.DEFAULT);
        subinfoTextView.setVisibility(GONE);
        leftImageView.setVisibility(GONE);
        if (currentAction == ACTION_CLEAR_DATES || currentAction == ACTION_CLEAR || currentAction == ACTION_CLEAR_FEW) {
            infoTextView.setText(LocaleController.getString("HistoryClearedUndo", R.string.HistoryClearedUndo));
        } else if (currentAction == ACTION_DELETE_FEW) {
            infoTextView.setText(LocaleController.getString("ChatsDeletedUndo", R.string.ChatsDeletedUndo));
        } else {
            if (DialogObject.isChatDialog(did)) {
                TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-did);
                if (ChatObject.isChannel(chat) && !chat.megagroup) {
                    infoTextView.setText(LocaleController.getString("ChannelDeletedUndo", R.string.ChannelDeletedUndo));
                } else {
                    infoTextView.setText(LocaleController.getString("GroupDeletedUndo", R.string.GroupDeletedUndo));
                }
            } else {
                infoTextView.setText(LocaleController.getString("ChatDeletedUndo", R.string.ChatDeletedUndo));
            }
        }
        if (currentAction != ACTION_CLEAR_DATES) {
            for (int a = 0; a < dialogIds.size(); a++) {
                MessagesController.getInstance(currentAccount).addDialogAction(dialogIds.get(a), currentAction == ACTION_CLEAR || currentAction == ACTION_CLEAR_FEW);
            }
        }
    }
    AndroidUtilities.makeAccessibilityAnnouncement(infoTextView.getText() + (subinfoTextView.getVisibility() == VISIBLE ? ". " + subinfoTextView.getText() : ""));
    if (isMultilineSubInfo()) {
        ViewGroup parent = (ViewGroup) getParent();
        int width = parent.getMeasuredWidth();
        if (width == 0) {
            width = AndroidUtilities.displaySize.x;
        }
        width -= AndroidUtilities.dp(16);
        measureChildWithMargins(subinfoTextView, MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), 0, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 0);
        undoViewHeight = subinfoTextView.getMeasuredHeight() + AndroidUtilities.dp(27 + 10);
    } else if (hasSubInfo()) {
        undoViewHeight = AndroidUtilities.dp(52);
    } else if (getParent() instanceof ViewGroup) {
        ViewGroup parent = (ViewGroup) getParent();
        int width = parent.getMeasuredWidth() - parent.getPaddingLeft() - parent.getPaddingRight();
        if (width <= 0) {
            width = AndroidUtilities.displaySize.x;
        }
        width -= AndroidUtilities.dp(16);
        measureChildWithMargins(infoTextView, MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), 0, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 0);
        undoViewHeight = infoTextView.getMeasuredHeight() + AndroidUtilities.dp(currentAction == ACTION_DICE_INFO || currentAction == ACTION_DICE_NO_SEND_INFO || currentAction == ACTION_TEXT_INFO ? 14 : 28);
        if (currentAction == ACTION_TEXT_INFO) {
            undoViewHeight = Math.max(undoViewHeight, AndroidUtilities.dp(52));
        } else if (currentAction == ACTION_PROXIMITY_REMOVED) {
            undoViewHeight = Math.max(undoViewHeight, AndroidUtilities.dp(50));
        } else if (infoOnly) {
            undoViewHeight -= AndroidUtilities.dp(8);
        }
    }
    if (getVisibility() != VISIBLE) {
        setVisibility(VISIBLE);
        setEnterOffset((fromTop ? -1.0f : 1.0f) * (AndroidUtilities.dp(8) + undoViewHeight));
        AnimatorSet animatorSet = new AnimatorSet();
        animatorSet.playTogether(ObjectAnimator.ofFloat(this, "enterOffset", (fromTop ? -1.0f : 1.0f) * (AndroidUtilities.dp(8) + undoViewHeight), (fromTop ? 1.0f : -1.0f)));
        animatorSet.setInterpolator(new DecelerateInterpolator());
        animatorSet.setDuration(180);
        animatorSet.start();
    }
}
Also used : LinearLayout(android.widget.LinearLayout) Spannable(android.text.Spannable) FrameLayout(android.widget.FrameLayout) ImageView(android.widget.ImageView) AndroidUtilities(org.telegram.messenger.AndroidUtilities) Animator(android.animation.Animator) LinkMovementMethod(android.text.method.LinkMovementMethod) Drawable(android.graphics.drawable.Drawable) Selection(android.text.Selection) Keep(androidx.annotation.Keep) View(android.view.View) Canvas(android.graphics.Canvas) Emoji(org.telegram.messenger.Emoji) RectF(android.graphics.RectF) ObjectAnimator(android.animation.ObjectAnimator) BaseFragment(org.telegram.ui.ActionBar.BaseFragment) AnimatorListenerAdapter(android.animation.AnimatorListenerAdapter) PorterDuff(android.graphics.PorterDuff) ConnectionsManager(org.telegram.tgnet.ConnectionsManager) ViewGroup(android.view.ViewGroup) HapticFeedbackConstants(android.view.HapticFeedbackConstants) UserConfig(org.telegram.messenger.UserConfig) TextView(android.widget.TextView) Layout(android.text.Layout) TextPaint(android.text.TextPaint) PorterDuffColorFilter(android.graphics.PorterDuffColorFilter) Paint(android.graphics.Paint) DecelerateInterpolator(android.view.animation.DecelerateInterpolator) Typeface(android.graphics.Typeface) Context(android.content.Context) StaticLayout(android.text.StaticLayout) Spanned(android.text.Spanned) Theme(org.telegram.ui.ActionBar.Theme) SystemClock(android.os.SystemClock) LocaleController(org.telegram.messenger.LocaleController) ArrayList(java.util.ArrayList) SpannableStringBuilder(android.text.SpannableStringBuilder) MotionEvent(android.view.MotionEvent) TLRPC(org.telegram.tgnet.TLRPC) PaymentFormActivity(org.telegram.ui.PaymentFormActivity) TLObject(org.telegram.tgnet.TLObject) AnimatorSet(android.animation.AnimatorSet) Build(android.os.Build) DialogObject(org.telegram.messenger.DialogObject) R(org.telegram.messenger.R) TextUtils(android.text.TextUtils) FileLog(org.telegram.messenger.FileLog) MessagesController(org.telegram.messenger.MessagesController) Gravity(android.view.Gravity) UserObject(org.telegram.messenger.UserObject) TypedValue(android.util.TypedValue) ContactsController(org.telegram.messenger.ContactsController) CharacterStyle(android.text.style.CharacterStyle) ChatObject(org.telegram.messenger.ChatObject) DecelerateInterpolator(android.view.animation.DecelerateInterpolator) MessagesController(org.telegram.messenger.MessagesController) AnimatorSet(android.animation.AnimatorSet) TLRPC(org.telegram.tgnet.TLRPC) PaymentFormActivity(org.telegram.ui.PaymentFormActivity) ViewGroup(android.view.ViewGroup) TextPaint(android.text.TextPaint) Paint(android.graphics.Paint) AndroidUtilities(org.telegram.messenger.AndroidUtilities) FrameLayout(android.widget.FrameLayout) SpannableStringBuilder(android.text.SpannableStringBuilder)

Aggregations

Context (android.content.Context)2 PorterDuff (android.graphics.PorterDuff)2 PorterDuffColorFilter (android.graphics.PorterDuffColorFilter)2 Build (android.os.Build)2 SystemClock (android.os.SystemClock)2 TextUtils (android.text.TextUtils)2 TypedValue (android.util.TypedValue)2 Gravity (android.view.Gravity)2 ImageView (android.widget.ImageView)2 LinearLayout (android.widget.LinearLayout)2 TextView (android.widget.TextView)2 ArrayList (java.util.ArrayList)2 Animator (android.animation.Animator)1 AnimatorListenerAdapter (android.animation.AnimatorListenerAdapter)1 AnimatorSet (android.animation.AnimatorSet)1 ObjectAnimator (android.animation.ObjectAnimator)1 ClipDescription (android.content.ClipDescription)1 Intent (android.content.Intent)1 Bitmap (android.graphics.Bitmap)1 BitmapFactory (android.graphics.BitmapFactory)1