Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
241 commits
Select commit Hold shift + click to select a range
c50e12f
[TF] modify .gitignore
thermatk Mar 5, 2023
217c676
[TF][JNI] remove native deps to be replaced
23rd Aug 14, 2024
bda5071
[TF][JNI][UPDATE] libwebp 1.2.0 with security fix
thermatk Nov 7, 2020
f5e31e5
[TF][JNI][UPDATE] BoringSSL from source (master)
thermatk Apr 13, 2024
d192259
[TF][JNI] libvpx (v1.16.0)
thermatk Apr 13, 2024
189f8b4
[TF][JNI][UPDATE] FFmpeg 4.4.8 from source
thermatk Apr 13, 2024
bca0726
[TF][FEATURE] Support installing APKs
thermatk Feb 9, 2019
a8385fc
[TF][KILL] Google Vision
thermatk Mar 28, 2022
85fed06
[TF][KILL] Google Wallet and Android Pay
thermatk Jan 25, 2019
cbabb0d
[TF][KILL] remaining GMS(GCM, Wear, etc), except for Maps
thermatk Jan 25, 2019
e2c3dc6
[TF][CENSOR] PWN RKN without Firebase
thermatk Jan 25, 2019
1cd946c
[TF][PUSH] push service adjustments
thermatk Jan 26, 2019
fc36cf8
[TF][KILL] remove fusedlocationprovider
thermatk Oct 13, 2020
dcaa21b
[TF][KILL] GMS SMS Receiver
thermatk Sep 15, 2019
6005a82
[TF][KILL] Google Voice
thermatk Jan 4, 2020
64fd863
[TF][FIX] missing viewpager dependency
thermatk Jan 11, 2020
b4766ed
[TF][FEATURE] no restrictions
thermatk Apr 19, 2021
15dbe2f
[TF][FIX] the inverse color QR code scanned without vision
nekohasekai Jun 26, 2021
18a0719
[TF][KILL] Google Translate without MLKit
thermatk Sep 17, 2023
674123c
[TF][FEATURE] QR login always on
thermatk Jan 26, 2022
8bea093
[TF][KILL] Huawei
thermatk Mar 3, 2024
3da7542
[TF] clean app gradle
thermatk Aug 28, 2022
12ad7d9
[TF][KILL] Android Billing
thermatk Jan 21, 2024
5dfcb53
[TF][KILL] Google Login
thermatk Oct 2, 2022
1dd716f
[TF][MAPS] replace Google Maps with OSMDroid
thermatk Mar 10, 2024
bdea501
[TF][Fix] crash on Android S+
tehcneko Dec 4, 2022
f6b3a08
[TF][KILL] kill SafetyNet login
thermatk Nov 12, 2023
6567040
[TF][Fix] remove useless Fragment import
thermatk Sep 18, 2023
15a89d5
[TF] gradle 7.2
thermatk Oct 16, 2023
39c3103
[TF] revert boringssl for compat with openssl v1.0
thermatk Apr 21, 2024
1826387
Github CI.
23rd Feb 3, 2019
9a5a71e
Added new Forkgram icons.
23rd Oct 16, 2018
ce80da2
"Delete for everyone" enabled by default.
23rd May 14, 2019
f9a9023
Hided personal information in side bar.
23rd Oct 16, 2018
73f4f0f
Replaced string 'Connecting to proxy' to '...'.
23rd Oct 16, 2018
8dff61b
Rebranded to Fork Client and added the Fork settings section.
23rd Apr 7, 2026
8f76793
Changed notification icon.
23rd Oct 17, 2018
45305b2
Added showing date of forwarded message in title.
23rd Oct 19, 2018
677edeb
Changed book_logo icon.
23rd Oct 20, 2018
dbef2e5
Moved 'Call' item from top to bottom of dialog menu.
23rd Apr 7, 2026
04f3c5a
Added item in dialog menu to hide title and avatar in dialog.
23rd Oct 27, 2018
d51ff61
Owner only. Added auto inserting dot to the end of message.
23rd Nov 11, 2018
6ee9f5e
Added auto sending message before send sticker.
23rd Nov 11, 2018
42bd50a
Added Anonymous Forward to context menu.
23rd Nov 14, 2018
51de641
Added Color Picker button in Photo Editor.
23rd Nov 11, 2018
0466ae6
Added new Fork Settings section.
23rd Apr 7, 2026
0c98c28
Added new option to enable square avatars.
23rd Sep 18, 2023
e020da6
Added option to disable sending sticker info in photos.
23rd Feb 3, 2019
6f7b027
Added setting to raise all unmuted messages above muted messages.
23rd Feb 3, 2019
eff660b
Added auto inserting caption to cloud GIF if EditField has text.
23rd Feb 3, 2019
e974436
Show full number of subscribers.
23rd Feb 3, 2019
243809d
Added 'Go to First Message' item to dialog context menu.
23rd Feb 8, 2019
7b324c4
Added Share Button to messages with media in dialogs with users.
23rd Feb 8, 2019
0368745
Added full implementation of Fast Forward.
23rd May 17, 2019
5eb1e85
Added setting to set default camera for Video Messages.
23rd Mar 25, 2019
bece958
Added setting to turn off sync pins to make unlimited number of pins.
23rd Apr 7, 2026
176cd41
Added a lot of self-destruct timer's options in secret chats.
23rd May 26, 2019
54a44cf
Updated README.md.
23rd Jun 4, 2019
c73b5f8
Added ability to see profile info from dialogs list via context menu.
23rd Jul 31, 2019
726cddf
Disabled unread count hiding when select multiple dialogs.
23rd Jul 31, 2019
664952e
Added ability to copy url from inline button.
23rd Aug 22, 2019
ca3a6df
Added ability to open calendar from long click of on floating date.
23rd Aug 22, 2019
a0f31ae
Added ability to select all messages between 2 selections from bar.
23rd Sep 5, 2019
dd9976b
Added setting to hide or show personal information.
23rd Apr 7, 2026
66b0a74
Added ability to copy ID of dialogs.
23rd Sep 5, 2019
b1ed794
Added ability to copy Username without long touch.
23rd Sep 6, 2019
3dd4723
Added ability to use system camera for photos.
23rd Apr 7, 2026
43a4e88
Added ability to mention users by name.
23rd Oct 8, 2019
946b264
Added ability to hide bottom button.
23rd Nov 12, 2019
0819f65
Removed white background for recording of round video messages.
23rd Jul 10, 2022
5f6cc75
Added ability to open archive on pulldown.
23rd Jan 6, 2020
92dc770
Forced enabled PiP for Youtube videos.
23rd Jan 12, 2020
3a46d42
Added Kotlin.
23rd Apr 19, 2020
e5c5d6d
Updated README with new features
RememberTheAir Jan 20, 2020
81820c6
Added ability to change size of stickers.
satouriko Jan 16, 2020
a4008b1
Added setting to disable flip through photos by tapping on their edge.
23rd Feb 15, 2020
04972d3
Added missed dependency interpolator.
23rd Mar 30, 2020
5b19baa
Added own implementation of auto updater via Github Releases.
23rd Apr 19, 2020
aa50a18
Moved editing of phone, username, bio in long-tap-dots-menu in profile.
23rd Apr 25, 2020
0b44388
Swaped Delete and Mark as read items in Dialog Menu.
23rd May 16, 2020
4b0da80
Added days of week to schedule time picker.
23rd May 17, 2020
22caf5f
Added option to enable time format with seconds.
23rd Jul 20, 2020
f8c8790
Added option to disable thumbs in dialog list.
23rd Jul 20, 2020
1208f91
Added option to show full list of recent stickers.
23rd Sep 15, 2020
93bb53d
Added ability to copy links without protocol.
23rd Sep 15, 2020
c5fa6e6
Added option to show notifications content when application is locked.
23rd Nov 15, 2020
24d52ea
Returned missed items to main menu for secret chats and channels.
23rd Dec 27, 2020
39fe94c
Added ability to seek voice messages from player alert.
23rd Feb 7, 2021
b61154b
Added ability to attach text to voice message before sending it.
23rd Feb 26, 2021
3bb44b3
Added duration info in Shared Voices tab.
23rd Aug 6, 2021
97ab8e7
Switched to Release.
23rd Jul 20, 2021
79ca2f7
Added uploading to channel to Github CI.
23rd Sep 13, 2024
79f289a
Added F-Droid build.
23rd Nov 4, 2021
393e38d
Added ability to delete all your messages in group.
23rd Nov 11, 2021
bb21a0b
Added Forkgram icon to list of devices.
23rd Dec 8, 2021
984dfed
Added option to hide "Send As" button.
23rd Dec 27, 2021
4f43808
Added ability to set custom title of main view.
23rd Dec 29, 2021
7b1b4a8
Replaced Google translate with DuckDuckGo.
23rd Dec 30, 2021
3c1ac30
Added option to disable Global Search.
23rd Jan 9, 2022
d5d2541
Explicitly excluded x86 arch.
23rd Feb 2, 2022
a80aaf7
Disabled DNS resolving for special builds.
23rd Feb 19, 2022
a0a9d0a
Disabled sending message when key Shift is pressed.
23rd Jun 20, 2022
389b1da
Added buttons for backward and forward steps to audio player.
23rd Jul 13, 2022
b5f81dd
Fixed limits for uploading files.
23rd Nov 5, 2022
ea50090
Added new option to disable quick reaction with double tap.
23rd Nov 5, 2022
7504ed6
Fixed Sub Item Overalay of Right Icon
Laky-64 Nov 10, 2022
110d325
Disabled "Sync Contacts" by default in Login activity.
23rd Nov 24, 2022
1207162
Added option to hide animated locked emoji from emoji panel.
23rd Dec 6, 2022
a780c48
Added experimental additional online statuses.
23rd Apr 5, 2020
2f92aca
Added option to disable parameters from bot links.
23rd Feb 3, 2023
600edfb
Added option to lock premium features.
23rd Feb 3, 2023
28262f7
Added ability to hide dialogs hint cell.
23rd Aug 7, 2023
02657b9
Temporary fixed crash on creation new secret chat from main menu.
23rd Aug 16, 2023
fea9161
Added ability to reset item angle in PaintView.
23rd Sep 14, 2023
4c6e3fe
Added experimental option to delete all unpinned messages in chat.
23rd Sep 18, 2023
7b6d624
Removed useless "New message" floating button.
23rd Sep 18, 2023
ca62f50
Do not compress videos
megapro17 Dec 5, 2023
0bee85a
Removed debug button from settings.
23rd Mar 11, 2024
7e20066
Attempted to remove Android Billing.
23rd Jun 3, 2024
86f9ba3
Attempted to return DnsTxtLoadTask.
23rd Jun 3, 2024
329d6d0
Added extra padding for message menu for android with system buttons.
23rd Jun 28, 2024
ad1ebe8
Added an experimental option to disable constant status online updates.
23rd Jul 5, 2024
36de46f
add option to disable slide to next channel
rhjdvsgsgks Aug 12, 2024
70cc542
Added new option to disable recent files from attachment alert.
23rd Aug 14, 2024
0ddf389
Switched JavaVersion.VERSION_1_8 to JavaVersion.VERSION_17.
23rd Sep 12, 2024
f340909
Added translations.
23rd Sep 12, 2024
27f64ea
Attempted to fix StringConcatFactory.
23rd Sep 12, 2024
4cb35e5
Attempted to fix crash on U+.
23rd Sep 13, 2024
d441d89
Added dav1d (1.5.4) submodule.
23rd Nov 21, 2024
2dc3305
Attempted to fix application name and icon for f-droid releases.
23rd Jan 15, 2025
df92e1d
Added webview bots options.
23rd Jan 26, 2025
da65b1b
Attempted to remove Google Barcode.
23rd Jan 27, 2025
0084597
Added ability to open Saved Messages on long click on search top button.
23rd Feb 15, 2026
74f452b
Added option to open links in system browser by default.
23rd Mar 18, 2025
d217197
Removed gift button from input message field.
23rd Mar 18, 2025
1b0c86d
Fixed warning.
23rd May 1, 2025
59b239f
Removed precompiled tde2e libs.
23rd May 1, 2025
64347a1
Added tdlib submodule.
23rd May 1, 2025
9fd800b
Cherry-picked fixes to evdns.
23rd May 6, 2025
eaa4912
Monet themes PR by @Golbinex
Golbinex Jun 4, 2025
2db168e
UnifiedPush support PR by @Golbinex
Golbinex Jun 4, 2025
3177d45
fix invalid path to AndroidManifest*.xml files in TMessagesProj_App/b…
saintech Jun 17, 2025
03c7b5f
Added correspond application name for fdroid build.
23rd Jun 29, 2025
6e87be8
Added warning about limitation of SMS verification.
23rd Jun 29, 2025
562196a
Added integration of last.fm.
23rd Sep 19, 2025
e1a0a6d
Reduced long-click time to context menu appearing from sticker preview.
23rd Sep 20, 2025
319e9b3
Added option to delete all user messages in all forum topics at once.
23rd Sep 20, 2025
361b34f
Add option for last seen dots
derivativeoflog7 Apr 17, 2024
fc21995
Added new option to hide archived stories.
23rd Nov 7, 2025
0fcd0db
Update full_description.txt
Korb Oct 21, 2025
6ee8a6c
Create ru/short_description.txt
Korb Oct 22, 2025
a5d9bae
Added passkey support.
23rd Dec 20, 2025
461f0d3
Added option to disable trigger video by volume change.
23rd Dec 20, 2025
dedbe83
Added option for interval of updates check.
23rd Dec 20, 2025
27d0970
Added offline status timer after MarkAsRead notification action.
23rd Dec 20, 2025
e39d9bd
Replaced frequent contacts with logged in accounts in App Shortcuts.
23rd Dec 20, 2025
7110876
Add building instructions for Debian 13
Golbinex Jan 10, 2026
d09e6eb
Update strings.xml
leonardo834 Jan 18, 2026
8c9324a
Fix web links sharing
optimumpr Mar 18, 2026
83f2d73
Expanded maximum cache size slider with more granular options.
23rd Mar 26, 2026
f94846b
Added initial dockerfile.
23rd Apr 6, 2026
4e62304
Added ability to jump to message on long-press on audio-bar.
23rd Apr 6, 2026
9553462
Increased limit for account count.
23rd Apr 6, 2026
d26af8b
Added experimental ability to copy private message link.
23rd Apr 6, 2026
2b55d00
Added square-crop to photo editor.
23rd Apr 6, 2026
5204e00
Added option to change bitrate for voice message recording.
23rd Apr 6, 2026
1d14c66
Added ability to login with QR.
23rd Apr 6, 2026
bfb9ada
Added option to disable AI editor.
23rd Apr 6, 2026
d0228f7
Added hint about long-press gestures.
23rd Apr 6, 2026
075708f
Fixed memory leak and redundant JNI attach in video decoding.
23rd Apr 7, 2026
44f6f9b
Cached online status and color computation outside of DialogCell draw.
23rd Apr 22, 2026
c71e87f
Deduplicated chat queries.
23rd Apr 22, 2026
7872148
Reduced excessive logging dismissDate in showExtraNotifications().
23rd Apr 22, 2026
0d824b7
Removed VIEW_TYPE_NEW_CHAT_HINT with its infinite invalidation loop.
23rd Apr 22, 2026
3ffa7b1
Batched typing status invalidation and reduced waiting state redraws.
23rd Apr 22, 2026
1f2cc2f
Stopped HintView2 flicker animation on hide and detach from window.
23rd Apr 22, 2026
8d96fd9
Lazily initialized BoolAnimator for poll votes mention in DialogCell.
23rd Apr 22, 2026
f79bbb1
Skipped inactive accounts across startup and per-account initialization.
23rd Apr 24, 2026
ab962dd
Reduced push service watchdog alarm from 60s to 15 minutes.
23rd Apr 24, 2026
809c531
Changed NotificationsService foreground type from dataSync to special…
23rd Apr 24, 2026
0f23acd
Disabled push watchdog when a UnifiedPush distributor is registered.
23rd Apr 24, 2026
ae86e65
Replaced direct invalidate with needInvalidate in DialogCell spoiler …
23rd Apr 26, 2026
1e4bbbd
Removed Dump Canvas debug menu entries.
23rd Apr 26, 2026
eaad533
Added forkTest product flavor for arm64-v8a debug builds.
23rd Apr 26, 2026
71cac58
Dropped auto-generated Screenshot caption from system share intent.
23rd Apr 26, 2026
51a585a
Restored Telegram locale in FingerprintController instead of system one.
23rd Apr 26, 2026
e079f81
Pinned non-cloud string lookups to currentLocale.
23rd Apr 26, 2026
b507c1e
Kept reply quote intact when sending a recorded voice message.
23rd Apr 27, 2026
8abfbad
Connected Telegram-channel fork updates to UpdateAppAlertDialog popup.
23rd Apr 27, 2026
809175f
Forced profile info section into one card to fix open-animation flicker.
23rd Apr 27, 2026
2ddc49b
Added hidden accounts and stealth mode.
the-nexi Apr 17, 2026
8fd8ae4
Added Cloudflare STT integration for voice message transcription.
7heMech May 6, 2026
c6ce4fc
Added "extract media from webpage preview" toggle.
23rd May 21, 2026
486dac7
Set up self-contained test-build signing with a committed test keystore.
23rd Jun 11, 2026
af4c6db
Fixed clipped and unselectable first row in forward menu search.
23rd Jun 11, 2026
efca5da
Fixed direct share targets missing from the system share sheet.
23rd Jun 11, 2026
608cb18
Added d-pad navigation.
23rd Jun 11, 2026
e435817
Fixed profile pictures after the first 80 never loading in the avatar…
23rd Jun 11, 2026
85b4585
fix IPv6 proxy connectivity
May 24, 2026
acb6e20
Added custom mute duration with days, hours and minutes.
23rd Jun 17, 2026
fcb3cc3
Added a mutual contact indicator to the contacts list.
23rd Jun 17, 2026
d7437dd
Added export and import of settings.
23rd Jun 17, 2026
976ad89
fix: save to gallery broken on Android 16 (API 36)
carmilso Jun 26, 2026
e31a0e6
Fixed AI Editor button ignoring hide setting when sending media.
23rd Jun 20, 2026
9ba65d3
Fixed push service notification linking to old Telegram-FOSS repository.
23rd Jun 20, 2026
8c60201
Fixed crash when selecting first message in report mode.
23rd Jun 20, 2026
10fe75e
Disabled forced dark mode for dark theme to fix color flashing.
23rd Jun 20, 2026
0a0cb51
Added option to hide contacts list in chats list.
23rd Jun 20, 2026
56c3674
Added hint to restore tabs when hiding them by long-pressing title.
23rd Jun 20, 2026
fb7b003
Added option to disable tablet mode.
23rd Jun 20, 2026
ccae6d4
Added copying user, bot, group or channel name by long-pressing it.
23rd Jun 20, 2026
fc50cd6
Added option to hide reactions shown on messages.
23rd Jun 20, 2026
5560f89
Added option to hide tags in Saved Messages.
23rd Jun 20, 2026
ade5551
Added option to hide in-app hint banners.
23rd Jun 20, 2026
e2d9009
Added option to disable link previews by default when composing.
23rd Jun 20, 2026
7c59271
Let "Hide Sensitive Data" choose what it hides.
23rd Jun 20, 2026
2b0cc1f
Added option to block screenshots and screen recording.
23rd Jun 20, 2026
414aa60
Fixed bg chat scrolling when forward menu's keyboard opens.
23rd Jun 26, 2026
d40c09b
Added option to send video as round video message.
23rd Jun 26, 2026
81ae47e
Added option to show archived sticker packs in the sticker panel.
23rd Jun 28, 2026
eb2a62e
Fixed supergroup custom emoji not being available in media captions.
23rd Jun 29, 2026
8da6835
Added option to delete files from device in the gallery picker.
23rd Jul 1, 2026
5b0285e
Added option to show or hide bottom tabs in the dialogs menu.
23rd Jul 1, 2026
0d935ba
Added caption display for voice messages in shared media list.
23rd Jul 9, 2026
adf187d
Added option to disable motion photos.
23rd Jul 9, 2026
08ab7c6
Added option to disable auto-play of next voice/video message.
23rd Jul 9, 2026
e1ea1e7
Added Copy Code button to short code blocks.
23rd Jul 9, 2026
eab7aac
Added option to change avatar shape.
23rd Jul 9, 2026
6048027
Added option to use offline translation.
23rd Jul 9, 2026
30ec579
Added option to use offline voice transcription.
23rd Jul 9, 2026
a8cb1fe
Added option to reorder and hide text formatting items.
23rd Jul 14, 2026
b1bbfab
Added option to hide All Chats tab and choose default folder.
23rd Jul 15, 2026
5549c6b
Added folder icons with tab display style option.
23rd Jul 17, 2026
b29eaeb
Added WebSocket transport with automatic relay domains.
23rd Jul 18, 2026
06f1dd5
Added account selector to devices screen.
23rd Jul 19, 2026
aa55e96
Added manual reordering of accounts.
23rd Jul 25, 2026
5e8c2d4
Fixed AV1 videos being sent without transcoding.
23rd Jul 26, 2026
421a8eb
Fixed system treating app as playing after closing the audio player.
23rd Jul 26, 2026
e6a613f
Added options menu to Share Alert.
23rd Jul 27, 2026
555cb45
[Release] 12.9.1.
23rd Jul 30, 2026
bea7fad
feature: add self-hosted whisper asr voice transcription
GRbit Aug 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
48 changes: 48 additions & 0 deletions .github/workflows/docker-builder.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Build & Push Docker Builder Image

