Version 4.16.

- Instant View on Windows 10+ and macOS.
- Allow scheduling messages in topics.
- Telegram Business: Links to Chats.
- Telegram Business: Custom Intro.
- Telegram Business: Chatbots.
- Sharing Revenue with Channel Owners.
This commit is contained in:
John Preston 2024-04-01 22:52:25 +04:00
parent c0117e72ad
commit 707146daed
14 changed files with 33 additions and 45 deletions

View file

@ -10,7 +10,7 @@
<Identity Name="TelegramMessengerLLP.TelegramDesktop" <Identity Name="TelegramMessengerLLP.TelegramDesktop"
ProcessorArchitecture="ARCHITECTURE" ProcessorArchitecture="ARCHITECTURE"
Publisher="CN=536BC709-8EE1-4478-AF22-F0F0F26FF64A" Publisher="CN=536BC709-8EE1-4478-AF22-F0F0F26FF64A"
Version="4.15.7.0" /> Version="4.16.0.0" />
<Properties> <Properties>
<DisplayName>Telegram Desktop</DisplayName> <DisplayName>Telegram Desktop</DisplayName>
<PublisherDisplayName>Telegram Messenger LLP</PublisherDisplayName> <PublisherDisplayName>Telegram Messenger LLP</PublisherDisplayName>

View file

@ -44,8 +44,8 @@ IDI_ICON1 ICON "..\\art\\icon256.ico"
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 4,15,7,0 FILEVERSION 4,16,0,0
PRODUCTVERSION 4,15,7,0 PRODUCTVERSION 4,16,0,0
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -62,10 +62,10 @@ BEGIN
BEGIN BEGIN
VALUE "CompanyName", "Telegram FZ-LLC" VALUE "CompanyName", "Telegram FZ-LLC"
VALUE "FileDescription", "Telegram Desktop" VALUE "FileDescription", "Telegram Desktop"
VALUE "FileVersion", "4.15.7.0" VALUE "FileVersion", "4.16.0.0"
VALUE "LegalCopyright", "Copyright (C) 2014-2024" VALUE "LegalCopyright", "Copyright (C) 2014-2024"
VALUE "ProductName", "Telegram Desktop" VALUE "ProductName", "Telegram Desktop"
VALUE "ProductVersion", "4.15.7.0" VALUE "ProductVersion", "4.16.0.0"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

View file

@ -35,8 +35,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 4,15,7,0 FILEVERSION 4,16,0,0
PRODUCTVERSION 4,15,7,0 PRODUCTVERSION 4,16,0,0
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -53,10 +53,10 @@ BEGIN
BEGIN BEGIN
VALUE "CompanyName", "Telegram FZ-LLC" VALUE "CompanyName", "Telegram FZ-LLC"
VALUE "FileDescription", "Telegram Desktop Updater" VALUE "FileDescription", "Telegram Desktop Updater"
VALUE "FileVersion", "4.15.7.0" VALUE "FileVersion", "4.16.0.0"
VALUE "LegalCopyright", "Copyright (C) 2014-2024" VALUE "LegalCopyright", "Copyright (C) 2014-2024"
VALUE "ProductName", "Telegram Desktop" VALUE "ProductName", "Telegram Desktop"
VALUE "ProductVersion", "4.15.7.0" VALUE "ProductVersion", "4.16.0.0"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

View file

