Skip to content
Open

v055v #2505

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
49550ab
rpn: uncomment changes for rethink plus
hussainmohd-a Nov 17, 2025
ee93539
test: add instrumentation test for RpnWinServerRepository
hussainmohd-a Nov 17, 2025
1ac0294
rename repo to repository in class name for consistency
hussainmohd-a Nov 17, 2025
9233355
ui: rpn related activity, frag, adapter changes; pass 1
hussainmohd-a Nov 17, 2025
a0fc346
ui: update arrow icon vector drawables
hussainmohd-a Nov 17, 2025
c2ee218
ui: uncomment and add new activities in manifest
hussainmohd-a Nov 17, 2025
a282789
refactor InAppBillingHandler for improved concurrency and state handling
hussainmohd-a Nov 17, 2025
afebbf5
rpn: enable getRpnProps fn in VpnController
hussainmohd-a Nov 17, 2025
3de4e73
rpn: add country-level configuration management
hussainmohd-a Nov 17, 2025
082a57e
rpn: add rpn-win server entity, DAO, and repository
hussainmohd-a Nov 17, 2025
e8a1763
rpn: rmv LocationSelectorActivity and related UI components
hussainmohd-a Nov 17, 2025
17d1826
rpn-ui: ServerSelection to fragment and update navigation
hussainmohd-a Nov 17, 2025
738be81
Merge branch 'v055n' of https://github.com/hussainmohd-a/rethink-app …
hussainmohd-a Nov 18, 2025
9b9caed
Merge branch 'v055n' of https://github.com/hussainmohd-a/rethink-app …
hussainmohd-a Nov 18, 2025
ab6bd29
Merge branch 'v055n' of https://github.com/hussainmohd-a/rethink-app …
hussainmohd-a Nov 18, 2025
e1eac19
Merge branch 'v055n' of https://github.com/hussainmohd-a/rethink-app …
hussainmohd-a Nov 19, 2025
eb7a87d
Merge branch 'v055n' of https://github.com/hussainmohd-a/rethink-app …
hussainmohd-a Nov 20, 2025
a3f14cc
Merge branch 'v055n' of https://github.com/hussainmohd-a/rethink-app …
hussainmohd-a Nov 26, 2025
07318a4
Merge branch 'v055n' of https://github.com/hussainmohd-a/rethink-app …
hussainmohd-a Dec 24, 2025
91ee215
Merge branch 'v055n' of https://github.com/hussainmohd-a/rethink-app …
hussainmohd-a Dec 24, 2025
d2614d4
ui: improve wg apps list screen
hussainmohd-a Dec 26, 2025
ac94468
db: migration for rethink plus
hussainmohd-a Dec 27, 2025
783bdbc
tun: rethink plus related changes to tun
hussainmohd-a Dec 27, 2025
ec26e8f
Merge branch 'v055n' of https://github.com/hussainmohd-a/rethink-app …
hussainmohd-a Dec 27, 2025
9295ebf
Merge branch 'v055n' of https://github.com/hussainmohd-a/rethink-app …
hussainmohd-a Jan 12, 2026
f0221a0
add release folder to .gitignore
hussainmohd-a Jan 12, 2026
50bee4c
bump build versions, add javatoolchain, add billing
hussainmohd-a Jan 12, 2026
192fc5d
rmv unused/replaced files
hussainmohd-a Jan 12, 2026
194110e
rmv unused/replaced files
hussainmohd-a Jan 12, 2026
9ad5870
add generic hop adapter and dialogs for proxy hopping
hussainmohd-a Jan 12, 2026
e6ebc40
refactor proxy app mapping logic and improve DAO queries
hussainmohd-a Jan 12, 2026
663f15a
ui: improve/handle konfetti anim for auto-dismiss
hussainmohd-a Jan 12, 2026
bc97b52
ui: add missing import
hussainmohd-a Jan 12, 2026
85a305d
lint-fix: drop unused columns
hussainmohd-a Jan 12, 2026
59fa3df
ktfmt: optimize import in RefreshDatabase
hussainmohd-a Jan 12, 2026
8711652
tun: changes for rpn proxy in tun
hussainmohd-a Jan 12, 2026
58430e1
lint: rmv magic number from MemoryUtils.kt
hussainmohd-a Jan 12, 2026
5edfa2a
ui: rmv unused methods from HomeScreenActivity
hussainmohd-a Jan 12, 2026
15931c7
refactor: part of proxy app mapping logic improvement
hussainmohd-a Jan 12, 2026
e80e9d2
rpn proxy ui with country selection and payment handling
hussainmohd-a Jan 12, 2026
8b11c35
rpn and server selection ui strings - pending cleanup
hussainmohd-a Jan 12, 2026
f9f063f
Merge branch 'celzero:main' into v055n
hussainmohd-a Jan 13, 2026
1e3aa6d
fix: #2508, handle NoSuchElementEx in FirewallManager::informObservers
hussainmohd-a Jan 13, 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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ app/src/headless/assets
/tools
/.kotlin/sessions
app/google-services.json
/app/release
app/fdroidFull/release
app/playFull/release
app/websiteFull/release
47 changes: 21 additions & 26 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,6 @@ plugins {
id 'kotlin-android'
}