on:
push:
paths:
- 'docker/Dockerfile'
- '.github/workflows/docker-builder.yml'
branches:
- dev
schedule:
# First Sunday of each month at 03:00 UTC
- cron: '0 3 1-7 * 0'
workflow_dispatch:

env:
REGISTRY: ghcr.io

jobs:
build-and-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Lowercase image name
id: lower
run: echo "image_name=$(echo '${{ github.repository }}/forkgram-builder' | tr '[:upper:]' '[:lower:]')" >> "$GITHUB_OUTPUT"

- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v6
with:
context: docker
file: docker/Dockerfile
push: true
tags: |
${{ env.REGISTRY }}/${{ steps.lower.outputs.image_name }}:latest
${{ env.REGISTRY }}/${{ steps.lower.outputs.image_name }}:${{ github.sha }}
117 changes: 117 additions & 0 deletions .github/workflows/fd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
name: Fd

on:
workflow_dispatch:

jobs:
linux:
name: Deploy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
with:
submodules: true

- uses: robinraju/release-downloader@v1.3
with:
repository: ${{ github.repository }}
latest: true
fileName: "*"

- name: Process.
env:
ADDITIONAL_BUILD: ${{ secrets.ADDITIONAL_BUILD_NUMBER }}
run: |
mkdir -p ~/.ssh/
install -m 600 /dev/null ~/.ssh/id_rsa
echo "${{ secrets.FD_SSH_PRIVATE }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa


