Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
e9ba600
feat : Hide QR code and Account ID
codewithtamim Dec 1, 2025
e65e815
feat: display real-time server load and enable manual server selection
codewithtamim Dec 1, 2025
3a1599a
feat: add select individual servers toggle in settings
codewithtamim Dec 4, 2025
24d0302
fix(ui): device name overlap with copy button on large screens
codewithtamim Dec 4, 2025
89eed2c
fix device name overlap with copy button on large screens
codewithtamim Dec 4, 2025
e74c9d3
fix(multihop): hide selected entry server from exit list and vice versa
codewithtamim Dec 1, 2025
3cb7330
bugfix(multihop): hide selected entry server from exit list and vice …
codewithtamim Dec 1, 2025
8304a4f
fix: preserve last connected server after app update (APK/F-Droid)
codewithtamim Dec 1, 2025
55207c0
bugfix: preserve last connected server after app update (APK/F-Droid)
codewithtamim Dec 1, 2025
b036212
feat(ui): discreet app icon
codewithtamim Dec 11, 2025
44c7940
feature: discreet app icon
codewithtamim Dec 11, 2025
d8a7518
feat: WireGuard MTU config
codewithtamim Dec 11, 2025
70f9ed8
feature: wireguard mtu config
codewithtamim Dec 11, 2025
54fbed1
feat: unified favorites across VPN protocols
codewithtamim Dec 11, 2025
d945c4c
feature: unified favorites across vpn protocols
codewithtamim Dec 11, 2025
4e6380a
feat(ui): OLED pure black dark mode
codewithtamim Dec 11, 2025
80fd62f
feature: oled pure black dark mode
codewithtamim Dec 11, 2025
26261d2
chore(ui): Move MTU Settings inside Wireguard Details Like iOS App
codewithtamim Dec 11, 2025
f9afb6f
chore(ui): Move MTU Settings inside Wireguard Details Like iOS App
codewithtamim Dec 11, 2025
98d05e9
chore(ui): fix Change DNS section Pure Black theme
codewithtamim Dec 11, 2025
ce58c86
chore(ui) : Fix Change DNS Section Pure Black Theme
codewithtamim Dec 11, 2025
27b6f0d
merge feature/wireguard-mtu-config
codewithtamim Dec 11, 2025
abd46b4
merge feature/wireguard-mtu-config
codewithtamim Dec 11, 2025
2c5043c
chore(ui): remove WireGuard MTU from protocol fragment
codewithtamim Dec 11, 2025
c384475
chore(ui) : remove wireguard MTU from protocol fragment
codewithtamim Dec 11, 2025
5fa43dc
Merge feature/oled-pure-black-dark-mode into feature/discreet-app-icon
codewithtamim Dec 14, 2025
8406185
Merge feature/oled-pure-black-dark-mode into feature/discreet-app-icon
codewithtamim Dec 14, 2025
ae1da20
chore(ui): remove WireGuard MTU from protocol settings, keep only in …
codewithtamim Dec 14, 2025
4017075
chore(ui): remove WireGuard MTU from protocol settings, keep only in …
codewithtamim Dec 14, 2025
4a4b131
chore(ui): change AMOLED Black to Pure Black
codewithtamim Dec 14, 2025
645ebcc
chore(ui): change AMOLED Black to Pure Black
codewithtamim Dec 14, 2025
1a098a8
Merge feature/oled-pure-black-dark-mode into feature/discreet-app-icon
codewithtamim Dec 27, 2025
818fe9e
Merge feature/oled-pure-black-dark-mode into feature/discreet-app-icon
codewithtamim Dec 27, 2025
7d0eab6
chore(ui): rename Notes discreet icon to Alarm Clock
codewithtamim Dec 27, 2025
7e25849
Rename Notes discreet icon to Alarm Clock
codewithtamim Dec 27, 2025
c83c691
Merge remote-tracking branch 'codewithtamim/bugfix/account-device-nam…
jurajhilje Jan 28, 2026
8b6452e
Merge remote-tracking branch 'codewithtamim/bugfix/account-device-nam…
jurajhilje Jan 28, 2026
ccf2023
Merge remote-tracking branch 'codewithtamim/bugfix/multihop-hide-conf…
jurajhilje Jan 28, 2026
4f06a6a
Merge remote-tracking branch 'codewithtamim/bugfix/multihop-hide-conf…
jurajhilje Jan 28, 2026
f84b1aa
Merge remote-tracking branch 'codewithtamim/bugfix/fix-random-server-…
jurajhilje Jan 28, 2026
5957e57
Merge remote-tracking branch 'codewithtamim/bugfix/fix-random-server-…
jurajhilje Jan 28, 2026
666f8db
Merge remote-tracking branch 'codewithtamim/feature/server-load-and-m…
jurajhilje Jan 28, 2026
c09d934
Merge remote-tracking branch 'codewithtamim/feature/server-load-and-m…
jurajhilje Jan 28, 2026
3d4f513
Merge remote-tracking branch 'codewithtamim/feature/unified-favorites…
jurajhilje Jan 28, 2026
21423dc
Merge remote-tracking branch 'codewithtamim/feature/unified-favorites…
jurajhilje Jan 28, 2026
4a4f770
Merge remote-tracking branch 'codewithtamim/feature/wireguard-mtu-con…
jurajhilje Jan 28, 2026
5e68cd4
Merge remote-tracking branch 'codewithtamim/feature/wireguard-mtu-con…
jurajhilje Jan 28, 2026
0a2d9d5
ci: update build.yml
jurajhilje Feb 2, 2026
0db6c6c
ci: update build.yml
jurajhilje Feb 2, 2026
c28148f
ci: update codeql.yml
jurajhilje Feb 3, 2026
3c1bca3
ci: update codeql.yml
jurajhilje Feb 3, 2026
4f11a63
ci: update codeql.yml
jurajhilje Feb 3, 2026
4f58fc4
ci: update codeql.yml
jurajhilje Feb 3, 2026
36b7062
feat: server load display and manual server selection improvements
codewithtamim Feb 10, 2026
e975e29
New changes
codewithtamim Feb 10, 2026
5465039
Merge feature/server-load-and-manual-selection into beta-2.12.0
codewithtamim Feb 10, 2026
43558eb
Merge feature/server-load-and-manual-selection into beta-2.12.0
codewithtamim Feb 10, 2026
63110b4
chore(ui): remove MTU description from WireGuard Details screen, keep…
codewithtamim Feb 10, 2026
0e7d12c
Remove MTU description from WireGuard Details screen, keep in Configu…
codewithtamim Feb 10, 2026
1518669
Merge feature/wireguard-mtu-config into beta-2.12.0
codewithtamim Feb 10, 2026
a2a7677
Merge feature/wireguard-mtu-config into beta-2.12.0
codewithtamim Feb 10, 2026
52c3b48
fix(ui): MTU dialog layout
codewithtamim Feb 12, 2026
bd3a3bd
fix
codewithtamim Feb 12, 2026
1d855fd
chore(ui): move dropdown icon
codewithtamim Feb 12, 2026
f2da389
move dropdown icon
codewithtamim Feb 12, 2026
1ffd8a2
ci: update github actions
jurajhilje Mar 3, 2026
c2f71d6
Merge pull request #420 from ivpn/fix/ci-hardening
jurajhilje Mar 4, 2026
c149b49
Merge upstream develop into beta-2.12.0
codewithtamim Mar 5, 2026
876011a
fix(wireguard): set minimum MTU to 1280 for Android compatibility
codewithtamim Mar 5, 2026
4402c8d
fix(serverlist): improve favorites list for hosts
codewithtamim Mar 5, 2026
9cdd657
fix(serverlist): unify host favorites across protocols
codewithtamim Mar 5, 2026
27b6e30
fix(appicon): reset app icon to default on logout (Issue #395)
codewithtamim Mar 5, 2026
31fe027
fix(appicon): reset app icon to default on logout
codewithtamim Mar 5, 2026
d5cc255
Merge branch 'beta-2.12.0' of https://github.com/codewithtamim/ivpn-a…
codewithtamim Mar 5, 2026
389e637
fix(appicon): reset app icon to default on logout
codewithtamim Mar 5, 2026
45774e1
Merge branch 'beta-2.12.0' of https://github.com/codewithtamim/ivpn-a…
codewithtamim Mar 5, 2026
1ab6e5e
fix(serverlist): exclude host identifiers from server favorites list
codewithtamim Mar 5, 2026
b35308e
chore: update app version and build number
jurajhilje Mar 5, 2026
52635e0
Merge remote-tracking branch 'codewithtamim/beta-2.12.0' into beta-2.…
jurajhilje Mar 5, 2026
6f0e14e
Merge remote-tracking branch 'upstream/develop' into beta-2.12.0
codewithtamim Mar 6, 2026
4e64e0e
Merge branch 'ivpn:beta-2.12.0' into beta-2.12.0
codewithtamim Mar 6, 2026
a350544
bugfix(shortcuts): fix shortcut visibility issue
codewithtamim Mar 6, 2026
f696b61
Merge branch 'beta-2.12.0' of https://github.com/codewithtamim/ivpn-a…
codewithtamim Mar 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,13 @@ jobs:
- name: Checkout submodules
run: git submodule update --init --recursive

- name: Set up NDK
uses: nttld/setup-ndk@ed92fe6cadad69be94a966a7ee3271275e62f779 # v1
with:
ndk-version: r25b
- name: Set up Android SDK
uses: android-actions/setup-android@v3

- name: Install required NDK
run: |
yes | sdkmanager --licenses
sdkmanager "ndk;29.0.13113456"

- name: Install liboqs dependencies
run: |
Expand Down
11 changes: 8 additions & 3 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,21 @@ jobs:
- name: Checkout repository
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@56b90f209b02bf6d1deae490e9ef18b21a389cd4 # v1

- name: Initialize CodeQL
uses: github/codeql-action/init@8dca8a82e2fa1a2c8908956f711300f9c4a4f4f6 # v2
with:
languages: java

- name: Checkout submodules
run: git submodule update --init --recursive

- name: Set up Android SDK
uses: android-actions/setup-android@v3

- name: Install required NDK
run: |
yes | sdkmanager --licenses
sdkmanager "ndk;29.0.13113456"

- name: Set up JDK 17
uses: actions/setup-java@17f84c3641ba7b8f6deff6309fc4c864478f5d62 # v3
Expand Down
6 changes: 3 additions & 3 deletions core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ android {
defaultConfig {
minSdkVersion 25
targetSdkVersion 35
versionCode 139
versionName "2.11.1"
ndkVersion "25.1.8937393"
versionCode 141
versionName "2.12.0"
ndkVersion "29.0.13113456"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
testInstrumentationRunnerArguments clearPackageData: 'true'
Expand Down
67 changes: 63 additions & 4 deletions core/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -61,20 +61,79 @@
<activity
android:name="net.ivpn.core.v2.MainActivity"
android:screenOrientation="portrait"
android:exported="true"
android:exported="false"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="adjustNothing"
android:launchMode="singleInstance">

<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
</activity>

<!-- Activity aliases for app icon switching -->
<activity-alias
android:name="net.ivpn.client.MainActivity"
android:targetActivity="net.ivpn.core.v2.MainActivity"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
</activity>
</activity-alias>

<activity-alias
android:name="net.ivpn.client.MainActivityWeather"
android:targetActivity="net.ivpn.core.v2.MainActivity"
android:label="@string/app_icon_name_weather"
android:icon="@mipmap/ic_launcher_weather"
android:enabled="false"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
</activity-alias>

<activity-alias
android:name="net.ivpn.client.MainActivityAlarmClock"
android:targetActivity="net.ivpn.core.v2.MainActivity"
android:label="@string/app_icon_name_alarm_clock"
android:icon="@mipmap/ic_launcher_alarm_clock"
android:enabled="false"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
</activity-alias>

<activity-alias
android:name="net.ivpn.client.MainActivityCalculator"
android:targetActivity="net.ivpn.core.v2.MainActivity"
android:label="@string/app_icon_name_calculator"
android:icon="@mipmap/ic_launcher_calculator"
android:enabled="false"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
</activity-alias>

<activity
android:name="net.ivpn.core.vpn.local.PermissionActivity"
Expand Down
5 changes: 5 additions & 0 deletions core/src/main/cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -269,3 +269,8 @@ add_custom_command(TARGET pie_openvpn.${ANDROID_ABI} POST_BUILD
add_dependencies(opvpnutil pie_openvpn.${ANDROID_ABI} nopie_openvpn.${ANDROID_ABI})
add_dependencies(pie_openvpn.${ANDROID_ABI} makeassetdir)
add_dependencies(nopie_openvpn.${ANDROID_ABI} makeassetdir)

# For blur
add_library(blurlib SHARED blur/blurlib.cpp)

target_link_libraries(blurlib -ljnigraphics)
Loading
Loading