This commit adds the helper interface ILocationMapTileHelper for getting
info about current location (e.g. location URL or map tile image URL).
This commit adds the following classes:
1. The interface ILocationMapTileHelper;
2. YandexMapsLocationTileHelper - uses Yandex.Maps Static API as backend for
getting tile info;
3. GoogleMapsLocationTileHelper - uses Google Maps Statis API as backend;
Please note that these classes aren't used yet, it will be used in next commit.
Also please note that all virtual functions has been extracted from classes definitions
to avoid the -WWeak-tables warning. (See Clang manual about this warning).
You could enable it via CMake option KEPKA_OPTION_USE_YANDEX_MAPS:
cmake -DKEPKA_OPTION_USE_YANDEX_MAPS=ON ..
It is used instead of Google Maps API for locations and on location click.
Sometimes Google Maps return no maps data. It is related with recent free
API usages count decrease from 750k requests to 28k (according to
https://habr.com/post/417715/).
The code on this commit will be cleaned up and rewritten using Maps API
string builders in next commit.
These logo variants are available under Creative Commons
Attribution Share-Alike License 4.0. See
https://creativecommons.org/licenses/by-sa/4.0/
(c) 2018 leha-bot.
The short guide about branding and logo usages
(from /Telegram/Resources/art) in Kepka:
1. logo_256.png/logo_256_no_margin.png -
used in /Telegram/SourceFiles/window/main_window.cpp for loading logo
(nowrap logo is used on Mac), in /Telegram/SourceFiles/messenger.[cpp|h],
in /Telegram/SourceFiles/platform/linux/specific_linux.cpp and in qrc.
Required for branding;
2. icon64.png - Doxyfile and MacOS image assets (they are duplicated in
/Telegram/Telegram/Images.xcassets/[Icon.iconset|AppIcon.appiconset);
3. icon[<resolution>[@x2]].png - MacOS image assets. We will update
these icons in next commit;
4. favicon.ico - seems unused;
5. icon256.ico - Windows Resource for EXE;
There is also a dangling reference inside
/Telegram/Resources/uwp/AppX/AppxManifest.xml. It shoud be fixed in some
of next commits.
Also update usage in intro widget. Please note that the language strings
with placeholders must be created using {lang_id}(lt_{placeholder},
lang({placeholder}), where you should replace {lang_id} with your actual
language string identifier and {placeholder} with your actual string
data.
IPO optimizations will be disabled by default. To enable you need to
forward cmake build flag -DENABLE_IPO:BOOL=ON.
Signed-off-by: Vitaly Zaitsev <vitaly@easycoding.org>
The AppleClang 9.1 doesn't support std::is_invocable (introduced in f488d5f), so we have to use backported version from Facebook's Folly library which provides "batteries" for C++ and Standard Library's backports from C++14/17. Folly library is licensed under Apache 2.0 License which is compatible with GNU GPL v3.
Also set CMAKE_BUNDLE_DIR to CMAKE_INSTALL_DIR to avoid the CMake error "install TARGETS given no BUNDLE DESTINATION for MACOSX_BUNDLE executable" (seems it introduced in CMake 3.12.x).
The way of fixing this is weird and is a natural clutch. But we have to
live with it. And I hate it.
Note: all another function members movings from header file to source
are postponed to another commit.
This commit based on
75d8d01b17 (diff-efcc341e70654031bd8fee83d8b7105bR999)Fixes#189.
Also make History Widget react on pinning Channel message event and show
it in UI.
This commit is based on upstream commit
75d8d01b17
Related to #114.
Closes#8.
Prepare for pinning messages in Channels, in which we are could not
disable the pin notification.
Based on upstream commit
75d8d01b17
Related to #8, #114.
Shortlog:
1. InputMediaUploadedDocument now has the new flag nosound_video;
2. InputMediaVenue now has the new string venue_type (it seems to be
related to FourSquare Venue Types like "food/icecream" or another.
See core.telegram.org/bot/api#Venue for details);
3. Add live locations (InputMediaGeoLive);
4. channelFull object now has a flag hidden_prehistory (see issue #113
for details);
5. messageMediaVenue now has the same string venue_type;
6. messageMediaGeoLive now has the same fields as InputMediaGeoLive;
7. Add mysterious messageActionCustomAction;
8. Add messages.messagesNotModified (seems it's related to seamless
message counter decrement as in Telegram for Android since v 4.8);
9. Remove inputMessagesFilterPhotoVideoDocuments;
10. Add filters inputMessagesFilterGeo and inputMessagesFilterContact;
11. Add updateChannelAvailableMessages (seems it's a new kind of Update
related to listening of channel only updates);
12. Add channels.channelParticipantsNotModified;
13. inputBotInlineMessageMediaGeo now has the period field (like new
live locations);
14. botInlineMessageMediaGeo now has the same period field;
15. BotResults now has a users vector field;
16. messages.botCallbackAnswer now has a new native_ui flag (seems it's
related to some new kind of notification. Right now bots could send you
either the message box or the modeless notification which is appeared
from top of chat viewport);
17. Add inputPaymentCredentials[Android|Apple]Pay for (possible) Android
Pay / Apple Pay support;
18. Add channelAdminLogEventActionTogglePreHistoryHidden for toggling
history for chat newcomers (see issue #113);
19. Add strange recentMeUrl[Unknown|User|Chat|ChatInvite|StickerSet].
Seems it's related to "Saved Messages" functionality.
20. Add help.recentMeUrl method;
21. messages.getHistory now has an argument hash;
22. messages.editMessage now has the new flag stop_geo_live related to
Live Locations;
23. messages.editInlineBotMesages now has the same new flag;
24. Add new method messages.readMentions(peer:InputPeer);
25. Add new method help.getRecentMeUrls(referer:string);
26. channels.getParticipants now has a new parameter hash;
27. Add new method chanels.deleteHistory (seems it's related to issue
#112);
28. Add new method channels.togglePreHistoryHidden (see #113).
This commit is based on upstream commit bccd801874 and related to #114.