fileApk=$(find -iname "*.apk")
echo "$fileApk"
fileAapt2=$(ls $ANDROID_SDK_ROOT/build-tools/**/aapt2 | tail -1)
echo "$fileAapt2"
$fileAapt2 dump badging $fileApk > output.txt

versionCode=`grep versionCode output.txt | sed "s/versionCode/#/g" | cut -d'#' -f 2 | cut -d"'" -f 2`
versionName=`grep versionName output.txt | sed "s/versionName/#/g" | cut -d'#' -f 2 | cut -d"'" -f 2`

echo "Found versionName ${versionName}."
echo "Found versionCode ${versionCode}."


echo "Host *" > ~/.ssh/config
echo "StrictHostKeyChecking no" >> ~/.ssh/config
echo "UserKnownHostsFile=/dev/null" >> ~/.ssh/config


git config --global user.email "${{ secrets.FD_GIT_EMAIL }}"
git config --global user.name "${{ secrets.FD_GIT_NAME }}"

git clone git@gitlab.com:fdroid/fdroiddata.git r
cd r
git remote add fork ${{ secrets.FD_SSH_URL }}
git branch update
git checkout update


file=`find . | grep forkgram`

cp `find .. -iname "fd_part.txt"` part.txt
cp `find .. -iname "fd_end.txt"` end.txt