@ -106,7 +106,6 @@ UserPrivacy::Rule TLToRules(const TLRules &rules, Data::Session &owner) {
using Option = UserPrivacy::Option; using Option = UserPrivacy::Option;
auto result = UserPrivacy::Rule(); auto result = UserPrivacy::Rule();
auto optionSet = false; auto optionSet = false;
auto allowPremium = false;
const auto setOption = [&](Option option) { const auto setOption = [&](Option option) {
if (optionSet) { if (optionSet) {
return; return;

View file

@ -906,7 +906,7 @@ void ShareWithFriend(
Window::ShowChooseRecipientBox(navigation, chosen); Window::ShowChooseRecipientBox(navigation, chosen);
} }
[[nodiscard]] void ShowAlreadyPremiumToast( void ShowAlreadyPremiumToast(
not_null<Window::SessionNavigation*> navigation, not_null<Window::SessionNavigation*> navigation,
const QString &slug, const QString &slug,
TimeId date) { TimeId date) {

View file

@ -689,7 +689,6 @@ object_ptr<Ui::RpWidget> CreateUserpicsWithMoreBadge(
+ st::lineWidth; + st::lineWidth;
auto result = object_ptr<Ui::FixedHeightWidget>(parent, full); auto result = object_ptr<Ui::FixedHeightWidget>(parent, full);
const auto raw = result.data(); const auto raw = result.data();
const auto &st = st::boostReplaceUserpic;
const auto overlay = CreateChild<Ui::RpWidget>(raw); const auto overlay = CreateChild<Ui::RpWidget>(raw);
const auto state = raw->lifetime().make_state<State>(); const auto state = raw->lifetime().make_state<State>();

View file

@ -22,7 +22,7 @@ constexpr auto AppId = "{53F49750-6209-4FBF-9CA8-7A333C87D1ED}"_cs;
constexpr auto AppNameOld = "Telegram Win (Unofficial)"_cs; constexpr auto AppNameOld = "Telegram Win (Unofficial)"_cs;
constexpr auto AppName = "Telegram Desktop"_cs; constexpr auto AppName = "Telegram Desktop"_cs;
constexpr auto AppFile = "Telegram"_cs; constexpr auto AppFile = "Telegram"_cs;
constexpr auto AppVersion = 4015007; constexpr auto AppVersion = 4016000;
constexpr auto AppVersionStr = "4.15.7"; constexpr auto AppVersionStr = "4.16";
constexpr auto AppBetaVersion = true; constexpr auto AppBetaVersion = false;
constexpr auto AppAlphaVersion = TDESKTOP_ALPHA_VERSION; constexpr auto AppAlphaVersion = TDESKTOP_ALPHA_VERSION;

View file

@ -281,7 +281,7 @@ void InnerWidget::fill() {
const auto &data = _state; const auto &data = _state;
constexpr auto kMinus = QChar(0x2212); constexpr auto kMinus = QChar(0x2212);
constexpr auto kApproximately = QChar(0x2248); //constexpr auto kApproximately = QChar(0x2248);
const auto multiplier = data.usdRate; const auto multiplier = data.usdRate;
constexpr auto kNonInteractivePeriod = 1717200000; constexpr auto kNonInteractivePeriod = 1717200000;
@ -706,9 +706,6 @@ void InnerWidget::fill() {
(b.height() - l.height()) / 2); (b.height() - l.height()) / 2);
}, label->lifetime()); }, label->lifetime());
const auto fadeAnimation =
label->lifetime().make_state<Ui::Animations::Simple>();
const auto colorText = [=](float64 value) { const auto colorText = [=](float64 value) {
label->setTextColorOverride( label->setTextColorOverride(
anim::with_alpha( anim::with_alpha(
@ -1044,7 +1041,7 @@ void InnerWidget::fill() {
Ui::AddSkip(container); Ui::AddSkip(container);
} }
if (channel) { if (channel) {
constexpr auto kMaxCPM = 50; // Debug. //constexpr auto kMaxCPM = 50; // Debug.
const auto requiredLevel = Data::LevelLimits(session) const auto requiredLevel = Data::LevelLimits(session)
.channelRestrictSponsoredLevelMin(); .channelRestrictSponsoredLevelMin();
const auto &phrase = tr::lng_channel_earn_off; const auto &phrase = tr::lng_channel_earn_off;

View file

@ -670,12 +670,12 @@ base::options::toggle ShowPeerIdBelowAbout({
const TextWithEntities &value) { const TextWithEntities &value) {
slide->show(anim::type::normal); slide->show(anim::type::normal);
}); });
auto labeled = layout->add(object_ptr<Ui::FlatLabel>( layout->add(object_ptr<Ui::FlatLabel>(
layout, layout,
std::move(nonEmptyText), std::move(nonEmptyText),
st::birthdayLabeled)); st::birthdayLabeled));
layout->add(Ui::CreateSkipWidget(layout, st::infoLabelSkip)); layout->add(Ui::CreateSkipWidget(layout, st::infoLabelSkip));
const auto subtext = layout->add(object_ptr<Ui::FlatLabel>( layout->add(object_ptr<Ui::FlatLabel>(
layout, layout,
std::move( std::move(
label label

View file

@ -103,9 +103,6 @@ public:
not_null<QWidget*> button; not_null<QWidget*> button;
}; };
void show(Descriptor &&descriptor); void show(Descriptor &&descriptor);
void repaint();
[[nodiscard]] bool hasFocus() const;
struct CustomChosen { struct CustomChosen {
not_null<DocumentData*> sticker; not_null<DocumentData*> sticker;
@ -240,7 +237,6 @@ rpl::producer<std::shared_ptr<StickerPlayer>> IconPlayerValue(
stickerChosen(chosen.sticker); stickerChosen(chosen.sticker);
}, raw->lifetime()); }, raw->lifetime());
const auto session = &show->session();
std::move( std::move(
stickerValue stickerValue
) | rpl::start_with_next([=](DocumentData *sticker) { ) | rpl::start_with_next([=](DocumentData *sticker) {
@ -435,7 +431,6 @@ StickerPanel::StickerPanel() = default;
StickerPanel::~StickerPanel() = default; StickerPanel::~StickerPanel() = default;
void StickerPanel::show(Descriptor &&descriptor) { void StickerPanel::show(Descriptor &&descriptor) {
const auto controller = descriptor.controller;
if (!_panel) { if (!_panel) {
create(descriptor); create(descriptor);
@ -466,14 +461,6 @@ void StickerPanel::show(Descriptor &&descriptor) {
_panel->toggleAnimated(); _panel->toggleAnimated();
} }
bool StickerPanel::hasFocus() const {
return _panel && Ui::InFocusChain(_panel.get());
}
void StickerPanel::repaint() {
_panel->selector()->update();
}
void StickerPanel::create(const Descriptor &descriptor) { void StickerPanel::create(const Descriptor &descriptor) {
using Selector = ChatHelpers::TabbedSelector; using Selector = ChatHelpers::TabbedSelector;
using Descriptor = ChatHelpers::TabbedSelectorDescriptor; using Descriptor = ChatHelpers::TabbedSelectorDescriptor;
@ -572,7 +559,7 @@ void ChatIntro::setupContent(
_intro = intro; _intro = intro;
}; };
const auto preview = content->add( content->add(
object_ptr<PreviewWrap>( object_ptr<PreviewWrap>(
content, content,
session, session,

View file

@ -673,7 +673,6 @@ void LinksController::rowPaintIcon(
const auto skip = st::inviteLinkIconSkip; const auto skip = st::inviteLinkIconSkip;
const auto inner = size - 2 * skip; const auto inner = size - 2 * skip;
const auto bg = &st::msgFile1Bg; const auto bg = &st::msgFile1Bg;
const auto stroke = st::inviteLinkIconStroke;
if (_icon.isNull()) { if (_icon.isNull()) {
_icon = QImage( _icon = QImage(
QSize(inner, inner) * style::DevicePixelRatio(), QSize(inner, inner) * style::DevicePixelRatio(),

View file

@ -416,8 +416,6 @@ void SetupPersonalChannel(
not_null<Ui::VerticalLayout*> container, not_null<Ui::VerticalLayout*> container,
not_null<Window::SessionController*> controller, not_null<Window::SessionController*> controller,
not_null<UserData*> self) { not_null<UserData*> self) {
const auto session = &self->session();
Ui::AddSkip(container); Ui::AddSkip(container);
auto value = rpl::combine( auto value = rpl::combine(

View file

@ -1,7 +1,7 @@
AppVersion 4015007 AppVersion 4016000
AppVersionStrMajor 4.15 AppVersionStrMajor 4.16
AppVersionStrSmall 4.15.7 AppVersionStrSmall 4.16
AppVersionStr 4.15.7 AppVersionStr 4.16.0
BetaChannel 1 BetaChannel 0
AlphaVersion 0 AlphaVersion 0
AppVersionOriginal 4.15.7.beta AppVersionOriginal 4.16

View file

@ -1,3 +1,12 @@
4.16 (01.04.24)
- Instant View on Windows 10+ and macOS.
- Allow scheduling messages in topics.
- Telegram Business: Links to Chats.
- Telegram Business: Custom Intro.
- Telegram Business: Chatbots.
- Sharing Revenue with Channel Owners.
4.15.7 beta (01.04.24) 4.15.7 beta (01.04.24)
- Test crashfix on Linux. - Test crashfix on Linux.