// ensure consistent JVM version for Java and Kotlin compilation
// kotl.in/gradle/jvm/toolchain
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}

kotlin {
jvmToolchain(17)
}

// apply Google Services and Firebase Crashlytics plugins conditionally
// strategy: For command-line builds, check task names. For IDE, always apply plugins
// but they'll only process play/website variants (Firebase deps are scoped to those variants)
Expand Down Expand Up @@ -79,6 +67,13 @@ try {
keystoreProperties['storePassword'] = ''
}

// ref: developer.android.com/build/jdks#target-compat
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}

android {
compileSdkVersion(36)
// https://developer.android.com/studio/build/configure-app-module
Expand Down Expand Up @@ -155,7 +150,7 @@ android {
// the setting to true
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
ndk {
// Use SYMBOL_TABLE to reduce symbol file size significantly
debugSymbolLevel 'SYMBOL_TABLE'
Expand Down Expand Up @@ -289,7 +284,7 @@ dependencies {

fullImplementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.20'
fullImplementation 'androidx.appcompat:appcompat:1.7.1'
fullImplementation 'androidx.core:core-ktx:1.16.0'
fullImplementation 'androidx.core:core-ktx:1.17.0'
implementation 'androidx.preference:preference-ktx:1.2.1'
fullImplementation 'androidx.constraintlayout:constraintlayout:2.2.1'
fullImplementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
Expand Down Expand Up @@ -358,7 +353,7 @@ dependencies {
playImplementation firestackDependency()

// Work manager
implementation('androidx.work:work-runtime-ktx:2.10.5') {
implementation('androidx.work:work-runtime-ktx:2.11.0') {
modules {
module("com.google.guava:listenablefuture") {
replacedBy("com.google.guava:guava", "listenablefuture is part of guava")
Expand All @@ -378,20 +373,20 @@ dependencies {
testImplementation 'org.robolectric:robolectric:4.16'
testImplementation 'androidx.test:core:1.7.0'
testImplementation 'androidx.test.ext:junit:1.3.0'
testImplementation 'org.mockito:mockito-core:5.20.0'
testImplementation 'org.mockito:mockito-core:5.21.0'
// Added test dependencies for comprehensive testing
testImplementation 'io.mockk:mockk:1.14.6'
testImplementation 'io.mockk:mockk-android:1.14.6'
testImplementation 'io.mockk:mockk:1.14.7'
testImplementation 'io.mockk:mockk-android:1.14.7'
testImplementation 'androidx.arch.core:core-testing:2.2.0'
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.10.2'
testImplementation 'io.insert-koin:koin-test:4.1.1'
testImplementation 'io.insert-koin:koin-test-junit4:4.1.1'
androidTestImplementation 'io.mockk:mockk-android:1.14.6'
androidTestImplementation 'io.mockk:mockk-android:1.14.7'

leakCanaryImplementation 'com.squareup.leakcanary:leakcanary-android:2.14'

fullImplementation 'androidx.navigation:navigation-fragment-ktx:2.9.5'
fullImplementation 'androidx.navigation:navigation-ui-ktx:2.9.5'
fullImplementation 'androidx.navigation:navigation-fragment-ktx:2.9.6'
fullImplementation 'androidx.navigation:navigation-ui-ktx:2.9.6'

fullImplementation 'androidx.biometric:biometric:1.1.0'

Expand All @@ -410,23 +405,23 @@ dependencies {
// for confetti animation
fullImplementation 'nl.dionsegijn:konfetti-xml:2.0.5'
// for in-app purchases
//playImplementation 'com.android.billingclient:billing:8.0.0'
//websiteImplementation 'com.android.billingclient:billing:8.0.0'
playImplementation 'com.android.billingclient:billing:8.3.0'
websiteImplementation 'com.android.billingclient:billing:8.3.0'
// for stripe payment gateway
//websiteImplementation 'com.stripe:stripe-android:21.21.0'
//fdroidImplementation 'com.stripe:stripe-android:21.21.0'

lintChecks 'com.android.security.lint:lint:1.0.3'
lintChecks 'com.android.security.lint:lint:1.0.4'

// battery optimization permission helper
implementation 'com.waseemsabir:betterypermissionhelper:1.0.3'

// Firebase dependencies for error reporting (website and play variants only)
websiteImplementation platform('com.google.firebase:firebase-bom:34.6.0')
websiteImplementation platform('com.google.firebase:firebase-bom:34.7.0')
websiteImplementation 'com.google.firebase:firebase-crashlytics'
websiteImplementation 'com.google.firebase:firebase-crashlytics-ndk'

playImplementation platform('com.google.firebase:firebase-bom:34.6.0')
playImplementation platform('com.google.firebase:firebase-bom:34.7.0')
playImplementation 'com.google.firebase:firebase-crashlytics'
playImplementation 'com.google.firebase:firebase-crashlytics-ndk'
}
5 changes: 3 additions & 2 deletions app/src/full/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -170,14 +170,15 @@
android:finishOnTaskLaunch="true" />
<activity android:name=".ui.activity.RpnWinProxyDetailsActivity"
android:finishOnTaskLaunch="true" />
<activity
android:name=".ui.activity.BubbleActivity"
<activity android:name=".ui.activity.BubbleActivity"
android:allowEmbedded="true"
android:resizeableActivity="true"
android:exported="false"
android:excludeFromRecents="true"
android:taskAffinity=""
android:launchMode="standard"/>
<activity android:name=".ui.activity.ServerWgConfigDetailActivity"
android:finishOnTaskLaunch="true" />
<!-- <activity android:name=".ui.location.LocationSelectorActivity"
android:finishOnTaskLaunch="true" />-->

Expand Down
10 changes: 6 additions & 4 deletions app/src/full/java/com/celzero/bravedns/ServiceModuleProvider.kt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ import com.celzero.bravedns.scheduler.ScheduleManager
import com.celzero.bravedns.scheduler.WorkScheduler
import com.celzero.bravedns.service.AppUpdater
import com.celzero.bravedns.service.ServiceModule
import com.celzero.bravedns.subscription.StateMachineDatabaseSyncService
import com.celzero.bravedns.subscription.SubscriptionStateMachineV2
import com.celzero.bravedns.util.Constants
import com.celzero.bravedns.util.OrbotHelper
import com.celzero.bravedns.viewmodel.ViewModelModule
Expand All @@ -47,13 +49,13 @@ private val appDownloadManagerModule = module {
private val workerModule = module { single { WorkScheduler(androidContext()) } }

private val schedulerModule = module { single { ScheduleManager(androidContext()) } }
/*

private val stateMachine = module {
single { SubscriptionStateMachineV2() }
single { StateMachineDatabaseSyncService() }
}*/
}

//private val stateMachineModules = listOf(stateMachine)
private val stateMachineModules = listOf(stateMachine)

val AppModules: List<Module> by lazy {
mutableListOf<Module>().apply {
Expand All @@ -62,7 +64,7 @@ val AppModules: List<Module> by lazy {
addAll(ViewModelModule.modules)
addAll(DataModule.modules)
addAll(ServiceModule.modules)
//addAll(stateMachineModules)
addAll(stateMachineModules)
addAll(updaterModules)
add(schedulerModule)
add(workerModule)
Expand Down
Loading
Loading