function addPart() {
abiCode=$1

countLines=`wc -l end.txt | cut -d' ' -f 1`
for dummy in `seq 1 $countLines`
do
sed -i '$ d' $file
done

echo "`cat part.txt`" >> $file
echo "" >> $file
echo "`cat end.txt`" >> $file

ADDITIONAL_BUILD_NUMBER=$((ADDITIONAL_BUILD / 10000))

versionCodeWithoutAbi=`echo ${versionCode%?}`

sed -i "s/V_NAME/${versionName}/g" $file
sed -i "s/V_CODE/${versionCodeWithoutAbi}${abiCode}/g" $file
sed -i "s/V_NUM/${ADDITIONAL_BUILD_NUMBER}/g" $file
sed -i "s/V_AFAT/afatFd_v${abiCode}a/g" $file
}

addPart 7
addPart 8


git add $file
git commit -m "Updated Forkgram to ${versionName}."

git push --force --set-upstream fork update

echo "VERSION_CODE=${versionCode}" >> $GITHUB_ENV

- uses: actions/github-script@v6.3.3
env:
RELEASE_ID: ${{ github.event.release.id }}
with:
script: |
const { RELEASE_ID } = process.env;
const { VERSION_CODE } = process.env;
const release = await github.rest.repos.getRelease({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: `${RELEASE_ID}`,
});
let desc = release.data.body;

github.rest.repos.updateRelease({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: `${RELEASE_ID}`,
body: desc + "\nVersion code: " + `\`${VERSION_CODE}\`` + "."
});
166 changes: 166 additions & 0 deletions .github/workflows/tandroid.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
name: Fork Client

on:
push:
branches:
- '**'

jobs:
linux:
name: Build
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
attestations: write
strategy:
matrix:
type: [debug, release]
include:
- type: debug
afat: assembleAfatDebug
name: ""
updates: 1
- type: release
afat: assembleAfatRelease
name: " compressed"
updates: 1
steps:
- uses: actions/checkout@v3.1.0
with:
submodules: true
- name: Free up some disk space.
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be
with:
tool-cache: false
android: false
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- uses: nttld/setup-ndk@v1.4.2
id: setup-ndk-r21e
with:
ndk-version: r21e
link-to-sdk: true

- uses: nttld/setup-ndk@v1.4.2
id: setup-ndk-r23c
with:
ndk-version: r23c
link-to-sdk: true
- name: Install NDK for the JNI build (ndkVersion).
run: yes | "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" "ndk;27.2.12479018"
- name: Prepare additional build number.
env:
ADDITIONAL_BUILD: ${{ secrets.ADDITIONAL_BUILD_NUMBER }}
run: |
result=$((ADDITIONAL_BUILD / 10000))
echo "ADDITIONAL_BUILD_NUMBER = $result should be between 0 and 10!"
echo "ADDITIONAL_BUILD_NUMBER=$result" >> $GITHUB_ENV
echo "USER_REPO=$GITHUB_REPOSITORY" >> $GITHUB_ENV
echo "CHECK_UPDATES=${{ matrix.updates }}" >> $GITHUB_ENV
- name: Build.
run: |
###
vars=gradle.properties

echo "DUMMY_CONST=0" >> $vars
echo "org.gradle.workers.max=1" >> $vars
echo "APP_ID=${{ secrets.APP_ID }}" >> $vars
echo "APP_HASH=${{ secrets.APP_HASH }}" >> $vars
echo "RELEASE_KEY_PASSWORD=${{ secrets.ALIAS_PASS }}" >> $vars
echo "RELEASE_KEY_ALIAS=${{ secrets.ALIAS_NAME }}" >> $vars
echo "RELEASE_STORE_PASSWORD=${{ secrets.KEYSTORE_PASS }}" >> $vars
echo "RELEASE_KEYSTORE_FILE=$PWD/TMessagesProj/config/release.keystore" >> $vars
echo "ADDITIONAL_BUILD_NUMBER=$ADDITIONAL_BUILD_NUMBER" >> $vars
echo "USER_REPO=$USER_REPO" >> $vars
echo "CHECK_UPDATES=${{ matrix.updates }}" >> $vars
echo "USER_ID_OWNER=${{ secrets.USER_ID_OWNER }}" >> $vars
echo "UPDATE_CHANNEL_USERNAME=${{ secrets.UPDATE_CHANNEL_USERNAME }}" >> $vars
echo "LASTFM_API_KEY=${{ secrets.LASTFM_API_KEY }}" >> $vars
echo "LASTFM_API_SECRET=${{ secrets.LASTFM_API_SECRET }}" >> $vars
echo "NATIVE_DEPS_NDK_DIR=${{ steps.setup-ndk-r21e.outputs.ndk-path }}" >> $vars

###
echo $ADDITIONAL_BUILD_NUMBER
sudo apt update
sudo apt -y install ninja-build meson unzip pip gperf
./gradlew :TMessagesProj_App:${{ matrix.afat }}

#grep BUILD_VERSION_STRING TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java | cut -d'"' -f 2 > ver.txt
grep VERSION_NAME TMessagesProj/build/generated/source/buildConfig/${{ matrix.type }}/org/telegram/messenger/BuildConfig.java | cut -d'"' -f 2 > ver.txt

mkdir -p artifact
mv TMessagesProj_App/build/outputs/apk/afat/${{ matrix.type }}/app.apk app.apk
cp app.apk "artifact/ForkClient $(cat ver.txt)${{ matrix.name }}.apk"
mkdir -p tag_asset
cp app.apk "tag_asset/ForkClient_$(cat ver.txt)${{ matrix.name }}.apk"

# Upload to channel.
if [[ "${{ contains(github.event.head_commit.message, '[Release]') }}" == "true" ]]; then
set +x
pip install requests tgcrypto-pyrofork Kurigram
cp app.apk "ForkClient $(cat ver.txt)${{ matrix.name }}.apk"
echo "${{ secrets.BASE64_ZIP }}" | base64 --decode > output.zip
unzip -j output.zip -d .
ls
python3 upload.py
set -x
else
echo "Skipping channel upload (no [Release] marker in commit message)."
fi
###

echo "NEW_TAG_TEXT=$(cat ver.txt)" >> $GITHUB_ENV

tempVer=$(cat ver.txt)
tempVer=${tempVer::-2}
echo "NEW_OFFICIAL_TAG_TEXT=$tempVer" >> $GITHUB_ENV
- name: Attest build provenance
if: ${{ contains(github.event.head_commit.message, '[Release]') }}
uses: actions/attest-build-provenance@v2
with:
subject-path: 'artifact/*.apk'

- uses: actions/upload-artifact@master
name: Upload artifact
if: ${{ contains(github.event.head_commit.message, '[Release]') }}
with:
name: ForkClient-${{ matrix.type }}
path: artifact/

release:
name: Create Release.
needs: linux
if: ${{ contains(github.event.head_commit.message, '[Release]') }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- name: Download debug artifact
uses: actions/download-artifact@v4.3.0
with:
name: ForkClient-debug
path: debug_asset
- name: Download release artifact
uses: actions/download-artifact@v4.3.0
with:
name: ForkClient-release
path: release_asset
- name: Get version info
run: |
find debug_asset -name "*.apk" | head -1 | sed 's/.*ForkClient //;s/\.apk//' > version.txt
echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
echo "OFFICIAL_VERSION=$(cat version.txt | sed 's/..$//')" >> $GITHUB_ENV
- name: Create Release
uses: softprops/action-gh-release@v0.1.15
env:
GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }}
with:
draft: true
files: |
debug_asset/*
release_asset/*
tag_name: ${{ env.VERSION }}
name: "ForkClient ${{ env.VERSION }}"
body: "— Updated to ${{ env.OFFICIAL_VERSION }} build of the official Telegram."
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
.idea/
.gradle/
.cxx/
build/
obj/
*.iml
Expand All @@ -13,3 +14,12 @@ TMessagesProj_App/afat/
TMessagesProj_AppHockeyApp/afat/
TMessagesProj_AppStandalone/afat/
TMessagesProj_AppHuawei/afat/
API_KEYS
*.hprof
TMessagesProj/jni/cache_keys/
TMessagesProj/.externalNativeBuild/
TMessagesProj/jni/ffmpeg/android/
TMessagesProj/jni/ffmpeg/build/
TMessagesProj/jni/boringssl/build/
TMessagesProj/jni/tde2e/x86*
TMessagesProj/jni/tde2e/arm*
20 changes: 20 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[submodule "TMessagesProj/jni/libwebp"]
path = TMessagesProj/jni/libwebp
url = https://github.com/webmproject/libwebp
[submodule "TMessagesProj/jni/boringssl"]
path = TMessagesProj/jni/boringssl
url = https://github.com/google/boringssl
ignore = all
[submodule "TMessagesProj/jni/libvpx"]
path = TMessagesProj/jni/libvpx
url = https://github.com/webmproject/libvpx
[submodule "TMessagesProj/jni/ffmpeg"]
path = TMessagesProj/jni/ffmpeg
url = https://github.com/FFmpeg/FFmpeg
ignore = all
[submodule "TMessagesProj/jni/dav1d"]
path = TMessagesProj/jni/dav1d
url = https://github.com/videolan/dav1d
[submodule "TMessagesProj/jni/tde2e_source"]
path = TMessagesProj/jni/tde2e_source
url = https://github.com/tdlib/td
7 changes: 7 additions & 0 deletions .vscode/keybindings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[
{
"key": "f16",
"command": "workbench.action.tasks.runTask",
"args": "Deploy (sync + build + install)"
}
]
Loading